第一篇:單片機課程設計(基于多路數字搶答器)(范文)
一、概述
大學四年的學習生活中,會遇到各種各樣的競賽,搶答器便成為了主要的工具之一。而現在的搶答器智能化越來越強,這必然會提高搶答器的成本。本搶答器與其他搶答器電路相比較成本低、制作方便,并且還有作弊顯示功能。因此,這款四路搶答器摒棄了成本高、體積大、操作復雜等不足。我們采用了數字顯示器直接指示,因而本搶答器具有顯示直觀,操作簡單的特點。
二、主要功能及技術指標
搶答器的工作原理是用矩陣式鍵盤進行搶答。采用動態顯示組號。主持人按下開始搶答鍵才可以搶答。主持人沒有按下開始搶答按紐(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年
第二篇:多路智力競賽搶答器
湖南工學院
多路智力競賽搶答器設計報告書
課程名稱:多路智力競賽搶答器 系部名稱:電氣與信息工程系 專業名稱:電子信息工程技術 班級名稱:電信0702 設計人 :裴書茂 學號 :402070220 指導老師: 設計時間:
湖南工學院
(課程設計任務書目錄)
前言 ???????????????? 1 設計功能要求 ?????????????? 2 搶答器框架設計 ????????????? 3 電路設計 ??????????????? 4 1)搶答電路設計 ???????????? 4 2)定時電路設計 ???????????? 53)報警電路設計
???????????? 64)時序控制電路設計 ?????????? 7元器件介紹 ???????????????? 8 1)74LS148功能介紹 ??????????? 8 2)74LS192功能介紹 ??????????? 9 仿真電路實驗 ???????????????? 10 1)Proteus仿真電路圖 ??????????實物制作 ????????????????? 11 1)原理圖 ??????????????? 11 2)PCB制圖 ??????????????? 12 3)焊接與調試 ?????????????? 13 心得體會 ????????????????? 15 鳴謝 ??????????????????? 15 參考資料 ????????????????? 15
前 言
隨著電子技術的飛躍發展,社會發展步入了信息時代,隨著信息時代對人才高素質和信息化的要求,隨著高等教育發展的趨勢,人們的生活水平提高,對精神文明生活的要求也跟著提高,這對電子領域提出了跟更高的要求。
電子學是一門應用很廣泛的科學技術,發展及其迅速。要想學好這門技術,首先是基礎理論的系統學習,然后要技術訓練,進而培養我們對理論聯系實際的能力,設計電路的能力,實際操作的能力,以及培養正確處理數據、分析和綜合實驗結果、檢查和排除故障的能力。同時也加深我們對電子產品的理解。
智力搶答器的設計和測試作為此次課程設計的課題,我們采用一般意義上的設計方案,即采用集成芯片構成電路。
數字電路具有很多的有點:(1)便于高度集成化。由于數字電路采用二進制,因此單元電路的結構簡單,允許電路參數有較大的離散性,便于集成。
(2)工作可靠性高,抗干擾能力強。數字信號用二進制表示,數字電路的識別能力強。
(3)(4)(5)數字信息便于長期存放。
數字電路集成產品多,通用性強,成本低。
保密性好。數字信息容易進行加密處理,不易被竊取。
設計功能要求
一、功能要求
1、設計制作一個可容納5組參賽的數字式槍答器,每組設置一個搶答按鈕供搶答者使用。
2、給主持人設置一個控制開關,用來控制系統的清零和搶答的開始。
3、搶答器具有數據鎖存和顯示的功能。搶答開始后,若有選手按搶答按鈕,編號立即鎖存,并在LED數碼管上顯示出選手的編號(1~5),同時揚聲器給出音響提示。同時禁止其他選手搶答。
4、搶答器具有定時搶答的功能,搶答時間設定為30秒,當主持人按下開始按鈕時,定時器立刻倒計時,并顯示。選手在設定的時間內搶答有效。超過時間搶答無效,定時顯示器顯示00。
二、設計步驟與要求
1、擬定電路的組成框圖,要求能實現所有功能,使用的元器件少,成本低。
2、設計并安裝電路,要求布線整齊、美觀,便于級聯和調試。
3、測試所設計搶答器的邏輯功能,滿足各項功能要求。
4、畫出整機邏輯電路圖。
5、寫出設計報告。
搶答器框架設計
定時搶答器的總體框圖(如圖
1.1)所示,它由主體電路和擴展電路兩部分組成。主體電路完成基本的搶答功能,即開始搶答后,當選手按動搶答按鈕時,能顯示選手的編號,同時能封鎖輸入電路,禁止其他選手搶答。擴展電路完成定時搶答的功能。
圖1 如圖所示為總體方框圖。工作原理為:接通電源后,主持人將開關撥到“清零”狀態,搶答器處于禁止狀態,編號顯示器滅燈,定時器顯示設定時間;主持人將開關置;開始“狀態,宣布“開始”搶答器工作。定時器倒計時,揚聲器給出聲響提示。選手在定時時間內搶答時,搶答器完成:優先判斷、編號鎖存、編號顯示、揚聲器提示。當一輪搶答之后,定時器停止、禁止二次搶答、定時器顯示剩余時間。如果再次搶答必須由主持人再次操作“清除”和“開始”狀態開關。
電路設計
一、搶答電路設計
設計電路如圖2所示。電路選用優先編碼器 74LS148 和鎖存器 74LS297 來完成。該電路主要完成兩個功能:一是分辨出選手按鍵的先后,并鎖存優先搶答者的編號,同時譯碼顯示電路顯示編號(顯示電路采用七段數字數碼顯示管);二是禁止其他選手按鍵,其按鍵操作無效。
圖2 工作過程:開關S置于”清除“端時,RS觸發器的 R、S端均為0,4個觸發器輸出置0,使74LS148的優先編碼工作標志端(圖中5號端)=0,使之處于工作狀態。當開關S置于”開始“時,搶答器處于等待工作狀態,當有選手將搶答按鍵按下時(如按下S5),74LS148的輸出經RS鎖存后,CTR=1,RBO(圖中4端)=1,七段顯示電路74LS48處于工作狀態,4Q3Q2Q=101,經譯碼顯示為“5”。此外,CTR
=1,使74LS148 優先編碼工作標志端(圖中5號端)=1,處于禁止狀態,封鎖其他按鍵的輸入。當按鍵松開即按下時,74LS148的 此時由于仍為CTR=1,使優先編碼工作標志端(圖中5號端)=1,所以74LS148仍處于禁止狀態,確保不會出二次按鍵時輸入信號,保證了搶答者的優先性。如有再次搶答需由主持人將S開關重新置“清除”然后再進行下一輪搶答。74LS148為8線-3線優先編碼器,表1為其功能表。
表1
二、定時電路設計
節目主持人根據搶答器的難易程度,設計一次搶答的時間,通過預置時間電路對計數器進行預置,選用十進制同步加減計數器74LS192進行設計,計數器的時鐘脈沖由秒脈沖電路提供。具體電路如圖3。
原理及設計:該部分主要由555定時器秒脈沖產生電路、十進制同步加減計數器74LS192減法計數電路、74LS48譯碼電路和2個7段數碼管即相關電路組成。具體電路如圖3所示。兩塊74LS192實現減法計數,通過譯碼電路74LS48顯示到數碼管上,其時鐘信號由時鐘產生電路提供。原理及設計:該部分主要由555定時器秒脈沖產生電路、十進制同步加減計數器74LS192減法計數電路、74LS48譯碼電路和2個7段數碼管即相關電路組成。具體電路如圖3所示。兩塊74LS192實現減法計數,通過譯碼電路74LS48顯示到數碼管上,其時鐘信號
圖3 由時鐘產生電路提供。按鍵彈起后,計數器開始減法計數工作,并將時間顯示在共陰極七段數碼顯示管DPY_7-SEG 上,當有人搶答時,停止計數并顯示此時的倒計時時間;如果沒有人搶答,且倒計時時間到時,輸出低電平到時序控制電路,控制報警電路報警,同時以后選手搶答無效。結合我們的實際經驗及考慮到元器件的成本,我們選擇的電阻值為R1=15K,R2=68K,C=10uF,代入到上式中即得,即秒脈沖。
三、報警電路設計
由555 芯片構成多諧振蕩電路 ,555 的輸出信號再經三極管放大 ,從而推動揚聲器發聲。
控制電路包括時序和報警兩個電路 ,如圖4 所示。控制電路需具有以下幾個功能。
主持人閉合開關揚聲器發聲 ,多路搶答器電路和計時電路進入正常狀態;參賽者按鍵時 ,揚聲器發聲 ,搶答電路和計時電路停止工作;搶答時間到 ,無人搶答 ,揚聲器發聲 ,搶答電路和計時電路停止工作
圖4
四、時序控制電路設計
時序控制電路是搶答器設計的關鍵,它要完成以下三項功能。
1)主持人將控制開關撥到“開始”位置時,揚聲器發聲,搶答電路和定時電路進入正常搶答工作狀態。
2)當參賽選手按動搶答按鍵時,揚聲器發聲,搶答電路和定時電路停止工作。
圖5 3)當設定的搶答時間到,無人搶答時,揚聲器發聲,定時和定時電路停止工作。
根據上面的功能要求,設計的時序控制電路如(圖5)所示。圖中,門G1 的作用是控制時鐘信號CP的放行與禁止,門G2的作用是控制74LS148的輸人使能端。圖11、4的工作原理是:主持人控制開關從”清除“位置撥到”開始"位置時,來自于(圖2)中的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狀態不變,從而實現(功能3)的要求。集成單穩觸發器74LS121用于控制報警電路及發聲的時間。
元器件介紹
一、74LS148功能介紹
在優先編碼器電路中,允許同時輸入兩個以上編碼信號。不過在設計優先編碼器時,已經將所有的輸入信號按優先順序排了隊。在同時存在兩個或兩個以上輸入信號時,優先編碼器只按優先級高的輸入信號編碼,優先級低的信號則不起作用。74148是一個八線-三線優先級編碼器。
如圖6所示的是八線-三線編碼器74148的管腳圖引腳圖。
圖6
二、74LS192功能介紹
74LS192是雙時鐘方式的十進制可逆計數器。
CPU為加計數時鐘輸入端,CPD為減計數時鐘輸入端。LD為預置輸入控制端,異步預置。CR為復位輸入端,高電平有效,異步清除。CO為進位輸出:1001狀態后負脈沖輸出。BO為借位輸出:0000狀態后負脈沖輸出。
圖7
圖8
仿真電路實驗
一、Proteus仿真電路圖
仿真電路課實現搶答功能,由于軟件局限,報警電路沒有在仿真當中。
實物制作
一、原理圖
二、PCB制圖
三、焊接與調試
在制板中最重要的一個環節就是線路的印制。在這次的制作中,由于打印的客觀原因,使在轉印的效果不是很好。做出的實物沒有預期的好。這也是以后一定要注意的地方。
1)焊接部分需要注意的是:
嚴格按照線路的設計進行焊接,首先焊接過孔,在對元器件進行焊接。焊接時間不宜過久,但要完全熔著,以免造成冷焊。焊點的表面要平滑、有光澤。焊點完全冷卻前,不可移動。電烙鐵不用時要放置于電烙鐵架上,并隨時保持烙鐵頭的清潔。焊接完畢,要在烙鐵頭鍍上薄層焊錫,避免氧化,并等冷卻后再收存。
2)調試部分需要注意的是:
在通電之前必須對照原理圖對線路進行詳細的檢查。檢查是否有虛焊或者為焊接的點。可用萬用表進行線路檢查,看是否有線路在焊接的時候不慎連接在了一起,如有進行修改。在檢查完畢之后才可以通電測試。如果在通電之后任然有問題,應立即斷電,再仔細檢查。
心得體會
通過這次設計,我的理論知識掌握得更扎實,動手能力明顯提高。同時,通過網上搜索等多方面的查詢資料,我學到許多在書本上沒有的知識,也認識到理論聯系實踐的重要。在制作當中遇到了許多以前沒遇到的困難。我們利用許多的方法去解決所遇到的問題。制作好以后,雖然基本符合設計要求,但我們總覺得欠缺點什么。這次設計,讓我感受最深是。在仿真的階段遇到很多的問題,計時電路不能隨搶答而停止,還有就是由于軟件的局限在仿真時候沒有完成整體電路的調試,這也為最后的實物調試造成了困難。我們一定要具備一定的檢查、排除電路故障的能力。我深刻認識到了“理論聯系實際”的這句話的重要性與真實性。而且通過對此課程的設計,我不但知道了以前不知道的理論知識,而且也鞏固了以前知道的知識。最重要的是在實踐中理解了書本上的知識,明白了學以致用的真諦。在整個設計到電路的焊接以及調試過程中,我個人感覺調試部分是最難的,由于在印制電路板的時候效果不好出現很多的斷線,這讓整個焊接和調試很麻煩。調試是一個經驗的積累過程,沒有經驗是不可能在短時間內將其完成的,可能也是老師要求我們加以提高的一個重要方面吧!
鳴謝
感謝老師的耐心指導;
感謝同學的幫助;
感謝湖南工學院電信系實驗老師的大力支持;
感謝湖南工學院對我的支助。
參考文獻
宋樹祥《高頻電子線路》北京大學出版社
謝自美《電子線路設計?實驗?測試》華中科大出版社
第三篇:單片機課程設計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天的不同感受,我有過對知識掌握不足時的迷茫,也有過思路不清時的懊惱,但一路走來,我卻收獲了知識,收獲了希望和努力后的成果。
在此我要感謝老師的諄諄教導和同學們的幫助,我相信這十幾天的不懈努力會給我未來的學習帶來很多的啟發,我會在以后的工作生活中更好的理論聯系實際,證明自己的能力。
第四篇:單片機數字萬用表課程設計
《單片機》課程設計
題
目:
基于單片機的數字多用表設計
專
業:
電力系統及其自動化
班
級:
本自動化
姓
名:
學號:
指導老師:
小組成員:
成績:
摘要
本次設計采用單片機芯片
AT89S51與ADC0809設計一個數字電壓表,能夠測量0-5V之間的直流電壓值,四位數碼顯示,但要求使用的元器件數目最少。為使系統更加穩定,使系統的整體精度得以保障,本電路使用了ADC0809數據轉換芯片,單片機系統設計采用AT89S51作1
為主控芯片,配以RC上電復位電路和震蕩電路,程序每執行周期耗時縮到最短,這樣保證了系統的實時性。
關鍵詞
數字萬用表
AT89S51單片機
AD轉換與控制
目錄
摘要?????????????????????????2 關鍵詞????????????????????????2 緒論
1.數字萬用表設計背景?????????????????4 1.1 數字萬用表的設計目的和意?????????????
41.2 數字萬用表的設計依據…………………………………….4
1.3 數字萬用表設計重點解決的問題????????????4
2.數字萬用表總體設計方案……………………………………5 2.1數字萬用表的基本原理……………………..…….…….5 2
2.2芯片選擇及功能簡介………………………………………..2.3電路原理圖及仿真圖……………………………………..……….2.4系統板上硬件連線………………………………..………..…… 2.5程序設計內容………………………………..………..…… 2.6C語言源程序………………………………..………..…… 總結……………………………………….….………… 4心得體會 參考文獻……………………………..…….………..13
緒論
數字萬用表亦稱數字多用表,簡稱
DMM(Digtial Multimeter)。它是采用數字化測量技術,把連續的模擬量轉換成不連續的,離散的數字形式并加以顯示的儀表。傳統的指針式萬用表功能單精度低,不能滿足數字化時代的需求,采用單片機的數字萬用表,已被廣泛用于電子及工業測量、工業自動化儀表、自動測試系統等智能測量領域,顯示出強大的生命力。數字萬用表具有以下幾點優勢:(1)顯示清晰直觀,計數準確
為了提高觀察的清晰度,新型的手勢式數字萬用表已普遍采用字高為26mm的大屏幕LCD(液晶顯示器)。有些數字萬用表還增加了背光源,以便于夜間觀察讀數。(2)顯示位數
數字萬用表的顯示位數通常為3位到8位半。
(3)準確度高
準確度是測量結果中系統誤差與隨機誤差的綜合。它表示測量結果與真值的一致程度,也反映了測量誤差的大小,準確度愈高,測量誤差愈小。數字萬用表的準確度遠優于指針萬用表。
(4)
分辨力高
數字萬用表在最低電壓量程上末位1個字所代表的電壓值,稱作儀表的分辨率,宏觀世界反映了儀表靈敏度的高低,分辨率隨顯示位數的增加而提高。(5)
測試功能強
數字萬用表不止可以測量直流電壓,直流電流,電阻二3
極管正向壓降等等。(6)測量范圍寬
數字萬用表可滿足常規電子測量的需要,智能數字萬用表的測量范圍更寬廣。
(7)測量速率快
數字萬用表在每秒中內對被電壓的測量次數稱為測量速率,單位是次/秒。它主要取決于A/D轉換器的轉換速率。一般數字萬用表的測量速率為2到5次/秒。有的呢過達到20次/秒以上,另外有的比這個還要高得多。數字萬用表可滿足不同用戶對測量速率的需要。
(8)
輸入阻抗高
數字萬用表電壓檔具有很高的輸入阻抗,通常為10至10000M歐姆,從被測電路上吸取的電流小,不會影響被測信號源的工作狀態,能減小由信號源內阻引起的測量誤差。(9)保護功能完善,抗干擾能力強
數字萬用表具有比價完善的保護電路,過載能力強,新型的數字萬用表還增加了高壓保護器件,能防止浪涌電壓。
本設計就是居于這個設計理念一個基于單片機的數字萬用表。該設備具有直觀簡單的優點。并且能深入的說明 萬用表的測量原理。能直觀的了解萬用表各個部分的結構和測試原則。
1數字萬用表的設計背景
在本章中主要介紹了系統的設計原則和總體方案及其系統概述等。
1.1數字萬用表的設計目的和意義
數字萬用表是當前電子、電工、儀器、儀表和測量領域大量使用的一種基本測量,已被廣泛應用于電子及電工測量、工業自動化儀表、自動測試系統等智能化測量領域,示出強大的生命力。隨著時代科技的進步,數字萬用表的功能越來越強大,把電量及非電量的測量技術提高到嶄新水平。
1.2 數字萬用表的設計依據
根據數字萬用表的原理,結合以下的設計要求:“設計一個數字萬用表,能夠測量直流電壓值,直流電流、直流電阻。實現多級量程的直流電壓測量,其量程范圍是200mv、2v ,20v,200v和500v.實現多級量程的直流電流測量,其量程范圍是2mA,20mA,200mA、2A和20A.實現多級量程的電阻測量,其量程范圍是200、2k ,20k,200k和2M。由此設想出以下的解決方法,即數字萬用表的系統由分流電阻、分壓電阻、基準電阻、電容測試芯片電路、51單片機最小系統、顯示部分、報警部分、AD轉換和控制部分組成。為使系統更加穩定,使系統整體精度得以保障。
1.3數字萬用表設計重點解決的問題
本設計重點要解決的問題是對不同量程的各種測量內容的轉換,還有就是各部分電路組合成一個完整的數字萬用表,而難點解決的問題就是程序的設計,要保正其可行性從而保證設計的正確性。數字萬用表總體設計方案 2.1數字萬用表的基本原理
數字萬用表的最基本功能是能夠測量直流電壓,直流電流,還有能夠測電量阻。
下面我們分別介紹各個部分的組成:(1)、模數(A/D)轉換與數字顯示電路
常見的物理量都是幅值(大小)連續變化的所謂模擬量(模擬信號)。指針式儀表可以直接對模擬電壓、電流進行顯示。而對數字式儀表,需要把模擬電信號(通常是電壓信號)轉換成數字信號,再進行顯示和處理(如存儲、傳輸、打印、運算等)。數字信號與模擬信號不同,其幅值(大小)是不連續的。這種情況被稱為是”量化的"。若最小量化單位(量化臺階)為,則數字信號的大小一定是的整數倍,該整數可以用二進制數碼表示。但為了能直觀地讀出信號大小的數值,需經過數碼變換(譯碼)后由數碼管或液晶屏顯示出來。(2)、多量程數字電壓表原理
在基準數字電壓表頭前面加一級分壓電路(分壓器),可以擴展直流電壓測量的量程。
(3)多量程數字電流表原理 測量電流的原理是:根據歐姆定律,用合適的取樣電阻把待測電流轉換為相應的電壓,再進行測量。
(4)電阻測量原理
數字萬用表中的電阻檔采用的是比例測量法。
由穩壓管ZD提供測量基準電壓,流過標準電阻和被測電阻的電流基本相等
2.2芯片選擇及功能簡介
這次的課程設計中,我們這一種選擇了芯片AT89S51和ADC0809。
AT89S51是一個低功耗,高性能CMOS 8位單片機,片內含4k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統及80C51引腳結構,芯片內集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應用系統提供高性價比的解決方案。
AT89S51有PDIP、PLCC、TQFP三種封裝方式,其中最常見的就是采用40Pin封裝的雙列直接PDIP封裝,芯片共有40個引腳,引腳的排列順序為從靠芯片的缺口左邊那列引腳逆時針數起,依次為1、2、3、4、?、40,其中芯片的1腳5
頂上有個凹點。在單片機的40個引腳中,電源引腳2根,外接晶體振蕩器引腳2根,控制引腳4根以及4組8位可編程I/O引腳32根。
1、主電源引腳(2根)VCC(Pin40):電源輸入,接+5V電源GND(Pin20):接地線
2、外接晶振引腳(2根)XTAL1(Pin19):片內振蕩電路輸入端XTAL2(Pin20):片內振蕩電路輸出端
3、控制引腳(4根)RST/VPP(Pin9):復位引腳,出現2個機器周期的高電平將使單片機復位。ALE/PROG(Pin30):地址鎖存允許信號PSEN(Pin29):外部存儲器讀選通信號EA/VPP(Pin31):程序存儲器的內外部選通,接低電平從外部程序存儲器讀指令,如果接高電平則從內部程序存儲器讀指令。
4、可編程輸入/輸出引腳(32根)AT89S51單片機有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個口有8位(8根引腳),共32根。PO口(Pin39~Pin32):8位雙向I/O口線,名稱為P0.0~P0.7P1口(Pin1~Pin8):8位準雙向I/O口線,名稱為P1.0~P1.7P2口(Pin21~Pin28):8位準雙向I/O口線,名稱為P2.0~P2.7P3口(Pin10~Pin17):8位準雙向I/O口線,名稱為P3.0~P3.7。AT89S51的主要性能參數:與MCS-51產品指令系統完全兼容
4k字節在系統編程(ISP)Flash閃速存儲器
1000次擦寫周期
4.0-5.5V的工作電壓范圍 全靜態工作模式:0Hz-33MHz 三級程序加密鎖
128×8字節內部RAM
32個可編程I/O口線 2個16位定時/計數器 6個中斷源 全雙工串行UART通道
低功耗空閑和掉電模式
中斷可從空閑模喚醒系統 看門狗(WDT)及雙數據指針 掉電標識和快速編程特性 靈活的在系統編程(ISP字節或頁寫模式)ADC0809是美國國家半導體公司生產的CMOS工藝8通道,8位逐次逼近式A/D模數轉換器。其內部有一個8通道多路開關,它可以根據地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進行A/D轉換。是目前國內應用最廣泛的8位通用A/D芯片 1.主要特性
1)8路輸入通道,8位A/D轉換器,即分辨率為8位。
2)具有轉換起停控制端。
3)轉換時間為100μs(時鐘為640kHz時),130μs(時鐘為500kHz時)
4)單個+5V電源供電
5)模擬輸入電壓范圍0~+5V,不需零點和滿刻度校準。
6)工作溫度范圍為-40~+85攝氏度
7)低功耗,約15mW。2.內部結構
ADC0809是CMOS單片型逐次逼近式A/D轉換器,內部結構如圖所示,它由8路模擬開關、地址鎖存與譯碼器、比較器、8位開關樹型A/D轉換器、逐次逼近寄存器、邏輯控制和定時電路組成。3.外部特性(引腳功能)
ADC0809芯片有28條引腳,采用雙列直插式封裝,如圖所示。下面說明各引腳功能。
IN0~IN7:8路模擬量輸入端。
2-1~2-8:8位數字量輸出端。
ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路
ALE:地址鎖存允許信號,輸入,高電平有效。
START: A/D轉換啟動脈沖輸入端,輸入一個正脈沖(至少100ns寬)使其啟動(脈沖上升沿使0809復位,下降沿啟動A/D轉換)。
EOC: A/D轉換結束信號,輸出,當A/D轉換結束時,此端輸出一個高電平(轉換期間一直為低電平)。
OE:數據輸出允許信號,輸入,高電平有效。當A/D轉換結束時,此端輸入一個高電平,才能打開輸出三態門,輸出數字量。
CLK:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。
REF(+)、REF(-):基準電壓。
Vcc:電源,單一+5V。
GND:地。ADC0809的工作過程
首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復位。下降沿啟動 A/D轉換,之后EOC輸出信號變低,指示轉換正在進行。直到A/D轉換完成,EOC變為高電平,指示A/D轉換結束,結果數據已存入鎖存器,這個信號可用作中斷申請。當OE輸入高電平時,輸出三態門打開,轉換結果的數字量輸出到數據總線上。
轉換數據的傳送 A/D轉換后得到的數據應及時傳送給單片機進行處理。數據傳送的關鍵問題是如何確認A/D轉換的完成,因為只有確認完成后,才能進行傳送。為此可采用下述三種方式。
(1)定時傳送方式
對于一種A/D轉換器來說,轉換時間作為一項技術指標是已知的和固定的。例如ADC0809轉換時間為128μs,相當于6MHz的MCS-51單片機共64個機器周期。可據此設計一個延時子程序,A/D轉換啟動后即調用此子程序,延遲時間一到,轉換肯定已經完成了,接著就可進行數據傳送。
(2)查詢方式
A/D轉換芯片由表明轉換完成的狀態信號,例如ADC0809的EOC端。因此可以用查詢方式,測試EOC的狀態,即可確認轉換是否完成,并接著進行數據傳送。
(3)中斷方式
把表明轉換完成的狀態信號(EOC)作為中斷請求信號,以中斷方式進行數據傳送。
不管使用上述哪種方式,只要一旦確定轉換完成,即可通過指令進行
數據傳送。首先送出口地址并以信號有效時,OE信號即有效,把轉換數據送上數據總線,供單片機接受。
2.3電路原理圖
2.4系統板上硬件連接
a)把“單片機系統”區域中的P1.0-P1.7與“動態數碼顯示”區域中的ABCDEFGH端口用8芯排線連接。
b)把“單片機系統”區域中的P2.0-P2.7與“動態數碼顯示”區域中的S1S2S3S4S5S6S7S8端口用8芯排線連接。
c)把“單片機系統”區域中的P3.0與“模數轉換模塊”區域中的ST端子用導線相連接。
d)把“單片機系統”區域中的P3.1與“模數轉換模塊”區域中的OE端子用導線相連接。
e)把“單片機系統”區域中的P3.2與“模數轉換模塊”區域中的EOC端子用導線相連接。
f)把“單片機系統”區域中的P3.3與“模數轉換模塊”區域中的CLK端子用導線相連接。
g)把“模數轉換模塊”區域中的A2A1A0端子用導線連接到“電源模塊”區域中的GND端子上。
h)把“模數轉換模塊”區域中的IN0端子用導線連接到“三路可調電壓模塊”區域中的VR1端子上。
i)把“單片機系統”區域中的P0.0-P0.7用8芯排線連接到“模數轉換模塊”區域中的D0D1D2D3D4D5D6D7端子上。
2.5程序設計內容
1.由于ADC0809在進行A/D轉換時需要有CLK信號,而此時的ADC0809的CLK是接在AT89S51單片機的P3.3端口上,也就是要求從P3.3輸出CLK信號供ADC0809使用。因此產生CLK信號的方法就得用軟件來產生了。
2.由于ADC0809的參考電壓VREF=VCC,所以轉換之后的數據要經過數據處理,在數碼管上顯示出電壓值。實際顯示的電壓值(D/256*VREF)
2.6C語言源程序
#include
unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f};
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00};unsigned char dispbuf[8]={10,10,10,10,10,0,0,0};unsigned char dispcount;unsigned char getdata;unsigned int temp;
long int i;
代替原來的unsigned char i;
sbit ST=P3^0;sbit OE=P3^1;sbit EOC=P3^2;sbit CLK=P3^3;
void main(void){
ST=0;
OE=0;
ET0=1;
ET1=1;
EA=1;
TMOD=0x12;
TH0=216;
TL0=216;
TH1=(65536-5000)/256;
TL1=(65536-5000)%256;
TR1=1;
TR0=1;
ST=1;
ST=0;
while(1)
{
if(EOC==1)
{
OE=1;
getdata=P0;
OE=0;
i=getdata*196;
dispbuf[5]=i/10000;
i=i%10000;
dispbuf[6]=i/1000;
i=i%1000;
dispbuf[7]=i/100;
ST=1;
ST=0;
}
} }
void t0(void)interrupt 1 using 0
{
CLK=~CLK;}
void t1(void)interrupt 3 using 0
{
TH1=(65536-6000)/256;
TL1=(65536-6000)%256;
P1=dispcode[dispbuf[dispcount]];
P2=dispbitcode[dispcount];
if(dispcount==5)
/*原來的:
temp = getdata * 235;
temp=temp/128;
i=5;
dispbuf[0]=10;dispbuf[1]=10;dispbuf[2]=10;dispbuf[3]=10;dispbuf[4]=10;dispbuf[5]=0;dispbuf[6]=0;dispbuf[7]=0;while(temp/10)
{
dispbuf[i]=temp%10;
temp=temp/10;
i++;
} dispbuf[i]=temp;*/
//定時器0 中斷服務
//定時器1 中斷服務
{
P1=P1 | 0x80;
}
dispcount++;
if(dispcount==8)
{
dispcount=0;
}
}
3.總結
設計結果綜述:
(1)、數字萬用表完成的功能主要是對電壓、電流、電阻的測量,它主要由分流電阻、分壓電阻、基準電阻、51單片機最小系統、顯示部分、報警部分、AD轉換和控制部分組成。(2)、數字萬用表屬于一種測量工具,其本身的好壞直接影響到測量結果,因此上面的設計在實物上只可以測直流電壓,在仿真上可以測出直流電壓電流和電阻。(3)、單片機部分跟AD轉換部分是整個設計的核心,ADC0809的參考電壓VREF=VCC,所以轉換之后的數據要經過數據處理,在數碼管上顯示出電壓值。實際顯示的電壓值(D/256*VREF);AT89S51單片機作為主控芯片,配以RC上電復位電路和震蕩電路,使系統穩定運行。(4)、在本次軟件設計過程中,采用的是C語言程序。
4心得體會
兩周的課程設計結束了,在這次的課程設計中不僅檢驗了我所學習的知識,也培養了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。通過此次課程設計,使我更加扎實的掌握了有關單片機方面的知識,在設計過程中雖然遇到了一些問題,但經過一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識欠缺和經驗不足。實踐出真知,通過親自動手制作,使我們掌握的知識不再是紙上談兵。過而能改,善莫大焉。在課程設計過程中,我們不斷發現錯誤,不斷改正,不斷領悟,不斷獲取。最終的仿真環節,本身就是在踐行“過而能改,善莫大焉”的知行觀。這次課程設計終于順利完成了,在設計中遇到了很多問題,最后在老師的指導下,終于游逆而解。在今后社會的發展和學習實踐過程中,一定要不懈努力,不能遇到問題就想到要退縮,一定要不厭其煩的發現問題所12
在,然后一一進行解決,只有這樣,才能成功的做成想做的事,才能在今后的道路上劈荊斬棘,而不是知難而退,那樣永遠不可能收獲成功,收獲喜悅,也永遠不可能得到社會及他人對你的認可!通過這次的課程設計,使我更加透徹的了解到我在單片機這方面的知識的淺薄,從而促進了握要更加了解單片機知識的決心。
5參考文獻
C語言程序設計第三版
51單片機開發與應用基礎教程13
C語言版)
(
第五篇:數字電路課程設計--數字搶答器
智力競賽搶答器
一、本次課程設計目的
1.結合所學的數字電路的理論知識來完成數字電路課程設計。
2.在數字電路的課程設計中,熟悉數字電路的邏輯設計過程以及集成電路的使用。
3.學會利用一些沒學過的IC來設計電路。4。學會用軟件方法仿真電路。
二、本次課程設計安排
1、時間安排
略。
2、地點安排
S2403實驗室。
智力競賽搶答器 設計目的
(1)熟悉集成電路的引腳安排及使用方法。(2)掌握各芯片的邏輯功能及使用方法。(3)了解面包板結構及其接線方法。(4)了解數字搶答器的組成及工作原理。(5)熟悉數字搶答器的設計與制作。(6)學會用軟件方法仿真電路。設計思路
(1)設計搶答器電路。
(2)設計可預置時間的定時電路。(3)設計報警電路。(選做)(4)設計時序控制電路。(選做)設計過程
3.1方案論證 數字搶答器總體方框圖如圖1所示。button,sw-spdt
圖 1 數字搶答器框圖
其工作原理為:接通電源后,主持人將開關撥到“清除”狀態,搶答器處于禁止狀態,編號顯示器滅燈,定時器顯示設定時間;主持人將開關置于“開始”狀態,宣布“開始”搶答器工作。定時器倒計時,揚聲器給出聲響提示。選手在定時時間內搶答時,搶答器完成:優先判斷、編號鎖存、編號顯示、揚聲器提示。當一輪搶答之后,定時器停止、禁止二次搶答、定時器顯示剩余時間。如果再次搶答必須由主持人再次操作“清除”和“開始”狀態開關。3.2電路設計
搶答器電路如圖2所示。
圖2 數字搶答器電路
該電路完成兩個功能:一是分辨出選手按鍵的先后,并鎖存優先搶答者的編號,同時譯碼顯示電路顯示編號;二是禁止其他選手按鍵操作無效。工作過程:開關S置于“清除”端時,RS觸發器的R端均為0,4個觸發器輸出置0,使74LS148的ST=0,使之處于工作狀態。當開關S置于“開始”時,搶答器處于等待工作狀態,當有選手將鍵按下時(如按下S5),74LS148的輸出Y2Y1Y0?010,YEX?0,經RS鎖存后,1Q=1,BI=1,74LS48處于工作狀態,4Q3Q2Q=101,經譯碼顯示為“5”。此外,1Q=1,使74LS148ST=1,處于禁止狀態,封鎖其他按鍵的輸入。當按鍵松開即按下時,74LS148的YEX?1,此時由于仍為1Q=1,使ST=1,所以74LS148仍處于禁止狀態,確保不會出二次按鍵時輸入信號,保證了搶答者的優先性。如有再次搶答需由主持人將S開關重新置于“清除”然后再進行下一輪搶答。
定時電路如圖3所示。由節目主持人根據搶答題的難易程度,設定一次搶答的時間,通過預置時間電路對計數器進行預置,計數器的時鐘脈沖由秒脈沖電路提供。可預置時間的電路選用十進制同步加減計數器74LS192進行設計。
圖 可預置時間的定時電路
報警電路如圖4所示。由555定時器和三極管構成的報警電路如圖4所示。其中555構成多諧振蕩器,振蕩頻率fo=1.43/[(RI+2R2)C],其輸出信號經三極管推動揚聲器。PR為控制信號,當PR為高電平時,多諧振蕩器工作,反之,電路停振。
圖報警電路
時序控制電路如圖5所示。時序控制電路是搶答器設計的關鍵,它要完成以下三項功能:① 主持人將控制開關撥到“開始”位置時,揚聲器發聲,搶答電路和定時電路進人正常搶答工作狀態。
② 當參賽選手按動搶答鍵時,揚聲器發聲,搶答電路和定時電路停止工作。③ 當設定的搶答時間到,無人搶答時,揚聲器發聲,同時搶答電路和定時電路停止工作。圖中,門G1 的作用是控制時鐘信號CP的放行與禁止,門G2的作用是控制74LS148的輸人使能端ST。
圖5的工作原理是:主持人控制開關從“清除”位置撥到“開始”位置時,來自圖 2中的74LS279的輸出 1Q=0,經G3反相,A=1,則時鐘信號CP能夠加到74LS192的CPD時鐘輸入端,定時電路進行遞減計時。同時,在定時時間未到時,則“定時到信號”為 1,門G2的輸出ST=0,使 74LS148處于正常工作狀態,從而實現功能①的要求。當選手在定時時間內按動搶答鍵時,1Q=1,經 G3反相,A=0,封鎖 CP信號,定時器處于保持工作狀態;同時,門G2的輸出ST=1,74LS148處于禁止工作狀態,從而實現功能②的要求。當定時時間到時,則“定時到信號”為0,ST=1,74LS148處于禁止工作狀態,禁止選手進行搶答。同時,門G1處于關門狀態,封鎖 CP信號,使定時電路保持00狀態不變,從而實現功能③的要求。集成單穩觸發器74LS121用于控制報警電路及發聲的時間。
圖時序控制電路
4系統調試與結果
(1)組裝調試搶答器電路。
(2)可預置時間的定時電路,并進行組裝和調試。當輸人1Hz的時鐘脈沖信號時,要求電路能進行減計時,當減計時到零時,能輸出低電平有效的定時時間到信號。
(3)調試報警電路。
(4)定時搶答器的聯調,注意各部分電路之間的時序配合關系。然后檢查電路各部分的功能,使其滿足設計要求。
5主要儀器與設備
集成電路: 74LS148—1片,74LS279—1片,74LS48—3片,74LS192—2片,NE555—2片,74LS00—1片,74LS121—1片。
電 阻: 510Ω—2只,1KΩ—9只,4.7kΩ—l只,5.1kΩ—l只,100kΩ—l只,10kΩ—1只,15kΩ—1只,68kΩ—l只。
電 容: 0.1uF—1只,10 uF—2只,100 uF—1只。三極管: 3DG12—1只。(3DG12為普通高頻小功率NPN型硅(材料)三極管,特征頻率100MHZ,集電極最大直流耗散功率0.7W,0.3A/20V。)
其 它: 發光二極管—2只,共陰極顯示器—3只。
6設計體會與建議
6.1設計體會
通過這次對數字搶答器的設計與制作,讓我了解了設計電路的程序,也讓我了解了關于搶答器的基本原理與設計理念,要設計一個電路總要先用仿真仿真成功之后才實際接線的。但是最后的成品卻不一定與仿真時完全一樣,因為,再實際接線中有著各種各樣的條件制約著。而且,在仿真中無法成功的電路接法,在實際中因為芯片本身的特性而能夠成功。所以,在設計時應考慮兩者的差異,從中找出最適合的設計方法。此外,本實驗也可通過EDA軟件MAX PLUSⅡ實現。通過這次學習,讓我對各種電路都有了大概的了解,所以說,坐而言不如立而行,對于這些電路還是應該自己動手實際操作才會有深刻理解。6.2對設計的建議
我希望老師在我們動手制作之前應先告訴我們一些關于所做電路的資料、原理,以及如何檢測電路的方法,還有關于檢測芯片的方法。這樣會有助于我們進一步的進入狀態,完成設計。參考文獻
[1] 康華光.電子技術基礎[M].北京:高等教育出版社,1999年
[2] 彭華林等編.數字電子技術[M].長沙:湖南大學出版社,2004年 [3] 金唯香等編.電子測試技術[M].長沙:湖南大學出版社,2004年 [4] 侯建軍.數字電路實驗一體化教程[M].北京:清華大學出版社,北京交通大學出版社,2005年
[5] 閻石.數字電子技術基礎[M].北京:高等教育出版社,2001年
1Hz脈沖發生電路