電子鐘設(shè)計(jì)(c語(yǔ)言設(shè)計(jì))_第1頁(yè)
電子鐘設(shè)計(jì)(c語(yǔ)言設(shè)計(jì))_第2頁(yè)
電子鐘設(shè)計(jì)(c語(yǔ)言設(shè)計(jì))_第3頁(yè)
電子鐘設(shè)計(jì)(c語(yǔ)言設(shè)計(jì))_第4頁(yè)
電子鐘設(shè)計(jì)(c語(yǔ)言設(shè)計(jì))_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、計(jì)算機(jī)工程實(shí)踐實(shí)習(xí)報(bào)告專 業(yè): 班 級(jí): 姓 名: 學(xué) 號(hào): 指導(dǎo)老師: 設(shè)計(jì)時(shí)間:指導(dǎo)教師對(duì)實(shí)習(xí)報(bào)告的評(píng)語(yǔ)指導(dǎo)教師簽字:年一 前 言漫步在繁華的現(xiàn)代化的大都市的大街上,隨時(shí)都可以看到街上有很多可以用卡取錢的機(jī)器(ATM自動(dòng)柜員機(jī)),十字路口的交通燈。我們的手機(jī),我們家里數(shù)碼電視機(jī)、數(shù)碼音響、遙控器、空調(diào)、智能玩具.這些“高科技”看上去是如此的神秘,它到底是怎樣構(gòu)成的,它是通過什么樣的程序和什么樣的方式來完成這一系列指令的呢?讓我們?nèi)″X更方便、避免城市的交通混亂和交通阻塞給我們生活帶來了處處方便。其實(shí)這也是用單片機(jī)來控制的,單片機(jī)在我們生活中觸手可及,它是如此地貼近我們的生活,單片機(jī)給我們的生

2、活帶來的有如此多的便利。目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用與智能化控制的科學(xué)家、工程師??萍荚桨l(fā)達(dá),智能化的東西就越多,使用的單片機(jī)就越多??磥韺W(xué)單片機(jī)是社會(huì)發(fā)展的需求。據(jù)統(tǒng)計(jì),我國(guó)的單片機(jī)年容量已達(dá)13億片,且每年以

3、大約16%的速度增長(zhǎng),但相對(duì)于世界市場(chǎng)我國(guó)的占有率還不到1%。特別是沿海地區(qū)的玩具廠等生產(chǎn)產(chǎn)品多數(shù)用到單片,并不斷地輻射向內(nèi)地, 這說明單片機(jī)應(yīng)用在我國(guó)才剛剛起步,有著廣闊的前景。培養(yǎng)單片機(jī)應(yīng)用人才,特別是在工程技術(shù)人員中普及單片機(jī)知識(shí)有著重要的現(xiàn)實(shí)意義。面對(duì)著學(xué)習(xí)單片機(jī)一個(gè)終生受用的職業(yè),不受年齡的限制。同時(shí)面對(duì)著生活的現(xiàn)代化,我們衣、食、住、行也就越來越依賴各式各樣的“高科技”了,也就有很多地方都用到高集成電路IC和單片機(jī)。學(xué)習(xí)單片機(jī),做現(xiàn)代生活的領(lǐng)航人,你還在等什么呢?二 要 求設(shè)計(jì)1個(gè)電子鐘,用4位7段碼LED顯示器,顯示當(dāng)前時(shí)間時(shí)和分。時(shí)和分之間用 2個(gè)LED作為分隔,每秒鐘小數(shù)點(diǎn)閃

4、動(dòng)1次。用89C2051內(nèi)部定時(shí)器定時(shí),每10ms中斷1次,中斷100次后秒單元+1,秒單元累加到60時(shí)自動(dòng)清零,分單元+1,分單元累加到60時(shí)自動(dòng)清零,小時(shí)單元+1,小時(shí)單元累加到24時(shí),又回到0時(shí),0分,0秒。設(shè)有校表功能,通過按鍵可與北京時(shí)間校準(zhǔn)。按一下S1鍵,進(jìn)入“校時(shí)”狀態(tài),在“校時(shí)”狀態(tài)按一下S2鍵小時(shí)單元+1,按一下S3鍵小時(shí)單元-1。再按一下S1鍵,進(jìn)入“校分”狀態(tài),在“校分”狀態(tài),按一下S2鍵分單元+1,按一下S3鍵分單元-1。再按一下S1鍵,退出“校表”狀態(tài)。三 原 理 圖四 編程思路說明及程序流程圖1. 編程思路定時(shí)器0,1在12MHz晶振頻率時(shí),最大的計(jì)時(shí)能力在80ms

5、左右。所以按50ms計(jì)算最好。故首先初始化定時(shí)器0如下:TH0 = 0xD8;TL0 = 0xF0;通過中斷方法來獲取時(shí)間的計(jì)數(shù),使用變量tim來進(jìn)行計(jì)數(shù),當(dāng)tim=20時(shí),即為一秒。如此即可得出分,時(shí)的值。具體看如下程序流程圖。2程序流程圖主程序流程圖:圖 1;按鍵設(shè)置流程圖:五 程序清單#include "AT892051.h"#include "stdio.h"#include "string.h"unsigned char num10 = 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80

6、,0x90; unsigned char mins = 0;unsigned char secd = 0;unsigned char hours = 0;unsigned char tim = 0;unsigned char count = 0;void delayms(unsigned int ms);void key(void);void led(unsigned char n);void config(void);/* delayms*/ void delayms(unsigned int ms)unsigned char temp = 125;for(;ms > 0; ms-)w

7、hile(temp > 0)temp-;temp = 125;/* interrupt*/ void timer0(void) interrupt 1TH0 = 0xD8; /reload timer TL0 = 0xF0;tim+;/* display 7seg*/ void led(unsigned char n)unsigned char i;unsigned char x;x = n;for(i = 0; i< 8 ; i+)P3_1 = 0;P3_0 = x & 0x80;P3_1 = 1;x = x<<1;/* if config button is

8、 pressed*/ void key(void)unsigned char temp;P1 = 0xFF;temp = P1 & 0x70; /press config button if(temp = 0x30)delayms(100); /5P1 = 0xFF;temp = P1 & 0x70;if(temp = 0x30)count = 1;elsecount = 0;/*config();*/void config(void)unsigned char temp;P1 = 0xFF;temp = P1 & 0x70;delayms(100);while(cou

9、nt = 1) /config hour P1 = 0xFF;temp = P1 & 0x70;if(temp = 0x60)tim = 0;count = 2;switch(temp) case 0x50: / hour + hours+; if(hours = 24) hours = 0; led(nummins % 10); led(num(unsigned char)mins / 10); led(numhours % 10); led(num(unsigned char)hours / 10); break; case 0x30: /hour - if(hours = 0)

10、hours = 23; else hours-; led(nummins % 10); led(num(unsigned char)mins / 10); led(numhours % 10); led(num(unsigned char)hours / 10); break; default : break; P1 = 0xFF; temp = P1 & 0x70; delayms(100);/100 while(count = 2) P1 = 0xFF; temp = P1 & 0x70; if(temp = 0x60) TH0 = 0xDF; TL0 = 0xF0; TR

11、0 = 1; EA = 1; tim = 0; /config minutescount = 3;switch(temp)case 0x50:mins+;if(mins = 60)mins = 0;led(nummins % 10);led(num(unsigned char)mins / 10); led(numhours % 10);led(num(unsigned char)hours / 10); break;case 0x30: if(mins = 0)mins = 59;else mins-;led(nummins % 10);led(num(unsigned char)mins

12、/ 10); led(numhours % 10);led(num(unsigned char)hours / 10); break;default : break;P1 = 0xFF;temp = P1 & 0x70;delayms(100); /100count = 0;return;void main(void )led(num0);led(num0);led(num0);led(num0); TH0 = 0xD8; TL0 = 0xF0; TMOD = 0x01; /timer0,16bit TR0 = 1; /enable timer0 ET0 = 1; /enable ti

13、mer0 to interrupt EA = 1; / enale interrupt while(1) if(tim = 50) P3_4 = 0; P3_5 = 0; if(tim = 100) P3_4 = 1; P3_5 = 1; tim = 0; secd+; key(); if( count = 1) EA = 0; TR0 = 0; delayms(50);/50 config(); delayms(10); if(secd =60) secd = 0; mins+; if(mins = 60) mins = 0; hours+; if(hours = 24) hours = 0; led(nummins % 10); led(num(unsigned char)mins / 10); led(numhours % 10); led(num(unsigned char)hours / 10); 六 總結(jié)通過本電子表系統(tǒng)的設(shè)計(jì),我學(xué)到了很多東西。首先,了解了怎樣去設(shè)計(jì)一個(gè)應(yīng)用系統(tǒng)。應(yīng)用系統(tǒng)需要考慮的穩(wěn)定性、實(shí)用性和編軟件時(shí)的程序優(yōu)化性,均在設(shè)計(jì)過程中涉及到了。其次,更深入體會(huì)到了模塊化設(shè)計(jì)系統(tǒng)的優(yōu)越性,在設(shè)計(jì)電子表的過程中,我們把系統(tǒng)分為了主程序

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論