1.簡(jiǎn)易搶答器的設(shè)計(jì)內(nèi)容和功能 l 以8086為核心,設(shè)計(jì)一個(gè)8位競(jìng)賽搶答器:同時(shí)供8名選手或8個(gè)代表隊(duì)比賽,分別用8個(gè)按鈕SW1~SW8表示。 l 設(shè)置一個(gè)系統(tǒng)復(fù)位和搶答控制按鈕,按鈕由主持人控制。系統(tǒng)能進(jìn)行多次搶答,選手1-8號(hào)任一按下?lián)尨?font face="宋體">或者倒計(jì)時(shí)到0后能重新按下【搶答】按鈕進(jìn)行搶答。 l 搶答器具有鎖存,清除鎖存與顯示功能。在主持人按【搶答】鍵開(kāi)始之前出現(xiàn)搶答情況,雖然已經(jīng)鎖存,但開(kāi)始按鈕將鎖存信號(hào)清零。并且每次停止后,重新開(kāi)始也會(huì)將之前搶答者的鎖存信號(hào)清除,進(jìn)行下一輪的搶答。 l 搶答器具有定時(shí)搶答功能,且一次搶答的時(shí)間由主持人設(shè)定(如10秒)。當(dāng)主持人啟動(dòng)【搶答】鍵后,定時(shí)器進(jìn)行減計(jì)時(shí),同時(shí)揚(yáng)聲器發(fā)出短暫的聲響,聲響持續(xù)的時(shí)間為0.5s左右。 l 參賽選手在設(shè)定的時(shí)間內(nèi)進(jìn)行搶答,搶答有效,定時(shí)器停止工作,顯示器上顯示選手的編號(hào)和搶答的時(shí)間,并保持到主持人將系統(tǒng)復(fù)位清除為止。 l 如果定時(shí)時(shí)間已到,無(wú)人搶答,本次搶答無(wú)效,系統(tǒng)報(bào)警并禁止搶答,定時(shí)顯示器上顯示00。 2. 設(shè)計(jì)思路 用8255A作為輸入輸出設(shè)備,A口輸出,c口高位作為輸出,B口作為鍵盤(pán)輸入,c口低位作為主持人控制鍵輸入。 8253A作為定時(shí)裝置,由0計(jì)時(shí)器產(chǎn)生1秒為周期的方波,其中高電平0.5秒,用此0.5秒的高電平作為1計(jì)數(shù)器 的門(mén)控制信號(hào),控制1計(jì)數(shù)器的通斷!1計(jì)數(shù)器輸出一定頻率的脈沖,使揚(yáng)聲器發(fā)聲! 用異或門(mén)配合組成電路實(shí)現(xiàn)禁止多位選手搶答 3. 硬件設(shè)計(jì) 3.1八路競(jìng)賽搶答器的硬件框圖
1.PNG (6.95 KB, 下載次數(shù): 79)
下載附件
2020-2-24 19:36 上傳
3.2通過(guò)譯碼器產(chǎn)生片選信號(hào)
圖片1.png (8.37 KB, 下載次數(shù): 81)
下載附件
2020-2-24 19:36 上傳
3.3顯示電路設(shè)計(jì) 8255芯片的A口分別與數(shù)碼管的八個(gè)引腳相連。將8255芯片中需要顯示的信息通過(guò)A口送入數(shù)碼顯示區(qū),由數(shù)碼管的亮滅顯示出來(lái)。
圖片2.png (24.45 KB, 下載次數(shù): 93)
下載附件
2020-2-24 19:36 上傳
3.4異或門(mén)實(shí)現(xiàn)禁止多位選手搶答
圖片3.png (22.02 KB, 下載次數(shù): 74)
下載附件
2020-2-24 19:37 上傳
3.5搶答電路設(shè)計(jì)
圖片4.png (26.46 KB, 下載次數(shù): 86)
下載附件
2020-2-24 19:37 上傳
3.6開(kāi)始搶答和復(fù)位電路 (開(kāi)始按鈕要有對(duì)鎖存信號(hào)的清除功能) 8255芯片的PC0口對(duì)應(yīng)【搶答】按鍵,PC1口對(duì)應(yīng)【復(fù)位】按鍵。將搶答開(kāi)始和結(jié)束的信號(hào)(由開(kāi)始按鍵和復(fù)位按鍵控制)通過(guò)C口送入8255芯片。二極管的作用:開(kāi)始按鈕清除鎖存信號(hào),而鎖存信號(hào)不影響開(kāi)始按鈕。
圖片5.png (7.18 KB, 下載次數(shù): 82)
下載附件
2020-2-24 19:37 上傳
4. 軟件設(shè)計(jì) 4.1主程序流程圖
圖片6.png (28.49 KB, 下載次數(shù): 84)
下載附件
2020-2-24 19:37 上傳
4.2程序設(shè)計(jì) CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX ;8255初始化 MOV DX,0EEH MOV AL,10000011B ;A,B,C方式0,A,C輸出,B輸入 OUT DX,AL MOV BP,00 ;BP初值設(shè)置0 CC1: CALL BB1 ;開(kāi)始顯示0 MOV DX,0ECH ;讀取C口低位值 IN AL,DX AND AL,0FH ;檢查主持人開(kāi)始搶答鍵是否按下 CMP AL,0EH JNE CC1 ;沒(méi)按下,跳到cc1,繼續(xù)顯示0 CALL BB2 ;驅(qū)動(dòng)揚(yáng)聲器 MOV CX,0FFH MOV BP,10 ;設(shè)置搶答時(shí)間20秒 CC2: CALL BB1 ;按下,開(kāi)始顯示20秒倒計(jì)時(shí) MOV DX,0EAH ;讀取b口值,看是否有人搶答 IN AL,DX CMP AL,0FFH JNE CC3 ;有人搶?zhuān)鳦C3處理 DEC COUNT JNZ CC2 MOV COUNT,50 ;沒(méi)人搶?zhuān)褂?jì)時(shí),每延時(shí)一秒 DEC BP JS CC4 ;倒計(jì)時(shí)結(jié)束時(shí)跳CC4 JMP CC2 CC4:MOV BP,0 CALL BB1 CALL BB2 ;倒計(jì)時(shí)結(jié)束響喇叭 JMP CC1 CC3: MOV SI,08H ; 鍵值1-8 CALL BB2 NEXT: IN AL,DX CMP AL,TABLE2[SI] ;檢查鍵值 JE DONE DEC SI JMP NEXT DONE: MOV DX,0ECH ;顯示鍵值 MOV AL,0E0H OUT DX,AL LEA BX,TABLE1 ;取段碼 MOV AX,SI XLAT MOV DX,0E8H OUT DX,AL CALL DELAY CALL BB1 MOV DX,0ECH IN AL,DX AND AL,0FH ; 檢查停止鍵 CMP AL,0DH JNE DONE ; 按下,停止 MOV BP,0 CALL BB2 ;顯示00此處響喇叭(復(fù)位響喇叭 JMP CC1 ;準(zhǔn)備下一輪搶答 BB1 PROC NEAR ;顯示子程序 MOV AL,0B0H ;第三位顯示 MOV DX,0ECH ;C口高位 OUT DX,AL ; 此為了數(shù)碼管完整顯示必須先送位后送段碼 MOV AX,BP MOV DL,0AH DIV DL MOV BX,OFFSET TABLE1 XLAT MOV DX,0E8H OUT DX,AL CALL DELAY MOV AL,70H ;第四位顯 MOV DX,0ECH ;C口高位 OUT DX,AL MOV AL,AH XLAT MOV DX,0E8H OUT DX,AL CALL DELAY RET BB1 ENDP BB2 PROC NEAR ;8253驅(qū)動(dòng)發(fā)聲子程序 MOV AL,16H OUT 0F6H,AL MOV AX,1000 OUT 0F0H,AL MOV AH,AL OUT 0F0H,AL MOV AL,56H OUT 0F6H,AL MOV AL,2 OUT 0F2H,AL MOV CX,50 L: CALL DELAY LOOP L AND AL,00H ;關(guān)喇叭 OUT 0F6H,AL RET BB2 ENDP DELAY PROC NEAR ; 延時(shí)子程序 PUSH BX PUSH CX MOV BX,10 T0: MOV CX,0FFH T1: LOOP T1 DEC BX JNZ T0 POP CX POP BX RET DELAY ENDP CODE ENDS
DATA SEGMENT TABLE1 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH TABLE2 DB 0FFH,0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH
COUNT DB 50 ; 設(shè)置變量 DATA ENDS
END START
搶答器壓縮包:
簡(jiǎn)易搶答器.zip
(55.27 KB, 下載次數(shù): 212)
2020-2-24 19:34 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|