摘要:本設計是四路智力搶答器。使用51系列單片機,編寫應用程序來實現智力搶答功能。設計思路是先等待主持人按鍵,當有主持人按鍵時,開始計時一分鐘,并顯示時間。有人搶答時,報警電路啟動,并顯示組號,同時計時顯示停止。若在計時時間內無人搶答,一分鐘到時,無報警,且計時停止,重新開始等待主持人按鍵,進行下一輪搶答。
關鍵詞:四路智力搶答器 單片機
0 引言
軟件設計利用中斷系統的基本構成原理編寫中斷服務程序,使用80C51單片機串行接口P1口、P2口、P3口的輸入/輸出功能向CPU輸入信號,其信號由按鍵電路提供,由CPU響應中斷,并輸出響應。用到了查詢按鍵模塊、定時器模塊、顯示時間模塊、顯示組號模塊、報警模塊等。軟件涉及51系列單片機的中斷系統、定時器/計數器、串行接口及外圍電路的功能。
硬件設計使用的是51系列單片機中的80C51,其他部件有74LS48、八段數碼顯示管、蜂鳴器、LED閃光燈,按鍵等。硬件設計采通過外部12M的X1提供時鐘的脈沖,利用其中斷控制程序進行搶答部分的處理,通過多輸入與門的控制去申請單片機內部的中斷,以達到顯示搶答的目的。用分模塊設計思想,以CPU為中心逐一設計了時鐘電路和復位電路,然后設計了按鈕電路為CPU提供輸入信號,再次,為數碼管選擇輸入信號電路;還有就是提供了報警電路;最終就是修飾和完善總原理圖。
顯示結果是主持人按鍵時,數碼管顯示60,即定時器定從一分鐘開始計時,若一分鐘內有人搶答,則此時定時器停止計時,數碼管顯示此時的時間,如計時56秒時有人搶答,數碼管就顯示56,同時蜂鳴器發出“嘀”聲,且警報燈閃爍一下,與此同時顯示搶答組的組數。如一分鐘內無人按鍵搶答,計時時間一分鐘到時數碼管顯示00,并停止計時。此時等待主持人按鍵進行下一輪搶答,若主持人不按鍵,數碼管就一直顯示00。
1 系統總體方案
首先,以CPU為中心設計了時鐘電路和復位電路;然后設計了按鈕電路為CPU提供輸入信號:再次,為數碼管選擇輸入信號電路;還有就是進一步完善設計而提供了報警電路。最終,完善總括電路,得到總設計原理圖。利用單片機內部的時鐘中斷源,外部中斷源,利用P3口進行第二功能進行控制。當外部中斷輸入時,我們利用鎖存,穩定輸出剩余時間。利用硬件電路防止外部在開始及結束的時候出現誤操作。
2 控制部分80C51的設計
本設計中用的是80C51單片機,80C51有40條引腳中有2條專用于主電路,2條外接晶振,4條控制或與其它電源的復用引腳,32條I/O引腳。
2.1主電源引腳
Vss:接地。
Vcc:正常操作、對EPROM編程和驗證時接+5V電源。
2.2外接晶振引腳
XTALl接外部晶振的一個引腳。
XTAL2接外部晶振的一個引腳。
2.3控制或與其它電源復用引腳RST/Vpd當振蕩器運行時,在此引腳上出現兩個機器周期的高電平將使單機復位。一般在引腳與Vss引腳之間連接一個約8.2KΩ的下拉電阻,本設計使用的下拉電阻為1KΩ。與Vss引腳之間連接一個20uF的電容,以保證可靠復位。復位以后,P0、P3口輸出高電平,SP指針重新賦值為07H,其它特殊功能寄存器和程序計數器PC被清0。只要REST保持高電平,80C51就會循環復位。RESET由高電平變為低電平后,80C51初始復位不影響內部RAM的狀態,包括工作寄存器R0~R7。
ALE(/PROG):當訪問外部數據存儲器時,ALE的輸出用于鎖存地址低字節,即使不訪問外部存儲器,ALE仍以不變的頻率周期性地出現正脈沖信號,為振蕩器頻率的1/6,因此可用作對輸出的時鐘。/PSEN:此輸出是外部程序存儲器的讀選通信信號。在由外部程序存儲器取指令周期,每個機器周期兩次/PSEN有效。但當訪問外部數據存儲器時,這兩次有效的PSEN信號不出現。/PSEN可以帶動8個TTL負載。
/EA(Vpp)當/EA保持高電平時訪問內部程序存儲器,但當PC值超過OFFF或1FFF時,將自動轉向執行外部程序存儲器的程序。當/EA端保持低電平時,則只訪問外部程序存儲器,而不管是否有內部程序存儲器。
2.4輸入/輸出引腳
PO:是一個8位漏極開路的雙向輸入/輸出口。
P1:是一個帶有內部上拉電阻的8位雙向I/O口。
P2:是一個帶有內部上拉電阻的8位雙向輸入/輸出口,訪問外部存儲器時送高8位地址。
P3:是一個帶有內部上拉電阻的8位雙向I/O口。在MCS—51中,這8個引腳還用于專門的功能。其中,P3.0為串行輸入口,P31為串行輸出口,P3.2為外部中斷0輸入,P3 3為外部中斷1輸入,P3.4為定時器0的外部輸入,P3.5為定時器1的輸入,P3.6為外部數據存儲器的寫選通信號,P3.7為外部存儲器的讀選通信號。
3 數碼顯示部分LED的介紹
LED顯示器是目前最常用的一種數顯示器件。發光二極管是由半導體材料制成的,能將電信號轉換成光信號的結型電致發光器件。如果把發光二極管制成條狀,再按照一定方式連接,組成數字“8”,就構成LED數碼管。使用時按規定使某些筆段上的發光二極管發光,即可組成0—9的一系列數字。
本設計使用的是7SEG—COM—AN—GRN型數碼管。
4 時鐘電路的介紹
51系列單片機內部有一個用于構成振蕩器的高增益反相放大器,此放大器的輸入和輸出分別是引腳XTAL1和XTAL2,在XTAL1和XTAL2上外接時鐘源即可構成時鐘電路。CPU的一系列動作都是在控制電路部件下工作的。
本設計采用的是內部時鐘產生方式,即是在引腳XTAL1和XTAL2兩端跨接晶體或陶瓷振蕩器,與內部反相器構成穩定的自激振蕩器。其發出的脈沖直接送給片內定時控制部件。
5 復位電路的介紹
復位是使CPU和系統中其他部件都處于一個確定的初始狀態,并從這個狀態開始工作。51系列單片機通常采用上電自動復位、按鈕電平復位、上電+按鈕電平復位、上電+按鈕電平復位、程序運行監視復位等方式。
本設計采用上電自動復位方式,其實質是一階充放電電路,系統上電時該電路提供有效的復位信號RST(高電平)直至系統電源穩定后撤銷復位信號(低電平)。同時應注意保證加在RST引腳上的高電平持續兩個機器周期,才能使單片機可靠復位。
6 按鈕電路
本設計使用的是機械按鈕,按鈕電路主要用來為CPU串行口提供輸入信號。在實際應用中機械按鈕的抖動應該考慮的,可用軟件的設計來消除機械抖動。
7 顯示管的輸入信號電路
本設計使用的輸入信號電路主要是74LS48,八段數碼顯示管的輸入信號是八位數,而CPU提供的信號是三位的,通過74LS48把三位的信號轉化為八位的信號。
8 報警電路
該報警電路的作用是在參賽人員按鍵時進行報警。當主持人發出搶答信號,而有人員搶答就有報警。此時報警燈閃爍一次,蜂鳴器發出報警聲,提示主持人有人要答題。
參考文獻:
[1]余發山.單片機原理及應用技術徐州:中國礦業大學出版社,2003.21—209.
[2]赫建國,鄭燕,薛延俠.單片機在設計電路中的應用北京:清華大學出版社2006.35—52
[3]李華.MCS—51系列單片機實用接口技術北京北京航空航天大學出版社1993.36—58.