單片機課程設(shè)計位搶答器_第1頁
單片機課程設(shè)計位搶答器_第2頁
單片機課程設(shè)計位搶答器_第3頁
單片機課程設(shè)計位搶答器_第4頁
單片機課程設(shè)計位搶答器_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 Civil Aviation University of China單片機課程設(shè)計報告單片機課程設(shè)計報告 課 題: 8位搶答器系統(tǒng)的設(shè)計 姓 名: 學 號: 專 業(yè): 學 院: 基于STC89C52單片機的搶答器系統(tǒng)的設(shè)計摘要: 隨著科學技術(shù)的發(fā)展和普及,各種各樣的競賽越來越多,其中搶答器的作用也越來越重要。本文設(shè)計為以AT89C52單片機為核心的八路搶答器,采用了數(shù)字顯示器直接指示,自動鎖存顯示結(jié)果,并自動復位的設(shè)計思想,它能根據(jù)不同的搶答輸入信號,經(jīng)過單片機的控制處理并產(chǎn)生與輸入信號相對應的輸出信號,最后通過LED數(shù)碼管顯示相應的路數(shù)。本設(shè)計是以搶答為出發(fā)點。考慮到根據(jù)需要設(shè)定限時回答的

2、功能,利用89C52單片機及外圍接口實現(xiàn)的搶答系統(tǒng),利用單片機的定時器/計數(shù)器定時和記數(shù)的原理,將軟、硬件有機地結(jié)合起來,使得系統(tǒng)能夠正確地進行計時,同時使數(shù)碼管能夠正確地顯示時間。用開關(guān)做鍵盤輸入,蜂鳴器發(fā)聲提示。關(guān)鍵詞:搶答器 單片機 LED 數(shù)碼顯示管 定時器/計數(shù)器 目 錄1. 概述1 1.1 課程設(shè)計的任務1 1.2 課程設(shè)計的要求1 1.3 課程設(shè)計的意義12. 系統(tǒng)總體方案及硬件設(shè)計2 2.1 設(shè)計任務分析2 2.2 設(shè)計方案2 2.2.1 原理框圖2 2.2.2 各功能模塊介紹2 2.3 電路設(shè)計7 2.3.1 硬件選型7 2.3.2 功能模塊電路設(shè)計73. 軟件設(shè)計10 3.

3、1系統(tǒng)分析10 3.2參數(shù)計算11 3.3程序設(shè)計114.實驗仿真125.課程設(shè)計體會146.參考文獻14附件一15附件二251.概述 1.1 課程設(shè)計的任務結(jié)合所學單片機原理及接口技術(shù),利用STC89C52單片機設(shè)計一個8位選手參加競賽的搶答器。 1.2 課程設(shè)計的要求基本要求: (1)設(shè)置一個由主持人控制的系統(tǒng)清除和搶答控制開關(guān)。 (2)具有鎖存和顯示優(yōu)先搶答選手的編號功能,并一直保持到主持人將系統(tǒng)清除為止。擴展要求: (1)搶答器具有定時搶答功能.當主持人啟動“開始”鍵后,定時器進行減計時,參賽選手在設(shè)定的時間內(nèi)進行搶答,搶答有效,定時器停止工作,顯示搶答的時間,并保持到主持人將系統(tǒng)清除

4、為止。如果定時時間已到,無人搶答,本次搶答無效,系統(tǒng)報警并禁止搶答,顯示器上顯示00。 (2)主持人可以設(shè)定搶答時間(如30秒)。 (3)參賽選手搶到答題權(quán)時,揚聲器發(fā)出短暫的聲響,聲響持續(xù)的時間為10秒左右。 1.3課程設(shè)計的意義為期兩周的課程設(shè)計,首先,讓同學們對本學期的單片機原理及接口技術(shù)課本知識記憶更牢固,也便于理解課上未能懂得的知識;其次,此次課程設(shè)計能夠鍛煉同學們的動手能力,從任務分析到設(shè)計電路,都是自我鍛煉的機會;然后,同學間相互討論能夠鍛煉合作能力最后能讓同學熟悉單片機仿真軟件Proteus,單片機開發(fā)環(huán)境Keil的應用;增進對單片機的感性認識,加深對單片機理論方面的理解;使學

5、生了解和掌握單片機應用系統(tǒng)的軟硬件設(shè)計過程、方法及實現(xiàn),為后設(shè)計和實現(xiàn)單片機應用系統(tǒng)打下良好基礎(chǔ)。2. 系統(tǒng)總體方案及硬件設(shè)計 2.1 設(shè)計任務分析 設(shè)計要求利用單片機完成一個8位搶答器。需要用到4位共陽極數(shù)碼管顯示倒計時秒數(shù)和搶答成功的選手編號。所以。單片機程序中首先要有8位按鍵輸入模塊,還要有數(shù)字顯示模塊,利用外部中斷進行調(diào)整強大時間,利用定時器模塊進行倒計時和蜂鳴器響應時間的設(shè)置。同時要設(shè)置開始搶答和搶答重置的按鍵輸入。電路中需要用到外部晶振,利用鎖存器達到任務中顯示鎖存的要求。 2.2 設(shè)計方案 2.2.1原理框圖圖1 設(shè)計原理框圖 2.2.2 各功能模塊介紹 (1)定時器中斷01服務

6、處理 定時器1用于響鈴程序,定時器0用于計時程序。倒計時期間當有選手第一個按下?lián)尨鹌靼磁r數(shù)碼管顯示選手號碼,開始倒計時,并鎖定搶答。搶答完成后,蜂鳴器響十秒。無人搶答,倒計時結(jié)束后,蜂鳴器響十秒。 (2)外部中斷01服務處理外部中斷0用于對搶答時間進行加處理,外部中斷1用于對搶答時間進行減處理。 (3)外部晶振外部晶振為單片機提供時鐘信號,還作為定時器的計數(shù)信號,使用單片機的定時器要考慮晶振的數(shù)值。此次課程設(shè)計中,使用的是11.059MHz的外部晶振。 (4)單片機復位當單片機系統(tǒng)在運行中,受到環(huán)境干擾出現(xiàn)程序跑飛的時候,按下復位按鈕內(nèi)部的程序自動從頭開始執(zhí)行。 (5)8位搶答按鍵

7、1-8號按鍵,都能進行搶答,搶答后相連接的管腳輸入低電平,單片機結(jié)束倒計時,同時其他按鍵不能再搶答,數(shù)碼管顯示選手號,并保留剩余搶答時間。 (6)搶答開始、復位按鍵兩個按鍵分別完成搶答開始、搶答復位功能,搶答開始后選手方能進行搶答,若無選手搶答,倒計時繼續(xù)進行。搶答復位功能只能在倒計時結(jié)束時進行,復位后,搶答時間恢復設(shè)定值。 (7)LED數(shù)碼管顯示模塊圖2 4位LED數(shù)碼管 led數(shù)碼管常用段數(shù)一般為7段有的另加一個小數(shù)點,還有一種是類似于3位“+1”型。位數(shù)有半位,1,2,3,4,5,6,8,10位等等.,led數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重

8、要的,因為不同類型的數(shù)碼管,除了它們的硬件電路有差異外,編程方法也是不同的。圖2是共陰和共陽極數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。顏色有紅,綠,藍,黃等幾種。led數(shù)碼管廣泛用于儀表,時鐘,車站,家電等場合。選用時要注意產(chǎn)品尺寸顏色,功耗,亮度,波長等。透過分時輪流控制各個LED數(shù)碼管的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。每位元數(shù)碼管的點亮時間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極體的余輝效應,盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示資料,不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)

9、省大量的I/O口,而且功耗更低。4位LED動態(tài)顯示電路只需一個8位I/O口及一個4位I/O口,其中8個I/O控制段選碼,4位I/O控制位選。進行4位字符顯示時,采用掃描顯示方式,即在每一瞬間只使某一位顯示相應字符,在此瞬間,段選控制I/O口輸出相應字符段選碼,位選控制I/O口在該顯示位送入選通電平(共陰極送低電平,共陽極送高電平),以保證該位顯示相應字符。如此輪流,使每位顯示該位應顯示字符,并保持延遲一段時間(15ms),以造成視覺暫留效果。不斷循環(huán)送出相應的段選碼、位選碼,就可以獲得視覺穩(wěn)定的顯示狀態(tài)。圖3 74HC373鎖存器 74HC373為三態(tài)輸出的八D鎖存器,當三態(tài)允許控制端 OE

10、為低電平時,Q0Q7為正常邏輯狀態(tài),可用來驅(qū)動負載或總線。當 OE 為高電平時,Q0Q7 呈高阻態(tài),即不驅(qū)動總線,也不為總線的負載,但鎖存器內(nèi)部的邏輯操作不受影響。 (8)搶答時間調(diào)整按鍵利用兩個外部中斷管腳,連接兩個按鍵,分別實現(xiàn)對搶答時間進行加處理,對搶答時間進行減處理。(9) STC89C52RC單片機圖4 STC89C52RC單片機引腳圖STC89C52RC的特點 STC89C52RC有很寬的工作電源電壓,可為2.76V,當工作在3V時,電流相當于6V工作時的1/4。STC89C52RC工作于12Hz時,動態(tài)電流為5.5mA,空閑態(tài)為1mA,掉電狀態(tài)僅為20nA。這樣小的功耗很適合于電

11、池供電的小型控制系統(tǒng)。 STC89C52RC具有以下幾個特點: STC89C52RC與MCS-51系列的單片機在指令系統(tǒng)和引腳上完全兼容; 片內(nèi)有4k字節(jié)在線可重復編程快擦寫程序存儲器; 全靜態(tài)工作,工作范圍:0Hz24MHz; 三級程序存儲器加密; 128×8位內(nèi)部RAM; 32位雙向輸入輸出線; 兩個十六位定時器/計數(shù)器 五個中斷源,兩級中斷優(yōu)先級; 一個全雙工的異步串行口; 間歇和掉電兩種工作方式 超強抗干擾: 高抗靜電(ESD保護) ,輕松過 2KV/4KV快速脈沖干擾; 寬電壓,不怕電源抖動 ; 寬溫度范圍,-4085 ; 禁止ALE輸出;; 超低功耗: 1.掉電模式:典型

12、功耗<0.1 A ; 2.空閑模式:典型功耗2mA ; 3.正常工作模式:典型功耗4mA-7mA ; 4.掉電模式可由外部中斷喚醒,適用于電池供電系統(tǒng),如水表、氣表、便攜設(shè)備等.; STC89C52RC引腳功能 1電源:VCC - 芯片電源,接+5V; VSS - 接地端; 2.時鐘: XTAL1、XTAL2 - 晶體振蕩電路反相輸入端和輸出端。 3.控制線: 控制線共有4根: ALE/PROG:地址鎖存允許/片內(nèi)EPROM編程脈沖 ALE功能:用來鎖存P0口送出的低8位地址 PROG功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。 PSEN:外ROM讀選通信號。

13、 RST/VPD:復位/備用電源。 RST(Reset)功能:復位信號輸入端。 VPD功能:在Vcc掉電情況下,接備用電源。 EA/Vpp:內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。 EA功能:內(nèi)外ROM選擇端。 Vpp功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,施加編程電源Vpp。 4. I/O口線:P0、P1、P2、P3共四個八位口。 P0口是三態(tài)雙向口,通稱數(shù)據(jù)總線口,因為只有該口能直接用于對外部存儲器的讀/寫操作。P0口也用以輸出外部存儲器的低8位地圖1址。由于是分時輸出,故應在外部加鎖存器將此地址數(shù)據(jù)鎖存,地址鎖存,信號用ALE。 P1口是專門供用戶使用的I/O口,是準雙向口。

14、 P2口是從系統(tǒng)擴展時作高8位地址線用。不擴展外部存儲器時,P2口也可以作為用戶I/O口線使用,P2口也是準雙向口。 P3口是雙功能口,該口的每一位均可獨立地定義為第一I/O功能或第二I/O功能。作為第一功能使用時操作同P1口。 2.3 電路設(shè)計 2.3.1 硬件選型 單片機:STC89C52RC鎖存器:74HC373數(shù)碼管:4位LED數(shù)碼管 2.3.2 功能模塊電路設(shè)計 (1)外部晶振電路圖5 外部晶振(2)LED數(shù)碼管顯示電路圖6 LED數(shù)碼管顯示電路 (3)8位搶答按鍵電路圖7 8位搶答按鍵電路 (4)主持人控制部分(蜂鳴器、搶答開始、搶答復位、搶答時間調(diào)整按鍵)電路圖8 主持人控制部分

15、3. 軟件設(shè)計 3.1系統(tǒng)分析 本次課程設(shè)計,主要由Keil和Proteus兩個軟件來完成程序編寫和電路仿真。其中Keil用于程序的編寫,而后生成可供單片機使用的.hex文件。Proteus用于搭建仿真電路,然后再單片機中下載Keil生成的.hex文件,進行仿真。程序一共分為宏定義、定時器中斷函數(shù)、外部中斷函數(shù)、按鍵掃描函數(shù)、LED顯示函數(shù)、延時函數(shù)、搶答開始函數(shù)、搶答復位函數(shù)和主函數(shù)9個部分。系統(tǒng)流程圖如下:圖9 系統(tǒng)流程圖 3.2 參數(shù)計算 蜂鳴器10秒定時器初值計算 晶振12Mhz,則定時50000微妙,循環(huán)200次 T1=216-50000 3.3程序設(shè)計 (1)主程序 在該程序中首先

16、完成定時器,中斷,LCD的初始化,然后進入無限循環(huán)中,調(diào)用所有子函數(shù),不斷輸出數(shù)據(jù)。(2)蜂鳴器報警子程序 該程序包含了蜂鳴器開啟子程序,以及用于控制蜂鳴器30秒鳴叫的定時器中斷子程序。在開啟子程序中判斷溫度數(shù)據(jù)的大小,控制定時器和蜂鳴器開關(guān)變量的賦值。定時器中斷子程序中,定時器進入一次中斷設(shè)置為0.05秒。則設(shè)置變量,計數(shù)600次,滿30秒后關(guān)斷蜂鳴器。(3) 定時器中斷子程序該程序定時器用來控制搶答時間的按秒減少和蜂鳴器10秒報警。先設(shè)置初值,利用循環(huán)控制時間的減少。(4) 外部中斷子程序該程序控制搶答時間初值的改變,每次中斷將搶答時間初值加一或者減一。(5) 按鍵掃描子程序該程序利用P1

17、口為搶答按鍵輸入口,每次搶答開始,第一個按下按鍵的人能夠?qū)崿F(xiàn)搶答,其他按鍵失效無法搶答。(6) 搶答開始子程序 該程序控制搶答開始。(7) 搶答復位子程序 該程序控制搶答復位,只有完成搶答或者搶答時間為零后才能實現(xiàn)搶答復位。(8) LED顯示子程序 該程序用P0口為LED數(shù)碼管的段碼輸入端,P20、P21、P22、P23為LED數(shù)碼管位碼輸入端,持續(xù)掃描端口輸入,形成視覺暫留,則可看做持續(xù)顯示。4.實驗仿真 本次仿真用了Proteus軟件,Proteus的ISIS是一款Labcenter出品的電路分析實物仿真系統(tǒng),可仿真各種電路和IC,并支持單片機,元件庫齊全,使用方便,是不可多得的專業(yè)的單片

18、機軟件仿真系統(tǒng)。程序編譯用Keil軟件, Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。運用keil軟件編譯C語言程序,其結(jié)果如下圖所示,在結(jié)果欄顯示0 Error(s),0 warning(s).說明此程序在軟件編譯上無語法等錯誤。將此程序生成.hex文件調(diào)入硬件中用Proteus進行調(diào)試仿真。圖10 keil程序仿真結(jié)果 將生成的.hex文件調(diào)入Proteus電路圖的單片機中,點擊圖左下角的開始鍵運行,程序的開始界面如圖所示。圖11 Proteus程序仿真結(jié)果圖12 Proteus程序仿真結(jié)果5. 課程設(shè)計體會通

19、過本次的課程設(shè)計,我學到了很多東西,同時在做的過程中也發(fā)現(xiàn)很多的問題。在這一過程中,我對我們所學習的相關(guān)單片機的知識又有了更深一層的學習和理解,讓我對自己所學的又有了更深的掌握。雖然以前還做過這樣的設(shè)計但這次設(shè)計真的讓我長進了很多,單片機課程設(shè)計重點就在于軟件算法的設(shè)計,需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事。有好多的東西,只有我們?nèi)ピ囍隽?,才能真正的掌握,只學習理論有些東西而不結(jié)合實踐是很難理解的,更談不上掌握。我相信,這些經(jīng)驗將會給我以后的工作和學習帶來很大的幫助。6. 參考文獻 李朝青 劉艷玲.單片機原理及接口技術(shù).北京航空航天大學出版社2

20、013年7月第4版.附件一:(源程序代碼) #include<reg52.h> #define uint unsigned int #define uchar unsigned char #define KEY P1 /*- 共陽極數(shù)碼管編碼表0-f -*/ uchar code table=0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8, 0X80,0X90,0X88,0X83,0XC6,0XA1,0X86,0X8E,;/*-變量定義-*/sbit start_stop=P36;sbit reset=P37;sbit key1=P10;sbit k

21、ey2=P11;sbit key3=P12;sbit key4=P13;sbit key5=P14;sbit key6=P15;sbit key7=P16;sbit key8=P17;sbit state=P34;sbit kaishi=P31;sbit speaker=P27;bit start_stop_flag=0;bit key1_flag=0;bit key2_flag=0;bit key3_flag=0;bit key4_flag=0;bit key5_flag=0;bit key6_flag=0;bit key7_flag=0;bit key8_flag=0; bit reset

22、_flag=0;bit action=0;bit kaishi_flag=0;bit speaker_flag=0; bit tf=0;uchar timer1_count=0;uchar second=30;uchar timer0_count=0;uchar number=0;uchar number_display=0;uchar second1=30;uchar b=10;/*-延時函數(shù)-*/void delay(uint z) uint x,y; for(x=z;x>0;x-) for(y=110;y>0;y-); /*-數(shù)碼管顯示驅(qū)動函數(shù)-*/void display(

23、uchar number,uchar second) uchar second_first,second_second; second_first=second/10; second_second=second%10; P2=0x01; P0=tablenumber; delay(2); P2=0x02; P0=0xBF; delay(2); P2=0x04; P0=tablesecond_first; delay(2); P2=0x08; P0=tablesecond_second; delay(2); /*-開始鍵掃描函數(shù)-*/void start_stop_keyscan() if(st

24、art_stop=0) delay(8); if(start_stop=0)&&(!start_stop_flag) start_stop_flag=1; action=1; TR0=1; TR1=1; state=0; else start_stop_flag=0;/*-八位搶答鍵掃描函數(shù)-*/uchar key_scan8() if(key1=0) delay(8); if(key1=0)&&(!key1_flag) key1_flag=1; number=1; number_display=number; else key1_flag=0;number=0

25、; / if(key2=0) delay(8); if(key2=0)&&(!key2_flag) key2_flag=1; number=2; number_display=number;else key2_flag=0;number=0; / if(key3=0) delay(8); if(key3=0)&&(!key3_flag) key3_flag=1; number=3; number_display=number;else key3_flag=0;number=0; / if(key4=0) delay(8); if(key4=0)&&

26、;(!key4_flag) key4_flag=1; number=4; number_display=number;else key4_flag=0;number=0;/ if(key5=0) delay(8); if(key5=0)&&(!key5_flag) key5_flag=1; number=5; number_display=number;else key5_flag=0;number=0;/ if(key6=0) delay(8); if(key6=0)&&(!key6_flag) key6_flag=1; number=6; number_di

27、splay=number;else key6_flag=0;number=0;/ if(key7=0) delay(8); if(key7=0)&&(!key7_flag) key7_flag=1; number=7; number_display=number;else key7_flag=0;number=0;/if(key8=0) delay(8); if(key8=0)&&(!key8_flag) key8_flag=1; number=8; number_display=number;else key8_flag=0;number=0; if(numb

28、er_display!=0) return 1; else return 0; /*-搶答時間調(diào)整函數(shù)-*/ void INT0_SVR() interrupt 0 delay(8); second1+; second=second1; display(number_display,second); void INT1_SVR1() interrupt 2 delay(8); second1-; second=second1; display(number_display,second); /*-復位鍵掃描函數(shù)-*/ void reset_keyscan() if(reset=0) delay(8);if(reset=0)&&(!reset_flag) b=10; second=second1; reset_flag=1; number_display=0; state=1; else reset_flag=0; /*-主函數(shù)-*

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論