1. 描述下本電路是如何實現四路輸入搶答功能的
vvc:設計一個4人參加的智力競賽搶答計時器
1:當有某一個參賽者下按搶答開關時。相應顯示等亮。並伴有聲響;且此時搶答器不再接受其他輸入信號;
2:電路具有回答問題時間控制功能。要求回答問題小於等於100s(顯示0——99s)。時間顯示採用倒計時方式。當達到限定時間時。發出聲響以示警告
3:有清零復位功能
補充:設計5v穩壓電源供給電路
實驗四 多路智力搶答器
實驗目的
1、熟悉智力競賽搶答器的工作原理
2、掌握搶答電路、優先編碼電路、鎖存電路、定時電路、報警電路、時序控制電路、解碼電路、顯示電路及報警電路的設計方法
實驗任務
基本功能
1、設計一個多路智力競賽搶答器,同時供 8 個選手參賽,編號分別為 0 到 7 ,每個用一搶答按鍵。
2、給節目主持人一個控制開關,實現系統清零和搶答的開始。
3、具有數據鎖存和顯示功能。搶答開始後,如果有選手按下搶答按鍵,其編號立即鎖存並顯示在 LED 上,同時揚聲器報警。此外,禁止其他選手再次搶答。選手編號一直保存到主持人清除。
擴展功能
1、具有定時搶答功能,可由主持人設定搶答時間。當搶答開始後,定時器開始倒計時,並顯示在 LED 上,同時揚聲器發聲提醒。
2、選手在規定時間內搶答有效,停止倒計時,並將倒計時時間顯示在 LED 上,同時報警。
在規定時間內,無人搶答時,電路報警提醒主持人,次後的搶答按鍵無效。
實驗四 多路智力搶答器
實驗原理
1、原理框圖:
2、原理簡述
定時搶答器的總體框圖如上圖所示,它由主體電路和擴展電路兩部分組成。主體電路完成基本的搶答功能,即開始搶答後,當選手按動搶答鍵時,能顯示選手的編號,同時能封鎖輸入電路,禁止其他選手搶答。擴展電路完成定時搶答的功能。
定時搶答器的工作過程是:接通電源時,節目主持人將開關置於「清除」位置,搶答器處於禁止工作狀態,編號顯示器滅燈,定時器倒計時。當定時時間到,卻沒有選手搶答時,系統報警,並封鎖輸入電路,禁止選手超時後搶答。當選手在定時時間內按動搶答鍵時,搶答器要完成以下四項工作: ①優先緞電路立即分辨出搶答者的編號,並由鎖存器進行鎖存,然後由解碼顯示電路顯示編號;②揚聲器發出短暫聲響,提醒節目主持人注意;③控制電路要對輸入編碼電路進行封鎖,避免其他選手再次進行搶答;④控制電路要使定時器停止工作,時間顯示器上顯示剩餘的搶答時間,並保持到主持人將系統清零為止。當選手將問題回答完畢,主持人操作控制開關,使系統回復到禁止工作狀態,以便進行下一輪搶答。
電路設計
1、搶答部分
a) 電路功能 :一是將搶答選手的編號識別出並鎖存顯示到數碼管上,二是使其他選手按鍵無效;三是有人搶答時輸出時序控制信號,使計數電路停止工作並報警。
b) 原理圖:
c) 與其他電路的介面:
S : 輸入,與主持人總控相接,此處控制數碼管的清零;
/ST : 輸入, 74148 的使能控制端(由 7400 輸入);
/YEX : 輸出,報警時序控制(與 74121 相連);
CTR : 輸出,報警時序控制(與 7400 相連);
d) 具體原理 :該部分主要由 74148 優先編碼器、鎖存器 74279 、解碼器 7448 組成和按鍵、
7 段數碼管組成。如圖所示,搶答輸入端為 74148 的 /I7 到 /I0 腳,當有選手按鍵時, 74148 的相應的引腳為低電平,電路完成以下動作:
( 1 )、 74148 將編碼輸入到鎖存其中,並通過鎖存器由 7448 解碼後顯示到數碼管上;
( 2 )、 74148 解碼輸出端 /YEX = 0 ,通過控制時序電路使 74148 的使能端 /ST 為 1 , 74148 停在解碼工作,使以後其他選手的按鍵無效;
( 3 )、時序信號 /YEX=0 , CTR=1 ,通過控制時序電路使計時電路停止工作,報警電路報警。
2、定時電路
a) 電路功能 :主要實現搶答倒計時,同時通過輸出介面與時序控制電路相接,實現時序控制,當無人搶答且時間到時,報警。
b) 原理圖:
c) 與其他電路介面 :
CLCK : 輸入,計數脈沖,時序控制電路產生, 由 7411 輸出;
S : 輸入,主持人總控,此處控制計數器 74192 的預置數;
BO2 : 輸出,倒計時時間到時輸出低電平 0 ,與時序電路 74121 相接,控制報警;
d) 具體原理 :該部分主要由 555 脈沖產生電路、 74192 減法計數電路、 7448 解碼電路和 2 個 7 段數碼管即相關電路組成。兩塊 74192 實現減法計數,通過解碼電路 7448 顯示到數碼管上,其時鍾信號由時鍾產生電路提供。 74192 的預置數控制端實現預置數,當主持人按下控制按鍵 S 時,實現預置。按鍵彈起後,計數器開始減法計數工作,並將時間顯示在 LED 上,當有人搶答時,停止計數並顯示此時的倒計時時間;如果沒有人搶答,且倒計時時間到時, BO2 輸出低電平到時序控制電路,控制報警電路報警,同時以後選手搶答無效。
3、時鍾產生和時序控制電路
a) 電路功能 :為計數電路提供計數脈沖,同時完成主持人控制以及以上各部分的邏輯控制協調,使電路正常工作
2. 設計一個智力競賽搶答器可同時供8人參加比賽,他們的編號分別是0、1、2、3、4、5、6、7,各用一個搶答按鈕
第一章搶答器設計功能分析
1.1 數字搶答器的概述
對於搶答器我們大家來說都不陌生,它是用於很多競賽場合,真正實現先搶先答,讓最先搶到題的選手來回答問題。搶答器不僅考驗選手的反應速度同時也要求選手具備足夠的知識面和一定的勇氣。選手們都站在同一個起跑線上,體現了公平公正的原則。
1.2 設計任務與要求
基本要求:
1. 給主持人設置一個開關,用來控制系統的清零(編號顯示數碼管滅燈)和搶答器的開始。
2. 搶答器具有數據鎖存和顯示的功能。搶答開始後,若有選手按動搶答器按鈕,編號立即鎖存,並在LED數碼上顯示選手的編號,同時揚聲器給出音響提示。此外,要封鎖輸入電路,禁止其他選手搶答。
發揮部分:
1. 搶答器具有定時搶答的功能,且一次搶答的時間可以由主持人設定(如30秒)。當節目主持人啟動「開始」鍵後,要求定時器立即減計時,並用顯示器顯示,同時揚聲器發出短暫的聲響,聲響持續時間0.5秒左右。
2. 參加選手在設定的時間內搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答時刻的時間,並保持到主持人將系統清零為止。
3. 如果定時搶答的時間已到,卻沒有選手搶答時,本次搶答無效,系統短暫報警,並封鎖輸入電路,禁止選手超時後搶答,時間顯示器上顯示00。
4. 選手如果在主持人按開始鍵之前違規搶答,系統報警,LED顯示違規選手號碼和FF,直到主持人按下停止鍵。
第二章 搶答器方案論證
搶答器的實現方式有種多樣,通過純電子器件搭建電路實現,如優先編碼器,鎖存器,555定時器解碼器等,純電子器件實現沒有軟體參與,調試簡單,但是它不易於擴展和修改,而且電路結構復雜,調試困難電子,電子器件管腳很多,實際搭建起來費時費力,焊接很容易出錯。於是,我想到了用單片機實現。單片機體積小價格低,應用方便,穩定可靠。單片機將很多任務交給了軟體編程去實現,大大簡化了外圍硬體電路,使外圍電路的實現簡單方便。由於單片機本身不具有軟體編譯測試的功能,我們需要藉助其他軟體編譯,將編譯好的程序「燒」入單片機內。
在實際電路設計中,需要先通過模擬軟體測試電路以及編譯的程序,檢查外圍電路設計是否合理,軟體編譯是否正確,以及軟體和硬體電路能否正常配合工作,能否准確的實現所設計的功能。如果測試通過,電路模擬沒有問題能完全實現功能的話就可以實際的做板子的焊接工作了。在老師的指導下我選擇了常用的單片機模擬軟體proteus6.9以及keil 進行模擬。
第三章 硬體電路設計
3.1總體設計
根據搶答器的基本功能,可以設計出如下的單片機外圍電路:
圖3-1 總體設計
如圖3-1,P3.0為開始搶答,P3.2為停止,P1.0-P1.7為八路搶答輸入,數碼管段選P0口,位選P2口低3位,蜂鳴器(用綠燈代替)輸出為P3.6口。P3.2為時間加1調整,P3.3為時間減1調整。
3.2 外部振盪電路
圖3-2 外部振盪電路
一般選用石英晶體振盪器。此電路在加電大約延遲10ms後振盪器起振,在XTAL2引腳產生幅度為3V左右的正弦波時鍾信號,其振盪頻率主要由石英晶振的頻率確定。電路中兩個電容 C1,C2的作用有兩個:一是幫助振盪器起振;二是對振盪器的頻率進行微調。C1,C2的典型值為30PF。
3.3 復位電路的設計
單片機的第9腳RST為硬體復位端,只要將該端持續4個機器周期的高電平即可實現復位,復位後單片機的各狀態都恢復到初始化狀態,其電路圖如圖4所示:
圖3-3 復位電路
在方案中使用到了硬體復位和軟體復位兩種功能,由上面的硬體復位可使寄存器及存儲器的值都恢復到初始值,而前面的功能提到了倒計時間需要有記憶功能,該功能實現的前提條件就是不能對單片機進行硬體復位,所以設定了軟復位功能。軟復位實際上就是當程序執行完畢之後,將程序指針通過一條跳轉指令讓它跳轉到程序執行的起始地址。
3.1.4 顯示電路的設計
顯示電路使用了七段數碼管7SEG-MPX4-CC,它是共陰極的,由高電平點亮。
圖3-4 陰極七段數碼管
4.1.5 按鈕輸入電路的設計
搶答器的輸入按鈕使用常開開關,
圖3-5 搶答按鍵
這些常開開關組成了搶答按鍵,硬體電路簡單,在程序設計上也不復雜,只要在程序中消除在按鍵過程中產生的「毛刺」現象就可以了。這里採用最常用的方法即延時法,其的原理為:因為「毛刺」脈沖一般持續時間短,約為幾ms,而按鍵的時間一般遠遠大於這個時間,所以當單片機檢測到有按鍵動靜後再延時一段時間(這里取10ms)後再判斷此電平是否保持原狀態,如果是則為有效按鍵,否則無效。
3.1.6 發聲
這里能利用程序來控制單片機P3.6口線反復輸出高電平或低電平,即在該口線上產生一定頻率的矩形波,接上揚聲器就能發出一定頻率的聲音,再利用延時程序控制「高」「低」電平的持續時間,就能改變輸出頻率,從而改變音調,使揚聲器發出不同的聲音。
第四章 系統軟體設計
4.1 程序系統結構圖
硬體電路確定後,軟體的編程要與硬體相匹配,軟硬體才能結合完成所要實現的功能。由功能分析得到以下的軟體結構圖:
圖4-1 軟體系統結構圖
4.2 程序流程圖
整個程序主要由定時器T0、定時器T1、外部中斷0和主程序構成。
定時器T0用於使揚聲器發聲,當需要響鈴時,把響鈴標志位置一,每次中斷都對P3.7取反,揚聲器發聲,改變定時器初值,可改變揚聲器頻率。定時器程流程圖如下:
圖4-2 響鈴程序流程圖
定時器T1用於倒計時,每次中斷為50ms,當計數標志為20時即為一秒,顯示數字減一。其流程圖如下:
圖4-3 倒計時中斷流程圖
外部中斷0用於調整倒計時時間,流程圖如下:
圖4-4 調整搶答時間流程圖
主程序協調三個中斷一起工作,實現搶答功能,其流程圖如下:
圖4-5 主程序流程圖
附錄:
程序代碼:
P3.0為開始搶答,P3.1為停止,P1.0-P1.7為八路搶答輸入,數碼管段選P0口,位選P2的低三位口,蜂鳴器輸出為P3.6口。
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP INT0SUB
ORG 000BH
AJMP T0INT
ORG 001BH
AJMP T1INT
OK EQU 20H ; 搶答開始標志位
RING EQU 22H ; 響鈴標志位
ORG 0040H
MAIN: MOV R1,#0FH; 初設搶答時間為15s
MOV R2,#0AH; 初設答題時間為10s
MOV TMOD,#11H; 設置未定時器/模式1
MOV TH0,#0F0H
MOV TL0,#0FFH; 越高發聲頻率越高,越尖
MOV TH1,#3CH
MOV TL1,#0B0H; 50ms為一次溢出中斷
SETB EA
SETB ET0
SETB ET1
SETB EX0
SETB EX1; 允許四個中斷,T0/T1/INT0/INT1
CLR OK
CLR RING
SETB TR1
SETB TR0; 一開始就運行定時器,以開始顯示FFF.如果想重新計數,重置TH1/TL1就可以了
查詢程序:
START: MOV R5,#0BH
MOV R4,#0BH
MOV R3,#0BH
ACALL DISPLAY; 未開始搶答時候顯示FFF
JB P3.0,NEXT
ACALL DELAY
JB P3.0,NEXT;去抖動,如果"開始鍵"按下就向下執行,否者跳到非法搶答查詢
ACALL BARK;按鍵發聲
MOV A,R1
MOV R6,A; 送R1->R6,因為R1中保存了搶答時間
SETB OK; 搶答標志位,用於COUNT只程序中判斷是否查詢搶答
MOV R3,#0AH; 搶答只顯示計時,滅號數
AJMP COUNT;進入倒計時程序,"查詢有效搶答的程序"在COUNT裡面
NEXT: JNB P1.0,FALSE1
JNB P1.1,FALSE2
JNB P1.2,FALSE3
JNB P1.3,FALSE4
JNB P1.4,FALSE5
JNB P1.5,FALSE6
JNB P1.6,FALSE7
JNB P1.7,FALSE8
AJMP START
非法搶答處理程序:
FALSE1: ACALL BARK; 按鍵發聲
MOV R3,#01H
AJMP ERROR
FALSE2: ACALL BARK
MOV R3,#02H
AJMP ERROR
FALSE3: ACALL BARK
MOV R3,#03H
AJMP ERROR
FALSE4: ACALL BARK
MOV R3,#04H
AJMP ERROR
FALSE5: ACALL BARK
MOV R3,#05H
AJMP ERROR
FALSE6: ACALL BARK
MOV R3,#06H
AJMP ERROR
FALSE7: ACALL BARK
MOV R3,#07H
AJMP ERROR
FALSE8: ACALL BARK
MOV R3,#08H
AJMP ERROR
倒計時程序(包括有效搶答程序):
COUNT: MOV R0,#00H; 重置定時器中斷次數
MOV TH1,#3CH
MOV TL1,#0B0H; 重置定時器
RECOUNT: MOV A,R6; R6保存了倒計時的時間
MOV B,#0AH
DIV AB; 除十分出個位/十位
MOV 30H,A; 十位存於(30H)
MOV 31H,B; 個位存於(31H)
MOV R5,30H ; 取十位
MOV R4,31H ; 取個位
MOV A,R6
CLR C
SUBB A,#07H
JNC LARGER ;大於5s跳到LARGER,小於等於5s會提醒
MOV A,R0
CJNE A,#0AH,FULL;1s中0.5s向下運行
CLR RING
AJMP CHECK
FULL: CJNE A,#14H,CHECK ; 1s時,響並顯示號數並清R0,重新計時
SETB RING
MOV A,R6
JZ QUIT ; 計時完畢
MOV R0,#00H
DEC R6 ; 一秒標志減1
AJMP CHECK
LARGER: MOV A,R0
CJNE A,#14H,CHECK ; 如果1s向下運行,否者跳到查"停/顯示"
DEC R6; 計時一秒R6自動減1
MOV R0,#00H
CHECK: JNB P3.1,QUIT; 如按下停止鍵退出
ACALL DISPLAY
JNB P1.0,TRUE1
JNB P1.1,TRUE2
JNB P1.2,TRUE3
JNB P1.3,TRUE4
JNB P1.4,TRUE5
JNB P1.5,TRUE6
JNB P1.6,TRUE7
JNB P1.7,TRUE8
AJMP RECOUNT
QUIT: CLR OK ; 如果按下了"停止鍵"重新回到開始
CLR RING
ACALL BARK
AJMP START
正常搶答處理程序:
TRUE1: ACALL BARK; 按鍵發聲
MOV A,R2
MOV R6,A; 搶答時間R2送R6
MOV R3,#01H
CLR OK;
AJMP LOOP2
TRUE2:ACALL BARK;
MOV A,R2
MOV R6,A
MOV R3,#02H
CLR OK
AJMP LOOP2
TRUE3:ACALL BARK;
MOV A,R2
MOV R6,A
MOV R3,#03H
CLR OK
AJMP LOOP2
TRUE4:ACALL BARK;
MOV A,R2
MOV R6,A
MOV R3,#04H
CLR OK
AJMP LOOP2
TRUE5: ACALL BARK;
MOV A,R2
MOV R6,A
MOV R3,#05H
CLR OK
AJMP LOOP2
TRUE6: ACALL BARK;
MOV A,R2
MOV R6,A
MOV R3,#06H
CLR OK
AJMP LOOP2
TRUE7: ACALL BARK;
MOV A,R2
MOV R6,A
MOV R3,#07H
CLR OK
AJMP LOOP2
TRUE8: ACALL BARK;
MOV A,R2
MOV R6,A
MOV R3,#08H
CLR OK
LOOP2: AJMP DISPLAY ;搶答後停止計時,等待返回
SETB RING
JNB P3.1 QUIT
AJMP LOOP2
犯規搶答程序:
ERROR: SETB RING ;犯規響鈴
MOV R5,#0BH
MOV R4,#0BH; 顯示FF和犯規號數
LOOP3: ACALL DISPLAY
JNB P3.1 QUIT1; 等待「停止」鍵按下
AJMP LOOP3
QUIT1: CLR RING
CLR OK
AJMP START
顯示程序:
DISPLAY:MOV DPTR,#DAT1; 查表顯示程序,利用P0口做段選碼口輸出/P2低三位做位選碼輸出
MOV A,R5
MOVC A,@A+DPTR
MOV P2,#01H
MOV P0,A
ACALL DELAY
MOV DPTR,#DAT2
MOV A,R4
MOVC A,@A+DPTR
MOV P2,#02H
MOV P0,A
ACALL DELAY
MOV A,R3
MOVC A,@A+DPTR
MOV P2,#04H
MOV P0,A
ACALL DELAY
RET
DAT1:DB 00H,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H
;"滅","1","2","3","4","5","6","7","8","9","滅","F"
DAT2:DB 3FH, 06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H
DELAY1: MOV 35H,#08H
LOOP0: ACALL DISPLAY
DJNZ 35H,LOOP0
RET
延時(顯示和去抖動用到):
DELAY: MOV 32H,#12H
LOOP: MOV 33H,#0AFH
LOOP1: DJNZ 33H,LOOP1
DJNZ 32H,LOOP
RET
發聲程序:
BARK: SETB RING
ACALL DELAY1
ACALL DELAY1
CLR RING; 按鍵發聲
RET
INT0(搶答時間R1調整程序):
INT0SUB:MOV A,R1
MOV B,#0AH
DIV AB
MOV R5,A
MOV R4,B
MOV R3,#0AH
ACALL DISPLAY;先在兩個時間LED上顯示R1
JNB P3.2,INC0; P3.2為+1s鍵,如按下跳到INCO
JNB P3.3,DEC0; P3.3為-1s鍵,如按下跳到DECO
JNB P3.4,BACK0; P3.4為確定鍵,如按下跳到BACKO
AJMP INT0SUB
INC0: MOV A,R1
CJNE A,#63H,ADD0; 如果不是99,R2加1,如果加到99了,R1就置0,重新加起
MOV R1,#00H
ACALL DELAY1
AJMP INT0SUB
ADD0: INC R1
ACALL DELAY1
AJMP INT0SUB
DEC0: MOV A,R1
JZ SETR1;如果R1為0, R1就置99,
DEC R1
ACALL DELAY1
AJMP INT0SUB
SETR1: MOV R1,#63H
ACALL DELAY1
AJMP INT0SUB
BACK0: RETI
TO溢出中斷(響鈴程序):
T0INT:MOV TH0,#0ECH
MOV TL0,#0FFH
JNB RING,OUT
CPL P3.6 ; RING標志位為1時候P3.6口不短取反使喇叭發出一定頻率的聲音
OUT: RETI
T1溢出中斷(計時程序):
T1INT: MOV TH1,#3CH
MOV TL1,#0B0H
INC R0
RETI
END
3. 數字電路設計:六人搶答器
用數字電路實現搶答器
一、設計目標
設計一個帶有用戶選手按下後,其他用戶選手按下無效,同時,響警報、顯示是誰按下的。由主持人開關復位的搶答器。
二、 基本功能
我設計的搶答器有如下功能:有人按下時,顯示是誰按下的。同時,其他人再按下時電路不做任何處理。也就是說,如果有人按下以後,別人再按的話電路既不會顯示是他按下的。
三、搶答器的組成
搶答器的一般構成框圖如圖2-1所示。它主要由開關陣列電路、觸發鎖存電路、編碼器、7段顯示器幾部分組成。下面逐一給予介紹。
(1)開關陣列電路
該電路由多路開關所組成,每一競賽者與一組開關相對應。開關應為常開型,當按下開關時,開關閉合;當松開開關時,開關自動彈出斷開。
(2)觸發鎖存電路
當某一開關首先按下時,觸發鎖存電路被觸發,在輸出端產生相應的開關電平信息,同時為防止其它開關隨後觸發而產生紊亂,最先產生的輸出電平變化又反過來將觸發電路鎖定。若有多個開關同時按下時,則在它們之間存在著隨機競爭的問題,結果可能是它們中的任一個產生有效輸出。
(3)編碼器
編碼器的作用是將某一開關信息轉化為相應的8421BCD碼,以提供數字顯示電路所需要的編碼輸入。
圖3-1 搶答器的組成框圖
(4)7段顯示解碼器
解碼驅動電路將編碼器輸出的8421BCD碼轉換為數碼管需要的邏輯狀態,並且為保證數碼管正常工作提供足夠的工作電流。
(5)數碼顯示器
數碼管通常有發光二極體(LED)數碼管和液晶(LCD)數碼管。本設計提供的為LED數碼管。
四、搶答器的工作原理
(1)開關陣列電路
圖1.2所示為8路開關陣列電路,從圖上可以看出其結構非常簡單。電路中,R1~R8為上拉和限流電阻。當任一開關按下時,相應的輸出為低電平,否則為高電平。
圖4-1 開關陣列電路
(2)觸發鎖存電路
圖3-1所示為8路觸發鎖存電路。
圖中,74HC373為8D鎖存器,一開始,當所有開關均未按下時,鎖存器輸出全為高電平,經8輸入與非門和非門後的反饋信號仍為高電平,該信號作為鎖存器使能端控制信號,使鎖存器處於等待接收觸發輸入狀態;當任一開關按下時,輸出信號中必有一路為低電平,則反饋信號變為低電平,鎖存器剛剛接收到的開關被鎖存,這時其它開關信息的輸入將被封鎖。由此可見,觸發鎖存電路具有時序電路的特徵,是實現搶答器功能的關鍵。
(3)編碼器
如圖4-3所示,74HC147H為10-4線優先(高位優先)編碼器,當任意輸入為低電平時,輸出為相應的輸入編號的8421碼(BCD碼)的反碼。
圖4-2 8路觸發鎖存電路。
圖4-3 10-4線優先編碼器
(4)解碼驅動及顯示單元
編碼器實現了對開關信號的編碼並以BCD碼的形式輸出。為了將編碼顯示出來,需用顯示解碼電路將計數器的輸出數碼轉換為數碼顯示器件所需要的輸出邏輯和一定的電流。一般這種解碼通常稱為7段解碼顯示驅動器。常用的7段解碼顯示驅動器有CD4511等。
數碼顯示器件中的液晶數碼管價格較高,驅動較復雜,並且僅能工作於有外界光線的場合,所以使用較少。大多情況下使用的是LED數碼管。平時使用較多的LED數碼有單字和雙字之分。
LED數碼管尺寸有大有小,一般小的數碼管每個數字筆畫為一個發光二極體,而尺寸較大的數碼管一個筆畫可能是多個發光二極體串接而成的,這時一般無法直接用解碼驅動器直接驅動(其輸出高電平一般為3V左右)。
(5)解鎖電路
當觸發鎖存電路被觸發鎖存後,若要進行下一輪的重新搶答,則需將鎖存器解鎖。可將使能端強迫置1或置0(根據具體情況而定),使鎖存順處於等待歉收狀態即可。
五、改進、簡化設計
(1)功能簡介
搶答器同時供8名選手或8個代表隊比賽,分別用8個按鈕S0 ~ S7表示。設置一個系統清除和搶答控制開關S,該開關由主持人控制。
搶答器具有鎖存與顯示功能。即選手按動按鈕,鎖存相應的編號,並在LED數碼管上顯示,同時揚聲器發出報警聲響提示。選手搶答實行優先鎖存,優先搶答選手的編號一直保持到主持人將系統清除為止。
搶答器具有定時搶答功能,且一次搶答的時間由主持人設定(如30秒)。當主持人啟動"開始"鍵後,定時器進行減計時,同時揚聲器發出短暫的聲響,聲響持續的時間0.5秒左右。
參賽選手在設定的時間內進行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答的時間,並保持到主持人將系統清除為止。
如果定時時間已到,無人搶答,本次搶答無效,系統報警並禁止搶答,定時顯示器上顯示00。
(2)設計原理圖
如圖2-1所示為總體方框圖。其工作原理為:接通電源後,主持人將開關撥到"清除"狀態,搶答器處於禁止狀態,編號顯示器滅燈,定時器顯示設定時間;主持人將開關置開始"狀態,宣布"開始"搶答器工作。定時器倒計時,揚聲器給出聲響提示。
選手在定時時間內搶答時,搶答器完成:優先判斷、編號鎖存、編號顯示、揚聲器提示。當一輪搶答之後,定時器停止、禁止二次搶答、定時器顯示剩餘時間。如果再次搶答必須由主持人再次操作"清除"和"開始"狀態開關。
圖5-1 總體設計
(3)電路設計
(1)
(2)
圖5-2 完整電路
搶答器電路參考電路如圖5-2所示。
該電路完成兩個功能:一是分辨出選手按鍵的先後,並鎖存優先搶答者的編號,同時解碼顯示電路顯示編號;二是禁止其他選手按鍵操作無效。工作過程:開關S置於"清除"端時,RS觸發器的
端均為0,4個觸發器輸出置0,使74LS148的 =0,使之處於工作狀態。當開關S置於"開始"時,搶答器處於等待工作狀態,當有選手將鍵按下時(如按下S5),74LS148的輸出 經RS鎖存後,1Q=1, =1,74LS48處於工作狀態,4Q3Q2Q=101,經解碼顯示為"5"。
此外,1Q=1,使74LS148 =1,處於禁止狀態,封鎖其他按鍵的輸入。當按鍵松開即按下時,74LS148的 此時由於仍為1Q=1,使 =1,所以74LS148仍處於禁止狀態,確保不會出二次按鍵時輸入信號,保證了搶答者的優先性。
如有再次搶答需由主持人將S開關重新置;清除"然後再進行下一輪搶答。74LS148為8線-3線優先編碼器,表5-1為其功能表。
表5-1功能表
由節目主持人根據搶答題的難易程度,設定一次搶答的時間,通過預置時間電路對計數器進行預置,計數器的時鍾脈沖由秒脈沖電路提供。
可預置時間的電路選用十進制同步加減計數器74LS192進行設計,具體電路如圖4-4所示。(3)報警電路由555定時器和三極體構成的報警電路如圖5-4所示。
其中555構成多諧振盪器,振盪頻率fo=1.43/〔(RI+2R2)C〕,其輸出信號經三極體推動揚聲器。PR為控制信號,當PR為高電平時,多諧振盪器工作,反之,電路停振。
本電路給出了所有相關電路,對於發聲報警電路只有左下角555電路。時序控制電路是搶答器設計的關鍵,它要完成以下三項功能:
1、主持人將控制開關撥到"開始"位置時,揚聲器發聲,搶答電路和定時電路進人正常搶答工作狀態。
2、當參賽選手按動搶答鍵時,揚聲器發聲,搶答電路和定時電路停止工作。
3、當設定的搶答時間到,無人搶答時,揚聲器發聲,同時搶答電路和定時電路停止工作。工作原理:當555電路的到信號後,開始產生高低電壓不同的方波,這些方波從555電路的輸出端出來,經過510歐姆的保護電阻進入放大電路。信號經過放大後,再傳給揚聲器,這時信號已經不再是方波,而是一種連續變化的一種類似於簡諧波的電信號。但是他的頻率還是和555電路的輸出端的頻率一樣。
圖5-4 定時電路
圖5-5揚聲器設計
根據上面的功能要求,設計的時序控制電路如4-5圖所示。
圖中,門G1的作用是控制時鍾信號CP的放行與禁止,門G2的作用是控制74LS148的輸人使能端 。圖11、4的工作原理是:主持人控制開關從"清除"位置撥到"開始"位置時,來自於圖5-5中的74LS279的輸出 1Q=0,經G3反相, A=1,則時鍾信號CP能夠加到74LS192的CPD時鍾輸入端,定時電路進行遞減計時。
同時,在定時時間未到時,則"定時到信號"為 1,門G2的輸出 =0,使 74LS148處於正常工作狀態,從而實現功能①的要求。當選手在定時時間內按動搶答鍵時,1Q=1,經 G3反相, A=0,封鎖 CP信號,定時器處於保持工作狀態;同時,門G2的輸出 =1,74LS148處於禁止工作狀態,從而實現功能②的要求。當定時時間到時,則"定時到信號"為0, =1,74LS148處於禁止工作狀態,禁止選手進行搶答。
同時, 門G1處於關門狀態,封鎖 CP信號,使定時電路保持00狀態不變,從而實現功能③的要求。集成單穩觸發器74LS121用於控制報警電路及發聲的時間。
(4)需要器材:
1.數字實驗箱。
2. 集成電路74LS148 1片,74LS279 1片,74LS48 3片,74LS192 2片,NE555 2片,74LS00 1片,74LS121 1片。
3. 電阻 510Ω 2隻,1KΩ 9隻,4.7kΩ l只,5.1kΩ l只,100kΩ l只,10kΩ 1隻, 15kΩ 1隻, 68kΩ l只。
4.電容 0.1uF 1隻,10uf 2隻,100uf 1隻。
5. 三極體 3DG12 1隻。
6. 其它:發光二極體2隻,共陰極顯示器3隻。
六、其他設計思路
電路設計的思路方法多樣可以滿足不同需求。 而且我還考慮了很多不同的設計思路,這些不同的思路,他們所用到的器件也不同。下面的內容是我參考的其他的大致的設計方法
使用JK觸發器實現用戶選手的信號輸入和電路的鎖存,使一個用戶選手輸入信號後其他選手輸入信號不再有效。在使用戶選手輸入信號的鎖存電路組的輸出信號,也就是JK觸發器組的輸出信號作為二-十進制解碼器的輸入信號產生十進制8421信號。
這個過程可以採用一些與非門電路完成也可以採用7442二-十進制解碼器或者74148優先編碼器他們都可以達到輸入單信號,輸出8421十進制信號的目的完成信號轉換的作用。為完成下一個步驟做准備。
在完成上兩個步驟以後,就可以將得到的8421十進制信號傳送給顯示解碼器用來顯示數字,這給數字應該是用戶選手的序列號,來表示是誰按下的。這樣,就可以實現一個新功能了。
同時,可以從很多地方取輸出信號,傳送給555電路用來產生一定頻率的方波信號。這種頻率應該是人類耳朵能夠分辨的頻率,超過或低於這個頻率范圍,普通人就聽不見了,那麼這種電路的設計就失去了意義。
從這個555電路傳出來的方波信號,在通過保護電阻後,送到放大電路,將信號放大。這時,到達放大電路輸出端的信號已經變成一種簡諧波,不再是方波。在將輸出端信號中的直流成分通過電容器予以去掉,就可以將信號送到蜂鳴器了。這時蜂鳴器也能發出聲音了。就又實現了一個功能。
從任意一個能用的輸出端例如從555電路的輸入端取信號送到一個發光二極體,就可以實現如果有人按下以後,就發光的功能。也可以在送到一個放大電路上,接上一個功率較大的發光器件上,使得發光效果更明顯。
另外,二-十進制轉換器也可以用一些與非門來完成。如圖6-1
圖6-1 2-10進制轉換電路
七、學年設計總結
實習給了我們一個很好的提高動手能力的機會。平常我們只是在頭腦中去抽象的記憶、理解那些課本上的理論知識。有的理論知識很好懂,但是有的理論知識確是晦澀難懂的,甚至只是靠自己的死記硬背去記住。但是我們都知道,那樣的記憶只是一時的,很快你就會忘記。而這次的實習卻給了我們一個在實踐中靈活運用知識的機會,我們通過在實踐中發現問題,進而去書本中找相關的知識去解決問題,從而鞏固了理論知識。那樣的知識是你從根本上去認識它,理解它,所以你的記憶時間會很長。
4. 求四路搶答器電路原理圖
原理圖:
工作原理
搶答器由74LS148、74LS279、74LS48組成,LED顯示器 開始時,當支持人按鈕還未按是,CLR為0,所以輸出Q1~Q4為0;
放光二極體全為滅的,當主持人按鈕按下時CLR為1,可以輸入,誰先搶答,相應的誰的燈亮,利用74LS279和74LS148輸出的是cp等於0,鎖存其他的,不能使其他的輸出。
利用51單片機建立四路搶答器
單片機,當然不只是51,51單片機是一種稍通用型的單片機,通過I/O口的定義,可以實現多種控制功能。
搶答器,原理:如果為四路,當其中任一路控下後,其他幾路即失效,結果為第一次按下的,可以用數碼管或是LED燈來顯示,當然這里只是講原理與編程,具體可以根據搶答器路數及顯示方式更改程序即可。
源程序如下:
<div class="blockcode"><blockquote>/*用的是AT89S52開發板,獨立按鍵介面如下,就用這四路。先按下的用LED燈來顯示,對應第一個到第四個LED燈,其他再按無效,如果想再次實現,可手動復位單片機*/
#include <reg52.h>
sbit key1=P3^0; //定義按鍵,根據需要連接線路,如獨立按鍵(4路)
sbit key2=P3^1;
sbit key3=P3^2;
sbit key4=P3^3;
/*void delay(unsigned int cnt) //如果有抖動或是干擾,可以用個小延時去抖
{
while(--cnt);
}*/
void main()
{
bit Flag;
while(!Flag)
{
if(!key1)
{
P1=0xFE;
Flag=1;
}
/*LED燈來顯示按下的鍵,第一個燈,我這里是8位LED燈,即:0111 1111,反過來讀數為:1111 1110 即:0xFE *,P1口對應LED燈,給P1賦值*/
else if(!key2)
{
P1=0xFD;
Flag=1;
}
//第二個燈亮
else if(!key3)
{P1=0xFB;Flag=1;}
//第三個燈亮
else if(!key4)
{
P1=0xF7;
Flag=1;
}
//第四個燈亮,意味著第四路首先按下
}
while(Flag); //可以再加個I/O,控制Flag,這樣初始化,繼續搶答,還可以設計按下時的聲音
}