標(biāo)題:
單片機(jī)八位競(jìng)賽搶答器 仿真 源碼 原理圖 文檔下載
[打印本頁(yè)]
作者:
dong123
時(shí)間:
2020-6-24 11:48
標(biāo)題:
單片機(jī)八位競(jìng)賽搶答器 仿真 源碼 原理圖 文檔下載
以單片機(jī)為核心,設(shè)計(jì)一個(gè)8位競(jìng)賽搶答器:同時(shí)供8名選手或8個(gè)代表隊(duì)比賽,分別用8個(gè)按鈕S0~S7表示。
1.設(shè)置一個(gè)系統(tǒng)清除和搶答控制開關(guān)S,開關(guān)由主持人控制。 2.搶答器具有鎖存與顯示功能。即選手按按鈕,鎖存相應(yīng)的編號(hào),并在優(yōu)先搶答選手的編號(hào)一直保持到主持人將系統(tǒng)清除為止。
3.搶答器具有定時(shí)搶答功能,且一次搶答的時(shí)間由主持人設(shè)定(如30秒)。當(dāng)主持人啟動(dòng)“開始”鍵后,定時(shí)器進(jìn)行減計(jì)時(shí),同時(shí)揚(yáng)聲器發(fā)出短暫的聲響,聲響持續(xù)的時(shí)間為0.5s左右。 4.參賽選手在設(shè)定的時(shí)間內(nèi)進(jìn)行搶答,搶答有效,定時(shí)器停止工作,顯示器上顯示選手的編號(hào)和搶答的時(shí)間,并保持到主持人將系統(tǒng)清除為止。
5.如果定時(shí)時(shí)間已到,無人搶答,本次搶答無效,系統(tǒng)報(bào)警并禁止搶答,定時(shí)顯示器上顯示00。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png
(10.74 KB, 下載次數(shù): 78)
下載附件
2020-7-1 03:45 上傳
51hei.png
(22.13 KB, 下載次數(shù): 88)
下載附件
2020-7-1 03:45 上傳
單片機(jī)源程序如下:
#include<reg51.h>
OKEQU20H
RINGEQU22H
ORG0000H
AJMPMAIN
ORG0003H
AJMPINT0SUB
ORG000BH
AJMPT0INT
ORG0013H
AJMPINT1SUB
ORG001BH
AJMPT1INT
ORG0040H
MAIN:MOVR1,#30
MOVR2,#60
MOVTMOD,#11H
MOVTH0,#0F0H
MOVTL0,#0FFH
MOVTH1,#3CH
MOVTL1,#0B0H
SETBEA
SETBET0
SETBET1
SETBEX0
SETBEX1
CLROK
CLRRING
SETBTR1
SETBTR0
2查詢程序
START:MOVR5,#0BH
MOVR4,#0BH
MOVR3,#0BH
ACALLDISPLAY
JBP3.0,NEXT
ACALLDELAY
JBP3.0,NEXT
ACALLBARK
MOVA,R1
MOVR6,A
SETBOK
MOVR7,#01H
MOVR3,#0AH
AJMPCOUNT
NEXT:JNBP1.0,FALSE1
JNBP1.1,FALSE2
JNBP1.2,FALSE3
JNBP1.3,FALSE4
JNBP1.4,FALSE5
JNBP1.5,FALSE6
JNBP1.6,FALSE7
JNBP1.7,FALSE8
AJMPSTART
3非法搶答處理程序
FALSE1:MOVR3,#01H
AJMPERROR
FALSE2:MOVR3,#02H
AJMPERROR
FALSE3:MOVR3,#03H
AJMPERROR
FALSE4:MOVR3,#04H
AJMPERROR
FALSE5:MOVR3,#05H
AJMPERROR
FALSE6:MOVR3,#06H
AJMPERROR
FALSE7:MOVR3,#07H
AJMPERROR
FALSE8:MOVR3,#08H
4搶答、回答時(shí)間調(diào)整程序
=====INT0(搶答時(shí)間R1調(diào)整程序)=====
INT0SUB:MOVA,R1
MOVB,#0AH
DIVAB
MOVR5,A
MOVR4,B
MOVR3,#0AH
ACALLDISPLAY
JNBP3.4,INC0
JNBP3.5,DEC0
JNBP3.1,BACK0
AJMPINT0SUB
INC0:MOVA,R1
CJNEA,#63H,ADD0
MOVR1,#00H
ACALLDELAY1
AJMPINT0SUB
ADD0:INCR1
ACALLDELAY1
AJMPINT0SUB
DEC0:MOVA,R1
JZSETR1
DECR1
ACALLDELAY1
AJMPINT0SUB
SETR1:MOVR1,#63H
ACALLDELAY1
AJMPINT0SUB
BACK0:RETI
;=====INT1(回答時(shí)間R2調(diào)整程序)=====
INT1SUB:MOVA,R2
MOVB,#0AH
DIVAB
MOVR5,A
MOVR4,B
MOVR3,#0AH
ACALLDISPLAY
JNBP3.4,INC1
JNBP3.5,DEC1
JNBP3.1,BACK1
AJMPINT1SUB
INC1:MOVA,R2
CJNEA,#63H,ADD1
MOVR2,#00H
ACALLDELAY1
AJMPINT1SUB
ADD1:INCR2
ACALLDELAY1
AJMPINT1SUB
DEC1:MOVA,R2
JZSETR2
DECR2
ACALLDELAY1
AJMPINT1SUB
SETR2:MOVR2,#63H
ACALLDELAY1
AJMPINT1SUB
BACK1:RETI
5倒計(jì)時(shí)程序
REPEAT:MOVA,R2
MOVR6,A
CLRRING
COUNT:MOVR0,#00H
MOVTH1,#3CH
MOVTL1,#0B0H
RECOUNT:MOVA,R6
MOVB,#0AH
DIVAB
MOV30H,A
MOV31H,B
MOVR5,30H
MOVR4,31H
MOVA,R6
SUBBA,#07H
JNCLARGER
MOVA,R0
CJNEA,#0AH,FULL
CLRRING
AJMPCHECK
FULL:CJNEA,#14H,CHECK
SETBRING
MOVA,R6
JZQUIT
MOVR0,#00H
DECR6
AJMPCHECK
LARGER:MOVA,R0
CJNEA,#14H,CHECK
DECR6
MOVR0,#00H
CHECK:JNBP3.1,QUIT
JNBOK,CHECKK
AJMPNEXTT
CHECKK:JNBP3.0,REPEAT
NEXTT:ACALLDISPLAY
JBOK,ACCOUT
AJMPRECOUNT
ACCOUT:
MOVA,36H
JNBACC.0,TRUE1
JNBACC.1,TRUE2
JNBACC.2,TRUE3
JNBACC.3,TRUE4
JNBACC.4,TRUE5
JNBACC.5,TRUE6
JNBACC.6,TZ1
JNBACC.7,TZ2
AJMPRECOUNT
TZ1:JMPTRUE7
TZ2:JMPTRUE8
QUIT:CLROK
CLRRING
AJMPSTART
6正常搶答處理程序
TRUE1:ACALLBARK
MOVA,R2
MOVR6,A
MOVR3,#01H
CLROK
AJMPCOUNT
TRUE2:ACALLBARK
MOVA,R2
MOVR6,A
MOVR3,#02H
CLROK
AJMPCOUNT
TRUE3:ACALLBARK
MOVA,R2
MOVR6,A
MOVR3,#03H
CLROK
AJMPCOUNT
TRUE4:ACALLBARK
MOVA,R2
MOVR6,A
MOVR3,#04H
CLROK
AJMPCOUNT
TRUE5:ACALLBARK
MOVA,R2
MOVR6,A
MOVR3,#05H
CLROK
AJMPCOUNT
TRUE6:ACALLBARK
MOVA,R2
MOVR6,A
MOVR3,#06H
CLROK
AJMPCOUNT
TRUE7:ACALLBARK
MOVA,R2
MOVR6,A
MOVR3,#07H
CLROK
AJMPCOUNT
TRUE8:ACALLBARK
MOVA,R2
MOVR6,A
MOVR3,#08H
CLROK
AJMPCOUNT
7犯規(guī)搶答程序
ERROR:MOVR0,#00H
MOVTH1,#3CH
MOVTL1,#0B0H
MOV34H,R3
HERE:MOVA,R0
CJNEA,#06H,FLASH;0.3s
CLRRING
MOVR3,#0AH
MOVR4,#0AH
MOVR5,#0AH
AJMPCHECK1
FLASH:CJNEA,#0CH,CHECK1
SETBRING
MOVR0,#00H
MOVR3,34H
MOVR5,#0BH
MOVR4,#0BH
AJMPCHECK1
CHECK1:JNBP3.1,QUIT1
ACALLDISPLAY
AJMPHERE
QUIT1:CLRRING
CLROK
AJMPSTART
8其他功能程序
=====顯示程序=====
DISPLAY:MOVDPTR,#DAT1
MOVA,R3
MOVCA,@A+DPTR
MOVP2,#0feH
MOVP0,A
ACALLDELAY2
MOVDPTR,#DAT2
MOVA,R5
MOVCA,@A+DPTR
MOVP2,#0fdH
MOVP0,A
ACALLDELAY2
MOVA,R4
MOVCA,@A+DPTR
MOVP2,#0fbH
MOVP0,A
ACALLDELAY2
RET
DAT1:DB00h,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,00H,71H
DAT2:DB3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,00H,71H
=====發(fā)聲程序=====
BARK:SETBRING
ACALLDELAY1
ACALLDELAY1
CLRRING
RET
=====TO溢出中斷(響鈴程序)=====
T0INT:MOVTH0,#0ECH
MOVTL0,#0FFH
JNBRING,OUT;
CPLP3.6
OUT:RETI
;=====T1溢出中斷(計(jì)時(shí)程序)=====
T1INT:MOVTH1,#3CH
MOVTL1,#0B0H
END
復(fù)制代碼
程序還有點(diǎn)問題,求大神幫忙修改,壓縮包里面是仿真圖:
項(xiàng)目一八位競(jìng)賽搶答器.zip
(805.17 KB, 下載次數(shù): 22)
2020-6-24 11:45 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1