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

下載本文檔

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

文檔簡介

1、【目名稱:定時器時鋰數(shù)虱賛顯示姓 名:班 級:學(xué) 號: 日 期:2012年6月29日1.摘要:時鐘是人類生活中必不可少的的工具,本設(shè)計從日常生活中的事物入手,通過對時鐘 計時器的設(shè)計,讓我們認(rèn)識到單片機已經(jīng)深入到我們生活的每個領(lǐng)域,該設(shè)計不僅可以鍛 煉我們的動手能力,而且可以加深我們對單片機的認(rèn)識和激發(fā)我們隊位置科學(xué)領(lǐng)域的探 索。利用單片機實現(xiàn)教學(xué)數(shù)字時鐘計時的主要功能,采用獨立式按鍵進行時間調(diào)整,其中 AT89C52是核心元件同是采用數(shù)碼管LED動態(tài)顯示“時”,“分”,“秒”的現(xiàn)代計時裝置。 與傳統(tǒng)機械表相比,它具有走時精確,顯示直觀等特點。它的計時周期為24小時,顯滿 刻度為“23時59分

2、59秒”。該系統(tǒng)同時具有硬件設(shè)計簡單,工作穩(wěn)定性高,價格低廉等 優(yōu)點。1.1. 關(guān)鍵詞AT89C52、LED 顯示1.2. 功能要求1)七位數(shù)碼管顯示時、分、秒,以24小時運算2)可實現(xiàn)時分調(diào)整1.3. 主要硬件元器件的介紹1.3. 151單片機芯片根據(jù)初步這幾方案的分析,設(shè)計這樣一個簡單的應(yīng)用系統(tǒng),可以選擇帶有EPROM的單 片機,應(yīng)用程序直接存儲在片,不用在外部擴展程序存儲器,電路可以簡化。該系統(tǒng)的設(shè) 計我們采用8051芯片。下圖所示為雙列直插式封裝的8051AH芯片的管腳圖,功能如下:8051 AH芯片的管腳圖1. 電源管腳Vcc (40 腳):接+5V; Vss (20)腳:接地。2.

3、 時鐘信號管腳XI (19腳),X2 (18腳):外部時鐘信號的兩個管腳。3. 控制線1)RESET(9腳):用作復(fù)位輸入端。2)EA /VP (31腳):EA為訪問部或外部程序存儲器的選擇信號。對片EPROM編程時, 此管腳(作VP)接入21V編程電壓。3)ALE/P (30腳):當(dāng)訪問外部存儲器時,ALE信號的負(fù)跳變將P0 口上的低8位地址 送入鎖存器。當(dāng)對EPROM編程時,該管腳(P)用于輸入編程脈沖。4)PSEN (29腳):外部程序存儲器讀選通控制信號。4. 輸入/輸出口線1)P0 口 (32-39腳):8路漏極開路型雙向并行I/O 口。在訪問外部存儲器時,P0 口作 為低8位地址/

4、數(shù)據(jù)總線復(fù)用口,通過分時操作,先傳送低8位地址,利用ALE信號的下 降沿將地址鎖存,然后作為8位數(shù)據(jù)總線使用,用來傳送8位數(shù)據(jù)。在對片EPROM編程時, P0 口接受指令代碼;而在部程序校驗時,則輸出指令代碼,并要求外接上拉電阻。外部不 拓展位單片應(yīng)用,則作雙向I/O 口用,P0 口能以吸收電流的方式驅(qū)動8個LSTTL負(fù)載。2)P1 口(1-8腳):具有部上拉電阻的8位準(zhǔn)雙向I/O 口。在對片EPROM編程及校驗時, 它接收低8位地址。P1 口能驅(qū)動4個LETTL負(fù)載。3)P2 口 (21-28腳):具有部上拉電阻的8位準(zhǔn)雙向I/O 口。在外接存儲器時,P2 口作 為高8位地址總線。在對片EP

5、ROM編程及校驗時,它接受髙8位地址。P2 口驅(qū)動4個LETTL 負(fù)載。4) P3 口(10-17腳):8位帶有部上拉電阻的準(zhǔn)雙向I/O 口。每一位有具有如下的特殊 功能(或稱第二功能):P3.0(RXD):串行輸入端P3. 1 (TXD):串行輸入端P3.2(INT0):外部中斷0輸入端,低電平有效。P3.3(INT1):外部中斷1輸入端,低電平有效。P3. 4 (TO):定時/計數(shù)器0外部事件計數(shù)輸入端。P3.5(T1):定時/計數(shù)器1外部事件計數(shù)輸入端。P3.60VR):外部數(shù)據(jù)存儲器寫選通信號,低電平有效。P3.7(RD):外部數(shù)據(jù)存儲器讀選通信號,低電平有效。1.3.2 LED數(shù)碼管

6、數(shù)碼管是單片機系統(tǒng)中常用的顯示界面,可以顯示“1、2、3、4、5、6、7、8、9、0” 和十六進制中的“A、B、C、D、E、F”及小數(shù)點數(shù)碼管怎樣來顯示1,2,3,4呢?數(shù) 碼管實際上是由7個發(fā)光管組成8字形構(gòu)成的,加上小數(shù)點就是8個。分別被命名為 A,B,C,D,E,F,G,H(小數(shù)點)和DP。如果要顯示一個數(shù)字2,那么A,B,G,E,D這5個段的發(fā) 光管亮,C.F, H不亮,就可以了。hTABCDEFGHG1桿腫阿申i叫甲1共陽酬Mf尹桝緲”桝紳1D共陰結(jié)構(gòu)丨LED數(shù)碼管部結(jié)構(gòu)由圖可知:要使數(shù)碼管發(fā)光必須滿足兩個條件,一、COM端為髙電平。二、在A-G端的對應(yīng)部分輸入低電平。這樣電流流過相

7、應(yīng)的字段,數(shù)碼管就會顯示相應(yīng)的字符了!由于 數(shù)碼管” A,B,CDP”端都并在一起,要使每一個數(shù)碼管顯示各自的容,使用動靜態(tài)掃 描方式都可以。下面是共陰極數(shù)碼管字型碼表:顯示數(shù)字ABcl)El;cDP16進制代科00000001103111100111119FH20010Q10125113000011Q1ODII41091100I991150100100149H601000001411170001111111HI800Q00001Olli9000010010911A0010001IlliB1I000001cmC0110001i63111)1000000185HE011000016111F01l

8、1000171H111111I0FEII并行口51單片機結(jié)構(gòu)框圖1.4程序設(shè)計1.4. 1.主程序設(shè)計中計時采用定時器TO中斷完成。主程序循環(huán)調(diào)用顯示子程序和查鍵,當(dāng)端口有開 關(guān)按下時,轉(zhuǎn)入相應(yīng)的功能程序。流程圖如圖2-4-1所示。開始圖1-4-1主程序流程1. 4. 2.顯不子程序顯示子程序每次顯示6個連續(xù)存單元的十進制BCD碼數(shù)據(jù)。由于采用7段共陽LED數(shù)碼 管動態(tài)掃描實現(xiàn)數(shù)據(jù)顯示,顯示十進制BCD碼數(shù)據(jù)對應(yīng)段碼存放在ROM中。流程圖如圖 2-4-2所示。顯示時取存地址中數(shù)據(jù),然后查表得對應(yīng)顯示段碼從P0 口輸出,P2 口將為對應(yīng)的數(shù)碼 管供電,于是數(shù)碼管就會顯示該地址單元的數(shù)據(jù)。圖2-4

9、-2顯示子程序1.4. 3.定時器TO中斷服務(wù)程序定時溢出中斷周期設(shè)為50MS,中斷進入后先進行定時中斷初值校正,當(dāng)中斷累加到20 次時,對秒計數(shù)單元進行加1操作。時鐘最大計時值為23時59分59秒。#7FH存放熄 滅符”數(shù)據(jù),用于時間調(diào)整時的閃爍功能。在計數(shù)單元中,采用十進制BCD碼計數(shù),滿十 進位。流程圖如圖3. 3所示在程序中采用12MHZ晶振頻率,精度為1IS,定時初值為50MS,用循環(huán)程序進行20次 循環(huán)可到1S。當(dāng)1S到時調(diào)用加1程序并判斷秒、分是否為60,當(dāng)秒為60時,秒清零,分加1;當(dāng)分為60時,分清零。終端結(jié)束時,分時計時單元數(shù)據(jù)移入對應(yīng)顯示單元。(恢復(fù)現(xiàn)場中斷返回)圖3.3

10、定時器T0中斷服務(wù)程序1.5.按鍵設(shè)置采用共陽七段LED顯示器,其管腳a-g,ap與單片機AT89C52的P0 口相連;P0 口輸出段碼數(shù)據(jù);為保證其輸出的電平和LED顯示器所需的電平相匹配;P2. 0P2. 5作為列掃描輸出;P3.0, P3.1, P3.2, P3.3,接4個按鈕開關(guān),用于調(diào)時。16數(shù)碼管顯示結(jié)果此圖顯示的是:17點12分03秒Stpl/tf5?l: Seloci NCU 7ype 選捽單片機型號WCU Type AF Iknoe7C39CS4MH OOW 3?FTStop刃步咦z: g如Fin /打幵文樣咬件苑肉內(nèi)未用區(qū)刪血):g能血址網(wǎng):)枝益和oloaoypSAH &

11、打開立件前湊瑤沖葉曲打打開文件I程序丈件|豐口調(diào)試助手 棗文件|Procrai File: C:D0cur1enl2j aud SeltjJUjskAdninLslrator呈面Idxsx f迪址 00 ai 02 03 04 C6 C6 CT7 03 M OA OB OT OD OE OF :OOCQIOC0CG2000CC3DOOCG4D2 6 E F c o E EJ o 7 九AJCO FA2H/2Mlset.t!3共CC詰gg7rAF創(chuàng)0707龍H:?zf.F上22 AE 0? 12 OD 07 FE ?D FB3匚ZZSIC-ISP.ohchttp:/wrMlHloiLoryco

12、枝術(shù)支It: 1392280bl90(K永辛)Vor:4. 7.y01P HF-件前話q發(fā)沖?T開翔士115020 二1200 vQP訝步5?m: SQxt con rort?M Biud/14申行口DH 血5 工叮晨斉渝特率:誦蘭試罠高星低法特宰威使繪高破特企 最低謝存率矯5渡特率St緲V場漲a謖3E本宙和右下方選項中的選頂Doabla zpood /或倍臣C B歡倍逮( 12單倍娠蕩AkX署増益1/2 fvll Qn5U需低功耗16巫以下技蕩羽増蒞可選172 wn下次冷啟an 0.F1 1 與下既無關(guān)等于才可下號快送E動內(nèi)器擴敷ui-w.C荼止訪何 e允許訪旬 錨加薦)下慶下玄用尸應(yīng)用電序

13、時裕股癒心遐1并躺HS -5 S3般5:曲7皿“下費 先點下警閉再WC吐唸位說啟嚴(yán)EoycJcwI/下琵 |:| Re-DomiloaJ/衣S下裁 |廠毎滾下歎前酬週入?yún)未蛐唐缟駞^(qū)的文件,方便調(diào)試使用廠當(dāng)目樣代碼發(fā)生景化啟自動謂入文出并立即發(fā)送下迢渝令址項自定文下芬 厲機下茲I檢穌礎(chǔ)段I自勿増呈I IS? BZWl4 !? iy下功炸対s丁刪耐測無聊片機新煩竝咖效血癬各月以肓供貨用尸軟件啟動內(nèi)剖石門陽后只百停3Ef衛(wèi)H 去位列&、:狗EEfB%用程序反.(OT 01 ) 正在下觀(茂時間:17 W: 13FrogycrTi 0K / T9 OKVerify OK /弦臉血 cTxe t3ncs

14、/l9l5?WH :03:01下龍隴功聲音提示加腕空下載剛謝問書 .|progrmi tinx/卞送時間:M 01 Ku already encrypt. / 巳加密舷功計劉5Gias |漬栄注啊v NCLHIsory. uon做1.7程序#include /包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義tidefine KeyPort P3 /定義按鍵端口define DataPort PO /定義數(shù)據(jù)端口程序中遇到DataPort則用P0替換sbit LATCH1=P22;/定義鎖存使能端口段鎖存sb i t LATCH2=P2 3 ; /位鎖存unsigned char

15、hour.minute.second;/定義時分秒bit UpdateTimeFlag;/定義讀時間標(biāo)志unsigned char code dofly DuanMa10 = 0x3f10x0610x5b,0x4f10x66,0x6d,0x7d.0x07,0x7f,0x6f:/顯示段碼值09unsigned char code dofly WeiMa = Oxfe,Oxfd,Oxfb,0xf71Oxef,Oxdf,Oxbf10x7f;/分別對應(yīng)相應(yīng)的數(shù)碼管點亮,即位碼unsigned char TempData8: /存儲顯示值的全局變量void DelayUs2x(unsigned char

16、 t):/us 級延時函數(shù)聲明void DelayMs(unsigned char t): /ms 級延時void Display (unsigned char FirstBit, unsigned char Num):/ 數(shù)碼管顯示函數(shù) unsigned char KeyScan(void): /鍵盤掃描void Ini t TimerO(void):/定時器初始化/*主函數(shù)*/void main (void)unsigned char num;Init_TimerO();while (1)/主循環(huán)num二KeyScan();switch(num)case l:hour+;遷(hour=24

17、)hour=0;/正常時間 小時 加 1break;case 2:hour: if (hour=255)hour=23;/正常時間 小時減 1break;case 3:minute+; if (minute=60)minute=0;/分鐘加 1break;case 4:minute-: if (minute=255)minute=59;/分鐘減 1break;default:break;if(UpdateTimeFlag=1)UpdateTimeFlagO ;/數(shù)據(jù)的轉(zhuǎn)換,因我們采用數(shù)碼管0、9的顯示加入TempData0=dof1y DuanMahour/10: /時 將數(shù)據(jù)分開TempDa

18、ta1=dof1y DuanMahour%10:TempData2-0x40;TempData3-dofly DuanMaminute/10:/分TempData4二dofly DuanMaminute%10:TempData5 0x40;TempData6=dofly DuanMasecond/10:/秒TempData7= dof1y DuanMasecond%10:uS延時函數(shù),含有輸入?yún)?shù)unsigned char t,無返回值 unsigned char是定義無符號字符變量,其值的圍是 0255這里使用晶振12M,精確延時請使用匯編,大致延時 長度如下T=tx2+5 uS*/ voi

19、d DelayUs2x(unsigned char t)wh i1e(-1);mS延時函數(shù),含有輸入?yún)?shù)unsigned char t,無返回值 unsigned char是定義無符號字符變呈,其值的圍是 0、255這里使用晶振12M,精確延時請使用匯編 */ void DelayMs(unsigned char t)while(t)/大致延時ImSDelayUs2x(245);DelayUs2x(245);/*顯示函數(shù),用于動態(tài)掃描數(shù)碼管輸入?yún)?shù)FirstBit表示需要顯示的第一位,如賦值2表示從第三個數(shù)碼管開始顯示 如輸入0表示從第一個顯示。Num表示需要顯示的位數(shù),如需要顯示99兩位數(shù)值

20、則該值輸入2*/void Display(unsigned char FirstBit,unsigned char Num)static unsigned char i二0;DataPort=0; 清空數(shù)據(jù),防止有交替重影LATCH 1=1;/段鎖存LATCH1=0;DataPort=dof 1 y. WeiMai+FirstBit: /取位碼LATCH2=1; /位鎖存LATCH2二0;DataPort=TempDatai ; /取顯示數(shù)據(jù),段碼LATCH 1=1;/段鎖存LATCH1=0;i卄;if(i=Num)i 二 0;/*定時器初始化子程序void Init TimerO(void)TMOD |= 0x01;/使用模式1, 16位定時器,使用符號可以在使用多個定時器時不受影響/THO二0x00;給定初值/TLO二0x00;EA=1;總中斷打開ETO=1;定時器中斷打開TRO二1;/定時器開關(guān)打開/*-定時器中斷子程序void TimerO isr(void) interrupt 1static unsigned int numt i:THO二(65536-2000)/256;/重新賦值 2msTLO=(65536-2000)%256;Display(0.8);/調(diào)用數(shù)碼管掃描i卄;if(i=10)/20ms 更新一次1=0;UpdateT

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論