單片機課程設(shè)計之智能電子鐘_第1頁
單片機課程設(shè)計之智能電子鐘_第2頁
單片機課程設(shè)計之智能電子鐘_第3頁
單片機課程設(shè)計之智能電子鐘_第4頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機課程設(shè)計題目:智能電子鐘學生姓名專業(yè)班級指導教師成績工程技術(shù)學院2016年3月目錄一、系 統(tǒng)設(shè) 計內(nèi) 容11.1設(shè) 計要 求:11.2可 實現(xiàn) 的具 體功 能:1二、總 體設(shè) 計22.1 DS1302簡介22.2 LCDl602簡介32.3 AT89C51單片 機簡 介3三、硬 件設(shè) 計33.1原 理圖43.2 PCB板絲 印層43.3 PCB板底 層4四、軟 件設(shè) 計流 程44.1總 體設(shè) 計44.2主程 序流 程圖54.3顯示 流程 圖54.4 DS1302讀取 流 程64.5外 部中 斷 0 流程64.6外 部中 斷 1 流程7五、仿 真效 果圖8六、總 結(jié)與 體會10附錄111、

2、 程序112、參考文獻21智能電子鐘(LCD 顯示 )一、系統(tǒng)設(shè)計內(nèi)容1.1設(shè)計要求:以 AT89C51 單片機為核心,制作一個 LCD顯示的智能電子鐘:(1) 計時:秒、分、時、天、周、月、年;(2) 閏年自動判別;(4) 時間、月、日交替顯示;(5) 自定任意時刻自動開/關(guān)屏;(6) 計時精度:誤差1 秒/ 月(具有微調(diào)設(shè)置);(7) 鍵盤采用動態(tài)掃描方式查詢。所有的查詢、設(shè)置功能均由功能鍵 K1、K2 完成。本設(shè)計采用市場上流行的時鐘芯片 DS1302 進行制作。1.2可實現(xiàn)的具體功能:智能電子鐘的原理主要由 4 部分組成:(1) 單片機的外圍設(shè)備,即單片機最小系統(tǒng),此部分是保證單片機正

3、常工作的必要部分;(2) 顯示部分: LCD顯示,即顯示年、月、星期、日、時、分、秒等;(3) 時鐘芯片 DS1302 , DS1302 是 DALLAS 公式推出的涓流充電時鐘芯片,內(nèi)含一個實時時鐘/ 日歷和 31 字節(jié)靜態(tài)RAM,可以通過串行接口與計算機進行通信,使得管腳數(shù)量減少。實時時鐘/ 日歷電路能夠計算 2100 年之前的秒、分、時、日、星期、月、年的,具有閏年調(diào)整的能力;(4) 按鍵部分:按鍵實現(xiàn)開關(guān)顯示屏對時鐘時間的微調(diào),開關(guān)鍵在正常顯示模式下按下開火關(guān) LCD顯示;模式鍵:可切換到時間調(diào)整界面,再按一次退出,此時開關(guān)屏鍵實現(xiàn)對秒的加一操作。1智能電子鐘 (LCD 顯示 )二、總

4、體設(shè)計時鐘芯片DS1302LCDAT89C51顯示電路按鍵圖 2.1設(shè)計方案框圖2.1 DS1302簡介DS1302 是美國 DALLAS公司推出的一種高性能、低功耗、帶 RAM的實時時鐘電路,它可以對年、月、日、星期、時、分、秒進行計時,具有閏年補償功能,工作電壓為 2.5V 5.5V 。采 用三線接口與 CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或 RAM數(shù)據(jù)。DS1302 內(nèi)部有一個 31×8 的用于臨時性存放數(shù)據(jù)的 RAM寄存器。DS1302 是 DS1202 的升級產(chǎn)品,與 DS1202 兼容,但增加了主電源 / 后備電源雙電源引腳,同時提供了對后備電源

5、進行涓細電流充電的能力。2智能電子鐘 (LCD 顯示 )圖 2.2 DS1302芯片2.2 LCDl602簡介1602 液晶也叫 1602 字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個 5X7 或者 5X11 等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用。2.3 AT89C51單片機簡介AT89C51(如圖所示)是一種帶 4K 字節(jié)閃爍可編程可擦除只讀存儲器( FPEROM Falsh Programmable andErasable Read Only Memory )的低電壓,

6、高性能 CMOS8位微處理器,俗稱單片機。該器件采用 ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的 MCS-51 指令集和輸出管腳相兼容。由于將多功能 8 位 CPU和閃爍存儲器組合在單個芯片中,ATMEL的 AT89S51 是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。三、硬件設(shè)計3VCCP2.1/A923RP1K10uF29P2.2/A1024PSENP2.3/A11123025ALEP2.4/A12RESPACK4R21k3126EAP2.5/A13B127P2.6/P2.7/4U21P1.0/T2P

7、3.0/RXD10VCC28K1X1VCC1智能2電子鐘(LCD 顯示 )1113P1.1/T2EXP3.1/TXD1212VCC2P1.2P3.2/INT030uF413X2P1.3P3.3/INT1514K2P1.4P3.4/T032.768kHz561512RSTP1.5P3.5/T1C5原理圖7716P1.73.1SCLKP3.6/WR368P1.617X2I/OP3.7/RD30uFWD1100-1189C513.2 PCB板絲印層3.3 PCB板底層四、軟件設(shè)計流程4.1總體設(shè)計在整個程序運行過程中,總體上可分為以下幾方面:4智能電子鐘 (LCD 顯示 )寫地址時鐘芯片DS1302

8、讀數(shù)據(jù)中斷 0寫命令按鍵 1AT89C51LCD開關(guān)屏顯示電路送顯示值按鍵 1秒加一按鍵 2中斷 1進入(退出)時間調(diào)整4.2 主程序流程圖開始開中斷,初始化LCD ,初始化DS1302顯示時間顯示年月日周4.3 顯示流程圖5智能電子鐘 (LCD 顯示 )清屏設(shè)定光標位置從 DS1302讀取要顯示的值將讀取的 BCD 碼拆分送 LCD 顯示4.4 DS1302讀取流程設(shè)定 DS1302 為讀狀態(tài)寫字節(jié)寫入要讀取的值所在地址讀字節(jié)讀出數(shù)據(jù)返回數(shù)據(jù)4.5外部中斷 0 流程6智能電子鐘 (LCD 顯示 )計數(shù)器加一計數(shù)器為偶數(shù)嗎NY關(guān)閉顯示開啟顯示退出中斷4.6外部中斷 1 流程等待按鍵釋放記錄此時

9、光標位置關(guān)中斷,讀取當前秒值按鍵 1是Y否按下N等待按鍵釋放保持顯示此刻時間 ,設(shè)定顯示光標并指向秒。寫入調(diào)整后的值,取消光標顯示,回復光標位置,開中斷。N按鍵 0是否按下退出中斷Y7智能電子鐘 (LCD 顯示 )N當年秒值小于 59嗎Y秒值加一并做 BCD 碼調(diào)整顯示加一后的值等待按鍵釋放向 DS1302 寫入秒值并取更新后的值顯示。五、仿真效果圖日期時間交替顯示:8智能電子鐘 (LCD 顯示 )關(guān)屏9智能電子鐘 (LCD 顯示 )時間調(diào)整六、總結(jié)與體會歷經(jīng)一個星期的設(shè)計、修改、調(diào)試,最終,我們得到了想要的結(jié)果,感受成功之喜悅,但這并不意味著我們做得很好,相反,在這當中暴露出了我們在各個方面

10、許許多多的問題,學到許多的同時感觸也很深厚。在硬件設(shè)計時,通過對需要系統(tǒng)的分析,單元模塊的設(shè)計,元件的選取等,使我們了解到平時所學單片機課程的實用價值,以及設(shè)計過程中的大局協(xié)調(diào)、取舍、分析能力的培養(yǎng)。在編程以及仿真時,充分將單片機原理的知識學以致用,既是對我們單片機基礎(chǔ)知識的考驗,又是對我們靈活運用及創(chuàng)新能力的檢驗;既考驗我們的學習能力,又考驗邏輯思維技巧;既體現(xiàn)了個人對課程設(shè)計的靈思妙想,又培養(yǎng)了團隊之間的合作能力。我們能夠很好地完成這次課設(shè),離不開在科學研究上實事求是的工作原則、一絲不茍的工作態(tài)度、勤于思考的工作方法、百折不饒的工作精神和精益求精的工作作風,此外,最重要的就是團隊之間相處和

11、諧、分工明確。在 大家的共同努力下,得到了滿意的成果,更使我們明白團隊合作的重要10智能電子鐘 (LCD 顯示 )與便利。最后,衷心感謝老師在這次設(shè)計中耐心給予的大量幫助,解決了我程序中存在的不少問題,并指導了我一些設(shè)計的思路,也令我明白自己的大量不足之處,受益匪淺。附錄1、程序#include<reg52.h>#include <intrins.h>#define uchar unsigned char#define DS1302_SECOND_WRITE 0x80#define DS1302_MINUTE_WRITE 0x82#define DS1302_HOUR_

12、WRITE 0x84#define DS1302_DAY_WRITE 0x86#define DS1302_WEEK_WRITE 0x8a#define DS1302_MONTH_WRITE 0x88#define DS1302_YEAR_WRITE 0x8c#define DS1302_PROTECT_WRITE 0x8e#define DS1302_SECOND_READ 0x81#define DS1302_MINUTE_READ 0x83#define DS1302_HOUR_READ 0x85#define DS1302_DAY_READ 0x87#define DS1302_WEE

13、K_READ 0x8b#define DS1302_MONTH_READ 0x8911智能電子鐘 (LCD 顯示 )#define DS1302_YEAR_READ 0x8dsbit lcden = P22;sbit lcdrs = P20;sbit write = P21;sbit sck = P16; / 時鐘sbit io = P17; / 數(shù)據(jù)sbit rst = P15;/ DS1302 復位unsigned char Chinese_13=0x2d,0x20,0x3a;/“- ”“”“ :”unsigned char Chinese_27=0x31,0x32,0x33,0x34,0

14、x35,0x36,0x37;/一二三四五六天/unsigned char Cursor6=0x81,0x83,0x85,0x90,0x92,0x94;/定義光標移動的位置unsigned char num = 0;unsigned int ji = 0;unsigned int jiao = 0;void Delayms(unsigned int z)/ 延時unsigned int x,y;for(x=z;x>0;x-)for(y=115;y>0;y-);/lcd 子程序void Write_com(unsigned char com)/ 寫命令lcdrs = 0;P0 = co

15、m;Delayms(5);lcden = 1;12智能電子鐘 (LCD 顯示 )Delayms(5);lcden = 0;void Write_data(unsigned char dat)/ 寫數(shù)據(jù)lcdrs = 1;P0 = dat;Delayms(5);lcden = 1;Delayms(5);lcden = 0;unsigned char Read_com()/讀命令unsigned char com;write = 1;lcdrs = 0;lcden = 1;com = P0;Delayms(5);write = 0;lcdrs = 0;lcden = 0;return com;vo

16、id init_lcd()/lcd初始化13智能電子鐘 (LCD 顯示 )lcden = 0;Write_com(0x38);Write_com(0x0c);Write_com(0x06);Write_com(0x01);Write_com(0x80);/ds1302 子程序void DS1302WriteByte(uchar dat)/ 寫字節(jié)uchar i;sck=0;Delayms(2);for(i=0;i<8;i+)io=dat&0x01;/ 取最低位,注意DS1302 的數(shù)據(jù)和地址都是從最低位開始傳輸?shù)腄elayms(2);sck=1;Delayms(2);sck=0;

17、dat>>=1;uchar DS1302ReadByte()/ 讀字節(jié)uchar i,dat;Delayms(2);for(i=0;i<8;i+)14智能電子鐘 (LCD 顯示 )dat>>=1;if(io=1)/ 當數(shù)據(jù)線為高時,證明該位數(shù)據(jù)為1dat|=0x80;/ 要傳輸數(shù)據(jù)的當前值置為1,若不是 , 則為 0sck=1;Delayms(2);sck=0;Delayms(2);return dat;uchar DS1302Read(uchar cmd)/讀命令uchar dat;rst=0;sck=0;rst=1;DS1302WriteByte(cmd);/

18、 傳輸?shù)刂穌at=DS1302ReadByte();/ 讀取要得到的時間/日期sck=1;rst=0;return dat;void DS1302Write(uchar cmd,uchar dat)/ 寫命令rst=0;sck=0;rst=1;15智能電子鐘 (LCD 顯示 )DS1302WriteByte(cmd);/ 傳輸?shù)刂稤S1302WriteByte(dat);/ 寫入時間 /日期sck=1;rst=0;void Init_DS1302(void)/ 初始化DS1302Write(0x8e,0x00);/ 寫保護關(guān)DS1302Write(DS1302_SECOND_WRITE,0x5

19、5);/初始秒值DS1302Write(DS1302_MINUTE_WRITE,0x59);/初始分鐘DS1302Write(DS1302_HOUR_WRITE,0x23);/初始為 24 小時模式初始時間為DS1302Write(DS1302_DAY_WRITE,0x02);/20xx年 x 月 x 日星期 xDS1302Write(DS1302_MONTH_WRITE,0x03);DS1302Write(DS1302_YEAR_WRITE,0x16);DS1302Write(DS1302_WEEK_WRITE,0x03);DS1302Write(0x90,0x01);/ 充電DS1302W

20、rite(0xc0,0xf0);/ 初始化一次標示DS1302Write(0x8e,0x80);void Split_display(unsigned char address)/ 取數(shù)顯示unsigned char i;i=DS1302Read(address);i=i/16+'0'Write_data(i);/ 顯示十位Delayms(3);i=DS1302Read(address);i=i%16+'0'16智能電子鐘 (LCD 顯示 )Write_data(i);/ 顯示個位Delayms(5);void Dispaly_shi()/ 顯示時間Write_

21、com(0x84);Split_display(DS1302_HOUR_READ);/顯示小時Write_data(Chinese_12);/ 顯示“ :”Delayms(3);Split_display(DS1302_MINUTE_READ);/顯示分鐘Write_data(Chinese_12);Delayms(3);Split_display(DS1302_SECOND_READ);/顯示秒Delayms(3);Delayms(50);void Display_nian()/ 顯示年月日uchar i;Write_com(0x82);Delayms(100);Write_com(0x82

22、);Delayms(100);Write_data('2');Delayms(5);Write_data('0');17智能電子鐘 (LCD 顯示 )Delayms(1);Split_display(DS1302_YEAR_READ);/顯示年份Write_data(Chinese_10);/ 顯示“ -”Delayms(3);Split_display(DS1302_MONTH_READ);/顯示月份Write_data(Chinese_10);Delayms(3);Split_display(DS1302_DAY_READ);/顯示日期Write_data(

23、Chinese_11);Delayms(3);Write_data(Chinese_11);Delayms(3);i=DS1302Read(DS1302_WEEK_READ);/顯示星期i=i%16+'0'Write_data(i);Delayms(3);Write_com(0x82);Delayms(50);void inter0() interrupt 0/ 按鍵中斷 1ji = ji+1;if(ji%2 = 0)Write_com(0x0c);elseWrite_com(0x08);18智能電子鐘 (LCD 顯示 )void inter2() interrupt 2/ 按

24、鍵中斷 2unsigned char k,j,i,b;/Delayms(500);while(INT1!=1);b = Read_com();b = ACC & 0x7f;Write_com(0x01);Dispaly_shi();EA=0;EX0=0;EX1=0;k=DS1302Read(DS1302_SECOND_READ);while(INT1)Write_com(0x8a);Write_com(0x0f);if(INT0=0)Delayms(10);if(INT0=0)if(k<0x59)ACC = k;#pragma asmadd a,#1da a#pragma endasmk = ACC;19智能電子鐘 (LCD 顯示 )elseDS1302Write(DS1302_SECOND_WRITE,k);while

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論