第一篇:單片機課程設計 智力搶答器摘要
摘要
硬件系統設計
1)控制系統主要由單片機應用電路、存儲器接口電路、顯示接口電路組成。其中單片機AT89C51是系統工作的核心,它主要負責控制各個部分協調工作.2)硬件組成及所需元件:該系統的核心器件是AT89C51。在其外圍接上復位電路、上拉電阻、數碼管、按鈕及揚聲器。元件為:晶振X1、電容C1、C2、C3、電阻RP1。P3.0和P3.1由裁判控制,分別是搶答停止和開始鍵。P1.0-P1.7是8組搶答的輸入口, P2.0--P2.3口為數碼管的段選口,位選口用的是P0.0--P0.6口輸出,外部中斷0、1和P3.3,P3.4為搶答記時調整口,實現的對個隊進行計時,并且加減調整,外部中斷0,1實現了答題時間調整.P3.4P3.5分別實現了時間的加一和減一.P3.6為蜂鳴器的控制口。控制系統集成調試環境,集成了編緝器、編譯器、調試器,支持軟件模擬,支持項目管理功能強大的觀察窗口,支持所有的數據類型。樹狀結構顯示,一目了然,支持ASM(匯編)、C語言,多語言多模塊源程序混合調試,在線直接修改、編譯、調試源程序,錯誤指令定位。功能很強大。系統仿真還用到了PROTUCE軟件,可通過仿真可以完全顯示出所設計系統的功能,對于程序的調試等有很大的幫助.關鍵字:單片機;仿真;編譯;程序
第二篇:單片機課程設計摘要
單片機數字時鐘設計
摘要
近年來隨著計算機在社會領域的滲透和大規模集成電路的發展,單片機的應用正在不斷地走向深入,由于它具有功能強,體積小,功耗低,價格便宜,工作可靠,使用方便等特點,因此特別適合于與控制有關的系統,越來越廣泛地應用于自動控制,智能化儀器,儀表,數據采集,軍工產品以及家用電器等各個領域,單片機往往是作為一個核心部件來使用,在根據具體硬件結構,以及針對具體應用對象特點的軟件結合,以作完善。
而51系列單片機是各單片機中最為典型和最有代表性的一種,通過本次課程設計進一步對單片機學習和應用,從而更熟悉單片機的原理和相關設計并提高了開發軟、硬件的能力。本設計主要設計一個基于80C51單片機的電子時鐘,并在LED上顯示相應的時間,通過兩個控制鍵和4×4鍵盤來實現時間的調節功能。應用Proteus軟件實現單片機數字時鐘系統的設計與仿真。
關鍵詞:單片機80C51數字時鐘匯編語言
Abstract
With the computer in the social sphere in recent years, the penetration and the development of large scale integrated circuit, microcontroller applications are constantly deepening, because of its powerful function, small size, low power
consumption, cheap, reliable, easy to use and so on Therefore particularly suited to and control of the system, more and more widely used in automatic control, intelligent instruments, gauges, data acquisition, military products and household appliances and other fields, SCM is often used as a core
component in According to the specific hardware architecture, and application-specific software features object combine to make perfect.The 51 series is the most typical of the microcontroller and the most representative one, through this course designed to further study and application of microcontrollers, which are
more familiar with the principles of SCM and related design and development of improved software and hardware capabilities.The design of the main design of a 80C51 microcontroller
based electronic clock, and the LED display the corresponding time, by two control keys and 4 × 4 keyboard to achieve the regulatory function of time.Proteus software application MCU digital clock system design and simulation.Keywords: digital clock80C51microcontrollerassembly language
第三篇:單片機課程設計摘要(本站推薦)
摘要
20世紀末,電子技術獲得了飛速的發展,在其推動下,現代電子產品幾乎滲透了社會的各個領域,有力地推動了社會生產力的發展和社會信息化程度的提高,同時也使現代電子產品性能進一步提高,產品更新換代的節奏也越來越快。數字鐘已成為人們日常生活中必不可少的必需品,廣泛用于個人家庭以及辦公室等公共場所,給人們的生活、學習、工作、娛樂帶來極大的方便。由于數字集成電路技術的發展和采用了先進的石英技術,使數字鐘具有走時準確、性能穩定、攜帶方便等優點,它還用于計時、自動報時及自動控制等各個領域。盡管目前市場上已有現成的數字鐘集成電路芯片出售,價格便宜、使用也方便,但鑒于數字鐘電路的基本組成包含了數字電路的主要組成部分,因此進行數字鐘的設計是必要的,研究數字鐘及擴大其應用,有著非常現實的意義。
單片機數字時鐘就是其中的一款設計。它具有編程靈活,便于電子鐘功能的擴充,即可用該電子鐘發出各種控制信號,精確度高等特點,同時可以用該電子鐘發出各種控制信號。單片機數字鐘是單片機為核心。時鐘,本設計是以單片機AT89S52配備LED數碼顯示管,數字鐘采用24小時制方式顯示時間,帶有年月日、秒表和鬧鐘功能。本設計打算采用蜂鳴器做提醒,因沒有蜂鳴器所以采用閃燈來提醒。使人不僅僅是通過視覺來感受單片機數字鐘帶來的方便。
關鍵詞:單片機 數字時鐘 匯編
第四篇:單片機課程設計(基于多路數字搶答器)(范文)
一、概述
大學四年的學習生活中,會遇到各種各樣的競賽,搶答器便成為了主要的工具之一。而現在的搶答器智能化越來越強,這必然會提高搶答器的成本。本搶答器與其他搶答器電路相比較成本低、制作方便,并且還有作弊顯示功能。因此,這款四路搶答器摒棄了成本高、體積大、操作復雜等不足。我們采用了數字顯示器直接指示,因而本搶答器具有顯示直觀,操作簡單的特點。
二、主要功能及技術指標
搶答器的工作原理是用矩陣式鍵盤進行搶答。采用動態顯示組號。主持人按下開始搶答鍵才可以搶答。主持人沒有按下開始搶答按紐(P3.2),有人搶答則搶答違規,報警并顯示組號,主持人按下開始搶答開關重新搶答。主持人按下開始搶答按紐(P3.2),蜂鳴響聲提示,且數碼管10秒倒計時(10秒內搶答有效),有人在10秒搶答,蜂鳴器響聲提示并顯示他的組號,3秒開始20秒倒計時(20秒內必須回答完問題)。20秒后主持人按下復位開關為下一題的搶答做準備。單片機最小系統、搶答按鍵模塊(四位并行數碼顯示、1*4矩陣式鍵盤)、顯示模塊、搶答開關模塊、蜂鳴器輸出模塊。
三、系統組成及原理
1、分圖
四、軟件
1、分配流程圖
初始化開始
20秒回答問題時間到并響聲提示調用讀鍵子程序作為延時程序設定定時器初值并啟動定時器中斷條件是否滿足Y開中斷并響聲提示NN讀鍵盤是否有鍵按下Y調用顯示搶答違規并報警子程序報警提示編號10秒搶答倒計時開始顯示顯示違規者編號是否有按鍵按下NY調用搶答者獲得回答的子程序10到時中斷并返回響聲提示設定定時器初值并啟動顯示搶答者并且3秒后倒計時RET3
2、源程序
ORG 0000H LJMP MAIN ORG 0013H LJMP ESS1 ORG 0100H MAIN:SETB EA SETB EX1 SETB IT1;外部中斷1初始化 L16:MOV P1,#0FFH MOV R2,#00H CLR P1.0 INC R2 JB P1.4,L0 LCALL DE0 L0:INC R2 JB P1.5,L1 LCALL DE0 L1:INC R2 JB P1.6,L2 LCALL DE0 L2:INC R2 JB P1.7,L3 LCALL DE0 L3:SETB P1.0 CLR P1.1 INC R2 JB P1.4,L4 LCALL DE0 L4:INC R2 JB P1.5,L5 LCALL DE0 L5:INC R2 JB P1.6,L6 LCALL DE0 L6:INC R2 JB P1.7,L7 LCALL DE0 L7:SETB P1.1 CLR P1.2 INC R2 JB P1.4,L8 LCALL DE0 L8:INC R2
JB P1.5,L9 LCALL DE0 L9:INC R2 JB P1.6,L10 LCALL DE0 L10:INC R2 JB P1.7,L11 LCALL DE0 L11:SETB P1.2 LJMP L16;讀行列式鍵盤 ESS1:MOV 70H,#30D;外部中斷1 MOV R7,#0CH CLR P3.0 S2:LCALL DELAY DJNZ 70H,S2 SETB P3.0;蜂鳴器提示開始搶答 MOV TMOD,#00010000B MOV R3,#0AH L20:MOV 55H,#14H L19:MOV TH0,#3CH MOV TL0,#0B0H;定時器1初始化 SETB TR1;啟動定時器1 MOV A,R3 MOV B,#0AH DIV AB MOV DPTR,#TAB MOVC A,@A+DPTR MOV 53H,A CLR P2.4 MOV P0,53H LCALL DELAY1 SETB P2.4 MOV A,B MOVC A,@A+DPTR MOV 54H,A CLR P2.5 MOV P0,54H LCALL DELAY1 SETB P2.5 L18:JNB TF1,L18 CLR TF1 DJNZ 55H,L19 DEC R3 CJNE R7,#00H,D6
LJMP D5 D6:CJNE R3,#0FFH,L21 LJMP L22 L21:LJMP L20;搶答倒計時 L22:MOV 73H,#02D S5:MOV 70H,#20D MOV 71H,#20H CLR P3.0 S4:LCALL DELAY DJNZ 70H,S4 SETB P3.0 S6:LCALL DELAY DJNZ 71H,S6 DJNZ 73H,S5;搶答倒計時時間到聲音提示 D5:RETI DE0:MOV DPTR,#TAB;搶答違規報警并顯示搶答違規組號 MOV A,R2 MOV B,#0AH S10:MOV 72H,#20D MOV 73H,#10D CLR P3.0 S8:LCALL LCC DJNZ 72H,S8 SETB P3.0 S9:LCALL LCC DJNZ 73H,S9 DJNZ 71H,S10 L17:LCALL LCC LJMP L17 LCC:CLR P2.4 MOV P0,50H LCALL DELAY DELAY1:MOV P1,#0FFH;正常搶答讀鍵 MOV R4,#250D W17:MOV R2,#00H CLR P1.0 INC R2 JB P1.4,W0 LCALL DE1 W0:INC R2 JB P1.5,W1 LCALL DE1 W1:INC R2 JB P1.6,W2 LCALL DE1 W2:INC R2 JB P1.7,W3 LCALL DE1 W3:SETB P1.0 CLR P1.1 INC R2 JB P1.4,W4 LCALL DE1 W4:INC R2 JB P1.5,W5 LCALL DE1 W5:INC R2 JB P1.6,W6 LCALL DE1 W6:INC R2 JB P1.7,W7 LCALL DE1 W7:SETB P1.1 CLR P1.2 INC R2 JB P1.4,W8 LCALL DE1 W8:INC R2 JB P1.5,W9 LCALL DE1 W9:INC R2 JB P1.6,W10 LCALL DE1 W10:INC R2 JB P1.7,W15 LCALL DE1 W15:SETB P1.3 DJNZ R4,W16 LJMP W18 W16:LJMP W17 W18:RET DE1:MOV P1,#0FFH;MOV 70H,#20D CLR P3.0 S3:LCALL DELAY DJNZ 70H,S3 SETB P3.0 SETB P2.0 搶答成功聲音提示及回答問題時間20秒倒計時7
SETB P2.1 MOV DPTR,#TAB MOV A,R2 MOV B,#0AH DIV AB MOVC A,@A+DPTR MOV 56H,A MOV A,B MOVC A,@A+DPTR MOV 57H,A MOV TMOD,#00000001B MOV R5,#16H L32:MOV R6,#14H L31:MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 CLR P2.4 MOV P0,56H LCALL DELAY SETB P2.4 CLR P2.5 MOV P0,57H LCALL DELAY SETB P2.5 CJNE R5,#14H,L34 LJMP L35 L34: JC L35 LJMP L30 L35: MOV A,R5 MOV B,#0AH DIV AB MOVC A,@A+DPTR MOV 58H,A MOV A,B MOVC A,@A+DPTR MOV 59H,A CLR P2.6 MOV P0,58H LCALL DELAY SETB P2.6 CLR P2.7 MOV P0,59H LCALL DELAY SETB P2.7 L30:JNB TF0,L30 CLR TF0 DJNZ R6,L31 DEC R5 CJNE R5,#0FFH,L32 MOV P1,#0FFH MOV 70H,#50D CLR P3.0 S7:LCALL DELAY DJNZ 70H,S7 SETB P3.0 MOV P2,#0FFH MOV R3,#00H MOV R7,#00H RET DELAY:MOV 51H,#10D;延時子程序 D0:MOV 52H,#248D D1:DJNZ 52H,D1 DJNZ 51H,D0 RET TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END
五、分析
這次實訓遺憾的是,我的實訓材料是買的成品的板,沒有自己去焊制自己的實訓板,當然這節省了一些時間,但是,在原理圖上確實也花費了一些時間。對于四路搶答器的程序方面,也有需要改進的地方,有很多的不合適的地方,比如,在違規搶答倒計時方面,當你違規搶答時,也會出現20秒的倒計時,和正常搶答的一樣。所以,在以后的編程和調試過程中還應該注意這種小的毛病。
六、體會
本次實訓使我對單片機有課更加深入的了解,以及對匯編語言的編程有了更進一步的體會,知道在編程的過程中會有大量的錯誤產生,一次一次的修改,有時真的比較麻煩。在最初讀程序的過程中,也遇到過大量的程序讀不懂,在編程的過程中,確實話費了很多的時間。
在此我非常要感謝的是各位知道老師不遺余力的指導,同樣也非常感謝同學的幫助,在我不懂程序時幫助我完善程序。這次實訓能夠順利的完成,當然與我個人的努力也是分不開的。
七、參考文獻
[1]張鑫《單片機原理及應用》電子工業出版社2010年
[2]李泉溪《單片機原理與應用實例仿真》北京航天航空大學出版社 2009年
[3] 張洪潤《單片機應用設計200例》北京航空航天大學出版社2006年 [4] 萬光毅《單片機實驗與實踐教程》北京航天航空大學出版社2003年
第五篇:單片機課程設計8路競賽搶答器
課程設計任務書 設計內容
⒈設計一個智力競賽搶答器,可同時供8名選手或8個代表隊參加比賽,他們的編號分別是1、2、3、4、5、6、7、8,各用一個搶答按鈕,按鈕的編號與選手的編號相對應,分別是S0、S1、S2、S3、S4、S5、S6、S7。
⒉給節目主持人設置一個控制開關,用來控制系統的清零(編號顯示數碼管滅燈)和搶答的開始。
⒊搶答器具有數據鎖存和顯示的功能。搶答開始后,若有選手按動搶答按鈕,編號立即鎖存,并在LED數碼管上顯示出選手的編號,同時蜂鳴器給出音響提示。此外,要封鎖輸入電路,禁止其他選手搶答。優先搶答選手的編號一直保持到主持人將系統清零為止。
4.用中小規模集成電路組成智力競賽搶答器電路,畫出各單元電路圖和總體邏輯框圖,正確描述各單元功能,合理選用電路器件,畫出完整的電路設計圖以及寫出設計總結報告 2 設計要求
⒈搶答器具有定時搶答的功能,且一次搶答的時間可以由主持人設定(如30s)。當節目主持人啟動“開始”鍵后,要求定時器立即減計時,并用顯示器顯示,同時蜂鳴器發出聲響。
⒉參賽選手在設定的時間內搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答時刻的時間,并保持到主持人將系統清零為止。
⒊如果定時搶答的時間已到,卻沒有選手搶答時,本次搶答無效,系統短暫報警,并封鎖輸入電路,禁止選手超時后搶答,時間顯示器上顯示00。
摘要
搶答器作為一種工具,已廣泛應用于各種智力和知識競賽場合。工廠、學校和電視臺等單位常舉辦各種智力競賽, 搶答記分器是必要設備。在我校舉行的各種競賽中我們經常看到有搶答的環節,舉辦方多數采用讓選手通過舉答題板的方法判斷選手的答題權,這在某種程度上會因為主持人的主觀誤斷造成比賽的不公平性。但搶答器的使用頻率較低,且有的要么制作復雜,要么可靠性低。作為一個單位,如果專門購一臺搶答器雖然在經濟上可以承受,但每年使用的次數極少,往往因長期存放使(電子器件的)搶答器損壞,再購置的麻煩和及時性就會影響活動的開展,為解決這個問題,我們小組準備就本次大賽的機會制作一個低成本但又能滿足學校需要的八路數顯搶答器。
本設計是以八路搶答為基本理念。考慮到依需設定限時回答的功能,利用AT89C51單片機及外圍接口實現的搶答系統,利用單片機的定時器/計數器定時和記數的原理,將軟、硬件有機地結合起來,使得系統能夠正確地進行計時,同時使數碼管能夠正確地顯示時間。用開關做鍵盤輸出,揚聲器發生提示。同時系統能夠實現:在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效;搶答限定時間和回答問題的時間可在1-99s設定;可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有音樂提示;搶答時間和回答問題時間倒記時顯示,滿時后系統計時自動復位及主控強制復位;按鍵鎖定,在有效狀態下,按鍵無效非法。
目錄
一.方案設計與論證.........................................................................................1 二.實現的原理和電路......................................................................................2
2.1組成部分............................................................................................2 2.2搶答器................................................................................................2 2.3鎖存器................................................................................................2 三.硬件電路設計.............................................................................................3
3.1搶答器的電路框圖..............................................................................3 3.2單元電路設計.....................................................................................4
3.2.1搶答器的設計...........................................................................4 3.2.2時序電路的設計.......................................................................4 3.2.2復位電路的設計.......................................................................5 3.2.4外部振蕩電路...........................................................................5 3.2.5顯示電路的設計.......................................................................6 3.2.6按鈕輸入電路的設計................................................................6 3.2.7報警電路的設計.......................................................................6 3.2.8發聲.........................................................................................7
四.軟件設計....................................................................................................7
4.1系統主程序的設計..............................................................................8 4.2搶答信號的處理設計..........................................................................9 4.3鍵盤掃描子程序...............................................................................10 4.4顯示子程序......................................................................................12 五.系統的仿真...............................................................................................12 六.調試功能說明...........................................................................................14
6.1系統的調試......................................................................................14 6.2 軟件調試問題及解決.......................................................................14 七.參考文獻..................................................................................................15 八.心得體會..................................................................................................16
一.方案設計與論證
方案一:系統各部分采用中小規模集成數字電路,用機械開關按鈕作為控制開關,完成搶答輸入信號的觸發。該方案的特點是中小規模集成電路應用技術成熟,性能可靠,能方便地完成選手搶答的基本功能,但是由于系統功能要求較高,所以電路連接集成電路相對較多,而且過于復雜,并且制作過程工序比較煩瑣,使用不太方便。
方案二:該系統采用51系列單片機AT89C51作為控制核心,該系統可以完成運算控制、信號識別以及顯示功能的實現。由于用了單片機,使其技術比較成熟,應用起來方便、簡單并且單片機周圍的輔助電路也比較少,便于控制和實現。整個系統具有極其靈活的可編程性,能方便地對系統進行功能的擴張和更改。MCS-51單片機特點如下:
<1>可靠性好:單片機按照工業控制要求設計,抵抗工業噪聲干擾優于一般的CPU,程序指令和數據都可以寫在ROM里,許多信號通道都在同一芯片,因此可靠性高,易擴充。
<2>單片機有一般電腦所必須的器件,如三態雙向總線,串并行的輸入及輸出引腳,可擴充為各種規模的微電腦系統。
<3> 控制功能強:單片機指令除了輸入輸出指令,邏輯判斷指令外還有更豐富的條件分支跳躍指令。
方案比較及其選用依據,顯然方案二比方案一簡單的多,不但從性能上優于方案一,而且在使用上及其功能的實現上都較方案一簡潔,并且由于單片機具有優越的高集成電路性,使其工作速度更快、效率更高。另外80C51單片機采用12MHz的晶振,提高了信號的測量精度,并且使該系統可以通過軟件改進來擴張功能。而方案一采用了中小規模集成電路,有其復雜的電路性能,從而可能會使信號的輸入輸出產生延時及不必要的誤差。依此依據選擇方案二比較適合。二.實現的原理和電路
2.1組成部分:
輸入鎖存控制電路——按鍵S1~S8,鎖存器D1及相關門電路 數碼顯示電路——譯碼器,全加器,及3個數碼管
報警電路——定時器(構成多諧振蕩器)和三極管,蜂鳴器
2.2搶答器
工作過程:接通電源,主持人將控制開關置于“清除”位置,搶答器處于禁止工作狀態,編號顯示器滅燈。當主持人宣布搶答題目后,說一聲“開始”同時將控制開關撥到“開始”位置,搶答器處于工作狀態。當選手按動搶答時,搶答器完成3項工作。
1)優先編碼電路立即分辨出搶答者的編號,并由鎖存器進行鎖 存,然后由數碼管顯示電路編號。
2)揚聲器發出聲響,提醒主持人注意
3)控制電路要對輸入編碼電路進行封鎖,避免其他人再次搶答,并保持到主持人清零。當選手將問題回答完畢后,主持人操作控制開關,使系統恢復到禁止工作狀態,以便下一次搶答。
2.3鎖存器
鎖存器輸入信號均為同一電平時,鎖存器控制電路的輸出信號將鎖存器打開,這時鎖存器輸入端的信號送往相應的輸出端。當有一輸入端的電平發生跳變時,其對應輸出端電平也跟著變化,此變化的輸出電平送入鎖存器控制電路,控制電路立即產生控制信號封鎖鎖存器,此時輸入不影響輸出。電路圖如下:
三.硬件電路設計
3.1搶答器的電路框圖
如上圖
(一)所示為電路框圖。其工作原理為:接通電源后,主持人將開關撥到“清除”狀態,搶答器處于禁止狀態,編號顯示器滅燈,定時器顯示設定時間;主持人將開關置,“開始”狀態,宣布“開始”搶答器工作。定時器倒計時,揚聲器給出聲響提示。選手在定時時間內搶答時,搶答器完成:優先判斷、編號鎖存、編號顯示、揚聲器提示。當一輪搶答之后,定時器停止、禁止二次搶答、定時器顯示剩余時間。如果再次搶答必須由主持人再次操作“開始,停止”。由電路框圖下面的總體設計圖
(二)總設計圖的工作原理為:接通電源后,主持人將開關撥到“清除”狀態,搶答器處于禁止狀態,編號顯示器滅燈,定時器顯示設定時間;主持人將開關置,“開始”狀態,宣布“開始”搶答器工作。定時器倒計時,揚聲器給出聲響提示。選手在定時時間內搶答時,搶答器完成:優先判斷、編號鎖存、編號顯示、揚聲器提示。當一輪搶答之后,定時器停止、禁止二次搶答、定時器顯示剩余時間。如果再次搶答必須由主持人再次操作“開始、停止”狀態開關。
總體設計圖
(二)3.2單元電路設計
3.2.1搶答器的設計
由總體設計圖
(二)可知該電路完成兩個功能:一是分辨出選手按鍵的先后,并鎖存優先搶答者的編號,同時譯碼顯示電路顯示編號;二是禁止其他選手按鍵操作無效。如有再次搶答需由主持人將S開關重新置,“清除”然后再進行下一次的搶答。
3.2.2時序電路的設計
時序控制電路是搶答器設計的關鍵,它要完成以下功能:
a.主持人將控制開關撥到“開始”位置時,揚聲器發聲,搶答電路和定時電路進人正常搶答工作狀態。
b.當參賽選手按動搶答鍵時,揚聲器發聲,搶答電路和定時電路停止工作。3.2.2復位電路的設計
外部中斷和內部中斷并存,單片機硬件復位端,只要持續4個機器周期的高電平即可實現復位,硬件復位后的各狀態可知寄存器以及存儲器的值都恢復到了初始值,因為本設計中功能中有倒計時時間的記憶功能,所以不能對單片機進行硬件復位,只能用軟件復位,軟件復位實際上就是當程序執行完之后,將程序通過一條跳轉指令讓它完成復位。復位電路如下圖示:
3.2.4外部振蕩電路
外部震蕩電路單片機必須在AT89C51的驅動下才能工作,在單片機內部有一個時鐘震蕩電路,只需要外接一個振蕩器就能產生一定的時鐘信號送到單片機內部的各個單元,外部震蕩電路如下圖。3.2.5顯示電路的設計
顯示電路使用了七段數碼管7SEG-MPX4-CC,它是共陰極的,由高電平點亮。
3.2.6按鈕輸入電路的設計
搶答器的輸入按鈕使用常開開關,這些常開開關組成了搶答按鍵,硬件電路簡單,在程序設計上也不復雜,只要在程序中消除在按鍵過程中產生的“毛刺”現象就可以了。這里采用最常用的方法即延時法,其的原理為:因為“毛刺”脈沖一般持續時間短,約為幾ms,而按鍵的時間一般遠遠大于這個時間,所以當單片機檢測到有按鍵動靜后再延時一段時間(這里取10ms)后再判斷此電平是否保持原狀態,如果是則為有效按鍵,否則無效。
3.2.7報警電路的設計
報警電路用于報警,當遇到報警信號時,發出警報。一般喇叭是一種電感性,8951驅動喇叭的信號為各種頻率的脈沖。因此,最簡單的喇叭驅動方式就是利用達林頓晶體管,或者以兩個常用的小晶體管連接成達林頓架勢。利用晶體管的高電流增益,以達到電路快速飽和的目的。不過,如果要由P0輸出到此電路,還需要連接一個10K的上拉電阻。選手在設定的時間內搶答時,實現:優先判斷、編號鎖存、編號顯示、揚聲器提示。當一輪搶答之后,定時器停止、禁止二次搶答、定時器顯示剩余時間。如果再次搶答必須由主持人再次*作“清除”和“開始”狀態開關。圖面是數字搶答器的報警電路圖。其中555構成多諧振蕩器,振蕩頻率fo=1.43/[(RI+2R2)C],其輸出信號經三極管推動揚聲器。PR為控制信號,當PR為高電平時,多諧振蕩器工作,反之,電路停振。
3.2.8發聲
這里能利用程序來控制單片機P3.6口線反復輸出高電平或低電平,即在該口線上產生一定頻率的矩形波,接上揚聲器就能發出一定頻率的聲音,再利用延時程序控制“高”“低”電平的持續時間,就能改變輸出頻率,從而改變音調,使揚聲器發出不同的聲音。
四.軟件設計
整個程序的設計思路如下:首先用進位標志C作為主持人按鍵的狀態標志,C=0為可以開始搶答(如果需要也可用一個發光二極管將C的狀態顯示出來,只需將程序做小小的修改即可);接下來開外部中斷0;然后是讀取按鍵狀態,只要有一個按鍵按下(引腳為高電平)并且為C=0,則開始進入分析按鍵狀態程序,用循環移位指令分析出事第幾個按鍵按下,并將其放入P1口進行顯示輸出。上述程序相對來說很簡單,首先它從硬件的微妙數量級處理速度上確保了不會同時按下2個按鍵,因此程序沒有區分重復按鍵的部分,另外程序使用了外部中斷,從而保證了主持人按鍵的權限是所有按鍵中權限最高的。
主程序流程圖如下:
4.1系統主程序的設計
主程序的功能主要是完成內部各寄存單元的初始化,對接口電路的初始化,內部定時器的初始化,中斷的初始化及調節顯示程序對初始狀態的顯示以及對外部信號的等待處理,也就是說完成前期的準備工作等待隨時對外部信號進行響應。程序清單如下:
OK EQU 20H
;搶答開始標志位 RING EQU 22H ;響鈴標志位 ORG 0000H AJMP MAIN ORG 0003H
AJMP INTOSUB
ORG 00BH
AIMP T01NT
ORG 0013H
AJMP INT1SUB
ORG 001BH
AJMP T1INT
ORG 0040H
MAIN:MOV R1,#30
;初設搶答時間為30S
MOV R2,#60
;初設答題時間為60S
MOV TMOD,#11H
;設置未定時器、模式1
MOV TH0,#0F0H
MOV TLO,#0FFH
;越高發聲頻率越高,越尖
MOV TH1,#3CH
MOV TL1,#0B0H
;50MS為一次溢出中斷
SETB EA
SETB ETO
SETB T1
SETB EX0
SETB EX1
;允許四個中斷,T0,T1,INTO,INT1
CLR OK
CLR RING
SETB TR1
SETB TRO 一開始就運行定時器,顯示FFF,如果想重新計數,重置TH1,TL1就可以了。
4.2搶答信號的處理設計
當主持人按下開始搶答鍵后開始搶答,程序部分采用中斷方式處理。在中斷處理程序中完成相應操作,修改計時單元的數據并使紅色指示燈亮。程序清單如下:
START:MOV R5,#0BH
MOV R4,#0BH
MOV R3,#0BH
ACALL DISPLAY
;未開時搶答的時候顯示FFF
JB P3.0,NEXT
;DDDDDDD
ACALL DELAY
JB P3.0,NEXT
;去抖動如果“開始鍵”按下就向下執行,否則跳到非法搶答查詢
ACALL BARK
;按鍵發聲
MOV A,R1
MOV R6,A
;送R1->R6因為R1中保存了搶答時間
SETB OK ;搶答標志位,用于COUNT只程序中判斷是否查詢搶答
MOV R7,#01H ;讀搶答鍵數據信號標志,這里表示只讀一次有用信號
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 4.3鍵盤掃描子程序
對行列式鍵盤的掃描方法有兩種。一為掃描法,對鍵盤按行逐行掃描查詢,其結構清晰但對于最后行列的按鍵需經多次掃描;一為反轉法,它先使行全為零,讀人列的狀態暫存,然后使列全為零,讀人行的狀態保存,對兩次保存數據進行查詢即可得知按下鍵的行列數從而確定鍵值。在程序中采用反轉法對鍵盤進行掃描。鍵盤掃描程序在確定鍵值后保存等待后續處理。程序清單如下:
AAAA1:MOV A,P1
CJNE A,#0FFH,AA1 ;當不全為0時的數據為有效數據
AA0:MOV 36H,A
;將有效數據送到36H暫存
AJMP LOOP2
AA1:DEC R7
AJMP AA0(1)鍵值處理子程序
此子程序根據鍵盤掃描所取得的鍵值作出相應的處理。在搶答時,只對數字(代表相應搶答分組)1^8按下有效,其他鍵按下無效。搶答成功,開始答題鍵按下給出相應信號指示。程序清單如下:
TRUE1:ACALL BARK
MOV A,R2
MOV R6,A
;搶答時間R2送R6
MOV R3,#01H
CLR OK ;因為答題的計時不在查詢搶答,所以就鎖了搶答
AJMP COUNT TRUE2:ACALL BARK
MOV A,R2
MOV R6,A
MOV R3,#02H
CLR OK
AJMP COUNT TRUE3:ACALL BARK
MOV A,R2
MOV R6,A
MOV R3,#03H
CLR OK
AJMP COUNT TRUE4:ACALL BARK
MOV A,R2
MOV R6,A
MOV R3,#04H
CLR OK
AJMP COUNT
TRUE5:ACALL BARK
MOV A,R2
MOV R6,A
MOV R3,#05H
CLR OK
AJMP COUNT TRUE6:ACALL BARK
MOV A ,R2
MOV R6,A
MOV R3,#06H
CLR OK
AJMP COUNT TRUE7:ACALL BARK
MOV A,R2
MOV R6,A
MOV R3,#07H
CLR OK
AJMP COUNT TRUE8:ACALL BARK
MOV A,R2
MOV R6,A
MOV R3,#08H
CLR OK
AJMP COUNT
4.4顯示子程序
此程序僅完成6位數據的動態顯示,可顯示數據和代碼。初始狀態顯示8位全熄滅。程序清單如下:
DISPLAY:MOV DPTR,#DAT1 ;查表顯示程序,利用P0口做段選碼口輸出,P2低三位做選碼輸出
MOV A,R3
MOVC A,@A+DPTR
MOV P2,#0FEH
MOV P0,A
ACALL DELAY2
MOV DPTR,#DAT2
MOV A,R5
MOVC A,@A+DPTR
MOV P2,#0FDH
MOV P0,A
ACALL DELAY2
MOV A,R4
MOVC A,@A+DPTR
MOV P2,#0FBH
MOV P0,A
ACALL DELAY2
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 ; 第一個為零,其他與上同,因為十位如果為零顯示熄滅
五.系統的仿真
1.搶答器protenus軟件的仿真
繪制搶答器的軟件仿真圖步驟分一下四步:(1)、查找所需要的元器件;(2)、根據電路圖進行連線;(3)、是用來寫線所對應的坐標,即下圖所示的P1.1等坐標;
(4)、下載所寫完的C程序即可以仿真。通過以上步驟,來實現搶答器設計的仿真實現,仿真如上圖所示:
六.調試功能說明
6.1系統的調試
系統調試包括硬件調試和軟件調試,‘
硬件調試分單元電路調試和聯機調試,單元電路試驗在硬件電路設計時已經進行,主要用數字萬用表測量電路。
軟件調試一般包括分塊調試和聯機調試兩個階段。程序的分塊調試一般在單片機開發裝置上進行,可根據所調程序功能塊的入口參量初值編制一個特殊的程序段,并連同被調程序功能塊一起在開發裝置上運行;也可配合對應硬件電路單獨運行某程序功能塊,然后檢查是否正確,如果執行結果與預想的不一致,可以通過單步運行或設置斷點的方法,查出原因并加以改正,直到運行結果正確為止。這時該 程序功能塊已調試完畢,可去掉附加程序段。其它程序功能塊可按此法進行調試。程序聯機調試就是將已調試好的各程序功能塊按總體結構聯成一個完整程序,在所研制的硬件電路上運行。從而試驗程序整體運行的完整性、正確性和與硬件電路的配合情況。在聯調中可能會有某些支路上的程序、功能塊因受條件制約而得不到相應的輸入參數,這時,調試人員應創造條件進行模擬調試。
6.2 軟件調試問題及解決
下面說一下如何在keil中調用proteus進行MCU外圍器件的仿真。(1)、安裝keil 與 proteus。
(2)、把安裝proteus MODELS目錄下 VDM51.dll文件復制到Keil安裝目錄的 C51BIN目錄中。
(3)、修改keil安裝目錄下 Tools.ini文件,在C51字段加入 TDRV5=BINVDM51.DLL(“Proteus VSM Monitor-51 Driver”),保存。(注意:不一定要用TDRV5,根據原來字段選用一個不重復的數值就可以了。引號內的名字隨意)
3、打開proteus,畫出相應電路,在proteus的debug菜單中選中use remote debug monitor
4、在keil中編寫C語言程序
5、進入KEIL的project菜單option for target '工程名'。在DEBUG選項中右欄上部的下拉菜單選中 Proteus VSM Monitor-51 Driver。
6、在keil中進行debug吧,同時在proteus中查看直觀的結果(如LCD顯示?)這樣就可以像使用仿真器一樣調。
問題:有時候在自己創建的元器件的管腳上無法實現連線。
回答:應該是管腳的間距太小了。因為在ISIS中,每個元器件的管腳都要占據一塊區域(就像自己的保護區一樣,不容別人隨意侵犯),該區域會排斥外部的走線。解決問題的方法是在走線的同時按住 “CTRL”鍵,直到走線繞過狹窄的保護區。當然最根本的辦法是重新編輯元器件,把其管腳間距調大一些。
七.參考文獻
[1]51單片機原理與實踐/高衛東,辛友順,韓彥征編著.北京航空航天大學出版社,2008.1 [2]劉紅玲、邵曉根,《微機原理與接口技術》,中國電力出版社,2006年第一版
[3]馮博琴,《微型計算機原理及接口技術》,清華大學出版社 [4]艾德才,《微型計算機原理與接口技術》,高等教育出版社 [5]沈美明,《IBM-PC匯編語言程序設計》,清華大學出版社 [6] 任致程,《經典集成電路400例》機械工業出版社,2002 [7] 胡 錦.《數字電路與邏輯設計》 高等教育出版社
八.心得體會
通過二周的課程設計,使我對數字電路有了進一步的了解,在設計搶答器、報警器、定時器的過程中,通過翻閱資料,上網搜索等,我對各電路器件(如:與非門和LED顯像管等)及原理有了更深一層次的認識,既增強了我的理解能力,也使我能更好的運用所學的知識。開始時我還不太明白電路是如何連接的,并且對其原理也不甚了解,但通過對所學知識更深入的了解和同學的講解和幫助,最終使我克服了難關,并成功地作出了設計。四周的鍛煉,28天的不同感受,我有過對知識掌握不足時的迷茫,也有過思路不清時的懊惱,但一路走來,我卻收獲了知識,收獲了希望和努力后的成果。
在此我要感謝老師的諄諄教導和同學們的幫助,我相信這十幾天的不懈努力會給我未來的學習帶來很多的啟發,我會在以后的工作生活中更好的理論聯系實際,證明自己的能力。