1. 單片機八人搶答器程序設計
;------------------------------------------
KAI BIT P3.7 ;開始
;------------------------------------------
ORG 0000H
JMP START
START:
;----------------------;下面是清零(復位)
MOV P0, #0C0H ;顯示0
MOV P2, #255 ;熄燈
MOV R4, #0
;----------------------;下面等待按下"開始"鍵
KAISHI:
JB KAI, KAISHI ;沒有按"開始",就循環
CALL DELAY ;延時
JB KAI, KAISHI ;消抖
JNB KAI, $ ;等待釋放
;----------------------
MOV P0, #0CH ;顯示P
WAIT: ;等待搶答
MOV A, P1
CPL A
JZ WAIT ;繼續等待
;----------------------
XS: ;查找選手按鍵的位置
CPL A
MOV P2, A
JNB ACC.0, J0
JNB ACC.1, J1
JNB ACC.2, J2
JNB ACC.3, J3
JNB ACC.4, J4
JNB ACC.5, J5
JNB ACC.6, J6
; JMP J7
J7: INC R4
J6: INC R4
J5: INC R4
J4: INC R4
J3: INC R4
J2: INC R4
J1: INC R4
J0: INC R4
MOV A, R4
MOV DPTR, #D_TAB
MOVC A, @A + DPTR
MOV P0, A
;----------------------;下面等待按下復位鍵
W_FW:
JB KAI, W_FW ;沒有按,則轉
CALL DELAY ;延時
JB KAI, W_FW ;消抖
JNB KAI, $ ;等待釋放
JMP START
;------------------------
D_TAB:
DB 0C0H,0F9H,0A4H,0B0H, 99H ;共陽極0-9
DB 92H, 82H,0F8H, 80H, 90H,0BFH ;-
;------------------------------------------
DELAY: ;延時約10ms
MOV R6, #20
DJNZ R7, $
DJNZ R6, $ - 2
RET
;==========================================
END
;以上程序已經調好。
2. 八路搶答器的畢業設計論文
有一個絕對適合你
論文的部分:
2.實驗原理
智力競賽搶答器用單片機來設計製作完成,由於其功能的實現主要通過軟體編程來完成, 採用單片機AT89C51,它是低功耗、高性能的CMOS型8位單片機。片內帶有4KB的Flash存儲器,且允許在系統內改寫或用編程器編程。該智力競賽搶答器的准確度很高,其誤差主要由晶振自身的誤差所造成。
AT89C51單片機由微處理器,存儲器,I/O口以及特殊功能寄存器SFR等部分構成。其存儲器在物理上設計成程序存儲器和數據存儲器兩個獨立的空間,片內程序存儲器的容量為4KB,片內數據存儲器為128個位元組。89C51單片機有4個8位的並行I/O口:P0口,P1口,P2口和P3口。各個介面均由介面鎖存器,輸出驅動器,和輸入緩沖器組成。P1口是唯一的單功能口,僅能用作通用的數據輸入/輸出口。P3口是雙功能口除了具有數據輸入/輸出功能外,每條介面還具有不同的第二功能,如P3.0是串列輸入口線,P3.1口是串列輸出口線。在需要外部程序存儲器和數據存儲器擴展時,P0可作為分時復用的低8位地址/數據匯流排,P2口可作為高8位的地址匯流排。P3口也可作為AT89C51的一些特殊功能口,同時為閃爍編程和編程校驗接收一些控制信號。
3. 怎麼設計基於51單片機的八位搶答器課程設計用c語言
你的描述不詳:下面我給出方法,自已參考:
1:主持人端有一個單片機設備 且設備有一個或多個按鍵,單個按鍵,那麼就做成按鍵復用,如果是多個按鍵,那就可以按要求設置按鍵功能和數量。參賽隊每隊一個設備,如果不方便能過連線來通訊,就採用無線通訊,搶答端只需一個按鍵按鍵,同時在按鍵里或邊上用指示燈來指示狀誠。
2:邏輯,當主持人按下搶答鍵時,主持人端設備向8個參賽隊發送搶答開始信號數據,參賽隊8個設備向主持端應答,判斷收到應答後,開始計時10秒,某一隊按下按鍵時,這隊會向主持端發送本隊的編號即可,說到這里,後面的基本上都是一樣的原理,就是收發數據,應答,判斷數據類型和功能。即可達到你的要求。
4. 八路搶答器怎麼用單片機去實現,它需要哪些功能希望能給我一些實現八路搶答器的清晰思路,我不甚感激!!
八路搶單器,一般而言需要的功能有:搶答按鈕(八個),指示燈(至少八個),顯示(至少一位數碼管),警報提示(蜂鳴器),復位按鈕(或開始按鈕,由主持人控制)。
擴展功能,倒計時數碼顯示。
5. 用單片機做一8位搶答器,用數碼管顯示,要求能把搶答的順序排列!
一個簡單的模擬實例,供參考
6. 如何設計基於單片機的多功能8路搶答器
八路搶答器的設計
摘要
本文介紹了一種採用數字電路製作的多功能數顯搶答器,它主要採用了74系列的常用集成電路,它除了具有基本的搶答功能之外,還具有定時報警的功能,和數顯的功能,當搶答開始後,系統會自動倒計時,並且時間是可以預設的,期間有人搶答的話系統會停止計時,如果期間沒人搶答,系統會有短暫的報警,提示搶答結束。
關鍵字
單片機、PLC、搶答、報警、數顯
一、 設計目的
在電視和學校中我們會經常看到一些智力搶答的節目,如果要是讓搶答者用舉手等方法,主持人很容易誤判,會造成搶答的不公平,比賽中為了准確、公正、直觀地判斷出第一搶答者,所設計的搶答器通常由數碼顯示、燈光、音響等多種手段指示出第一搶答者。為了使這種不公平不發生,只有靠電子產品的高准確性來保障搶答的公平性。
二、 方案
製作搶答器可以用好多的方法,可以用單片機來完成,它的功能強大製作簡單,並且外圍的元件也很少;也可以用PLC來實現,他的製作也是比較簡單;還可以用我們學過的EDA技術來製作;最後也可以用數字電路來實現,它的原理比較簡單,集成塊的價格也比較便宜且很容易購買,與我們學完的〈〈數字電路〉〉聯系緊密,能將我們所學知識用於實際,對鞏固所學知識有重要意義,用了一些成型電路,如NE555標准秒脈沖電路等,使總體方案易於實現。
方案一〈採用數字電路〉
1、原理方框圖
定時搶答器的總體框圖如圖1所示,它由主體電路和擴展電路兩部分組成。主體電路完成基本的搶答功能,即開始搶答後,當選手按動搶答鍵時,能顯示選手的編號,同時能封鎖輸入電路,禁止其他選手搶答。擴展電路完成定時搶答的功能。
圖1
圖1所示的定時搶答器的工作過程是:接通電源時,節目主持人將開關置於「清除」位置,搶答器處於禁止工作狀態,編號顯示器滅燈,定時顯示器顯示設定的時間,當節目主持人宣布「搶答開始」,同時將控制開關撥到「開始」位置,揚聲器給出聲響提示,搶答器處於工作狀態,定時器倒計時。當定時時間到,卻沒有選手搶答時,系統報警,並封鎖輸入電路,禁止選手超時後搶答。當選手在定時時間內按動搶答鍵時,搶答器要完成以下四項工作:
①優先編碼電路立即分辨出搶答者的編號,並由鎖存器進行鎖存,然後由解碼顯示電路顯示編號;
②揚聲器發出短暫聲響,提醒節目主持人注意;
③控制電路要對輸入編碼電路進行封鎖,避免其他選手再次進行搶答;
④控制電路要使定時器停止工作,時間顯示器上顯示剩餘的搶答時間,並保持到主持人將系統清零為止。當選手將問題回答完畢,主持人操作控制開關,使系統回復到禁止工作狀態,以便進行下一輪搶答。
方案二〈採用單片機〉
1、原理方框圖
此電路完成的功能如圖2所示,當主持人宣布搶答開始的時候,按下開始按鈕,此時電路進入搶答狀態,選手的輸入採用了掃描式的輸入,之後把相應的信息送往單片機,再由單片機輸出到顯示輸出電路中。此時有人第一按下相應的搶答按鈕,經過單片機的控制選擇,在八段顯示器上顯示相應的號碼,並鎖存,同時禁止其他按鈕的輸入。
(圖2)
方案三〈採用PLC〉
1、原理方框圖
此電路的功能如圖3所示,當主持人打開啟動開關後,在設定時間TO 內,如果某組搶先按下搶答按鈕,則驅動音效電路①發出聲響,指示燈LI亮,並且在8段數碼管顯示器上顯示出搶答成功的組號,此時電路實現互鎖,其他組再按下搶答按鈕為無效;
如果在時間TO內,無人應答,則驅動音效電路②發出聲響,指示燈L2亮,表示搶答者均放棄該題;
在搶答成功後,主持人打開限時開關SW2,啟動計時器,在設定的時間TI 內回答有效,當到達設定時間TI時,驅動音效電路③,指示燈L3亮,表示答題時間到。
(圖3)
三、 方案選擇
方案比較
數字電路
單片機
PLC
製作難度
低
一般
一般
實現難度
一般
低
低
價格
低
一般
高
電路原理
簡單
一般
一般
設計難度
簡單
高
一般
通過上面的方案比較,數字電路的製作方案比較容易實現,並且在原理方面也是比較簡單,所以我選擇採用第一種方案來完成搶答器電路。
四、 設計系統功能
1.基本功能:
(1) 同時供8名選手比賽,分別用8個按鈕S0 ~ S7表示。
(2)設置一個系統清除和搶答控制開關S,該開關由主持人控制。
(3)搶答器具有鎖存與顯示功能。即選手按動按鈕,鎖存相應的編號,揚聲器發出聲響提示,並在七段數碼管上顯示選手號碼。選手搶答實行優先鎖存,優先搶答選手的編號一直保持到主持人將系統清除為止。
2.擴展功能:
(1)搶答器具有定時搶答功能,且一次搶答的時間由主持人設定(如30秒)。當主持人啟動"開始"鍵後,定時器進行減計時。
(2)參賽選手在設定的時間內進行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答的時間,並保持到主持人將系統清除為止。在這段(3)如果定時時間已到,無人搶答,本次搶答無效,系統報警並禁止搶答,定時顯示器上顯示00。
五、 各部分單元電路的設計
(1)搶答器的主體電路設計
搶答電路的功能有兩個:一是能分辨出選手按鍵的先後,並鎖存優先搶答者的編號,供解碼顯示電路用;二是要使其他選手的按鍵操作無效。選用優先編碼器74148和DFF鎖存器可以完成上述功能,其電路組成如圖4所示。其工作原理是:當主持人控制開關處於「清除」位置時,RS觸發器的端為低電平,輸出端(4Q~1Q)全部為低電平。於是74LS48的 =0,顯示器滅燈;74148的選通輸入端 =0,74LS148處於工作狀態,此時鎖存電路不工作。當主持人開關撥到「開始」位置時,優先編碼電路和鎖存電路同時處於工作狀態,即搶答器處於等待工作狀態,等待輸入端 7... 0輸入信號,當有選手將鍵按下時(如按下S5),74LSl48的輸出=010, =0,經RS鎖存器後,CTR=l, =1,74LS279處於工作狀態,4Q3Q2Q=101,經74LS48解碼後,顯示器顯示出「5」。此外,CTR=1,使74l48的端為高電平,74LSl48處於禁止工作狀態,封鎖了其它按鍵的輸入。當按下的鍵松開後,74LSl48的為高電平,但由於CTR維持高電平不變,所以74LSl48仍處於禁止工作狀態,其它按鍵的輸入信號不會被接收。這就保證了搶答者的優先性以及搶答電路的准確性。當優先搶答者回答完問題後,由主持人操作控制開關S,使搶答電路復位,以便進行下一輪搶答。
(圖4)
74LS148為8線-3線優先編碼器,表1為其功能表。
表1 74LS148的功能真值表
(2)定時電路設計
原理及設計:該部分主要由555定時器秒脈沖產生電路、十進制同步加減計數器74LS192減法計數電路、74LS48解碼電路和2個7段數碼管即相關電路組成。具體電路如圖5所示。兩塊74LS192實現減法計數,通過解碼電路74LS48顯示到數碼管上,其時鍾信號由時鍾產生電路提供。74192的預置數控制端實現預置數,由節目主持人根據搶答題的難易程度,設定一次搶答的時間,通過預置時間電路對計數器進行預置,如果要設置為30S,就可以在計數器的預置數控制端輸入00110000。時鍾脈沖由秒脈沖電路提供。按鍵彈起後,計數器開始減法計數工作,並將時間顯示在共陰極七段數碼顯示管上,當有人搶答時,停止計數並顯示此時的倒計時時間;如果沒有人搶答,且倒計時時間到時,輸出低電平到時序控制電路,控制報警電路報警,同時以後選手搶答無效。具體電路如圖5所示。
(圖5)
秒脈沖產生電路:秒脈沖由NE555提供,它的的3端輸出的脈沖的頻率為
,結合我們的實際經驗及考慮到元器件的成本,我們選擇的電阻值為R1=15K,R2=68K,C=10uF,代入到上式中即得,即秒脈沖。
(3)報警電路的設計
採用555定時器和三極體構成的報警電路如圖6所示。其中555構成多諧振盪器,振盪頻率
其輸出信號經三極體推動揚聲器。PR為控制信號,當PR為高電平時,多諧振盪器工作,當PR為低電平的時候,電路停振。
(圖6)
(4)時序控制電路設計
與門G1 的作用是控制時鍾信號CP的放行與禁止,門G2的作用是控制74LS148的輸入使能端(即圖二中的5端)。圖7的工作原理是:主持人控制開關從"清除"位置撥到"開始"位置時,來自於圖2中的74LS279的輸出 1Q,即CTR=0,經G3反相,輸出為1,則NE555產生的時鍾信號CP能夠加到74LS192的CPD時鍾輸入端,定時電路進行遞減計時。同時,在定時時間未到時,則"定時到信號"為 1,門G2的輸出 =0,使 74LS148處於正常工作狀態。當選手在定時時間內按動搶答按鍵時,CTR=1,經G3反相,輸出為0,封鎖 CP信號,定時器處於保持工作狀態;同時,門G2的輸出 =1,74LS148處於禁止工作狀態。當定時時間到時,則"定時到信號"為0,/ST=1,74LS148處於禁止工作狀態,禁止選手進行搶答。同時,門G1處於關門狀態,封鎖時鍾CP信號,使定時電路保持00狀態不變,此次搶答結束。
(圖7)
集成單穩態觸發器74LS121用於控制報警電路及發聲的時間(其功能表見表2),具體原理如下:主要由555時鍾電路(用於控制報警聲音頻率)、蜂鳴器即相關的延時電路和控制電路組成。單穩態觸發器74121通過信號/Ys、BO2、S控制報警與否和報警時間,555時鍾電路產生脈沖時鍾。在規定的時間有人搶答時,/Ys由1跳變到0,74121有狀態2,即Q輸出暫態高電平,蜂鳴器連續發聲報警,持續時間為 =2.15秒;如果在規定時間內無人搶答,BO2由1跳變到0,74121有狀態1,Q輸出暫態高電平,蜂鳴器連續發聲報警持續時間為
結合圖6所示報警電路,分析 計算如下: 。取C=100uF, R=25K,。有=2.15秒。(原理圖見圖8)
(圖8)
表2 74121功能表
(6) 電源電路
電源電路採用三端集成線性穩壓集成塊,L7805CV,因為它的外圍電路比較簡單,並且工作比較穩定,很適合74系列的集成塊。它的穩壓精度為2%,工作電流1.5A,封裝為TO-220(A),工作溫度也很不錯,並且具有過溫保護和短路保護,最大輸入電壓為35V,能對電路的長時間工作有很大的保障。(具體電路見圖9)
(圖9)
六、 總結
畢業設計不僅是對前面所學知識的一種檢驗,而且也是對自己能力的一種提高。下面我對整個畢業設計的過程做一下簡單的總結。
第一,接到任務以後進行選題。選題是畢業設計的開端,選擇恰當的、感興趣的題目,這對於整個畢業設計是否能夠順利進行關系極大。好比走路,這開始的第一步是具有決定意義的,第一步邁向何方,需要慎重考慮。否則,就可能走許多彎路、費許多周折,甚至南轅北轍,難以到達目的地。因此,選;題時一定要考慮好了。
第二,題目確定後就是找資料了。查資料是做畢業設計的前期准備工作,好的開端就相當於成功了一半,到圖書館、書店、資料室去雖說是比較原始的方式,但也有可取之處的。總之,不管通過哪種方式查的資料都是有利用價值的,要一一記錄下來以備後用。
第三,通過上面的過程,已經積累了不少資料,對所選的題目也大概有了一些了解,這一步就是在這樣一個基礎上,綜合已有的資料來更透徹的分析題目。
第四,有了研究方向,就應該動手實現了。其實以前的三步都是為這一步作的鋪墊。
通過這次設計,我對數字電路設計中的邏輯關系等有了一定的認識,對以前學的數字電路又有了一定的新認識,溫習了以前學的知識,就像人們常說的溫故而知新嘛,但在設計的過程中,遇到了很多的問題,有一些知識都已經不太清楚了,但是通過一些資料又重新的溫習了一下數字電路部分的內容。在這次畢業設計中也使我們的同學關系更進一步了,同學之間互相幫助,有什麼不懂的大家在一起商量,聽聽不同的看法對我們更好的理解知識,所以在這里非常感謝幫助我的同學。
在此要感謝我的指導老師,感謝老師給我這樣的機會鍛煉。在整個畢業設計過程中我懂得了許多東西,也培養了我獨立工作的能力,樹立了對自己工作能力的信心,相信會對今後的學習工作生活有非常重要的影響。而且大大提高了動手的能力,使我充分體會到了在創造過程中的探索的艱難和成功的喜悅。雖然這個項目還不是很完善,但是在設計過程中所學到的東西是這次畢業設計的最大收獲和財富,使我終身受益。
7. 求51單片機的8路搶答器,在普中開發板上實現
單片機源程序如下:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define WHO P0
sbit player1=P1^0;
sbit player2=P1^1;
sbit player3=P1^2;
sbit player4=P1^3;
sbit Ensure=P3^7;
sbit beep=P1^6;
sbit LSA=P3^2;
sbit LSB=P3^3;
sbit LSC=P3^4;
uchar state=0;
uchar ssec=0;
uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar OUT[]={0x71,0x77,0x38,0x38};
void delay(uint time)
{
uint x,y ;
for(x=time;x>0;x--)
for(y=130;y>0;y--);
}
void Delay2(uint i)
{
while(i--);
}
void Show(uchar content[])
{
uchar i;
for(i=0;i<4;i++)
{
switch(i) //位選,選擇點亮的數碼管,
{
case(0):
LSA=0;LSB=0;LSC=0; break;//顯示第0位
case(1):
LSA=1;LSB=0;LSC=0; break;//顯示第1位
case(2):
LSA=0;LSB=1;LSC=0; break;//顯示第2位
case(3):
LSA=1;LSB=1;LSC=0; break;//顯示第3位
}
P2=content[i];//發送段碼
Delay2(100); //間隔一段時間掃描
P2=0x00;//消隱
}
}
void InitTimer0(void)
{
TMOD = 0x01;
TH0 = 0x0D8;
TL0 = 0x0F0;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void main()
{
Ensure=1;
while(1)
{
if(player1==0) //玩家1進入搶答狀態
{
delay(10); //延時,按鍵消抖
if(player1==0) //再次判斷是否進入搶答狀態
{
if(state==0) //前方無人搶答狀態
{
InitTimer0();
state=1; //將搶答狀態置為1,防止其他玩家搶答
while(!player1) //搶答成功,蜂鳴器發聲
{
beep=~beep;
delay(1);
}
WHO=table[1]; //數碼管顯示搶答成功的玩家編號
}
}
}
if(player2==0) //以下結構類似於玩家1
{
delay(10);
if(player2==0)
{
if(state==0)
{
InitTimer0();
state=1;
while(!player2)
{
beep=~beep;
delay(1);
}
WHO=table[2];
}
}
}
if(player3==0)
{
delay(10);
if(player3==0)
{
if(state==0)
{
InitTimer0();
state=1;
while(!player3)
{
beep=~beep;
delay(1);
}
WHO=table[3];
}
}
}
if(player4==0)
{
delay(10);
if(player4==0)
{
if(state==0)
{
InitTimer0();
state=1;
while(!player4)
{
beep=~beep;
delay(1);
}
WHO=table[4];
}
}
}
}
}
void Timer0() interrupt 1
{
TH0=(65536-45872)/255; //給定時器賦初值,定時50ms
TL0=(65536-45872)%255;
ssec++;
if(Ensure)
{
if(ssec>=100) //5s
{
EA=0;
while(1)
Show(OUT);
}
}
else
{
delay(10);
if(Ensure==0)
{
while(!Ensure);
Ensure=0;
if(ssec>=100)
{
EA=0;
}
}
}
}
8. AT89S51單片機八路搶答器工作原理
基於MCS-51系列單片機AT89S51的八路搶答器
基於MCS-51系列單片機AT89S51的八路搶答器
前言
隨著現代電子電路的快速發展,以及電子行業對現有電子工程技術的不斷需求,特別是對實際操作實踐的電子人才的需求越來越多,所以加強學生動手能力、重視實踐應該是電子發展需求的必然趨向。實踐動手能力的培養是一種綜合能力,這種能力當然是在一定難度的前提下完成的,通過一定數量的實踐才能逐步形成的。因此在培養實踐能力的同時,要通過實踐來不斷的發現問題和解決問題的途徑和方法,從而提高實踐能力。
近年來,隨著單片機檔次的不斷提高,功能的不斷完善,其應用日趨成熟、應用領域日趨擴大,特別是工業測控、尖端武器和日用家電等領域更是因為有了單片機而生輝增色。單片機應用技術已成為一項新的工程應用技術。本次實習設計的題目為基於單片機的搶答器。
在本次的課程設計中我主要負責了該系統的印製電路板PCB的製作
一、方案論證
方案一:系統各部分採用中小規模集成數字電路,用機械開關按鈕作為控制開關,完成搶答輸入信號的觸發。該方案的特點是中小規模集成電路應用技術成熟,性能可靠,能方便地完成選手搶答的基本功能,但是由於系統功能要求較高,所以電路連接集成電路相對較多,而且過於復雜,並且製作過程工序比較煩瑣,使用不太方便。
方案二:該系統採用MCS-51系列單片機AT89S51作為控制核心,該系統可以完成運算控制、信號識別以及顯示功能的實現。由於用了單片機,使其技術比較成熟,應用起來方便、簡單並且單片機周圍的輔助電路也比較少,便於控制和實現。整個系統具有極其靈活的可編程性,能方便地對系統進行功能的擴張和更改性。CS-51單片機特點如下:
1>可靠性好:單片機按照工業控制要求設計,抵抗工業雜訊干擾優於一般的CPU,程序指令和數據都可以燒寫在ROM許多信號通道都在同一晶元,因此可靠性高。
2>易擴充:單片機有一般電腦所必須的器件,如三態雙向匯流排,串並行的輸入及輸出引腳,可擴充為各種規模的微電腦系統
3>控制功能強:單片機指令除了輸入輸出指令,邏輯判斷指令外還有更豐富的條件分支跳躍指令。原理框圖如1-1所示;
圖1-1
方案比較及其選用依據,顯然方案二比方案一簡單的多,不但從性能上優於方案一,而且在使用上及其功能的實現上都較方案一簡潔,並且由於單片機具有優越的高集成電路性,使其工作速度更快、效率更高。另外AT89S51單片機採用12MHz的晶振,提高了信號的測量精度,並且使該系統可以通過軟體改進來擴張功能。而方案一採用了中小規模集成電路,有其復雜的電路性能,從而可能會使信號的輸入輸出產生延時及不必要的誤差。依此依據選擇方案二比較適合。
二、原理分析
1.本電路採用單片機AT89C51作為控制晶元,單片機的P0口外接八個發光二極體,每個發光二極體分別作為八位選手的信號指示燈。並在各個外接電路上並接開關按鍵,按鍵另一端接地。發光二極體採用共陽極接法,由於P0口為高電平呈輸入狀態,當有按鍵按下時,P0口呈低電平與按鍵對應的發光二極體滿足點亮條件點亮。在程序編程上採用查詢,查詢P0口P0。0到P0。7的八個埠呈低電平,即查詢是哪個選手先按鍵,然後將選手號碼的位元組數據送至串列口輸出並在數碼管上顯現出來。
2.蜂鳴器是利用三極體處於開關狀態是的導通與截止工作,在三極體導通時蜂鳴器工作,三極體截止時蜂鳴器不工作。三極體採用8550PNP型基極接於P1。2口置其低電平時三極體導通,置其高電平時三極體截止。
3.數碼管採用共陽極七段顯示,其內部發光二極體為共陽極接高電平,當對應發光二極體一端為低電平時發光二極體點亮,顯示的數字或字元由送入的位元組數據控制,位元組數據的輸出採用串形口工作模式0,8位串列位元組數據的輸出通過RXD埠送出,TXD端用於送出同步移位脈沖,作為外接器件的同步移位信號。數據的發送是在TI=0的情況下,由一寫發送緩沖器的指令開始CPU執行完該指令,串列口即將8位數據從RXD端送出,同時TXD端發出同步移位脈沖。8位數據發送完畢後由硬體置位TI=1,通過查詢TI位來確定是否發送完一組數據,TI=1表示發送緩沖器已空,當要發送下一組數據時用軟體使TI清零,然後即可發送下一組數據。
4.軟體設計分析首先在程序的開始為選手設置了一段違規程序,該程序的作用是為了防止選手在主持人沒有按下搶答鍵時,有的選手已經提前搶答了,本次搶答為無效搶答,並有報警和記錄下該位選手的選號,做違規處理,如果選手超出了在規定的提前搶答次數,則該選手將被取消以後的搶答資格。如果在主持按下搶答鍵時再搶答,該次搶答被視為有效搶答,在主持按下回答問題的鍵時選手就可以在規定的時間內回答問題了
圖1-2
<1>選手查詢程序:
ORG0000H
START:CLRA
MOVA,#0FFH
MOVP0,A
LOP:JNBP2。4,LP
JNBP0。0,SA1
JNBP0。1,SA2
JNBP0。2,SA3
JNBP0。3,SA4
JNBP0。4,SA5
JNBP0。5,SA6
JNBP0。6,SA7
JNBP0。7,SA8
SJMPLOP
SA1:AJMPSB1
SA2:AJMPSB2
SA3:AJMPSB3
SA4:AJMPSB4
SA5:AJMPSB5
SA6:AJMPSB6
SA7:AJMPSB7
SA8:AJMPSB8
LP:MOVR0,#9
LOP1:LCALLLED
LCALLDEL
JNBP0。0,SIP1
JNBP0。1,SIP2
JNBP0。2,SIP3
JNBP0。3,SIP4
JNBP0。4,SIP5
JNBP0。5,SIP6
JNBP0。6,SIP7
JNBP0。7,SIP8
DECR0
CJNER0,#0,LOP1
MOVR0,#0
LCALLLED
LCALLDEL
SJMPLOP
SIP1:AJMPDIP1
SIP2:AJMPDIP2
SIP3:AJMPDIP3
SIP4:AJMPDIP4
SIP5:AJMPDIP5
SIP6:AJMPDIP6
SIP7:AJMPDIP7
SIP8:AJMPDIP8
SB1:MOVR2,#1
LCALLLED1
LCALLDE
SJMPLP1
SB2:MOVR2,#2
LCALLLED1
LCALLDE
SJMPLP1
SB3:MOVR2,#3
LCALLLED1
LCALLDE
SJMPLP1
SB4:MOVR2,#4
LCALLLED1
LCALLDE
SJMPLP1
SB5:MOVR2,#5
LCALLLED1
LCALLDE
SJMPLP1
SB6:MOVR2,#6
LCALLLED1
LCALLDE
SJMPLP1
SB7:MOVR2,#7
LCALLLED1
LCALLDE
SJMPLP1
SB8:MOVR2,#8
LCALLLED1
LCALLDE
SJMPLP1
LP1:JNBP2。4,LOP2
SJMPLP1
DIP1:MOVR2,#1
LCALLLED1
LCALLDE
SJMPLH1
DIP2:MOVR2,#2
LCALLLED1
LCALLDE
SJMPLH1
DIP3:MOVR2,#3
LCALLLED1
LCALLDE
SJMPLH1
DIP4:MOVR2,#4
LCALLLED1
LCALLDE
SJMPLH1
DIP5:MOVR2,#5
LCALLLED1
LCALLDE
SJMPLH1
DIP6:MOVR2,#6
LCALLLED1
LCALLDE
SJMPLH1
DIP7:MOVR2,#7
LCALLLED1
LCALLDE
SJMPLH1
DIP8:MOVR2,#8
LCALLLED1
LCALLDE
SJMPLH1
LH1:JNBP2。4,LOOP
SJMPLH1
LOP2:MOVA,#11H
MOVSBUF,A
JNBTI,$
CLRTI
LCALLDEL
AJMPLOP
<2>串列輸出程序:
該部分程序的設計利用了單片機的串列模式0輸出,該輸出方式佔用IO口少。可以省去許多IO口作為功能的擴展使用。在該模式下,我們採用了輸出查詢的方式,就是要藉助發送標志TI,當程序執行到發送標志位時,查詢其標志位TI的值,只要TI的值是0程序就繼續查詢,知道查詢到TI為1時才結束,然後在進入下一組數據的發送。由於串列輸出時送進去的數都是十進制數,以致計算機不能識別,所以還要把送進去的十進制數轉化成而進制數,這樣才能輸出。因此在輸出程序前必須有拆字程序,把原來送進去的十進制數轉化成二進制數,然後在輸出並通過數碼管顯示出來。但是如果在顯示選手選號與顯示選手回答問題所用的到計同用一段串列輸出程序時就會造成程序的混亂,所以在此處設計了兩段初始值不同的顯示程序,從而可能增加了程序的煩瑣化。
LED1:MOVA,R2
MOVB,#10
DIVAB
MOVR1,A
MOVR3,B
MOVA,R1
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVSBUF,A
JNBTI,$
CLRTI
MOVA,R3
MOVCA,@A+DPTR
MOVSBUF,A
JNBTI,$
CLRTI
RET。
LED:MOVA,R0
MOVB,#10
DIVAB
MOVR1,A
MOVR3,B
MOVA,R1
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVSBUF,A
JNBTI,$
CLRTI
MOVA,R3
MOVCA,@A+DPTR
MOVSBUF,A
JNBTI,$
CLRTI
RET
DE:CLRP1。2
LCALLDEL01
SETBP1。2
LCALLDEL01
RET
TAB:DB11H,0D7H,32H,92H,0D4H,98H,18H,0D3H,10H,90H
RET
<3>倒計時程序
該程序為選手回答問題時的30秒倒計時程序,其中前25秒為正常的倒計時,在後5秒倒計時時伴隨有報警聲,用於提示選手回答問題的剩餘時間。如果該選手在正常的倒計時內沒有完成問題的回答,那麼倒計時將被清零。
LOOP:MOVR0,#30
LPP:LCALLLED
LCALLDEL
JNBP2。4,LOP2
DECR0
CJNER0,#5,LPP
MOVR0,#5
LPP1:JNBP2。4,LOP2
LCALLLED
LCALLDE
DECR0
CJNER0,#0,LPP1
MOVR0,#0
LCALLLED
LCALLDEL
LJMPSTART
<4>延時程序
該系統設計了兩段延時程序,一段1秒延時,是為了30秒倒計時調用和程序中一秒延時所用;另一段為0。5秒延時,用於報警。程序的設計中報警時間為一秒,但是由於在硬體的設計時只設計了一個按鍵,這樣就會造成連續按鍵時會使所設定的報警聲不斷的響,這是設計中不允許的,所以在軟體編程時設計了一個0。5秒的延時,被報警時所調用,這樣就使報警聲能很清楚地區分出來了
DEL:MOVR6,#20DEL01:MOVR6,#10
DEL1:MOVR5,#100DEL11:MOVR5,#100
DEL2:MOVR4,#250DEL21:MOVR4,#250
DJNZR4,$DJNZR4,$
DJNZR5,DEL2DJNZR5,DEL21
DJNZR6,DEL1DJNZR6,DEL11
RETRET
<5>報警程序
該段程序主要是用於本系統中的所有報警使用,報警時間延時為1秒鍾。
DE:CLRP1。2
LCALLDEL01
SETBP1。2
LCALLDEL01
RET
三、製作過程
五、參考文獻
曾峰,鞏海洪,曾波,電子工業出版社,印刷電路板(PCB)設計與製作2005.8
梅海鳳,王艷秋,張軍,汪毓鐸,清華大學出版社單片機原理與介面技術2004.2
北京交通大學出版社
第二個文獻:基於51單片機八路搶答器設計程序及電路圖
基於51單片機八路搶答器設計程序及電路圖
說明:本人的這個設計改進後解決了前一個版本中1號搶答優先的問題,並增加了錦囊的設置,當參賽選手在回答問題時要求使用錦囊,則主持人按下搶答開始鍵,計時重新開始。
;八路搶答器電路請看下圖是用ps模擬的,已經測試成功
<單片機八路搶答器電路圖>
;============================================================
;================單片機八路搶答器程序=====================
;================51hei=======================
;================2008年5月=======================
;============================================================
OKEQU20H;搶答開始標志位
RINGEQU22H;響鈴標志位
ORG0000H
AJMPMAIN
ORG0003H
AJMPINT0SUB
ORG000BH
AJMPT0INT
ORG0013H
AJMPINT1SUB
ORG001BH
AJMPT1INT
ORG0040H
MAIN:MOVR1,#30;初設搶答時間為30s
MOVR2,#60;初設答題時間為60s
MOVTMOD,#11H;設置未定時器/模式1
MOVTH0,#0F0H
MOVTL0,#0FFH;越高發聲頻率越高,越尖
MOVTH1,#3CH
MOVTL1,#0B0H;50ms為一次溢出中斷
SETBEA
SETBET0
SETBET1
SETBEX0
SETBEX1;允許四個中斷,T0/T1/INT0/INT1
CLROK
CLRRING
SETBTR1
SETBTR0;一開始就運行定時器,以開始顯示FFF.如果想重新計數,重置TH1/TL1就可以了
;=====查詢程序=====
START:MOVR5,#0BH
MOVR4,#0BH
MOVR3,#0BH
ACALLDISPLAY;未開始搶答時候顯示FFF
JBP3.0,NEXT;ddddddd
ACALLDELAY
JBP3.0,NEXT;去抖動,如果"開始鍵"按下就向下執行,否者跳到非法搶答查詢
ACALLBARK;按鍵發聲
MOVA,R1
MOVR6,A;送R1->R6,因為R1中保存了搶答時間
SETBOK;搶答標志位,用於COUNT只程序中判斷是否查詢搶答
MOVR7,#01H;讀搶答鍵數據信號標志,這里表示只讀一次有用信號
MOVR3,#0AH;搶答只顯示計時,滅號數
AJMPCOUNT;進入倒計時程序,"查詢有效搶答的程序"在COUNT裡面
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
;=====非法搶答處理程序=====
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
AJMPERROR
;=====INT0(搶答時間R1調整程序)=====
INT0SUB:MOVA,R1
MOVB,#0AH
DIVAB
MOVR5,A
MOVR4,B
MOVR3,#0AH
ACALLDISPLAY;先在兩個時間LED上顯示R1
JNBP3.4,INC0;P3.4為+1s鍵,如按下跳到INCO
JNBP3.5,DEC0;P3.5為-1s鍵,如按下跳到DECO
JNBP3.1,BACK0;P3.1為確定鍵,如按下跳到BACKO
AJMPINT0SUB
INC0:MOVA,R1
CJNEA,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。
MOVR1,#00H
ACALLDELAY1
AJMPINT0SUB
ADD0:INCR1
ACALLDELAY1
AJMPINT0SUB
DEC0:MOVA,R1
JZSETR1;如果R1為0,R1就置99,
DECR1
ACALLDELAY1
AJMPINT0SUB
SETR1:MOVR1,#63H
ACALLDELAY1
AJMPINT0SUB
BACK0:RETI
;=====INT1(回答時間R2調整程序)=====
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
;=====倒計時程序(搶答倒計時和回答倒計時都跳到改程序)=====
REPEAT:MOVA,R2;使用錦囊時重新計時
MOVR6,A
CLRRING
COUNT:MOVR0,#00H;重置定時器中斷次數
MOVTH1,#3CH
MOVTL1,#0B0H;重置定時器
RECOUNT:MOVA,R6;R6保存了倒計時的時間,之前先將搶答時間或回答時間給R6
MOVB,#0AH
DIVAB;除十分出個位/十位
MOV30H,A;十位存於(30H)
MOV31H,B;個位存於(31H)
MOVR5,30H;取十位
MOVR4,31H;取個位
MOVA,R6
SUBBA,#07H
JNCLARGER;大於5s跳到LARGER,小於等於5s會提醒
MOVA,R0
CJNEA,#0AH,FULL;1s中0.5s向下運行
CLRRING
AJMPCHECK
FULL:CJNEA,#14H,CHECK;下面是1s的情況,響並顯示號數並清R0,重新計
SETBRING
MOVA,R6
JZQUIT;計時完畢
MOVR0,#00H
DECR6;一秒標志減1
AJMPCHECK
LARGER:MOVA,R0
CJNEA,#14H,CHECK;如果1s向下運行,否者跳到查"停/顯示"
DECR6;計時一秒R6自動減1
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
;=====正常搶答處理程序=====
TRUE1:ACALLBARK
MOVA,R2
MOVR6,A;搶答時間R2送R6
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
;=====犯規搶答程序=====
ERROR:MOVR0,#00H
MOVTH1,#3CH
MOVTL1,#0B0H
MOV34H,R3;犯規號數暫存與(34H)
HERE:MOVA,R0
CJNEA,#06H,FLASH;0.3s向下運行->滅並停響
CLRRING
MOVR3,#0AH
MOVR4,#0AH
MOVR5,#0AH;三燈全滅
AJMPCHECK1
FLASH:CJNEA,#0CH,CHECK1;下面是0.8s的情況,響並顯示號數並清R0,重新計
SETBRING
MOVR0,#00H
MOVR3,34H;取回號數
MOVR5,#0BH
MOVR4,#0BH;顯示FF和號數
AJMPCHECK1
CHECK1:JNBP3.1,QUIT1
ACALLDISPLAY
AJMPHERE
QUIT1:CLRRING
CLROK
AJMPSTART
;=====顯示程序=====
DISPLAY:MOVDPTR,#DAT1;查表顯示程序,利用P0口做段選碼口輸出/P2低三位做位選碼輸出,
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
;"滅","1","2","3","4","5","6","7","8","9","滅","F"
DAT2:DB3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H
;第一個為零,其他與上相同,因為十位如果為零顯示熄滅
;====加減時間延時(起到不會按下就加N個數)======
DELAY1:MOV35H,#08H
LOOP0:ACALLDISPLAY
DJNZ35H,LOOP0
RET
;=====延時4236個機器周期(去抖動用到)=====
DELAY:MOV32H,#12H
LOOP:MOV33H,#0AFH
LOOP1:DJNZ33H,LOOP1
DJNZ32H,LOOP
RET
;=====延時4236個機器周期(顯示用到)=====
DELAY2:MOV32H,#43H
LOOP3:MOV33H,#1EH
MOVA,R7;每隔60~70個機器周期讀一次P1口,全為1時為無效數據,繼續讀,有一個不為1時,轉到正常搶答處理
JNZAAAA1;沒讀到有效數據時繼續轉到AAAA1
LOOP2:DJNZ33H,LOOP2
DJNZ32H,LOOP3
RET
;=====讀搶答按鍵數據口程序=====
;由於在讀搶答數據口的時候,單片機首先進入倒計時程序,再調用顯示程序,最後才檢測按鍵口
;然而在檢測按鍵口時動態掃描要調用三次(4ms)延時程序.這樣就會導致讀數據口出現滯後,造成1號優先最高.8號最低.
;故採用在延時子程序中加了讀數據口程序.保證了靈敏度和可靠性
AAAA1:MOVA,P1
CJNEA,#0FFH,AA1;當不全為1時的數據為有效數據
AA0:MOV36H,A;將有效數據送到36H暫存
AJMPLOOP2
AA1:DECR7
AJMPAA0
;=====發聲程序=====
BARK:SETBRING
ACALLDELAY1
ACALLDELAY1
CLRRING;按鍵發聲
RET
;=====TO溢出中斷(響鈴程序)=====
T0INT:MOVTH0,#0ECH
MOVTL0,#0FFH
JNBRING,OUT;
CPLP3.6;RING標志位為1時候P3.6口不短取反使喇叭發出一定頻率的聲音
OUT:RETI
;=====T1溢出中斷(計時程序)=====
T1INT:MOVTH1,#3CH
MOVTL1,#0B0H
INCR0
RETI
僅供參考。
9. 搶答器課程設計實驗總結怎麼寫
蘭州理工大學技術工程學院
課程設計任務書
課程名稱: 電子技術課程設計
題 目: 智力競賽搶答器
專業班級:
學生姓名:
學 號:
指導老師:
審 批:
任務書下達日期 2009年 12 月 28日 星期一
設計完成日期 2010年 1 月 8 日 星期五
設計內容與設計要求
一、設計內容:
1.設計一個可容納8組代表隊參賽的智力搶答器,每組設一個搶答按鈕,按鈕的編號與選手的編號相對應。
2. 搶答器具有第一信號鑒別及數據鎖存功能。主持人將設備復位(清零)後,發出搶答指令,當第一組參賽者觸動按鈕時,該組指示燈亮。此後,其他組別觸動按鈕無效。
3. 設計一個用數碼管顯示1~8組中最先搶答組別的電路。
4. 搶答器具有定時30S搶答的功能,當主持人發出搶答指令後開始減計時,並用顯示器顯示時間。當搶答時間到,蜂鳴器鳴叫發出報警信號,並封鎖輸入電路,禁止選手超時搶答。
5.設計一個犯規判別電路,並用指示燈顯示。
6.設置記分顯示電路,每組預置100分,答對1次加10分,答錯1次減10分。
7.功能擴展(自選)
二、設計要求:
1.思路清晰,給出整體設計框圖和總電路圖;
2.單元電路設計,給出具體設計思路和電路;
3.寫出設計報告;
主要設計條件
1. 在實驗樓南樓的四樓「綜合實驗室」和「電子實驗室」調試。
2. 提供調試用實驗箱和電路所需元件及晶元。
說明書格式
1. 課程設計封面;
2. 任務書;
3. 說明書目錄;
4. 設計總體思路,基本原理和框圖(總電路圖);
5. 單元電路設計(各單元電路圖);
6. 安裝、調試步驟;
7. 故障分析與電路改進;
8. 總結與體會;
9. 附錄(元器件清單);
10. 參考文獻;
11.課程設計成績評分表
目錄
1 緒論 6
2 設計方案 7
2.1 設計方案和要求 7
2.2 設計思想和原理 8
2.3 單元電路的設計 8
(1)搶答器部分電路設計 8
(2)定時電路設計 9
(3)報警電路設計 11
(4)計分電路設計 11
2.4 總體設計 12
3 EWB模擬 15
4故障分析與電路改進 15
5部分重要原件引腳圖及其功能表 18
6心得體會 20
7附錄 22
參考文獻 22
1 緒論
智力競賽是一種生動活潑的教育方式,而搶答就是智力競賽中非常常見的一種答題方式。搶答能引起參賽者和觀眾的極大興趣,並且能在極短的時間內,使人們迅速增加一些科學知識和生活常識。但是,在這類比賽中,對於誰先誰後搶答,在何時搶答,如何計算答題時間等等問題,若是僅憑主持人的主觀判斷,就很容易出現誤判。所以,我們就需要一種具備自動鎖存,置位,清零等功能智能搶答器來解決這些問題。
在本次課程設計中,將主要設計一個供八人使用的定時搶答器。他要實現以下主要功能:(1)為8位參賽選手各提供一個搶答按鈕,分別編號S0、S1、S2、S3、S4、S5、S6、S7;(2)主持人可以控制系統的清零與搶答開始;(3)搶答器要有數據鎖存與顯示的功能。搶答開始後,若有任何一名選手按動搶答按鈕,則要顯示其編號至系統被主持人清零,並且揚聲器發生提示,同時其他人再按對應按鈕無效;(4)搶答器要有自動定時功能,並且一次搶答時間由主持人任意設定。當主持人啟動「開始」鍵後,定時器自動減計時,並在顯示器上顯示。同時揚聲器上發出短暫聲響;(5)參賽選手只有在設定時間內搶答方為有效搶答。若搶答有效,則定時器停止工作,並且顯示搶答開始時間直到系統被清零;(6)若設定時間內無選手進行搶答(按對應按鈕),則系統短暫報警,並且禁止選手超時搶答,定時器上顯示00數字搶答器由主體電路與擴展電路組成。優先編碼電路、鎖存器、解碼電路將參賽隊的輸入信號在顯示器上輸出;用控制電路和主持人開關啟動報警電路,以上兩部分組成主體電路。通過定時電路和解碼電路將秒脈沖產生的信號在顯示器上輸出實現計時功能,構成擴展電路。
利用本次設計出的電路製造成的定時搶答器,即可輕松實現在8人或8個代表隊之間進行的搶答比賽中進行控制,使得這一活動更加趣味、公平。
2 設計方案
2.1 設計方案和要求
1.給定的主要器件:74ls148 74ls138 74ls192 555 發光二極體 顯示器
2功能要求:設計一個智力競賽搶答球,可同時共8個選手參加比賽,並具有定時搶答功能。具體功能要求如下:
基本功能:
(1) 設計一個智力競賽搶答器,可同時供8名選手或8個代表隊參加比賽,他們的選號分別是s0,s1,s2,s3,s4,s5,s6,s7。
(2) 給節目主持人設置一個控制開關,用來控制系統的清零(編號顯示數碼管滅燈)和搶答器的開始。
(3) 搶答器具有數據鎖存和顯示功能。搶答開始後,若有選手按動搶答按鈕,編號立即鎖存,並在led數碼管上顯示選手的編號,同時揚聲器給出音響提示。此外,要封鎖輸入電路,禁止其他選手搶答。優先搶答選手的編號一直保持到主持人將系統清零為止
(4) 搶答器具有定時30S搶答的功能,當主持人發出搶答指令後開始減計時,並用顯示器顯示時間。當搶答時間到,蜂鳴器鳴叫發出報警信號,並封鎖輸入電路,禁止選手超時搶答。
(5) 設計一個犯規判別電路,並用指示燈顯示。
(6) 設置記分顯示電路,每組預置100分,答對1次加10分,答錯1次減10分。
(7) 功能擴展(自選)
2.2設計思想和原理
多路智力搶答器的組成框
該設計搶答器的電路主要是由搶答電路,觸發電路,觸發鎖存電路,七段顯示解碼器幾部分構成。
工作原理:通電後,主持人將開關撥到「清零狀態,搶答器處於禁止狀態,編號顯示器滅燈,定時器顯示設定時間:主持人將開關置「開始」狀態,宣布「開始」搶答器工作。定時器倒計時,揚聲器給出聲響提示。當定時時間到,卻沒有選手搶答時,系統報警,並封鎖輸入電路,禁止選手超時搶答。選手在定時時間內搶答時,搶答器完成:優先判斷,編號鎖存,編號顯示,揚聲器提示。當一輪搶答之後,定時器停止,禁止二次搶答,定時器顯示剩餘時間。如果再次搶答必須由主持人再次操作「清除」和「開始:狀態開關
2.3單元電路的設計
(1)搶答器電路的設計
該部分主要完成兩個功能:一是分辨選手按鍵的先後,並鎖存優先搶答者的編號,同時解碼顯示電路顯示編號;二是禁止其他選手按鍵操作無效。選用優先編碼器74ls148和RS鎖存器可以完成上述功能,所組成的電路圖如下所示。這個電路的工作原理過程:當主持人控制開關s置於「清零」
端時,RS觸發器的R非端均為0,4個觸發器輸出(Q4--Q1)全部置0,使74ls148的BI的非=0,顯示器燈滅:74ls148的選通輸入端ST的非=0,使之處於工作狀態,此時鎖存電路不工作。當主持人把開關S置於「開始」時,優先編碼器和鎖存電路同時處於工作狀態,即搶答器處於等待工作狀態,等待輸入端的信號,當有選手將鍵按下時(比如按下s5),74ls148的輸出Y2Y1Y0的非=010,YEX的非=0,經RS鎖存後,CTR=1,BI的非=1,經74ls148解碼後,顯示器顯示為「5」。此外,CRT=1,使74ls148的ST的非為高電平,封鎖其他按鍵的輸入。如果再次搶答需有主持人將S開關重新「清除」,電路復位。
(2)定時電路的設計
節目主持人可根據搶答題的難以程度,來設定某一次搶答的時間,通過
置時間電路對計數器進行預置,計數器的時鍾脈沖由秒脈沖電路提供。可預置時間的電路選用可由兩片十進制同步加減計數器74Ls192、解碼器7448、氣短數碼顯示管來進行設計。其中,兩塊74LS192實現減法計數,通過解碼電路74LS48顯示到數碼管上,其時鍾信號由時鍾產生電路提供。74192的預置數控制端實現預置數,由節目主持人根據搶答題的難易程度,設定一次搶答的時間,通過預置時間電路對計數器進行預置,計數器的時鍾脈沖由秒脈沖電路提供。按鍵彈起後,計數器開始減法計數工作,並將時間顯示在共陰極七段數碼顯示管上,當有人搶答時,停止計數並顯示此時的倒計時時間;如果沒有人搶答,且倒計時時間到時, 輸出低電平到時序控制電路,控制報警電路報警,同時以後選手搶答無效。
74LS192是同步十進制可逆計數器,具備雙時鍾輸入,同時具備清零和置位功能。其管腳圖如圖所示:
(3)報警電路的設計
這部分電路我們是由555構成多諧振盪器,振盪頻率fo=1.43/【(R1+2R)C】,其輸出信號經三極體推動揚聲器。PR為控制信號,當PR為諧振盪器工作;而當PR為低電平時,電路停振。
2.4 總體電路設計和電路圖
經過以上分析,我們將各部分電路連接,並加以適當控制,即得到了八位定時搶答器的總體電路圖。如圖11所示:
其工作原理是:
八位選手編號分別為0、1、2、3、4、5、6、7,對應按鈕分別為S0、S1、S2、
S3、S4、S5、S6、S7;
首先主持人根據題目的難易程度設置搶答時間,此設定可以通過調節輸入兩片74LS192的D、C、B、A四個管腳的高低電平來進行(例如要設定時間為60s,就將十位的192的D、C、B、A分別置位為0、1、1、0,而將各位的192的D、C、B、A都置於0)。當主持人宣讀完題目說「開始」並將開關置於「開始」位置後,輸出為高電平,此高電平分為三路:一路輸出到集成單穩態觸發器74LS121的輸入端,使其產生單個周期為0.5S的脈沖,驅動報警電路發出聲響,即實現了發聲提示的功能;另一路輸出到74LS192的LD端,使其處於高電平而開始減 計數;還有一路輸出到鎖存器的C端;
若沒有選手安東按鈕,則74LS373輸出全為高電平,74LS148也輸出高電平,E0端輸出低電平至7448的滅燈輸入RI/RBO端,使得信號經7448到顯示器 上時無顯示;
當任意一路(設1)搶答器按下按鈕時,八D鎖存器74LS373工作,與輸入端相對應的輸出端(1)輸出高電平,則鎖存器輸出的八位電平經8~3八位優先編碼器74LS148編碼輸出的A0~A2成為與輸入信號相對應的三位二進制碼,而74LS148的管腳15(E0)的輸出電平由低變高,輸出到七段解碼顯示器74LS48的二進制碼經其解碼後輸出到七段共陰數碼管上,則顯示器上顯示對應的編號(1)。此時,7448的RI/RBO端輸出高電平,開關出也輸出高電平,二者經過與非門輸出低電平,經過與門還是低電平輸出到鎖存器373的C端,起到所存功能,其他選手若再按動對應按鈕也無對應輸出,,即實現了搶答功能;
同時,由於74LS148的E0段輸出高電平輸出到集成單穩態觸發器74LS121的輸入端,使其產生單個周期為0.5S的脈沖,驅動報警電路發出聲響,即實現了發聲提示的功能;
同時,74LS148的GS端輸出電平由高變低,與秒脈沖發生器產生的秒脈沖相與後輸出為0,使得無脈沖抵達計數器192的Down端。計數器停止工作,保持原來顯示不變,即實現了暫停減計數使其記錄搶答時間的功能;
當選手回答完問題後,主持人將開關置於「清零」的位置,輸出低電平,也是分為三路:一路與74148的E0端(高)與非後變為高電平輸出到373的使能端C,使得鎖存器不再鎖存數據,此時,搶答部分顯示器滅燈無顯示,實現了清零;
另一路低電平輸出到計數器192的LD端,而CR端也是低電平,所以使得對應顯示器輸出預置的數據;
若在定時部分計數器倒計時到00還無選手按動按鈕的話,兩片74LS192的借位輸出端都輸出高電平,二者相與後輸出高電平到單穩態觸發器74121的B埠,使其產生周期為0.5s的脈沖刺激報警電路發聲提示
計分電路圖
3 EWB模擬
按照總體電路圖在模擬軟體EWB上一一選擇晶元並進行連接,然後啟動開關觀察。
當模擬結果和預期一樣,則證明模擬成功。設計的電路是正確的。
4故障分析與電路改進
1. 顯示器上不顯示數字,我們從後級往前級進行測試,首先用1.5~2V的電壓作用各個筆段,看對應各筆段是否亮,判斷是否完好。若完好則繼續檢測74ls148晶元是否完好。在74ls148的A、B、C、D四個輸入端隨意輸入一組二進制數碼(用高低電平表示1和0,此處注意要用到8V以上的電源電壓),看是否能顯示數字。無顯示的故障一般問題出在這兩個環節。
2. 若顯示器上顯示的是不符合要求的數字,在設計原理正確的前提下,首先通過測試判斷74ls148的輸出a~g與LED管的a~g筆段是否連接有錯。其方法是74ls148的輸出a~g分別按規律輸入高低電平,觀察LED管是否顯示相應的數字。如果這個環節正常,則問題在二極體編碼電路,再逐一進行檢查。
3. 如果不能鎖存,或是鎖存不了1和7,則問題在鎖存電路,應該從原理上進行分析。鎖存電路的設計原理是:啟用CD4511的鎖存功能端LE,高電平有效,即輸入高電平時執行鎖存功能。鎖存器應能鎖定第一個搶答信號,並拒絕後面搶答信號的干擾。如何設計呢,我們對0~9十個數字的顯示筆段進行分析,只有0數字的d筆段亮與g筆段滅,其它數字至少有一點不成立。由此可以區分0與其它數字。我們將LED管的a筆段與g筆段的輸入信號反饋到鎖存電路,通過鎖存電路控制鎖存端LE輸入為0或1(鎖存與否)。當LED顯示器顯示為0時,LE=0,CD4511解碼晶元不鎖存;當LED顯示器顯示其它數字時, LE=1,晶元鎖存。這樣只要顯示器上顯示為0,74ls148解碼晶元才不鎖定,顯示其它數字均鎖存。所以只要有選手按了按鍵,顯示器上一定是顯示1~8的數字,LE=1晶元鎖存,之後任何其他選手再按下按鍵均不起作用。例如SB1鍵先按下,顯示器上顯示1,LE=1晶元鎖存,其他選手再按SB2~SB8,顯示器上仍顯示1,SB1按下之後的任一按鍵信號均不顯示。直到主持人按清零鍵SB9,顯示器上又顯示0,LE=0,鎖存功能解除,又開始新一輪的搶答。
若所有的數字都不能鎖存,說明不管LED顯示什麼數字,74ls148管腳的5腳輸入為電平,可能是5腳與地短接或者是鎖存電路的兩個二極體VD13和VD14斷開等故障;若只有1和7兩個數字不顯示則可以分析一下其原因:顯示1和7數字時g段不亮,74ls148的g輸出端為低電平,VD14截止,而b段亮d段不亮本應該三極體VT截止而使VT13導通,產生高電平(鎖存信號)給LE,現在不能鎖存說明VD13截止,推斷是三極體擊穿損壞。
4. 在測試的過程中我們一定要注意,高低電平的測試電壓數值要針對不同的電路而選取不同的數值。比如,針對LED管,高電平只能用1.5~2V,而在CD4511的輸入端高電平要用到8V以上的電源電壓。選高了,會燒管子;選低了,會看不到效果,甚至產生誤判斷。
5. 判斷PNP型和MPN型晶體管:用萬用表的R×1k(或者R×100)檔。用黑表筆接晶體管的某一個管腳,用紅表筆分別接其它兩腳。如果表 針指示的兩個阻值都很大,那麼黑表筆接晶體管的某一個管腳,用紅表筆接其它兩腳。如果表針指示的兩個阻值都很大,那麼黑表筆所 接的那一個管腳是PNP型的基極,如果表針指示的兩個阻值都很小,那麼黑表筆所接的那個一個管腳是NPN型的基極;如果表針指示的阻 值一個很大,一個很小,那麼黑表筆所接的那一個管腳不是基極。這就要另換一個管腳來試。以上方法,不但可以判斷基極,而且可以 判斷是PNP型還是NPN型晶體管。
判斷基極後就可以進一步判斷集電極和發射極。先假定一個管腳是集電極,另一個管腳是發射極。然後反過來,把原先假定的管腳對調一下,再估測β值,其中,β值大的那次的假定是對的。這樣就把集電極個發射極也判
5部分重要原件引腳圖及其功能表
(1)74ls148
管腳圖
(2)74ls192
管腳圖
功能表
(3)555
管腳圖
6 總結與體會
轉眼間兩周數字電子課程設計轉眼就結束了,通過這次課程設計,我學會了許多課本上學不到的東西,同時也加強了我的動手、思考和解決問題的能力,受益匪淺。
通過楊老師的講課,楊老師從整體上給我們說明了設計的大體思路,每一步該實現怎麼樣的功能,怎麼實現該功能。而我們的任務是通過這次楊老師的講課去找資料了解各晶元的功能,並通過晶元實現其功能。接下來的任務就去找資料,設計電路圖,並且模擬。
為了弄懂74LS192晶元的功能,我從圖書館里借來了好幾本書,同時也在網上找了資料再到邏輯功能,經過一番努力終於解決啦,還有其它的晶元的功能也要慢慢的去琢磨。而在課程設計過程中,我覺得是對課本知識的鞏固和加強,由於課本上的知識太多,同時平時課間又沒有好好的運用額理解個個元件的功能,而且考試的內容有限,所以在這次課程設計過程中,我們了解很多元件的功能,對其在電路中的使用有更多的認識。
從前的學習過程過於浮淺,只是流於表面的理解,而現在要做課程設計,就不得不要求我們對所用到的知識有更深層次的理解。因為課程設計的內容比及書本中的理論知識而言,更接近於現實生活,而理論到實踐的轉化往往是一個艱難的過程,它猶如一隻攔路虎,橫更在我們的面前。但是我們毫不畏懼,因為我們相信我們能行。
前幾天的主要任務是設計和模擬出主體電路。雖然在設計中會遇到這樣那樣的問題,有時認為是正確的,而在模擬中卻出現了這樣那樣的問題。比如說在設計好的主電路圖要實現南北各燈泡的狀態,電路圖我認為是對的,而在模擬的是後去出現了問題,就是出現了一個出狀態,其它的都是正確的,經過了反復的檢查沒什麼問題,後來問楊老師,其實沒有問題,在實際中就不會出現了這種問題啦,所以有不懂的還是要問老師,那樣還節省很多的時間。
電路圖接好了,下面就是接線啦,這可是一個比較麻煩的事。首先要測試個晶元是否有問題,電路板有沒有問題,以及導線是不是斷了。這一系列的工作都是細心的事,容不的半點馬虎。在接線的時候要細心和耐心、恆心,這樣才能做好事情。首先是線的布局上既要美觀又要實用和走線簡單,兼顧到方方面面去考慮是很需要的,否則只是一紙空話。同時接好了一步電路以後,最為重要的是檢查這部分是不是接對了。
通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發現了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。
此次課程設計,學到了很多課內學不到的東西,比如獨立思考解決問題,出現差錯的隨機應變,和與人合作共同提高,都受益非淺,今後的製作應該更輕松,自己也都能扛的起並高質量的完成項目。
兩周的課程設計已經結束,我將珍藏這段難忘的時光,是她讓我讓我知道,任何一種小小的成績後面,也許就隱藏著許許多多不為人的艱辛。
在此,我要感謝給予我們精心輔導的楊老師,還有其他代理課程設計的老師,也向他們表示衷心的感謝!
7 附錄.元器件清單
74ls148 1個 74ls138 1個 74ls192 2個 555 2個 JK觸發器 2個 麵包板 1塊 調試箱 1個
參 考 文 獻
1.《電子線路設計、實驗、測試》(第二版)
華中理工大學出版社-------謝自美 主編
2.《新型集成電路的應用》---------電子技術基礎課程設計
華中理工大學出版社 梁宗善 主編
3.《電子技術基礎實驗》
高等教育出版社-------------陳大欽 主編
4.《電子技術課程設計指導》
高教出版社-------------------彭介華 主編
10. 設計一個以單片機為核心的8位競賽搶答器,要求如下:
8路搶答器,這種題目,在網路上真是泛濫成災了,隨便一搜就能搜到一大堆,有模擬圖和程序全部資料的。或者網路文庫里也同樣可以搜索到,還是畢業論文,更是詳細。
下圖是一個8路搶答器的模擬圖。