精確時(shí)鐘課程設(shè)計(jì)_第1頁
精確時(shí)鐘課程設(shè)計(jì)_第2頁
精確時(shí)鐘課程設(shè)計(jì)_第3頁
精確時(shí)鐘課程設(shè)計(jì)_第4頁
精確時(shí)鐘課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課程名稱: 新編單片機(jī)原理及應(yīng)用 課設(shè)項(xiàng)目: 精確時(shí)鐘 課設(shè)地點(diǎn): 專業(yè)班級(jí): 學(xué)生姓名: 同組成員:指導(dǎo)老師: 2013年7月12日 目 錄第1章 系統(tǒng)總體方案與說明3 1.1系統(tǒng)總體方案3 1.2 系統(tǒng)設(shè)計(jì)說明3 1.3系統(tǒng)設(shè)計(jì)目的4 1.4系統(tǒng)設(shè)計(jì)要求4第2章 硬件電路設(shè)計(jì)4 2.1總原理圖4 2.2各個(gè)模塊設(shè)計(jì)5 2.3 器件清單9第3章 軟件設(shè)計(jì)10 3.1 硬件框圖10 3.2 程序流程圖10第4章 心得體會(huì)11第5章 附件12 附錄A. 源程序清單12 附錄B.硬件原理圖28 附件C 參考文獻(xiàn)29 第1章 系統(tǒng)總體方案與說明1.1系統(tǒng)總體方案 該課程設(shè)計(jì)是利用AT89C51單片機(jī)

2、內(nèi)部的定時(shí)計(jì)數(shù)器、中斷系統(tǒng)、以及獨(dú)立鍵盤和LED顯示器等部件,設(shè)計(jì)的一個(gè)單片機(jī)精確時(shí)鐘,16位LED數(shù)碼顯示,分別顯示“年、月、日、時(shí)、分、秒、毫秒”。該作品主要用于日期顯示,24小時(shí)計(jì)時(shí)顯示,能整時(shí)蜂鳴報(bào)時(shí)。使用方法:開機(jī)后按P3.6時(shí)鐘在2013 01 01 00:00:00起開始計(jì)時(shí)。 (1)按P3.2進(jìn)入選擇調(diào)節(jié)狀態(tài):每按一次系統(tǒng)將依次選擇打開對(duì)秒、分、時(shí)、日、月、年的調(diào)節(jié)模式; (2)按P3.3進(jìn)入循環(huán)遞增設(shè)定狀態(tài):與P3.2相結(jié)合依次設(shè)定正確時(shí)間。 1.2 系統(tǒng)設(shè)計(jì)說明 (1)系統(tǒng)由AT89C51、LED數(shù)碼管、驅(qū)動(dòng)軟件、按鍵、電容、電阻、蜂鳴器等部分構(gòu)成,能實(shí)現(xiàn)時(shí)間的調(diào)整、輸出、

3、調(diào)時(shí)間等功能。(2)時(shí)間調(diào)整:該設(shè)計(jì)需要校對(duì)時(shí)間,所以用兩個(gè)按鍵來實(shí)現(xiàn)。按“選調(diào)”來選擇需要調(diào)節(jié)的部分,按“調(diào)節(jié)”來調(diào)節(jié)各部分時(shí)間。“選調(diào)”時(shí)系統(tǒng)暫停計(jì)時(shí),調(diào)節(jié)結(jié)束后將“選調(diào)”標(biāo)志位(即數(shù)碼管小數(shù)點(diǎn)點(diǎn)亮)移動(dòng)到毫秒上時(shí)計(jì)時(shí)繼續(xù)。 (3)中斷:中斷技術(shù)在單片系統(tǒng)中有著十分重要的作用,它不僅可以提高單片機(jī)CPU的效率,也可以對(duì)突發(fā)事件處理。所謂中斷就是CPU在執(zhí)行主程序的過程中,被意外事件打斷,轉(zhuǎn)去執(zhí)行一段子程序,CPU執(zhí)行完子程序后,又返回到原程序繼續(xù)執(zhí)行。本系統(tǒng)采用的中斷方式為定時(shí)器0方式2。1.3系統(tǒng)設(shè)計(jì)目的通過課程設(shè)計(jì)的教學(xué)實(shí)踐,鞏固、加深和擴(kuò)大51系列單片機(jī)應(yīng)用的知識(shí)面,提高綜合及靈活運(yùn)

4、用所學(xué)知識(shí)解決工業(yè)控制的能力。對(duì)課題設(shè)計(jì)方案的分析、選擇、比較、熟悉用51單片機(jī)做系統(tǒng)開發(fā)、研制的過程,軟硬件設(shè)計(jì)的方法、內(nèi)容及步驟。提高動(dòng)手實(shí)踐能力、提高科學(xué)的思維能力。1.4系統(tǒng)設(shè)計(jì)要求1.掌握單片機(jī)最小系統(tǒng)的電路原理圖; 2.硬件的焊接、連接;3.獨(dú)立編輯、編譯軟件;4.調(diào)試要求:本設(shè)計(jì)以MCS-51系列單片機(jī)為核心,采用常見電子器件設(shè)計(jì),一個(gè)電源開關(guān),一個(gè)按鍵負(fù)責(zé)設(shè)置時(shí)間和開始走時(shí),一個(gè)按鍵負(fù)責(zé)循環(huán)遞增時(shí)間,16位數(shù)碼管顯示,可實(shí)時(shí)顯示年、月、日、時(shí)、分、秒、百分秒,要求精確到0.01秒。整點(diǎn)能播放提示音,最后一聲較尖銳,為準(zhǔn)確整點(diǎn)時(shí)間。要求按鍵輸入采用中斷方式,按鍵A接INT0,按鍵

5、B接INT1。第2章 硬件電路設(shè)計(jì)2.1總原理圖 如原理圖所示,硬件系統(tǒng)主要由單片機(jī)最小應(yīng)用系統(tǒng)、LED數(shù)碼管顯示模塊、電源模塊、晶振模塊、按鍵模塊、復(fù)位電路、整點(diǎn)報(bào)時(shí)電路、驅(qū)動(dòng)電路等組成。2.2各個(gè)模塊設(shè)計(jì)1、單片機(jī)最小系統(tǒng) AT89C51概述:AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含4kbytes的可反復(fù)擦寫的只讀程序存儲(chǔ)器(PEROM)和128bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元,功能強(qiáng)大AT89C51單片

6、機(jī)可為您提供許多高性價(jià)比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。 功能特性概述: AT89C51提供以下標(biāo)準(zhǔn)功能:4k字節(jié)Flash閃速存儲(chǔ)器,128字節(jié)內(nèi)部RAM,32個(gè)IO口線,兩個(gè)16位定時(shí)計(jì)數(shù)器,一個(gè)5向量兩級(jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。2、顯示模塊 LED數(shù)碼管是由發(fā)光二極管構(gòu)成的,亦稱半導(dǎo)體數(shù)碼管。將條狀發(fā)光二極

7、管按照共陰極(負(fù)極)或共陽極(正極)的方法連接,組成“8”字,再把發(fā)光二極管另一電極作筆段電極,就構(gòu)成了LED數(shù)碼管。若按規(guī)定使某些筆段上的發(fā)光二極管發(fā)光,就能顯示從09的系列數(shù)字。同熒光數(shù)碼管(VFD)、輝光數(shù)碼管(NRT)相比,它具有:體積小、功耗低、耐震動(dòng)、壽命長、亮度高、單色性好、發(fā)光響應(yīng)的時(shí)間短,能與TTL、CMOS電路兼容等的數(shù)顯器件。+、-分別表示公共陽極和公共陰極。ag是7個(gè)筆段電極,DP為小數(shù)點(diǎn)。 本系統(tǒng)利用4個(gè)4位LED數(shù)碼管顯示時(shí)間,共陽極結(jié)構(gòu)。LED數(shù)碼管由8段發(fā)光二極管組成,當(dāng)要顯示某個(gè)數(shù)字時(shí)只要將數(shù)字所對(duì)應(yīng)的引腳送入低電平。3.按鍵模塊 本設(shè)計(jì)中主要有三個(gè)控制按鍵,

8、按鍵功能為: (1)按P3.6時(shí)鐘在2013 01 01 00:00:00起開始計(jì)時(shí); (1)按P3.2進(jìn)入選擇調(diào)節(jié)狀態(tài):每按一次系統(tǒng)將依次選擇打開對(duì)秒、分、時(shí)、日、月、年的調(diào)節(jié)模式; (2)按P3.3進(jìn)入循環(huán)遞增設(shè)定狀態(tài):與P3.2相結(jié)合依次設(shè)定正確時(shí)間。 4晶振模塊 時(shí)鐘振蕩電路下圖所示,時(shí)鐘振蕩電路用于產(chǎn)生單片機(jī)正常工作時(shí)所需要的時(shí)鐘信號(hào),電路由兩個(gè)30pF的瓷片電容和一個(gè)11.0592MHz的晶振組成,并接入到單片機(jī)的XTAL1和XTAL2引腳處,使單片機(jī)工作于內(nèi)部振蕩模式。此電路在加電后延遲大約10ms振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時(shí)鐘信號(hào),其振蕩頻率主要由石

9、英晶振的頻率決定。電路中兩個(gè)電容C1、C2的作用使電路快速起振,提高電路的運(yùn)行速度。5.復(fù)位電路復(fù)位電路由電阻和極性電容組成,最簡單的一種上電復(fù)位及按鍵復(fù)位電路如下圖所示:上電后,由于電容充電,使RST持續(xù)一段時(shí)間的高電平,完成復(fù)位操作;當(dāng)單片機(jī)處于運(yùn)行中或死鎖時(shí),按下“復(fù)位”按鈕,也可使單片機(jī)進(jìn)入復(fù)位狀態(tài)。通常選擇C=10-30F,R=100-10006.整點(diǎn)報(bào)時(shí)電路整點(diǎn)報(bào)時(shí)電路如右圖所示,蜂鳴器使用三極管PN5138作為驅(qū)動(dòng)器,當(dāng)D8輸入高電平時(shí),三級(jí)管導(dǎo)通,SPEAKER蜂鳴。在軟件中,D8在一定的時(shí)間段輸入矩形波信號(hào),故蜂鳴器間歇蜂鳴。7. 驅(qū)動(dòng)電路 數(shù)碼管段選采用ULN2803作為驅(qū)

10、動(dòng)元件,該電路為反向輸出型,即輸入低電平電壓,輸出端才能導(dǎo)通工作。其引腳圖如右圖,內(nèi)部電路圖如下圖。 數(shù)碼管位選驅(qū)動(dòng)采用三極管PN5138構(gòu)成的驅(qū)動(dòng)電路,2.3 器件清單 元件名封裝名型號(hào)數(shù)量單片機(jī)DIL40AT89C511石英晶體振蕩器XTAL18CRYSTAL1四位八段共陽數(shù)碼管MPX4-CA4達(dá)林頓管DIL16ULN20031三極管TO92PN513817蜂鳴器SPEAKER1按鍵NULLBUTTON4反相器DIL1474LS047電容CAPC060X3302013A0R5CAT2A3電阻RES18010WATT0R22若干 第3章 軟件設(shè)計(jì)3.1 硬件框圖開始系統(tǒng)初始化按下開始鍵計(jì)時(shí)開

11、始按下選調(diào)鍵計(jì)時(shí)暫停,進(jìn)入調(diào)時(shí)模式。(每按一次,選調(diào)標(biāo)志位左移一個(gè)單元,即可依次選中秒、分、時(shí)、日、月、年,再按一次,調(diào)時(shí)模式結(jié)束,計(jì)時(shí)繼續(xù)。)按下調(diào)節(jié)鍵(每按一次,選調(diào)標(biāo)志位所在單元數(shù)值加1,可循環(huán)遞增時(shí)間。)距整點(diǎn)是否還差5秒調(diào)節(jié)結(jié)束,正常計(jì)時(shí)蜂鳴器鳴叫,每秒一聲,整點(diǎn)時(shí)蜂鳴聲較尖銳,而后截止。精確時(shí)鐘繼續(xù)工作 根據(jù)以上的電子時(shí)鐘的設(shè)計(jì)要求可以分為以下的幾個(gè)硬件電路模塊:單片機(jī)模塊、顯示模塊、時(shí)鐘電路、復(fù)位電路與按鍵電路等,模塊之間的關(guān)系圖如下面得方框電路圖所示。3.2 程序流程圖 N Y第4章 心得體會(huì)本次課程設(shè)計(jì)是用AT89C51單片機(jī)CPU及接口電路設(shè)計(jì)一個(gè)精確時(shí)鐘,經(jīng)過兩個(gè)星期的設(shè)

12、計(jì)與調(diào)試,結(jié)果滿足要求,驗(yàn)證無誤。通過單片機(jī)硬件電路的調(diào)試,實(shí)現(xiàn)了預(yù)先設(shè)定的功能,設(shè)計(jì)主要用到了多種芯片,程序也比較長比較麻煩,同時(shí)也遇到了不少困難,尤其是關(guān)于數(shù)碼管驅(qū)動(dòng)電路的設(shè)計(jì)實(shí)現(xiàn)。由于我們采用了共16位8段數(shù)碼管,因此 關(guān)于數(shù)碼管位選驅(qū)動(dòng)元件的選擇著實(shí)困難。我們先后嘗試使用74HCT245、ULN2803、PN5138等元件,盡管前兩個(gè)可以在Proteus中成功的仿真出來,但實(shí)際計(jì)算確表明它們的驅(qū)動(dòng)能力不足,無法滿足做實(shí)物的要求。而三極管盡管合適,但卻在仿真時(shí)問題重重,無法獲得穩(wěn)定的數(shù)碼顯示,三極管上所串接的電阻也難以確定最佳阻值。我們用了兩天的時(shí)間查詢資料請教學(xué)長方才完美解決。通過本次

13、設(shè)計(jì),我們系統(tǒng)的了解了精確時(shí)鐘的設(shè)計(jì)流程,尤其是硬、軟件的設(shè)計(jì)方法,掌握了鍵盤顯示電路的基本功能及編程方法,掌握了鍵盤電路和顯示電路的一般原理,也進(jìn)一步掌握并驗(yàn)證了了89C51定時(shí)器的使用和中斷處理器程序的編程方法,并且加深了對(duì)C語言編程的掌握程度。開拓了思路,鍛煉了實(shí)踐動(dòng)手能力,提高了分工協(xié)作能力和分析問題,解決問題的能力,達(dá)到了本次課程設(shè)計(jì)的目的。此次單片機(jī)課程設(shè)計(jì),從選題到定稿,從理論到實(shí)踐,在整整兩個(gè)星期里,學(xué)到了很多的東西。同時(shí)不僅鞏固了以前所學(xué)過的知識(shí),而且還學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合至關(guān)重要,而電子產(chǎn)品的設(shè)計(jì)更要精益求精,無論

14、是C語言編程,還是電路圖的設(shè)計(jì)與仿真,唯有細(xì)心謹(jǐn)慎才能獲得成功!單片機(jī)課程設(shè)計(jì)雖然結(jié)束了,但通過設(shè)計(jì)所學(xué)到的東西將長久存在。相信這次設(shè)計(jì)帶給我們的嚴(yán)謹(jǐn)?shù)膶W(xué)習(xí)態(tài)度和一絲不茍的科學(xué)作風(fēng)將會(huì)給我們未來的工作和學(xué)習(xí)打下一個(gè)更堅(jiān)實(shí)的基礎(chǔ)。第5章 附件附錄A:源程序清單如下:/* 數(shù)碼管精確時(shí)鐘設(shè)計(jì)程序*/#include / 頭文件定義#define dao 523#define uint unsigned int / 數(shù)據(jù)類型定義#define uchar unsigned char / 數(shù)據(jù)類型定義uchar mon(uchar month);uchar leap(uchar year);void

15、delayms(uint);void init();void display();void music();void scankey();void delayms1(uint);void start(); sbit sound=P37;sbit key1=P36;uint num=0,num1=0,num2=0,num3=0,s1num=0;uint bmiaos,bmiaog,bmiao,miaos,miaog,miao,fens,feng,fen,shis,shig,shi,days,dayg,day=1,months,monthg,month=1,yearq,yearb,years,ye

16、arg,year=2013,n,m,i,z=1,flag=0;uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;/* 主程序main()*/void main() while(1) if(flag=1) init(); flag=0; start(); scankey(); display(); /* 初始化子程序*/void init() /初始子程序TMOD=0x01;TH0=0xd8;TL0=0xf0;EA=1;EX0=1;EX1=1;IT0=1

17、;IT1=1;ET0=1;TR0=1;/* 時(shí)鐘的年、月、日、時(shí)、分、秒、百分秒動(dòng)態(tài)掃描程序*/void display() /七段數(shù)碼管顯示程序 bmiaos=bmiao/10; /百分秒顯示程序 bmiaog=bmiao%10; P1=0x7f; delayms(1); P0=tablebmiaog; delayms1(1); P1=0xbf; delayms(1); P0=tablebmiaos; delayms1(1); miaos=miao/10; /秒顯示程序 miaog=miao%10; P1=0xdf; delayms(1); P0=tablemiaog; delayms1(1

18、); P1=0xef; delayms(1); P0=tablemiaos; delayms1(1); fens=fen/10; /分顯示程序 feng=fen%10; P1=0xf7; delayms(1); P0=tablefeng; delayms1(1); P1=0xfb ; delayms(1); P0=tablefens; delayms1(1); shis=shi/10; /時(shí)顯示程序 shig=shi%10; P1=0xfd; delayms(1); P0=tableshig; delayms1(1); P1=0xfe; delayms(1); P0=tableshis; de

19、layms1(1); P1=0xff; days=day/10; /天數(shù)顯示程序 dayg=day%10; P2=0x7f; delayms(1); P0=tabledayg; delayms1(1); P2=0xbf; delayms(1); P0=tabledays; delayms1(1); P2=0xff; months=month/10; /月數(shù)顯示程序 monthg=month%10; P2=0xdf; delayms(1); P0=tablemonthg; delayms1(1); P2=0xef; delayms(1); P0=tablemonths; delayms1(1);

20、 P2=0xff; yearq=year/1000; /年數(shù)顯示程序 yearb=year%1000/100; years=year%100/10; yearg=year%10; P2=0xf7; delayms(1); P0=tableyearg; delayms1(1); P2=0xfb; delayms(1); P0=tableyears; delayms1(1); P2=0xfd; delayms(1); P0=tableyearb; delayms1(1); P2=0xfe; delayms(1); P0=tableyearq; delayms1(1); P2=0xff;/* 模式為

21、零,方式為一定時(shí)中斷程序*/ void T0_time()interrupt 1 uint n; TH0=0xd8; TL0=0xf0; bmiao+; if(bmiao=100) bmiao=0; miao+; if(fen=59)&(miao=55) music(); delayms(1); if(miao=60) miao=0; fen+; if(fen=60) fen=0; shi+; if(shi=24) shi=0; day+; n=mon(month); if(day=n) day=1; month+; if(month=13) year+; month=1; /* 計(jì)算每年每月

22、份的天數(shù) */ uchar mon(uchar month) switch(month) case 1:case 3:case 5:case 7:case 8:case 10: case 12: return 32;break; case 4: case 6: case 11: case 9:return 31;break; case 2:return leap(year);break; /* 計(jì)算每年二月份的天數(shù) */ uchar leap(uchar year) year+=2000; if(year%4=0) if(year%100=0) if(year%400=0) return 30

23、; else return 29; else return 30; else return 29; /* 按鍵中斷零掃描程序 */ void scankey() if(s1num=1)P1=0xdf;P0=0x7f;delayms(1);if(s1num=2)P1=0xf7;P0=0x7f;delayms(1);if(s1num=3)P1=0xdf;P0=0x7f;delayms(1);P1=0xff;if(s1num=4) P2=0x7f;P0=0x7f;delayms(1);P2=0xff;if(s1num=5)P2=0xdf;P0=0x7f;delayms(1);P2=0xff;if(s1num=6) P2=0xf7;P0=0x7f;delayms(1);P2=0xff;if(s1num=7)TR0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論