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

下載本文檔

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

文檔簡(jiǎn)介

1、鄭州航空工業(yè)管理學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)論文2010屆 電子信息工程專業(yè)1013083班級(jí)二O二年十二月二十七日基于STC89C5單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)一. 摘要該課程設(shè)計(jì)是利用STC89C52單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器,以及行 列矩陣鍵盤和LED顯示器等部件,設(shè)計(jì)一個(gè)單片機(jī)電子時(shí)鐘。設(shè)計(jì)的 電子時(shí)鐘通過數(shù)碼管顯示,并能通過按鍵實(shí)現(xiàn)設(shè)置時(shí)間和暫停、 啟動(dòng) 控制。二. 關(guān)鍵詞單片機(jī),數(shù)字時(shí)鐘,定時(shí)中斷,定時(shí)/計(jì)數(shù)器三. 設(shè)計(jì)要求1、利用單片機(jī)內(nèi)部的定時(shí)器實(shí)現(xiàn)時(shí)鐘功能;2、能夠顯示小時(shí)、分鐘、秒鐘;3、復(fù)位后初始時(shí)間為12-00 - 00;4、能夠設(shè)定時(shí)分秒。四. 基本原理用定時(shí)/計(jì)數(shù)器TO,工作于定時(shí)方式

2、,采用方式1,對(duì)12MHZ的 系統(tǒng)時(shí)鐘進(jìn)行定時(shí)計(jì)數(shù),初值設(shè)為 XXYY(自己計(jì)算)。形成定時(shí)時(shí)間 為50ms再有循環(huán)20次控制形成1S的定時(shí)時(shí)間,用此時(shí)間間隔作 為秒表。秒進(jìn)60分加1,分夠60時(shí)加1,時(shí)夠24清0。把秒、分、時(shí)計(jì)數(shù)器分成十位和個(gè)位放到 8個(gè)數(shù)碼管的顯示緩沖區(qū),通過數(shù)碼管顯示出來。顯示格式為小時(shí)十位、小時(shí)個(gè)位,一,分十位、分個(gè)位,一,秒十位、秒個(gè)位。在處理過程中加上了按鍵 判斷程序,能對(duì)按鍵處理。五. 單片機(jī)定時(shí)計(jì)數(shù)資源介紹1. 工作方式寄存器TMOD寄存器TMOD是定時(shí)器/計(jì)數(shù)器的工作方式控制寄存器,是一個(gè)可編程的特殊功能寄存器,字節(jié)地址為89H,不可位尋址。其中低四位控制T

3、0,高四位控制T1,其格式如圖所示:D7 D6 D5 D4 D3 D2 D1 D0GATEC/M1M0GATEC/亍M1M0GATE控制方式選擇位,用來控制定時(shí)器啟動(dòng)操作方式當(dāng)GATE=C0寸,只能由軟件控制TR0或TR1位來控制定時(shí)器的啟 停。TRi(i=0,1)位為1,定時(shí)器啟動(dòng),開始工作;TRi(i=0,1)為0時(shí), 定時(shí)器停止工作;當(dāng)GATE=1時(shí),定時(shí)器的啟動(dòng)要由外部中斷引腳和 TRi(i=0,1)位 共同控制。只有當(dāng)外部中斷引腳為高時(shí),TRi(i=0,1)置1才能啟動(dòng)定 時(shí)器工作。C/T:計(jì)數(shù)/定時(shí)方式選擇位,當(dāng)C/T=0時(shí)設(shè)置為定時(shí)器工作方 式,計(jì)數(shù)脈沖由內(nèi)部提供,計(jì)數(shù)周期等于機(jī)

4、器周期。當(dāng)C/T =1時(shí)設(shè)置為計(jì)數(shù)器工作方式,計(jì)數(shù)脈沖由外部引腳T0或T1引入。M1,M0:工作方式控制位,這2位可形成四種編碼,對(duì)應(yīng)于四種工 作方式。4種工作方式對(duì)應(yīng)于下表:M1M0工作方式方式說明00方式013位計(jì)數(shù)器,只用TLi低5位和THi的8位01方式116位計(jì)數(shù)器10方式28位自動(dòng)重裝計(jì)數(shù)器,THi的值在計(jì)數(shù) 中不變,TLi溢出時(shí),THi中的值自動(dòng)裝入TLi中11方式3T0分成2個(gè)獨(dú)立的8位計(jì)數(shù)器,T1停止計(jì)數(shù)2.控制寄存器TCON控制寄存器TCON是一個(gè)8位特殊功能寄存器,字節(jié)地址為88H,可 以位尋址,位地址為88H-8FH,用來存放控制字,控制定時(shí)器的啟停, 定時(shí)器的溢出標(biāo)志

5、設(shè)置和外部觸發(fā)方式等。D7 D6 D5 D4 D3 D2 D1 DOTF1TR1TF0TR0IE1IT1IE0IT0本設(shè)計(jì)中用到了兩個(gè)定時(shí)器,并且都用的是方式1,定時(shí)器0用來產(chǎn)生秒信號(hào),定時(shí)器1用來控制在調(diào)表的時(shí)候產(chǎn)生閃爍。程序的初始化如下:TMOD=0x11;定時(shí)器0,1的工作方式1TH0=(65535-50000)/256; 定時(shí)器 0 賦初值TL0=(65535-50000)%256;TH1=(65535-50000)/256;/ 定時(shí)器 1 賦初值TL1=(65535-50000)%256;TR0=1;/打開定時(shí)器0TR1=0;/關(guān)閉定時(shí)器1ET1 = 1;打開定時(shí)器1的中斷ET0=1

6、;打開定時(shí)器0的中斷EA=1;打開總中斷六. 外圍電路簡(jiǎn)介鍵盤是單片機(jī)應(yīng)用系統(tǒng)中最常用的輸入設(shè)備,在單片機(jī)應(yīng)用系統(tǒng) 中,操作人員一般都是通過鍵盤向單片機(jī)系統(tǒng)輸入指令、地址和數(shù)據(jù), 實(shí)現(xiàn)簡(jiǎn)單的人機(jī)通信。鍵盤實(shí)際上是一組按鍵開關(guān)的集合, 平時(shí)按鍵 開關(guān)總是處于斷開狀態(tài),當(dāng)按下鍵時(shí)它才閉合。鍵盤的結(jié)構(gòu)形式一般 有兩種:獨(dú)立式鍵盤和矩陣式鍵盤。矩陣式鍵盤的工作方式有3種:查詢工作方式、定時(shí)掃描工作方式和中斷工作方式。LED數(shù)碼管顯示器:在單片機(jī)應(yīng)用系統(tǒng)中,經(jīng)常用到 LED數(shù)碼管 作為顯示輸出設(shè)備,LED數(shù)碼管顯示器雖然顯示信息簡(jiǎn)單,但它具有 顯示清晰、亮度高、使用電壓低、壽命長(zhǎng)、與單片機(jī)接口方便等特點(diǎn)

7、, 基本上能夠滿足單片機(jī)應(yīng)用系統(tǒng)的需要,所以在單片機(jī)應(yīng)用系統(tǒng)中經(jīng) 常用到。LED數(shù)碼管顯示器是由發(fā)光二極管按一定的結(jié)構(gòu)組合起來的 顯示器件。在單片機(jī)應(yīng)用系統(tǒng)中通常使用的是 8段式LED數(shù)碼管顯示 器,它有共陰極和共陽極兩種。所謂譯碼方式是指由顯示字符轉(zhuǎn)換得 到對(duì)應(yīng)的字段碼的方式。對(duì)于LED數(shù)碼管顯示器,通常的譯碼方式有 兩種:硬件譯碼方式和軟件譯碼方式。LED數(shù)碼管在顯示時(shí),通常有 兩種顯示方式:靜態(tài)顯示方式和動(dòng)態(tài)顯示方式。在使用時(shí)可以把它們 組合起來。在實(shí)際應(yīng)用時(shí),如果數(shù)碼管個(gè)數(shù)較少,通常用硬件譯碼靜 態(tài)顯示,在數(shù)碼管個(gè)數(shù)較多時(shí),則通常用軟件譯碼動(dòng)態(tài)顯示。七. 電子時(shí)鐘的硬件設(shè)計(jì)復(fù)位電路串口

8、電路晶振電路單片機(jī)顯示電路鍵盤電路C130pC2X112M30pC3I . I 10UP10P11R110kQ QU12122129 kU274HC573U374HC57324252627,XTAL1P0.0/AD0P0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9 P2.2/A10PSENALEEAP2.3/A11 P2.4/A12P2.6/A14P2.7/A15P1 0/T2P3.0/RXDP3.1/TXDP3.2/INTLP1 1/T2EXP1.2P1.4P3.4/T0P1.5P3.

9、5/T1P1.6P3.6/WRP1.7P3.7/RDAT89C524523DDDDDDDD E 0109101P*本設(shè)計(jì)的硬件電路主要由上電自動(dòng)復(fù)位電路,時(shí)鐘電路,74HC573鎖存 器電路和數(shù)碼管及按鍵電路組成。1. 上電自動(dòng)復(fù)位電路在系統(tǒng)上電的時(shí)候?qū)纹瑱C(jī)復(fù)位。2. 晶振電路主要產(chǎn)生單片機(jī)的時(shí)鐘電路。3. 鎖存器電路控制數(shù)碼管可以節(jié)省單片機(jī)的10資源,且74HC573提供的電流足以驅(qū)動(dòng)共陽極數(shù)碼管,且具有控制簡(jiǎn)單等優(yōu)點(diǎn)。八. 元器件清單序號(hào)器件名稱參數(shù)數(shù)量1單片機(jī)STC89C5212晶振12M13電容30pF24電容10uF15電阻10K16鎖存器74HC57327數(shù)碼管共陽2九軟件流程圖

10、設(shè)計(jì)注:按鍵處理模塊/宏定義宏定義/定義按鍵,控制調(diào)表位 /定義按鍵,控制調(diào)表加 /定義按鍵,控制調(diào)表減 /把局鍵盤變?yōu)楠?dú)立按鍵/聲明按鍵掃描程序/聲明中斷初始化函數(shù)/聲明粗劣延時(shí)函數(shù)/聲明調(diào)表輔助顯示函數(shù)/聲明顯示函數(shù)按鍵處理設(shè)置為:如沒有按鍵,則時(shí)鐘正常走時(shí)。當(dāng)按下 K16按鍵時(shí),進(jìn) 入調(diào)分狀態(tài),時(shí)鐘停止走動(dòng);按 K 15和K 14按鍵可進(jìn)行加1或減1操作;繼 續(xù)按K 16鍵可分別進(jìn)行分和秒的調(diào)整;最后按 K0鍵將退出調(diào)整狀態(tài),時(shí)鐘開 始計(jì)時(shí)運(yùn)行。十.軟件程序#in clude<reg52.h>#defi ne uint un sig ned int#defi ne uchar

11、 un sig ned char / sbit con=P33;sbit add=P3A2;sbit sub=P3A1;sbit gn d=P3A4;void keysca n();void in it();void delay( uint z);void display11();void display();uchar hour,minute,second,count,j;/ 定義各現(xiàn)實(shí)的數(shù)據(jù)uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,定于數(shù)碼管段碼0x92,0x82,0xf8,0x80,0x90;void delay(uint z)/粗劣延時(shí)函數(shù)ui

12、 nt x,y;for(x=z;x>0;x-)for(y=100;y>0;y-);void display11()/調(diào)表輔助顯示函數(shù)if(cou nt!=1)P0=tablehour/10;P2=0x7f;delay(2);P2=0xff;P0=tablehour%10;P2=0xbf;delay(2);P2=0xff;P0=0xbf;P2=0xdf;delay(2);P2=0xff;if(cou nt!=2)P0=tablemi nu te/10;P2=0xef;delay(2);P2=0xff;P0=tablemi nute%10;P2=0xf7;delay(2);P2=0xf

13、f;P0=0xbf;P2=0xfb;delay(2);P2=0xff;if(cou nt!=3)PO=tableseco nd/10;P2=0xfd;delay(2);P2=0xff;P0=tableseco nd%10;P2=0xfe;delay(2);P2=0xff;P2=0xff;/ 顯示函數(shù)void display()P0=tablehour/10;P2=0x7f; delay(2); P2=0xff;P0=tablehour%10;P2=0xbf;delay(2);P2=0xff;P0=0xbf;P2=0xdf;delay(2);P2=0xff;P0=tablemi nu te/10

14、;P2=0xef;delay(2);P2=0xff;P0=tablemi nute%10;P2=0xf7; delay(2);P2=0xff;P0=0xbf;P2=0xfb;delay(2);P2=0xff;PO=tableseco nd/10;P2=0xfd;delay(2);P2=0xff;P0=tableseco nd%10;P2=0xfe;delay(2);P2=0xff;P2=0xff;void init()/中斷初始化函數(shù)gn d=0;hour=12;minu te=0;sec on d=0;TMOD=Ox11;TH0=(65535-50000)/256;TL0=(65535-50

15、000)%256;TH1=(65535-50000)/256;TL1=(65535-50000)%256;TR0=1;TR1=0;ET仁 1;ET0=1;EA=1;void ma in ()/ 主函數(shù)ini t();while(1)keysca n();if(TR1=1)if(j<=20)display11();if(j>20&&j<=40)display。;void keysca n()/ 鍵盤掃描函數(shù)if(con=0)delay(2);if(con=0)while(!c on);coun t+;if(cou nt!=O)TR0=0;TR1=1;if(co

16、un t=0)display();if(co un t=1)if(add=0)delay(120);if(add=0)hour+;if(hour=24)hour=0;if(sub=0)delay(120);if(sub=0)hour-;if(hour=-1)hour=23;if(coun t=2)if(add=0)delay(120);if(add=0)minu te+;if(mi nute=60)minu te=0;if(sub=0)delay(120);if(sub=0)minu te-;if(mi nu te=-1)minu te=59;if(coun t=3)if(add=0)dela

17、y(120);if(add=0)second+;if(sec on d=60)sec on d=0;if(sub=O)delay(120);if(sub=0)sec on d-;if(sec on d=-1)second=59;if(co un t=4)coun t=0;TR0=1;TR1=0;void timer() interrupt 1/ 定時(shí)器 TO 中斷函數(shù)uchar i;TH0=(65535-50000)/256;TL0=(65535-50000)%256;i+;if(i=20)i=0;second+;if(sec on d=60)sec on d=0;minu te+;if(mi

18、 nute=60)minu te=0;hour+;if(hour=24) hour=0; 定時(shí)器T1中斷函數(shù)void sha n()in terrupt 3TH1=(65535-50000)/256;TL1=(65535-50000)%256;j+;if(j<=20)display11();if(j>20&&j<=40)display();if(j=41)j=0;課程設(shè)計(jì)總結(jié):通過這次的課程設(shè)計(jì),我更加了解了KeilC51集成環(huán)境和PROTEUS仿真軟件的使用,用此軟件練習(xí)電子時(shí)鐘的設(shè)計(jì),不僅能夠掌握此軟件的使用方法,而且 復(fù)習(xí)了原來的C語言,對(duì)電子時(shí)鐘的原理和電子時(shí)鐘的匯編程序有了更進(jìn)一步的理 解。仿真實(shí)現(xiàn)了把抽象的東西具體化,把理論和實(shí)際結(jié)合起

溫馨提示

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