單片機(jī)設(shè)計(jì)秒表(共19頁)_第1頁
單片機(jī)設(shè)計(jì)秒表(共19頁)_第2頁
單片機(jī)設(shè)計(jì)秒表(共19頁)_第3頁
單片機(jī)設(shè)計(jì)秒表(共19頁)_第4頁
單片機(jī)設(shè)計(jì)秒表(共19頁)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上 單片機(jī)課程設(shè)計(jì) 題 目 單片機(jī)秒表設(shè)計(jì)授課教師 董文會(huì) 學(xué)生姓名 呂丙揚(yáng) 靳立松 李 揚(yáng) 學(xué) 號(hào) 3 6 5 專 業(yè) 2010級(jí)電子信息工程 教學(xué)單位 物理與電子信息學(xué)院 完成時(shí)間 2013年6月24日專心-專注-專業(yè)目錄1、 設(shè)計(jì)的目的及意義···························&#

2、183;····················12、 設(shè)計(jì)方案及原理···························

3、83;······················13、 硬件設(shè)計(jì)與電路設(shè)計(jì)·························&#

4、183;···················2 3.1 AT89C51單片機(jī)最小系統(tǒng)簡介··························

5、3;········2 3.2 復(fù)位按鍵········································

6、·············4 3.3晶振電路···································

7、83;·················4 3.4數(shù)碼管顯示模塊······························

8、83;················5 3.5按鍵開關(guān)································

9、·····················5 3.6總電路圖···························

10、83;·························64、 軟件設(shè)計(jì)·······················&

11、#183;································6 4.1秒表初始化設(shè)計(jì)···············&

12、#183;······························6 4.2按鍵檢測(cè)程序·················&#

13、183;··································6 4.3開始計(jì)時(shí)··············

14、;······································7 4.4計(jì)時(shí)程序··········&#

15、183;·········································7 4.5顯示程序·······

16、;·············································74.6暫停計(jì)時(shí)···

17、83;················································74.7秒表清零&

18、#183;·················································&

19、#183;·74.8延時(shí)程序···············································

20、;·····8 4.9程序流程圖···········································&

21、#183;······8五、總結(jié)··········································&#

22、183;·················9附錄································

23、;·······························10參考文獻(xiàn)··················

24、;·········································15·1、 設(shè)計(jì)的目的及意義 單片微型計(jì)算機(jī)體積小、功能強(qiáng)、性價(jià)比高等特點(diǎn),所以廣泛應(yīng)用于電子儀

25、表、家用電器、節(jié)能裝置、軍事裝置、機(jī)器人、工業(yè)控制等諸多領(lǐng)域,使產(chǎn)品小型化、智能化,既提高了產(chǎn)品的功能和質(zhì)量,又降低了成本,簡化了設(shè)計(jì)。利用單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和計(jì)數(shù)的原理,用集成電路芯片、LED 數(shù)碼管以及按鍵來設(shè)計(jì)計(jì)時(shí)器。將軟、硬件有機(jī)地結(jié)合起來,使他擁有正確的計(jì)時(shí)、暫停、清零、并同時(shí)可以用數(shù)碼管顯示,在現(xiàn)實(shí)生中應(yīng)用廣泛。秒表計(jì)時(shí)器常常用于體育競賽及各種其他要求有較精確時(shí)間的各領(lǐng)域中。用AT89C51設(shè)計(jì)一個(gè)3位LED數(shù)碼顯示“秒表”,顯示時(shí)間為0099秒,每秒自動(dòng)加一。設(shè)計(jì)一個(gè)“開始”按鍵和一個(gè)“復(fù)位”按鍵。再增加一個(gè)“暫?!卑存I和一個(gè)“快加”按鍵(每10ms快速加一)。二、設(shè)計(jì)方

26、案及原理 以AT89C51單片機(jī)為核心,設(shè)計(jì)一個(gè)秒表,具有計(jì)時(shí)功能,按鍵有啟動(dòng)計(jì)時(shí)、數(shù)據(jù)清零、停止、時(shí)間顯示。 采用3個(gè)LED數(shù)碼管顯示時(shí)間,計(jì)時(shí)范圍設(shè)置為099.9秒,即精確到0.1秒,用按鍵控制秒表的“開始”、“暫?!?、“復(fù)位”,按“開始”按鍵,開始計(jì)時(shí);按“暫?!卑存I,系統(tǒng)暫停計(jì)時(shí);再按“開始”鍵,系統(tǒng)繼續(xù)計(jì)時(shí);數(shù)碼管顯示當(dāng)前計(jì)時(shí)值;按“復(fù)位”按鍵,系統(tǒng)清零。系統(tǒng)總體方案如圖2.1所示:AT89C513個(gè)數(shù)碼顯示管4個(gè)獨(dú)立式按鍵 11.059MHz晶振電源開關(guān)圖2.1 系統(tǒng)總設(shè)計(jì)圖三、硬件設(shè)計(jì)與電路設(shè)計(jì) 3.1 AT89C51單片機(jī)最小系統(tǒng)簡介 單片機(jī)最小系統(tǒng)由AT89C51、復(fù)位按鈕、

27、晶振組成。選用頻率11.0592MHz晶振,兩個(gè)30pF電容。如圖3.1所示:圖3.1單片機(jī)最小系統(tǒng) VCC:供電電壓。GND:接地。P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時(shí),被定義為輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流

28、,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3口:P3口管腳是8個(gè)帶內(nèi)部

29、上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:口管腳 備選功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時(shí)器0外部輸入)P3.5 T1(記時(shí)器1外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。RST:復(fù)位輸

30、入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。

31、在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。 /EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。3.2 復(fù)位按鍵 復(fù)位按鍵如圖3.2所示:圖3.2 復(fù)位按鍵3.3晶振電路 系統(tǒng)總電路除以上的顯示電路,按鍵電路和復(fù)位電路組成外,其次還剩晶振電路和電源電路。再將單片機(jī)與以上各部分電路合理的連接就組成了系

32、統(tǒng)總電路。AT89C51單片機(jī)為主電路的核心部分,各個(gè)電路均為和單片機(jī)相連接,由單片機(jī)統(tǒng)籌和協(xié)調(diào)各個(gè)電路的運(yùn)行工作。 AT89C51單片機(jī)提供了XTAL1和XTAL2兩個(gè)專用引腳接晶振電路,因此只要將晶振電路接到兩個(gè)專用引腳即可為單片機(jī)提供時(shí)鐘脈沖,但在焊接晶振電路時(shí)要盡量使晶振電路靠近單片機(jī),這樣可以為單片機(jī)提供穩(wěn)定的時(shí)鐘脈沖。 晶振電路如圖3.3所示: 圖3.3 晶振電路3.4數(shù)碼管顯示模塊 顯示電路采用3位共陽極LED 數(shù)碼管,P0 口由上拉電阻提高驅(qū)動(dòng)能力,作為段碼輸出并作為數(shù)碼管的驅(qū)動(dòng)。P2 口的低四位作為數(shù)碼管的位選端。LED1顯示秒表的十秒位,LED2顯示秒表的秒位,LED3顯示

33、毫秒位。復(fù)位后顯示00.0。如圖3.4所示:圖3.4 數(shù)碼管顯示模塊3.5按鍵開關(guān) 按鍵開關(guān)有4個(gè)按鍵,其中K1為開始按鍵,K2為暫停按鍵,K3為快加按鍵,K4為復(fù)位按鍵。按“開始”按鍵,開始計(jì)數(shù),數(shù)碼管顯示從00開始每秒自動(dòng)加一;按“復(fù)位”按鍵,系統(tǒng)清零,數(shù)碼管顯示00;按“暫?!卑存I,系統(tǒng)暫停計(jì)數(shù),數(shù)碼管顯示當(dāng)時(shí)的計(jì)數(shù);按“快加”按鍵,系統(tǒng)每10ms快速加一,即數(shù)碼管在原先的計(jì)數(shù)上快速加一。圖3.5 按鍵開關(guān)3.6總電路圖 將各個(gè)模塊鏈接后組成總電路圖,如圖:3.6所示:圖3.6總電路圖4、 軟件設(shè)計(jì)4.1秒表的初始化根據(jù)程序流程圖,先進(jìn)行秒表的初始化,即:將I/O口P3全寫一,為秒表的控

34、制輸入做好準(zhǔn)備;將數(shù)碼管全部置零,使其處于秒表計(jì)時(shí)的初始狀態(tài);將工作寄存器R0R2以及30H初始化,留待后面的計(jì)時(shí)程序備用;將定時(shí)器0置于工作方式1,并為其裝入計(jì)時(shí)預(yù)置數(shù)D8FE(因?yàn)槌绦蜻\(yùn)行過程中占用的時(shí)間會(huì)導(dǎo)致一定誤差,此為經(jīng)實(shí)物測(cè)試之后的修正值),即將定時(shí)器定為每10ms溢出;開總中斷允許和定時(shí)器0中斷允許。初始化完成后,即進(jìn)入之后的按鍵掃描程序。4.2按鍵檢測(cè)程序輪流檢測(cè)開始計(jì)時(shí)(P3.2)、暫停計(jì)時(shí)(P3.3)、秒表清零(P3.4)三個(gè)按鍵。若發(fā)現(xiàn)有一個(gè)按鍵出現(xiàn)低電平(可能被按下),則延時(shí)10ms(調(diào)用延時(shí)子程序DELAY),延時(shí)完成后,若發(fā)現(xiàn)低電平消失,則說明該按鍵實(shí)際上未被按下,

35、此時(shí)轉(zhuǎn)回按鍵檢測(cè)處繼續(xù)檢測(cè);若發(fā)現(xiàn)仍然是低電平,則說明此鍵確實(shí)被按下了,此時(shí)就跳轉(zhuǎn)至相應(yīng)的程序標(biāo)號(hào)處,執(zhí)行相應(yīng)的功能。4.3開始計(jì)時(shí)若確認(rèn)“開始計(jì)時(shí)”鍵被按下,則跳轉(zhuǎn)至程序標(biāo)號(hào)“RUN”處,將定時(shí)器0計(jì)時(shí)允許控制位TR0置位,則定時(shí)器開始運(yùn)行。此動(dòng)作完成后,返回按鍵檢測(cè)程序,等待操作者的下一次指令。4.4計(jì)時(shí)程序定時(shí)器0計(jì)時(shí)至10ms,溢出,引發(fā)中斷,程序跳轉(zhuǎn)至定時(shí)器0中斷服務(wù)程序入口000BH處執(zhí)行。程序跳轉(zhuǎn)至中斷服務(wù)程序TIME0。由于秒表的最小計(jì)時(shí)單位是0.1s,即100ms,因此需加入軟件計(jì)時(shí),使定時(shí)器0溢出10次之后才改變數(shù)碼管的顯示狀態(tài)。因此每來一次中斷就將30H中的數(shù)加1,若30

36、H中的數(shù)沒有到10,則給定時(shí)器0重新裝入預(yù)置數(shù),之后中斷返回并繼續(xù)等待中斷;到10了,才進(jìn)入顯示程序,改變數(shù)碼管的顯示狀態(tài),執(zhí)行完畢之后中斷返回并繼續(xù)等待中斷。4.5顯示程序?qū)?shù)碼管的段選碼放在數(shù)表TAB中。每秒計(jì)時(shí)完成后,將R0中的值(初值為0)送入A,然后自加1。若R0中的值沒到10,則使用累加器A查表,并將查得的數(shù)碼管段選碼送入毫秒位數(shù)碼管。之后將30H中的數(shù)置零,中斷返回。若發(fā)現(xiàn)R0中的數(shù)到10了,則將R0置零,并轉(zhuǎn)入秒位進(jìn)位子程序SECOND,向秒位進(jìn)位之后,繼續(xù)照常向毫秒位送數(shù)。4.6暫停計(jì)時(shí)若確認(rèn)“暫停計(jì)時(shí)”鍵被按下,則跳轉(zhuǎn)至程序標(biāo)號(hào)“PAUSE”處,將定時(shí)器0計(jì)時(shí)允許控制位TR

37、0置零,則定時(shí)器暫停運(yùn)行。此動(dòng)作完成后,返回按鍵檢測(cè)程序,等待操作者的下一次指令。 4.7秒表清零若確認(rèn)“秒表清零”鍵被按下,則跳轉(zhuǎn)至程序標(biāo)號(hào)“STOP”處,將TR0置零,關(guān)閉定時(shí)器0運(yùn)行。并且將數(shù)碼管、工作寄存器、定時(shí)器0預(yù)置數(shù)全部重置,使其處于秒表計(jì)時(shí)的初始狀態(tài)。此動(dòng)作完成后,返回按鍵檢測(cè)程序,等待操作者的下一次指令。4.8延時(shí)程序用于按鍵延時(shí)防抖,延時(shí)10ms。程序清單見附錄。 4.9程序流程圖 如圖4.9所示:圖4.8程序流程圖五、總結(jié) 通過對(duì)本次課程的課程設(shè)計(jì),使自己深刻的認(rèn)識(shí)到自己的很多不足之處,在實(shí)際動(dòng)手操作能力的不足,在進(jìn)行程序編程時(shí),自己需要,認(rèn)真審題,看懂題目的要求!對(duì)于軟

38、件編程不益太簡單或者太難。做到既能把課題完成又能鍛煉 自己的能力!根據(jù)課題要求,復(fù)習(xí)相關(guān)的知識(shí),查詢相關(guān)的資料。根據(jù)課程條件,找到適合的方案,找到需要的元器件及工具,準(zhǔn)備課程。根據(jù)課程設(shè)計(jì)的要求和自己所要增加的功能寫好程序流程圖,在程序流程圖的基礎(chǔ)上,根據(jù)芯片的功能寫出相應(yīng)的程序和增加額外的功能程序。然后再進(jìn)行 程序調(diào)試和相應(yīng)的修改,以達(dá)到能夠?qū)崿F(xiàn)所要求的功能的目的。還要根據(jù)課程的實(shí)際情況,添加些額外程序來使系統(tǒng)更加的穩(wěn)定,如開關(guān)的去抖(采用延遲)。程序要盡量做到由各個(gè)子程序組成,在有些程序后面最好加注釋。這樣在程 序出錯(cuò)的檢查過程中可以更容易查找的到,也更簡潔,更明白易懂。該課程設(shè)計(jì)的程序可

39、以參考 MCS-51 系列單片機(jī),也可自己根據(jù)自己熟悉的方法來編程如單片機(jī) C 語言。在設(shè)計(jì)控制開關(guān)時(shí),注意兩個(gè)中斷的打開和關(guān)閉的先后順序,否則就會(huì)出錯(cuò)。這次的單片機(jī)課程設(shè)計(jì)重點(diǎn)是理論與實(shí)際的相結(jié)合。該設(shè)計(jì)從頭到尾都要自己參與,熟悉了對(duì)整個(gè)設(shè)計(jì)的過程,更系統(tǒng)的鍛煉了自己。 附錄:#include<reg52.h> /52 系列單片機(jī)頭文件 #define uchar unsigned char /宏定義#define uint unsigned intsbit dula=P26; /申明 U1 鎖存器的鎖存端 sbit wela=P27; /申明 U2 鎖存器的鎖存端 sbit k

40、ey1=P34; /申明四個(gè)按鍵的鎖存端sbit key2=P35;sbit key3=P36;sbit key4=P37; uchar code table= /含有 09 的數(shù)字?jǐn)?shù)組 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f;void delayms(uint); /聲明延時(shí)函數(shù)void display(uchar,uchar,uchar); /聲明顯示函數(shù) void keyscan(); /聲明按鍵函數(shù) uchar num1,num2,bai,shi,ge; /變量聲明 uint num; void main() /主函數(shù)入口

41、 TMOD=0x11; /設(shè)置 TO,T1 定時(shí)器 TH0=(65536-45872)/256; /裝初值11.05992M晶振50ms數(shù)為45872 TL0=(65536-45872)%256; TH1=(65536-45872)/256; TL1=(65536-45872)%256; EA=1; /開總中斷 ET0=1; /開啟定時(shí)器 T0 中斷 ET1=1; /開啟定時(shí)器 T1 中斷 while(1) /程序停在這里等待中斷的發(fā)生,這個(gè)大循環(huán)也是實(shí)現(xiàn)數(shù)據(jù)顯示的主體 keyscan(); /三個(gè)數(shù)碼管要選送的數(shù)據(jù) bai=num/100; /百位 shi=(num-100*bai)/10;

42、 /十位 ge=num-100*bai-shi*10; /個(gè)位 /直接把第二只數(shù)碼管的小數(shù)點(diǎn)燒出來dula=1; /打開段選 P0=0x80; /送段選數(shù)據(jù)dula=0; /關(guān)閉斷選 P0=0xff; /送位選數(shù)據(jù)前關(guān)閉所有顯示,防止打開位選鎖存時(shí)原來段選數(shù)據(jù)通過位 鎖存端造成混亂 wela=1; /打開位選 P0=0xfd; /送位選數(shù)據(jù) wela=0; /關(guān)閉位選 delayms(5); /延時(shí) display(bai,shi,ge); void display(uchar bai, uchar shi,uchar ge) dula=1; /打開段選P0=tablebai; /送段選數(shù)據(jù) dula=0; /關(guān)閉斷選 P0=0xff; /送位選數(shù)據(jù)前關(guān)閉所有顯示,防止打開位選鎖存時(shí)原來段選數(shù)據(jù)通過位鎖存 端造成混亂wela=1; /打開位選 P0=0xfe;

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論