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

下載本文檔

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

文檔簡(jiǎn)介

1、1 實(shí)驗(yàn)內(nèi)容及要求1.1 實(shí)驗(yàn)內(nèi)容用AT89C51設(shè)計(jì)一個(gè)2位LED數(shù)碼顯示“秒表”,顯示時(shí)間為0099秒,每秒自動(dòng)加一。另設(shè)計(jì)一個(gè)“開始”按鍵和一個(gè)“復(fù)位”按鍵。再增加一個(gè)“暫?!卑存I和一個(gè)“快加”按鍵(每10ms快速加一)。按鍵說明:按“開始”按鍵,開始計(jì)數(shù),數(shù)碼管顯示從00開始每秒自動(dòng)加一;按“復(fù)位”按鍵,系統(tǒng)清零,數(shù)碼管顯示00;按“暫停”按鍵,系統(tǒng)暫停計(jì)數(shù),數(shù)碼管顯示當(dāng)時(shí)的計(jì)數(shù);按“快加”按鍵,系統(tǒng)每10ms快速加一,即數(shù)碼顯示管在原先的計(jì)數(shù)上快速加一。1.2 實(shí)驗(yàn)要求了解8051芯片的的工作原理和工作方式 ,使用該芯片對(duì)LED數(shù)碼管進(jìn)行顯示控制,實(shí)現(xiàn)用單片機(jī)的端口控制數(shù)碼管,顯示分

2、、秒,并能用按鈕實(shí)現(xiàn)秒表起動(dòng)、停止、清零功能,精確到0.1秒。要求選用定時(shí)器的工作方式,畫出使用單片機(jī)控制LED數(shù)碼管顯示的電路圖,并在實(shí)驗(yàn)箱實(shí)現(xiàn)其硬件電路,并編程完成軟件部分,最后調(diào)試秒表起動(dòng)、停止、清零功能。2 單片機(jī)的選用及主機(jī)系統(tǒng)電路的設(shè)計(jì)2.1單片機(jī)的選用:Atmel89C51單片機(jī)的主要特點(diǎn):·4K字節(jié)可編程閃爍存儲(chǔ)器 ·壽命:1000寫/擦循環(huán)·數(shù)據(jù)保留時(shí)間:10年·全靜態(tài)工作:0Hz-24Hz·三級(jí)程序存儲(chǔ)器鎖定·128*8位內(nèi)部RAM·32可編程I/O線·兩個(gè)16位定時(shí)器/計(jì)數(shù)器·5個(gè)中

3、斷源 ·可編程串行通道2.2單片機(jī)主機(jī)系統(tǒng)電路的設(shè)計(jì)圖4 單片機(jī)主機(jī)系統(tǒng)電路3 軟件設(shè)計(jì)分析3.1 程序流程圖:(1)定時(shí)器1程序用定時(shí)器0實(shí)現(xiàn)定時(shí)1秒,定時(shí)器1實(shí)現(xiàn)定時(shí)10毫秒,定時(shí)初值都是0D8F0H,這里只寫定時(shí)1秒的流程圖,如下所示:圖5 定時(shí)1秒流程圖(2) 主程序:采用分支結(jié)構(gòu),通過對(duì)按鍵的掃描,判斷要實(shí)現(xiàn)什么功能,然后通過調(diào)用子程序來實(shí)現(xiàn)所需要的功能。圖6 系統(tǒng)總流程圖3.2子程序模塊設(shè)計(jì):(1) 延時(shí)功能的函數(shù)根據(jù)選用芯片的內(nèi)部晶振周期與程序的執(zhí)行周期推算出程序執(zhí)行的經(jīng)驗(yàn)延時(shí)。void delay() unsigned char i,j; for(i=90;i>

4、0;i-) for(j=200;j>0;j-);(2) 時(shí)間進(jìn)位函數(shù)從毫秒記起,每次自加滿10進(jìn)入下一循環(huán)即進(jìn)一位。void setTime() second10+; if(second10=10) /*當(dāng)十分之一秒計(jì)數(shù)到十后從零重新計(jì)時(shí)*/ second10=0; /*同時(shí)秒計(jì)時(shí)個(gè)位加一*/second1+;if(second1=10) /*當(dāng)秒計(jì)數(shù)個(gè)位到十后從零重新計(jì)時(shí)*/second1=0;second2+; /*同時(shí)秒計(jì)時(shí)十位加一*/if(second2=6)second2=0; (3) LED管輸數(shù)據(jù)并使之顯示子程序通過給P3送入不同值,給十秒與秒顯示LED送入顯示值。P2為單

5、獨(dú)LED顯示毫秒。void dispact()P3=0xfe;P0=table1second1;delay();P3=0xfd;P0=table1second2;delay();P2=table0second10;4系統(tǒng)調(diào)試及結(jié)果 利用51單片機(jī)設(shè)計(jì)一個(gè)1/100秒表,最大能顯示99.99秒,具有置位,復(fù)位,啟停等功能。用C語言編程,數(shù)碼管顯示。圖7 調(diào)試運(yùn)行結(jié)果5系統(tǒng)設(shè)計(jì)總結(jié)通過這次的秒表設(shè)計(jì),我對(duì)一些專業(yè)知識(shí)和電子設(shè)計(jì)有了更深的了解,同時(shí)也嘗試著去應(yīng)用自己的所掌握的知識(shí)。本次設(shè)計(jì)主要是對(duì)已學(xué)習(xí)的模擬電子技術(shù)、數(shù)字電子技術(shù)和單片機(jī)的綜合應(yīng)用,同時(shí)加上電路等知識(shí),設(shè)計(jì)完成了利用軟件模擬的秒表。

6、經(jīng)過幾天的奮戰(zhàn),我感受很深。在設(shè)計(jì)過程中深感自己在培養(yǎng)動(dòng)手能力這方面還需很大的努力。單片機(jī)課程設(shè)計(jì)不僅給我提供了一個(gè)很好的展現(xiàn)應(yīng)用自己所掌握的知識(shí)的平臺(tái),又是檢驗(yàn)自己所學(xué)知識(shí)的一次考核。在設(shè)計(jì)的過程中我也不可避免的遇到了很多的問題。尤其是在調(diào)試過程中,會(huì)因?yàn)槟承┰虺霾粊斫Y(jié)果,但通過老師對(duì)我的幫助最后還是成功的完成了這次的設(shè)計(jì)。經(jīng)過過這次的系統(tǒng)設(shè)計(jì),我也發(fā)現(xiàn)了不少自己不會(huì)的知識(shí),通過查詢各方面資料,我也進(jìn)步了很多,也學(xué)會(huì)了很多上課時(shí)沒掌握的東西,最后在調(diào)試結(jié)果出來后,我更是無比的興奮,無比的自豪??傊?通過這次電子課程設(shè)計(jì),我對(duì)自己的知識(shí)有了更好的掌握和應(yīng)用,這使我在以后的學(xué)習(xí)和生活中受用終身

7、。6課程設(shè)計(jì)體會(huì)經(jīng)過一個(gè)星期的課程設(shè)計(jì),過程曲折可謂一語難盡。在此期間我也失落過,也曾一度熱情高漲。從開始時(shí)激情高漲到最后汗水背后的復(fù)雜心情,點(diǎn)點(diǎn)滴滴無不令我回味無長。在胡立夫老師的指導(dǎo)下,我順利完成了課程設(shè)計(jì)。讓我學(xué)到了以下幾點(diǎn):1、將學(xué)習(xí)的理論知識(shí)通過實(shí)驗(yàn)融會(huì)貫通,讓我對(duì)它的理解更加深刻。對(duì)程序的編譯過程了解透徹。2、本次課程設(shè)計(jì)以自己設(shè)計(jì)為主,因此培養(yǎng)了學(xué)習(xí)的積極性,讓我能夠獨(dú)立去分析問題、發(fā)現(xiàn)問題、解決問題,更增強(qiáng)我與老師同學(xué)交流溝通和合作完成任務(wù)的能力。3、由于這次課程設(shè)計(jì)不僅設(shè)計(jì)編程方面的知識(shí),還涉及了其它學(xué)科的知識(shí),例如PROTEUS和Keil等的基本知識(shí)。程序是用匯編語言來編寫

8、的,這次課程設(shè)計(jì)讓我在編程能力方面得到了提高。4、由于水平有限,實(shí)驗(yàn)程序運(yùn)行有一定的限制,以后會(huì)加強(qiáng)改進(jìn)。總之,通過這次課程設(shè)計(jì),不僅加深了我對(duì)單片機(jī)理論方面的理解,將理論更好的運(yùn)用的實(shí)踐方面,而且鍛煉了我們各方面的能力,培養(yǎng)了堅(jiān)強(qiáng)的毅力和做事的耐心和細(xì)心,認(rèn)識(shí)合作的重要性,雖然程序可能有一定的浪費(fèi)資源,且較羅嗦,但這需要在實(shí)踐中慢慢提高,還希望老師能夠多多指導(dǎo),促進(jìn)我不斷的進(jìn)步。最后再一次感謝胡老師對(duì)我的悉心指導(dǎo)和無私幫助。7參考文獻(xiàn)1單片機(jī)課程設(shè)計(jì)指導(dǎo)書 皮大能 北京理工大學(xué)出版社2012.728051單片機(jī)實(shí)踐與應(yīng)用 吳金戎 清華大學(xué)出版社2003.83單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐 夏路易

9、電子工業(yè)出版社2008.14單片機(jī)原理及應(yīng)用張毅剛 高等教育出版社 2012.115基于Proteus的單片機(jī)系統(tǒng)設(shè)計(jì)與仿真實(shí)例 蔣輝平 機(jī)械工業(yè)出版社 2007.7附錄1 系統(tǒng)電路圖附錄2 源程序#include <reg51.H>sbit sta_end=P34;sbit reset=P37;unsigned char code table0=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f;unsigned char code table1=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x

10、80,0x90; /*共陽極段碼*/*聲明second10用于計(jì)數(shù)十分之一秒變化,second1用于記錄秒的個(gè)*/ /*位,second2用于記錄秒的十位*/unsigned int second10,second1,second2;bit bdata flag;/*以下是設(shè)置延時(shí)功能的函數(shù)*/void delay() unsigned char i,j; for(i=90;i>0;i-) for(j=200;j>0;j-);/*以下是設(shè)置時(shí)間的函數(shù)*/void setTime() second10+; if(second10=10) /*當(dāng)十分之一秒計(jì)數(shù)到十后從零重新計(jì)時(shí)*/ s

11、econd10=0; /*同時(shí)秒計(jì)時(shí)個(gè)位加一*/second1+;if(second1=10) /*當(dāng)秒計(jì)數(shù)個(gè)位到十后從零重新計(jì)時(shí)*/second1=0;second2+; /*同時(shí)秒計(jì)時(shí)十位加一*/if(second2=6) second2=0; /*以下是向LED管輸數(shù)據(jù)并使之顯示的函數(shù)*/void dispact() P3=0xfe; P0=table1second1; delay();P3=0xfd;P0=table1second2;delay();P2=table0second10;/*以下是設(shè)置時(shí)間函數(shù)和輸數(shù)據(jù)函數(shù)被此函數(shù)調(diào)用實(shí)現(xiàn),利用定時(shí)器中斷*/*十分之一秒刷新一次,實(shí)現(xiàn)十分之

12、一秒進(jìn)一*/Timer0 () interrupt 1 using 1 TH0 = (65535 - 50000)/256;TL0 = (65535 - 50000)%256;if(flag)setTime();dispact();void main() TMOD = 0x01;TH0 = (65535 - 50000)/256; /*定時(shí)器賦初值*/TL0 = (65535 - 50000)%256;flag = 0; EA = 1; /*cpu開中斷*/ TR0 = 1; /*利用定時(shí)器0*/ ET0 = 1; /*外部中斷允許*/do if(!sta_end)if(flag = 0)flag = 1;else flag = 0; if(!reset) /*復(fù)位設(shè)置,全部清零*/flag = 0;second10 = 0;second1 = 0;se

溫馨提示

  • 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)論