《單片機(jī)原理》課程設(shè)計說明書簡易數(shù)字時鐘_第1頁
《單片機(jī)原理》課程設(shè)計說明書簡易數(shù)字時鐘_第2頁
《單片機(jī)原理》課程設(shè)計說明書簡易數(shù)字時鐘_第3頁
《單片機(jī)原理》課程設(shè)計說明書簡易數(shù)字時鐘_第4頁
《單片機(jī)原理》課程設(shè)計說明書簡易數(shù)字時鐘_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、武漢理工大學(xué)單片機(jī)原理課程設(shè)計說明書課程設(shè)計任務(wù)書學(xué)生姓名: 專業(yè)班級: 自動化0607 指導(dǎo)教師: 工作單位: 武漢理工大學(xué)自動化學(xué)院 題 目: 簡易數(shù)字時鐘 初始條件:用c語言編寫程序,實現(xiàn)簡易數(shù)字時鐘的功能。要求完成的主要任務(wù): (1)簡易數(shù)字時鐘能實現(xiàn)時、分、秒的數(shù)字顯示;(2)可以對時鐘、分鐘進(jìn)行調(diào)節(jié)并且校正。時間安排:周次具體時間設(shè)計內(nèi)容第一周4月6日指導(dǎo)老師就課程設(shè)計內(nèi)容、設(shè)計要求、設(shè)計進(jìn)度安排、評分標(biāo)準(zhǔn)等作具體介紹。強(qiáng)調(diào)課程設(shè)計期間紀(jì)律要求。學(xué)生確定選題,明確設(shè)計內(nèi)容及要求。4月7日8日根據(jù)選題查閱資料,完成方案的初步設(shè)計,繪制程序流程草圖。4月9日中期檢查及答疑(向指導(dǎo)老師闡

2、述設(shè)計思路,并解釋程序流程圖)。4月11日根據(jù)中期檢查意見修改程序流程圖,編寫程序代碼。第二周4月12日程序調(diào)試、修改。4月13日指導(dǎo)老師檢查程序運行效果,并就結(jié)果進(jìn)行評分。4月1415日學(xué)生撰寫課程設(shè)計說明書。4月18日上交課程設(shè)計說明書,以及答辯。指導(dǎo)教師簽名: 年 月 日系主任(或責(zé)任教師)簽名: 年 月 日摘 要近幾年,單片機(jī)在各個領(lǐng)域得到廣泛的應(yīng)用。從工業(yè)到人們的日常生活,大部分的科技產(chǎn)品都是通過單片機(jī)來控制。在它問世之前,自動控制設(shè)備不能被廣泛的應(yīng)用,這是因為控制設(shè)備的體積龐大,耗電量大,價格昂貴。在第一臺微處理器成功研制不久,第一個單片機(jī)就問世了。因為其小巧的體積,低功耗,以及高

3、效的性能,單片機(jī)受到了大家的歡迎。 今天,單片機(jī)成為了解決低復(fù)雜度,中等復(fù)雜度控制問題的傳統(tǒng)選擇。文章介紹了單片機(jī)在定時方面的基本功能。生活中,我們發(fā)現(xiàn):時間的準(zhǔn)確顯得格外的重要。 我們選擇的方法是單片機(jī)開發(fā)設(shè)計使用的傳統(tǒng)方法,通過本次設(shè)計,可以了解整個單片機(jī)開發(fā)的流程。文章首先介紹了單片機(jī)的基本知識,然后同時給出了框圖,流程圖等。論文涵蓋了從需求分析,系統(tǒng)設(shè)計,編程,原理圖等產(chǎn)品開發(fā)的基本過程。關(guān)鍵詞:單片機(jī),軟件仿真,原理圖abstractsingle chip microcomputer has achieved a immemse popularity in all fileds in

4、 recent years.from industry to peoples common lives,most of technical applications are controlled by scm. before it appeared,the automatic devices couldt be widely used because of their huge size ,large quantity of power cost and high price.the first scm appeared as soon as the first mcu(microcontro

5、ller unit) was successfully developed.due to its small size,low power cost and high performance,it has been welcomed by people. nowadays, scm has been selected as a traditional solution for lowormedium complexity problems about devices controlling.this essay shows a basic application of scm in timin

6、g for peoples life. time accuracy is a vital factor that effects the results. the approach we choose is the common way for scm developing from which we can get an acknowledge about the scm develop flowing process.the paper first introduces knowledge on 51 serial scm,then at it also shows block diagr

7、ams,flowing process diagrams and so on. it presents the process including requirement analysis ,system design,scm programming ,program emulation , which forms a complete procedure for product manufacture。key words: scm,software emulation,schemetic 目錄1單片機(jī)的基本知識51.1數(shù)碼管動態(tài)顯示原理51.2鍵盤掃描原理62程序說明和流程圖62.1程序說明

8、62.2流程圖83程序設(shè)計94實驗仿真和驗證135心得體會146參考文獻(xiàn)15 簡易數(shù)字時鐘1單片機(jī)的基本知識1.1數(shù)碼管動態(tài)顯示原理圖1數(shù)碼管顯示原理圖如圖1數(shù)碼管顯示原理圖所示,使用led顯示器時,要注意是共陰還是共陽,要注意區(qū)分這兩種不同的接法。為了顯示數(shù)字或字符,必須對數(shù)字或字符進(jìn)行編碼。七段數(shù)碼管加上一個小數(shù)點,共計8段。因此為led顯示器提供的編碼正好是一個字節(jié)。我們用的是共陰led顯示器,根據(jù)電路連接圖顯示16進(jìn)制數(shù)的編碼已列在下表。 0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d , 0 1 2 3 4 5 0x7d , 0x07 , 0x7f ,

9、 0x6f , 0x77 , 0x7c , 6 7 8 9 a b 0x39 , 0x5e , 0x79 , 0x71 , 0x00 c d e f 無顯示動態(tài)顯示的特點是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效,由另一位控制顯示碼值。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時應(yīng)略小于靜態(tài)顯示電路中的。我們這里正是利用的數(shù)碼管動態(tài)顯示來完成顯示功能。1.2鍵盤掃描原理鍵盤分編碼鍵盤和非編碼鍵盤,鍵盤上

10、閉合鍵的識別由專用的硬件編碼器實現(xiàn),并產(chǎn)生按鍵編碼號或鍵值的稱為編碼鍵盤,如計算機(jī)鍵盤。而靠軟件編程來識別的稱為非編碼鍵盤,在單片機(jī)組成的各種系統(tǒng)中,用的最多的是非編碼鍵盤,也有用到編碼鍵盤的,我們這里用的就是非編碼鍵盤。如圖2鍵盤圖所示,當(dāng)按鈕按下時;端口會變成低電平,我們設(shè)計一段掃描程序來判斷那個端口是低電平來判斷是否有按鍵按下。 圖2鍵盤圖2程序說明和流程圖2.1程序說明此實時時鐘的設(shè)計與實現(xiàn),主要采用了6只led數(shù)碼管,加atmega128單片機(jī),包括顯示模塊,運算模塊和校時模塊三大功能模塊。顯示模塊:用atmega128控制,用數(shù)碼管的顯示功能來設(shè)計。顯示部分硬件用六只led為顯示管

11、,這些led發(fā)光二極管的陰極是互相連接在一起的,所以稱為共陰極數(shù)碼管。通過在這8只發(fā)光二極管的陽極加+5 v或0 v的電壓使不同的二極管發(fā)光,形成不同的數(shù)字。該模塊主要是將運算模塊和校時模塊運算出來的十進(jìn)制表示的時位、分位和秒位數(shù)值,并通過6只數(shù)碼管顯示出來。該模塊實現(xiàn)的硬件是7seg-mpx6-ca單元,采用軟件譯碼,即在程序中設(shè)置一個段選碼表。cpu直接往led輸出八段代碼,省去了硬件譯碼器。a0a3作為8段數(shù)據(jù)輸出口到達(dá)各led。只要做到每送一次段選碼時也送一次位掃描碼,并且每送一次位掃描碼后,位碼中的0右移一位作為下一次的位掃描碼,即可實現(xiàn)由左向右使6只led依次出現(xiàn)數(shù)字顯示。運算模塊

12、:該模塊的主要功能是對時、分、秒的運算,并把運算出的最終結(jié)果存到事先已經(jīng)開辟的內(nèi)存單元里,以便顯示模塊即時地顯示出來。該模塊可以細(xì)分為秒定時模塊和運算模塊。延時程序?qū)崿F(xiàn)延時功能,由于cpu運算模塊中的指令消耗一定的時間,所消耗的時間可以用來延時。當(dāng)演示完成后才能讓秒單元內(nèi)的數(shù)值加1。在主程序里,必須對秒、分和時的單元內(nèi)的數(shù)值進(jìn)行判斷,當(dāng)秒加到60時,分必須加1 、秒清零;當(dāng)分加到60時,時加1、分清零。當(dāng)時加到24時,直接清零。然后轉(zhuǎn)到調(diào)用處。校時模塊:該模塊主要功能是修改時、分、秒內(nèi)存單元的數(shù)值。每按一次鍵,對應(yīng)的顯示值便加1。分、 秒加到59后變?yōu)?0;小時加到23后再按鍵即變?yōu)?0.再調(diào)

13、校時均不向上一單位進(jìn)位(例如分加到59后變?yōu)?0;但小時不發(fā)生改變)。2.2流程圖1主函數(shù)開始初始化( 定時器、顯示區(qū)、輸入輸出、計數(shù)單元等)初始化時,分,秒并在秒上自加一位秒計數(shù)到60yn分鐘自加一位,秒鐘歸零分鐘到60yn時鐘自加一位,分鐘歸零鍵盤輸入yn修改分鐘,小時調(diào)用顯示子程序2.顯示子程序 開始初始化數(shù)據(jù),定義輸入輸出確定數(shù)碼管的位選顯示數(shù)據(jù)調(diào)用延時對隨后的5個數(shù)碼管同樣操作,給不同的位選信號返回主函數(shù)3程序設(shè)計#include #include /#pragma interrupt_handler t1_int:13unsigned char led_table26= /數(shù)碼管段

14、碼表 0xc0,/*0*/ 0xf9,/*1*/ 0xa4,/*2*/ 0xb0,/*3*/ 0x99,/*4*/ 0x92,/*5*/ 0x82,/*6*/ 0xf8,/*7*/ 0x80,/*8*/ 0x90,/*9*/;unsigned int m;unsigned char m6,m5,m4,m3,m2,m1;void display()ddre=0xff;ddrb=0xff;porte=0x00;portb=0xff;porte|=bit(0);portb=led_tablem6;delay(3);portb=0xff;porte=0x00;porte|=bit(1);portb=l

15、ed_tablem5-0x80;delay(2);portb=0xff;porte=0x00;porte|=bit(2);portb=led_tablem4;delay(2);portb=0xff;porte=0x00;porte|=bit(3);portb=led_tablem3-0x80;delay(2);portb=0xff;porte=0x00;porte|=bit(4);portb=led_tablem2;delay(2);porte=0x00;portb=0x00;porte|=bit(5);portb=led_tablem1;delay(2);void delay(int m)

16、int i,j; for(i=0;im;i+) for(j=0;j500;j+); void main() unsigned char q; m=0; ddrb=0xff; portb=0xff; ddrf=0x00; portd=0x00; ddrd=0xff; portd=0xff; while(1) m6=m/100000; m5=m%100000/10000; m4=m%10000/1000; m3=m%1000/100; m2=m%100/10; m1=m%10; m+; if(m2=5&m1=9) m+=100; m-=59; if(m3=9&m4=5&m1=9&m2=5) m+=

17、10000; m-=5900; for(q=0;q10;q+) display(); pinf=0x00; if(pinf=0x01)m=m+100; delay(50);if(pinf=0x02) m=m-100; delay(50); if(pinf=0x04) m=m+10000;delay(50); if(pinf=0x08) m=m-10000;delay(50); 4實驗仿真和驗證我們跟據(jù)試驗原理設(shè)計了仿真圖,將程序在iccv7中運行后,將生成的hex檔加載、運行,來看是否能實現(xiàn)我們要求的功能,并看是否有錯誤。如圖3實驗仿真圖所示,這與我們想要的結(jié)果是一致的??梢娢覀兊某绦蚴钦_的

18、,并且能夠?qū)崿F(xiàn)我們想要的功能。圖3實驗仿真圖5心得體會通過本次實驗,能初步理論聯(lián)系實際、應(yīng)用c語言、能簡單設(shè)計出程序、并且能通自己的調(diào)試進(jìn)行修改。課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識、發(fā)現(xiàn)、提出、分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,計算機(jī)已經(jīng)成為當(dāng)今社會生活工作中空前活躍的領(lǐng)域, 在生活中可以說得是無處不在?;仡櫰鸫舜螁纹瑱C(jī)原理課程設(shè)計,至今我仍感慨頗多。的確,從選題到定稿、從理論到實踐,在整整兩星期的日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所

19、沒有學(xué)到過的知識。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,比如說如何對程序的初始進(jìn)行編程,如何利用流程方塊圖通過這次課程設(shè)計之后,一定把以前所學(xué)過的知識重新溫故。 這次課程設(shè)計終于順利完成了,在設(shè)計中遇到了很多思路、編程問題,最后在劉教瑜老師的辛勤指導(dǎo)和同學(xué)的幫助下,終于游刃而解。6參考文獻(xiàn)1微機(jī)原理與接口技術(shù) 主編:周佩玲 彭虎 傅忠謙 出版社:電子工業(yè)出版社20072微機(jī)原理與接口技術(shù)學(xué)習(xí)指導(dǎo) 主編:周佩玲 彭虎 傅忠謙 出版社:電子工業(yè)出版社20073計算機(jī)高級應(yīng)用 主編:章工榮 出版社:高等教育 20044計算機(jī)程序設(shè)計

溫馨提示

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

評論

0/150

提交評論