




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 . . . 目錄目錄1一 設(shè)計容與要求11.1 設(shè)計容11.2 設(shè)計要求21.3設(shè)計報告主要容2二 總體設(shè)計方案22.1 設(shè)計方案原理圖22.1.1 原理框圖22.1.2 電路原理圖42.1.3 方案討論42.1.4 設(shè)計任務(wù)明晰52.2 程序框圖52.3調(diào)試72.3.1 軟件調(diào)試72.3.2 仿真調(diào)試8三 項目設(shè)計總結(jié)或結(jié)論8參考文獻(xiàn)9附錄9一 設(shè)計容與要求1.1 設(shè)計容 以AT89C52單片機為核心,外加LCD1602。制作一LCD顯示的智能電子鐘。1.2 設(shè)計要求 (1) 計時:秒、分、時、天、周、月、年。 (2) 閏年自動判別。 (3)自定任意時刻自動開/關(guān)屏。 (4) 計時精度:誤
2、差1秒/月(具有微調(diào)設(shè)置)。 (5) 鍵盤采用動態(tài)掃描方式查詢。所有的查詢、設(shè)置功能均由功能鍵K1、K2完成。1.3設(shè)計報告主要容 單片機課程設(shè)計是以課題或項目設(shè)計方式開設(shè)的一門課程,具有較強的綜合性、實踐性,是工科、工程類院校電類的一門必修課。是將單片機原理的理論知識轉(zhuǎn)化為應(yīng)用技術(shù)的重要環(huán)節(jié)。這個環(huán)節(jié)不但可以加深對單片機原理的深入了解,而且還能培養(yǎng)學(xué)生的實踐動手能力,開發(fā)學(xué)生的分析、解決問題的能力。二 總體設(shè)計方案2.1 設(shè)計方案原理圖2.1.1 原理框圖按鍵實時時鐘/日歷電路定時電路LCD顯示電路AT89C51電源圖一 原理框圖2.1.2 電路原理圖 圖二 電路原理圖2.1.3 方案討論方
3、案一:采用實時時鐘芯片 實時時鐘芯片具有年、月、日、星期、時、分、秒計時功能和多點計時功能,計時數(shù)據(jù)的更新每秒自動進(jìn)行一次,不需程序干預(yù)。計算機可通過中斷或查詢方式讀取計時數(shù)據(jù)進(jìn)行顯示,因此計時功能的實現(xiàn)無需占用CPU時間,程序簡單。此外,實時時鐘芯片多數(shù)帶有鋰電池做后備電源,具有永不停止的計時功能,具有可編程方波輸出功能,可用作實時測控系統(tǒng)的采樣信號等。有的實時時鐘芯片還帶有非易失性RAM,可用來長期保存但有時也需變更數(shù)據(jù),由于功能完善,精度高,軟件程序設(shè)計簡單,且計時不占用CPU時間,因此,在工業(yè)實時測控系統(tǒng)中多采用這一類專用芯片來實現(xiàn)實時時鐘功能。方案二:軟件控制 利用單片機部的定時/計
4、數(shù)器進(jìn)行中斷定時,配合軟件延時實現(xiàn)時、分、秒的計時和秒表計時。該方案節(jié)省硬件成本,且能使設(shè)計者對單片機的指令系統(tǒng)能有更深入的了解,從而掌握單片機應(yīng)用技術(shù)的程序設(shè)計方法,因此,本系統(tǒng)設(shè)計采用此種軟件控制方式來實現(xiàn)計時。而有Atmel公司的AT89C52是一種自帶8KB Flash存儲器的低電壓、高性能的COMS 8位微處理器。該器件采用Atmel高密度非易失性存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出引腳相兼容。AT89C52將多功能8位CPU和閃存集成在一個芯片中,是一個高效的微控制器,使用也更方便,壽命更長,可以反復(fù)擦除1000次。形成了強大的功能、使用靈活和具有較高性價比的微
5、控制器。它的功能強大,而且也比較容易購買,故本設(shè)計選用單片機芯片為AT89C52。2.1.4 設(shè)計任務(wù)明晰采用AT89C52單片機作為系統(tǒng)的控制核心。時鐘數(shù)據(jù)通過市場上流行的時鐘芯片DS1302來獲取。DS1302是DALLAS公司推出的涓流過串行接口與計算機進(jìn)行通信,使的管腳數(shù)量減少。實時時鐘/日歷電路可以計算2100年之前的秒、分、時、日、星期、月、年的具有閏年自動判別調(diào)整功能。實時電路能夠?qū)崿F(xiàn)自定任意時刻自動開/關(guān)屏,采用LCD LM016L顯示年、月、日、星期、時、分、秒。通過開關(guān)實現(xiàn)微調(diào),確保計時精確:誤差小于1秒/月。DS1302時鐘芯片的主要功能特性:(1) 能計算2100年之前
6、的年、月、日、星期、時、分、秒的信息;每月的天數(shù)和閏年的天數(shù)可以自動調(diào)整;時鐘可設(shè)置為24或12小時格式。(2) 31B的8位暫存數(shù)據(jù)存儲RAM.(3) 串行I/O口方式使得引腳數(shù)量最少。(4) DS1302與單片機之間能簡單地采用串行的方式進(jìn)行通信,僅需3根線。(5) 寬圍工作電壓2.0-5.5V。(6) 工作電流為2.0A時,小于300nA。功耗很低,保持?jǐn)?shù)據(jù)和時鐘信息時功率小于1mA。2.2 程序框圖 圖三2.3調(diào)試2.3.1 軟件調(diào)試目前設(shè)計過程中容易造成原件和儀器儀表的損壞,而借助Keil和Proteus進(jìn)行單片機系統(tǒng)的開發(fā),可以節(jié)省設(shè)計成本,提高設(shè)計速度。Keil軟件包是一個功能強
7、大的開發(fā)平臺,它包括項目管理器、CX51編譯器、AX51宏匯編器、BL51/LX51連接定位器、RTX51實時操作系統(tǒng)、Simulator軟件模擬器與Monitor51硬件目標(biāo)調(diào)試器。它是一種集成化程度高的文件編譯環(huán)境,主要功能為編譯C語言源程序,匯編程序和混合語言源程序,連接和定位目標(biāo)文件和庫,創(chuàng)建HEX文件,調(diào)試目標(biāo)程序等。Keil是目前最好的51系列單片機開發(fā)工具之一。Keil支持軟件模擬仿真(Simulator)和用戶目標(biāo)測試(Monitor51)兩種工作模式。前者不需要任何單片機硬件即可完成用戶程序仿真、調(diào)試,后者利用軟件目標(biāo)板中的監(jiān)控程序可以直接調(diào)試目標(biāo)硬件系統(tǒng)。Proteus是一
8、個完整的嵌入式系統(tǒng)軟件、硬件設(shè)計仿真平臺,它包括原理圖輸入系統(tǒng)ISIS、帶擴展的Prospice混合模擬仿真器、動態(tài)元件庫、高級圖形分析模塊和處理器虛擬系統(tǒng)仿真模型VSM。ISIS是Proteus系統(tǒng)的中心,具有超強的控制原理設(shè)計環(huán)境。Proteus VSM最重要的特點是把微處理器軟件作用在處理器上,并和該處理器的任何模擬和數(shù)字原件協(xié)同仿真,仿真執(zhí)行目標(biāo)碼就像在真正的單片機系統(tǒng)上運行一樣,VSM CPU模型能完整仿真I/O接口、中斷、定時器、通用外部設(shè)備口與其他與CPU有關(guān)的外部設(shè)備,甚至能仿真多個處理器。2.3.2 仿真調(diào)試圖四 仿真圖三 項目設(shè)計總結(jié)或結(jié)論一分耕耘,一分收獲。只有親自用實踐
9、來驗證這句話,在能得其要領(lǐng)。經(jīng)過這次單片機課程設(shè)計,我從一個單片機實踐的門外漢,已經(jīng)越升為略知一二的新手。雖然還有很多有關(guān)單片機的應(yīng)用有待學(xué)習(xí),但萬變不離其宗,只要深入了解單片的原理,全部知識點,各個細(xì)節(jié),一切設(shè)計皆有可能。在實驗的開始幾天,基本上沒有收獲,不知何從下手,不知所措。為了看得更遠(yuǎn),不妨站在前人的肩膀上,我在整體思路模糊的情況下,在網(wǎng)上大量招資糧,各種與電子時鐘相關(guān)的文章,我閱讀了不少。隨著涉獵的點滴積累,我對電子時鐘的設(shè)計方案已經(jīng)慢慢醞釀而成。有了方向和不少知識儲備后,在接下來的幾天,幾乎每天都有突破,雖然有時只是一句程序的修改或誕生,但那種收獲的感覺很暖人心。參考文獻(xiàn) 單片機原
10、理與應(yīng)用 倪云峰 主編 51單片機c語言教程 郭天祥 主編 51單片機原理與應(yīng)用 海宴 主編 單片機c語言應(yīng)用100歷 王東鋒 主編附錄項目設(shè)計評 語項目設(shè)計成 績指導(dǎo)教師(簽字) 年 月 日程序#include <reg51.h>#define uchar unsigned char#define uint unsigned int#define ulong unsigned longuchar code table="2011:01:01 000"uchar code table1=" 00:00:00 00:00"uchar code
11、table2="0123456789"sbit lcd_rs =P33;/定義LCD端口sbit lcd_rw=P34;sbit lcd_en=P35;sbit Sclk=P26;sbit Io=P27;sbit Rst=P25;sbit S1=P10;/菜單鍵sbit S2=P11;/加鍵sbit S3=P12;/減鍵sbit S4=P13;/退出菜單鍵sbit ss=P14;/秒表鍵,第一次啟動,第二次暫停,第三次清零sbit FMQ=P23;void yue31();/31天的月份函數(shù)void yue30();/30天的月份函數(shù)void yue29();/29天的月份
12、函數(shù)void yue28();/28天的月份函數(shù)void Timing(); /鬧鐘設(shè)置void miaobiao();/秒表函數(shù)uchar count, k1num;/聲明秒的變量char shi,fen,miao;/聲明時分秒uint nian, yue,ri,ji=0,mm=0;/聲明年月日,秒表計數(shù),和秒表按鍵次數(shù)uchar f,s;/定時器/void delay(uchar z)/延時函數(shù) uchar x,y; for(x=z;x>0;x-) for(y=110;y>0;y-);void write_(uchar )/lcd寫指令 lcd_rs=0; lcd_rw=0;
13、lcd_en=0; P0=; delay(5); lcd_en=1; delay(5); lcd_en=0;void write_data(uchar date)/lcd寫數(shù)據(jù) lcd_rs=1; lcd_rw=0; lcd_en=0; P0=date; delay(5); lcd_en=1; delay(5); lcd_en=0;void miaobiao(char kk)/秒表函數(shù) uchar biao_bai,biao_shi,biao_ge; biao_bai=kk/100;biao_shi=kk%100/10;biao_ge=kk%100%10;write_(0x80+13); wr
14、ite_data(table2biao_bai);write_(0x80+14);write_data(table2biao_shi);write_(0x80+15);write_data(table2biao_ge);write_(0x0c);void write_fsm(uchar add,uchar date)/計算時分秒位 uchar shi,ge; shi=date/10; ge=date%10; write_(0x80+0x40+add); write_data(0x30+shi); write_data(0x30+ge);void write_nyr(uchar add,ucha
15、r date)/計算月日位 uint shi,ge; shi=date/10; ge=date%10; write_(0x80+0x00+add); write_data(0x30+shi); write_data(0x30+ge);void write_nian(uchar add,uchar date)/計算年位,年是百位 uint bai,shi,ge; bai=date/100%10; shi=date/10; ge=date%10; write_(0x80+0x00+add); write_data(0x30+bai); write_data(0x30+shi); write_dat
16、a(0x30+ge);void jiaxian()/設(shè)置鍵盤加顯 if(k1num!=0) if(S2=0) delay(10); if(S2=0) while(!S2);/松手檢測if(k1num=1) miao+; if(miao=60) miao=0; write_fsm(8,miao);/write_(0x0e); write_(0x80+0x40+8); if(k1num=2) fen+; if(fen=60) fen=0; write_fsm(5,fen); write_(0x80+0x40+5); if(k1num=3) shi+; if(shi=24) shi=0; write
17、_fsm(2,shi); write_(0x80+0x40+2); if(k1num=4) ri+; if(ri=31) ri=1; write_nyr(8,ri); write_(0x80+0x00+8); if(k1num=5) yue+; if(yue>12) yue=1; write_nyr(5,yue); write_(0x80+0x00+5); if(k1num=6) nian+; if(nian=90) nian=0; write_nian(1,nian); write_(0x80+0x00+1); if(k1num=7) s+; if(s=24)s=0; write_fs
18、m(11,s); write_(0x80+0x40+11); if(k1num=8) f+; if(f=59)f=0; write_fsm(14,f); write_(0x80+0x40+14); void jianxian()/設(shè)置鍵盤減顯 if(k1num!=0) if(S3=0)/K3設(shè)置delay(10); if(S3=0) while(!S3); if(k1num=1) miao-; if(miao=-1) miao=59; write_fsm(8,miao); write_(0x80+0x40+8); if(k1num=2) delay(5); fen-; if(fen=-1) f
19、en=59; write_fsm(5,fen); write_(0x80+0x40+5); if(k1num=3) shi-; if(shi=-1) shi=23; write_fsm(2,shi); write_(0x80+0x40+2); if(k1num=4) ri-; if(ri<1) ri=31; write_nyr(8,ri); write_(0x80+0x00+8); if(k1num=5) yue-; if(yue<1) yue=12; write_nyr(5,yue); write_(0x80+0x00+5);if(k1num=6) nian-; if(nian=
20、0) nian=90; write_nian(1,nian); write_(0x80+0x00+1); if(k1num=7) s-; if(s=0)s=23; write_fsm(11,s); write_(0x80+0x40+11); if(k1num=8) f-; if(f=-1) f=59; write_fsm(14,f); write_(0x80+0x40+14); void keyk4()/S4是退出菜單鍵 if(S4=0) delay(5); if(S4=0) TR0=1; while(!S4); k1num=0; write_(0x0c);/開顯示,不顯示光標(biāo),光標(biāo)不閃爍 v
21、oid keyk1()/菜單光標(biāo)設(shè)置if(S1=0) delay(10); while(1) if(S1=0) while(!S1); k1num+; TR0=0; /關(guān)定時中斷 if(k1num=1) write_(0x80+0x40+8);write_(0x0f);/開顯示,顯示光標(biāo),光標(biāo)閃爍 if(k1num=2) write_(0x80+0x40+5);write_(0x0f); if(k1num=3) write_(0x80+0x40+2); write_(0x0f); if(k1num=4) write_(0x80+0x00+8);write_(0x0f); if(k1num=5)
22、 write_(0x80+0x00+5);write_(0x0f); if(k1num=6) write_(0x80+0x00+1);write_(0x0f); if(k1num=7) write_(0x80+0x40+11); write_(0x0f); if(k1num=8) write_(0x80+0x40+14); write_(0x0f);if(k1num=9)k1num=1; jiaxian(); jianxian(); keyk4(); void init()/啟動 LCD初始化數(shù)據(jù) uchar num; lcd_rs=0; lcd_en=0; shi=0; fen=0; mia
23、o=0; nian=0000; yue=7; ri=1; s=21; f=48; write_(0x38);/不監(jiān)察忙信號write_(0x0f);/顯示開光標(biāo)設(shè)置write_(0x06);/顯示光標(biāo)移動設(shè)置write_(0x01);/顯示清屏write_(0x80);/數(shù)據(jù)指針write_(0x80+0x00);for(num=0;num<16;num+)/延時15ms write_data(tablenum);/年月日的數(shù)據(jù)延時 delay(5); write_(0x80+0x40); for(num=0;num<16;num+) write_data(table1num);/
24、時的延時delay(5); TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1;void display() if(count=20)/是秒是的時間 count=0; miao+; if(miao=60) miao=0; fen+; if(fen=60) fen=0; shi+; if(shi=24) shi=0; ri+; if(yue=2) if(nian%4=0&&nian%100!=0)|(nian%400=0)/計算閏年 yue29(); else yue28(); else if(yue=4)|(yue=6)|(yue=9)|(yue=11)/
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 負(fù)數(shù)的認(rèn)識(教學(xué)設(shè)計)-2023-2024學(xué)年六年級下冊數(shù)學(xué)人教版
- 面積的含義(教學(xué)設(shè)計)-2023-2024學(xué)年數(shù)學(xué)三年級下冊蘇教版
- 小學(xué)信息技術(shù)五年級下冊第7課《控制系統(tǒng)的輸出》教學(xué)設(shè)計
- Unit2 Topic3 教學(xué)設(shè)計 2024-2025學(xué)年仁愛科普版八年級英語上冊
- 序言 物理學(xué):研究物質(zhì)及其運動規(guī)律的科學(xué) 教學(xué)設(shè)計-2023-2024學(xué)年高一上學(xué)期物理人教版(2019)必修第一冊
- 5《我們的校園》(教學(xué)設(shè)計)-2023-2024學(xué)年道德與法治一年級上冊統(tǒng)編版
- 信息技術(shù)與數(shù)學(xué)學(xué)科的融合教學(xué)-用Python作二次函數(shù)圖像教學(xué)設(shè)計2024-2025學(xué)年人教版九年級上冊第22章
- Unit3 Learning Lesson 4(教學(xué)設(shè)計)-2024-2025學(xué)年北師大版(三起)(2024)英語三年級上冊
- 粵教版高中信息技術(shù)選修1教學(xué)設(shè)計-2.1.1 VB語言概述
- 中國全不銹鋼污物車項目投資可行性研究報告
- 5000只淮山羊和波爾山羊雜交良種養(yǎng)殖場建設(shè)項目可行性研究報告
- GB/T 5534-2008動植物油脂皂化值的測定
- GB/T 12771-2019流體輸送用不銹鋼焊接鋼管
- 測量管理體系內(nèi)審檢查表
- 工程驗收及移交管理方案
- 心臟手術(shù)麻醉的一般流程課件
- 圖片編輯概述課件
- 2023年岳陽職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試筆試題庫及答案解析
- 信號與系統(tǒng)復(fù)習(xí)題及答案
- 北師大版八年級數(shù)學(xué)上冊《認(rèn)識無理數(shù)(第2課時)》參考課件2
- 中級建構(gòu)筑物消防員理論綜合模擬題01原題
評論
0/150
提交評論