




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、電子時鐘設(shè)計簡介該設(shè)計主要由單片機AT89C51和液晶顯示器組成,實現(xiàn)常用的實時電子鐘功能。利用可編程芯片AT89C51強大的功能,我們了實現(xiàn)日歷功能、時鐘功能。該時鐘使用液晶顯示器作為顯示模塊,使用3個彈性小按鍵作為輸入模塊,調(diào)節(jié)年、月、日、星期、時、分、秒。一方案比較與論證根據(jù)設(shè)計要求,該時鐘系統(tǒng)可分輸入部分、處理部分和顯示數(shù)據(jù)部分。其中輸入部分是鍵盤輸入數(shù)據(jù)調(diào)整要顯示的內(nèi)容,處理部分單片機接收并通過算法處理鍵盤輸入的信息變成顯示模塊所能接受的信息,顯示部分是用來實時顯示處理部分處理后的數(shù)據(jù)。 輸入模塊處理模塊顯示模塊 輸入模塊我們選用三個獨立彈性小按鍵來實現(xiàn),選用矩陣式鍵盤則太浪費資處理
2、模塊我們選用了STC公司的STC89C52芯片來,與Atmel公司生產(chǎn)的AT89S52一樣,也是40腳雙列直插式封裝,這里芯片對剛學(xué)單片機的人來說容易入手,其功能也很強大,用來實現(xiàn)一個電子鐘完全足夠了。顯示部分我們可有兩種選擇:數(shù)碼管和1602液晶顯示器。實現(xiàn)一個電子鐘若用數(shù)碼管則需6個,所占空間相對大了些,而且我們還要實現(xiàn)日歷的功能,需要更多的數(shù)碼管,所點空間翻倍,而且還會造成單片機I/O引腳濫用甚至不夠用,用液晶顯示器來實現(xiàn)則方便得多,界面也相對友好,但液晶顯示器有個缺點就是價格比較貴。因此我們最終選擇了1602液晶顯示器。另處獨立彈性小按鍵具有價格便宜、容易獲得、容易控制等特點。二系統(tǒng)理
3、論分析、計算與電路仿真1、定時器與中斷原理電子鐘主要是利用單片機的定時器/計數(shù)器和中斷來實現(xiàn)。定時器實際是加1計數(shù)器,單片機每運行一個機器周期定時器就自動加1,當計到所定的數(shù)N時,單片機就產(chǎn)生一次中斷,停下所做的工作,轉(zhuǎn)而去執(zhí)行中斷服務(wù)程序。單片機每個機器周期等于外部晶振的12個振蕩周期,當外部晶振是12MHz時,則每個機器周期的時間是Tcy = 121/12=1m(2-1)定數(shù)器設(shè)為N時,即每計到N時產(chǎn)生一次中斷,而一次中斷的時間為:t = NTcym (2-2)當產(chǎn)生X(x根據(jù)N來設(shè)置,兩者之積為1000000)次中斷后我就知道過了1s,再通過液晶顯示出來,這樣就達到了讓液晶每隔一秒跳一下
4、的目的了。2、proteus仿真結(jié)果3、液晶部分 圖4-3 液晶1、2端口分別是工作電源的負、正極,15、16是液晶背光燈電源正負極,R4起限流作用,避免電流過大燒壞背光燈。第3端口還可接一電位器,調(diào)節(jié)液晶顯示對比度。無標號的8個端口是數(shù)據(jù)端,通過一上拉電阻接到單片機的P0口。三系統(tǒng)的軟件設(shè)計(如必要,含有流程圖)1、程序流程圖流程圖中的X表示液晶中秒、分、時、星期、年、月、日中的任一個。N按2直到X不閃爍Y液晶X閃爍X減1按鍵4被按下X加1按鍵3被按下按鍵2被按下 X閃爍液晶X閃爍NY初始化結(jié)束掃描鍵盤是否被按下的同時定時器是否到1秒往液晶送新數(shù)據(jù)YN開始不掉電掉電 圖5-1 主程序流程圖
5、圖5-2 掃描鍵盤的子程序流程四系統(tǒng)測試及結(jié)果測試結(jié)果總的來說很滿意,比預(yù)計的還要好。但由于中斷函數(shù)中代碼較長,故存在一定程度的誤差,用秒表測試大約為每5分鐘慢了一秒,這個問題是用單片機定時器來數(shù)時所無法解決的,中斷函數(shù)必定會較長,處理這一函數(shù)會花費一定的時間這就無法做到讓時鐘走得很精確。解決方法是用一時鐘芯片來實現(xiàn),由于時鐘芯片不好買又比較貴(新的20幾塊一片),暫時就不考慮了,有機會再嘗試。1 源程序/主函數(shù)放在最后面#include #define uchar unsigned char#define uint unsigned intsbit rs=P24;/定義液晶數(shù)據(jù)命令選擇端sb
6、it lcden=P25;/液晶使能端sbit s1=P20;/按鍵1sbit s2=P21;/按鍵2sbit s3=P22;/按鍵3uchar count,s1num;char shi,fen,miao;/時、分、秒char year,month,day,week;/年月日星期void delay(uint x)/延時子程序uint j,k;for(j=x;j0;j-)for(k=110;k0;k-);/-液晶寫命令功能-void write_com(uchar com)rs=0;lcden=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;/-液晶寫數(shù)據(jù)
7、功能-void write_date(uchar date)rs=1;lcden=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;/-寫入時、分、秒-?void write_sfm(uchar add,uchar date)uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+0x40+add);write_date(0x30+shi);write_date(0x30+ge);/-寫入年、月、日-void write_nyr(uchar add,uchar date)uchar shi,ge;shi=dat
8、e/10;ge=date%10;write_com(0x80+add);write_date(0x30+shi);write_date(0x30+ge);/-寫入星期X-void write_week(uchar we)write_com(0x80+12);switch(we)case 1: write_date(M);delay(5);write_date(O);delay(5);write_date(N);break;case 2: write_date(T);delay(5);write_date(U);delay(5);write_date(E);break;case 3: write
9、_date(W);delay(5);write_date(E);delay(5);write_date(D);break;case 4: write_date(T);delay(5);write_date(H);delay(5);write_date(U);break;case 5: write_date(F);delay(5);write_date(R);delay(5);write_date(I);break;case 6: write_date(S);delay(5);write_date(A);delay(5);write_date(T);break;case 7: write_dat
10、e(S);delay(5);write_date(U);delay(5);write_date(N);break;/-實現(xiàn)初始化功能-void init()lcden=0;shi=1;fen=1;miao=1;day=1;month=1;year=1;week=1;count=0;s1num=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80+1);write_date(2);write_com(0x80+2);write_date(0);write_com(0x80+5);write
11、_date(-);write_com(0x80+8);write_date(-);write_nyr(9,day);write_nyr(6,month);write_nyr(3,year);write_week(week);write_com(0x80+0x40+6);write_date(:);write_com(0x80+0x40+9);write_date(:);write_sfm(10,miao);write_sfm(7,fen);write_sfm(4,shi);TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET
12、0=1;TR0=1;/ -鍵盤掃描功能-void keyscan()if(s1=0)/鍵盤1是否被按下delay(5);/如果檢測到鍵盤被按下,延時約if(s1=0)/5毫秒看是否為鍵下,這樣可越過按 /鍵盤時的抖動時間,防止誤判s1num+;while(!s1);if(s1num=1)TR0=0;write_com(0x80+0x40+10);write_com(0x0f);if(s1num=2)write_com(0x80+0x40+7);if(s1num=3)write_com(0x80+0x40+4);if(s1num=4)write_com(0x80+12);if(s1num=5)w
13、rite_com(0x80+9);if(s1num=6)write_com(0x80+6);if(s1num=7)write_com(0x80+3);if(s1num=8)s1num=0;write_com(0x0c);TR0=1;if(s1num!=0)/鍵盤2是否被按下if(s2=0)delay(5);if(s2=0)while(!s2);if(s1num=1)miao+;if(miao=60)miao=0;write_sfm(10,miao);write_com(0x80+0x40+10);if(s1num=2)fen+;if(fen=60)fen=0;write_sfm(7,fen);
14、write_com(0x80+0x40+7);if(s1num=3)shi+;if(shi=24)shi=0;write_sfm(4,shi);write_com(0x80+0x40+4);if(s1num=4)week+;if(week=8)week=1;write_week(week);write_com(0x80+12);if(s1num=5)day+;if(day=32)day=1;write_nyr(9,day);write_com(0x80+9);if(s1num=6)month+;if(month=13)month=1;write_nyr(6,month);write_com(0
15、x80+6);if(s1num=7)year+;if(year=100)year=0;write_nyr(3,year);write_com(0x80+3);if(s3=0)/鍵盤3是否被按下delay(5);if(s3=0)while(!s3);if(s1num=1)miao-;if(miao=-1)miao=59;write_sfm(10,miao);write_com(0x80+0x40+10);if(s1num=2)fen-;if(fen=-1)fen=59;write_sfm(7,fen);write_com(0x80+0x40+7);if(s1num=3)shi-;if(shi=-
16、1)shi=23;write_sfm(4,shi);write_com(0x80+0x40+4);if(s1num=4)week-;if(week=0)week=7;write_week(week);write_com(0x80+12);if(s1num=5)day-;if(day=0)day=31;write_nyr(9,day);write_com(0x80+9);if(s1num=6)month-;if(month=0)month=12;write_nyr(6,month);write_com(0x80+6);if(s1num=7)year-;if(year=-1)year=99;write_nyr(3,year);write_com(0x80+3);/-主函數(shù)-void main()init(); /初始化子函數(shù)while(1)keyscan();/-中斷服務(wù)子程序-void timer0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;count+;if(count=20)count=0;miao+;if(miao=60)miao=0;
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年執(zhí)業(yè)藥師考試高頻易錯點總結(jié)試題及答案
- 2025年護師考試管理知識試題及答案
- 知識梳理與執(zhí)業(yè)藥師試題及答案
- 北京2025年中國醫(yī)學(xué)科學(xué)院醫(yī)藥生物技術(shù)研究所第一批招聘22人筆試歷年參考題庫附帶答案詳解
- 臨床護理操作規(guī)范試題及答案深入解析
- 行政法學(xué)與公共福利的關(guān)系試題與答案
- 實戰(zhàn)2025年護士考試試題及答案集錦
- 自寫分割財產(chǎn)協(xié)議書
- 股票技術(shù)入股協(xié)議書
- 童裝品牌授權(quán)協(xié)議書
- 圖紙會審會議紀要范本
- GB∕T 17466.1-2019 家用和類似用途固定式電氣裝置的電器附件安裝盒和外殼 第1部分:通用要求
- 鉆探設(shè)備工具材料共12
- 得到上市招股書:北京思維造物信息科技股份有限公司
- 2022年浙江省小升初語文試卷(含答案)
- Q∕GDW 12158-2021 國家電網(wǎng)有限公司重大活動電力安全保障工作規(guī)范
- 我把沒有送給你(課堂版)(1)
- 劉半農(nóng)雨散文的特點
- 南靖和溪各姓氏源流
- 智能PID算法在液位控制系統(tǒng)中的應(yīng)用畢業(yè)論
- 腎病及生活質(zhì)量KDQOL-SF
評論
0/150
提交評論