版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、題目:基于單片機的電子鐘設(shè)計 摘要隨著科技的發(fā)展,單片機的應(yīng)用正在不斷深入,涉及到日常生活的方方面面。本設(shè)計是基于單片機AT89S51為控制核心,以液晶為顯示的數(shù)字時鐘。本數(shù)字時鐘設(shè)計的原理相對簡單,所以硬件電路也相對簡單,難點和重點主要放在C語言的編程上,使用到定時器的子程序、延時程序、時分秒的控制程序、液晶模塊和單片機模塊的初始化程序、液晶顯示的程序等,各個函數(shù)交叉調(diào)用,配合主程序的運行。關(guān)鍵字:LCD1602 AT89S51 定時器 AbstractWith the development of technology, SCM applications are deepening, in
2、volving all aspects of daily life. The design is based on the MCU AT89S52 for the control of the core, the liquid crystal display digital clock. The digital clock design principle is relatively simple, the hardware circuit is relatively simple, difficult, and focused mainly on the C programming lang
3、uage, use the timer subroutine, delay procedures, minutes and seconds of the control program, the LCD module and microcontroller module initialization procedures, procedures for liquid crystal display, cross-each function call, with the main program to run.Keywords: LCD1602 AT89S51 timer目錄1 實驗任務(wù)12 設(shè)
4、計方案12.1 硬件設(shè)計1 2.1.1原理框圖1 2.1.2 控制模塊1 2.1.3 顯示模塊3 2.1.4按鍵電路52.2 軟件設(shè)計5 2.2.1基本資源的使用5 2.2.2程序設(shè)計的基本思路53 仿真與調(diào)試結(jié)果 54 心得體會6附錄7 附錄1 實物圖及說明7 附錄2 程序流程圖9 附錄3 程序清單91 實驗任務(wù) 設(shè)計一個多功能LCD電子鐘。要求(1)能顯示年、月、日、星期、時、分、秒;(2)能對年、月、日、星期、時、分、秒進(jìn)行預(yù)置;2 設(shè)計方案21 硬件設(shè)計2.1.1原理框圖 AT89S52單片機按鍵模塊LCD液晶顯示模塊復(fù)位電路晶振電路2.1.2 控制模塊 a. LCD液晶屏顯示電路 b
5、.晶振電路 c.復(fù)位電路 2.1.3 顯示模塊 1602LCD主要技術(shù)參數(shù):顯示容量:16×2個字符芯片工作電壓:4.55.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.95×4.35(W×H)mm引腳功能說明:1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如下表所示: 編號 符號 引腳說明 編號 符號 引腳說明 1 VSS 電源地 9 D2 數(shù)據(jù) 2 VDD 電源正極 10 D3 數(shù)據(jù) 3 VL 液晶顯示偏壓 11 D4 數(shù)據(jù) 4 RS 數(shù)據(jù)/命令選擇 12 D5 數(shù)據(jù) 5 R/W 讀/寫選擇 13
6、D6 數(shù)據(jù) 6 E 使能信號 14 D7 數(shù)據(jù) 7 D0 數(shù)據(jù) 15 BLA 背光源正極 8 D1 數(shù)據(jù) 16 BLK 背光源負(fù)極第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時可以讀忙信號,當(dāng)RS為高電平R/W為低電平
7、時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極。硬件連接原理圖如下: 2.1.4按鍵電路 S0設(shè)置鬧鐘(按鍵1次設(shè)置秒,2次設(shè)置分,3次設(shè)置時,4次設(shè)置星期,5次設(shè)置日期,6次設(shè)置月份,7次設(shè)置年份);S1增加一(設(shè)置中對所選擇變量加一);S2減少一(設(shè)置中對所選擇變量減一);2.2 軟件設(shè)計2.2.1基本資源的使用 本次實驗采用了AT89S52型單片機,1602LCD液晶顯示屏。為了實現(xiàn)時鐘,用到了單片機的外部中斷,計時器中斷,及端口。2.2.2程序設(shè)計的基本思路 主程序包
8、括閏年判定,鍵盤識別控制及液晶屏顯示3個子程序,實現(xiàn)時鐘的顯示,調(diào)節(jié)功能。另外,還有延時,初始化等子程序。利用定時器0來控制時間,實現(xiàn)分鐘,小時,年月的計算。3 仿真與調(diào)試結(jié)果本實驗采用Keil 4和Protues 聯(lián)合仿真調(diào)試 仿真結(jié)果: 經(jīng)過多次的反復(fù)測試與分析,掌握了硬件的設(shè)計與分析的能力,對所學(xué)的知識得到很大的提高與鞏固。最終實現(xiàn)功能:(1)能顯示陽歷年、月、日、星期、小時、分、秒(2)顯示模塊采用LCD液晶顯示,要求能用按鍵調(diào)整日期、時間。4 心得體會本次電子時鐘的實驗課程設(shè)計,學(xué)習(xí)將理論和實踐相結(jié)合,對數(shù)字器件及集成電路有較深入的認(rèn)識,初步掌握綜合運用所學(xué)知識分析和設(shè)計一般數(shù)字系統(tǒng)
9、的基本方法,增強動手解決實際問題的能力。認(rèn)識到了自身的許多缺點和不足,初步接觸到了如何將硬件和軟件相連接來實現(xiàn)一定的自動化。在試驗板的焊接過程中,更深地意識到焊接技術(shù)的重要性。使我明白現(xiàn)實生活中電子鐘的工作原理,鍛煉了查找資料的能力。同時也了解到了仿真成功后,實物圖連接與仿真圖無誤,還是可能會存在實際電路無法正常工作的情況,使用器件,芯片前應(yīng)先做好對器件,芯片的了解工作,知道每一引腳的用途,正確的連接方法,焊接前做好準(zhǔn)備工作,設(shè)計好電路圖,到焊接時可以事半功倍,焊接時也要小心翼翼,最后,也要不斷調(diào)試,完善電路。附錄 附錄1實物圖及說明 說明1:上2圖為上電后,時鐘開始顯示,每進(jìn)一日,時鐘開始判
10、斷有無月份進(jìn)一,年份進(jìn)一等情況,同時實現(xiàn)閏年的判斷。 說明2:此時進(jìn)入時鐘調(diào)節(jié)模式,第一次按下調(diào)節(jié)時間按鍵后,顯示秒鐘調(diào)節(jié),可進(jìn)行加一減一,之后是分鐘調(diào)節(jié),以此類推,時鐘,星期,日,月,年,此圖顯示為月調(diào)節(jié)。年份調(diào)節(jié)后,返回時鐘顯示,正常顯示時間。附錄2 程序流程圖 開始初始化子函數(shù)閏年判斷 設(shè)置按鍵按下 Y 按鍵子程序 N調(diào)用顯示子程序 時鐘顯示 . . 附錄3 程序清單#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit key0=P20; /時間設(shè)置sbit key1=P21; /加
11、一sbit key2=P22; /減一 sbit lcdrw=P25;sbit lcdrs=P26;sbit lcden=P27;uint s,f,m,n,t,shis,shig,fens,feng,mias,miag, nian1,nian2,nian3,nian4,yues,yueg,ris,rig,rp;int nian,yue,ri,shi,fen,mia,a;uchar code tab="MonTusWedThuFriSatSun"void delay(uint x)/延時函數(shù)uint i,j;for(i=0;i<x;i+)for(j=0;j<110
12、;j+);void write_cmd(uchar cmd) /讀命令lcdrs=0;P0=cmd;delay(5);lcden=1;delay(5);lcden=0;void write_data(uchar dat) /讀數(shù)據(jù)lcdrs=1;P0=dat;delay(5);lcden=1;delay(5);lcden=0;void init()shi=23;fen59;mia=55; /時間顯示初值nian=2014;yue=2;ri=27;t=0;f=1;m=0;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=
13、1;TR0=1;a=0;lcdrw=0;write_cmd(0x38);write_cmd(0x0c);write_cmd(0x06);write_cmd(0x01);void display()/時鐘顯示函數(shù)write_cmd(0x81);nian1=nian/1000;nian2=(nian%1000)/100;nian3=(nian%100)/10;nian4=nian%10;yues=yue/10;yueg=yue%10;ris=ri/10;rig=ri%10;write_data(nian1+0x30);write_data(nian2+0x30);write_data(nian3+
14、0x30);write_data(nian4+0x30);write_data(0x2d);write_data(yues+0x30);write_data(yueg+0x30);write_data(0x2d);write_data(ris+0x30);write_data(rig+0x30);write_cmd(0x80+0x0c);for(n=a;n<3+a;n+)write_data(tabn);delay(10);shis=shi/10;shig=shi%10;fens=fen/10;feng=fen%10;mias=mia/10;miag=mia%10;write_cmd(0
15、x80+0x44);write_data(shis+0x30);write_data(shig+0x30);write_data(0x3a);write_data(fens+0x30);write_data(feng+0x30);write_data(0x3a);write_data(mias+0x30);write_data(miag+0x30); void key() /按鍵控制函數(shù)if(!key0)delay(5);if(!key0)while(!key0);s+;if(s=1) TR0=0;f=0;display();write_cmd(0x80+0x40+0x0b);write_cm
16、d(0x0f);if(s=2)display();write_cmd(0x80+0x40+0x08);if(s=3)display();write_cmd(0x80+0x40+0x05);if(s=4)display();write_cmd(0x80+0x0d);if(s=5)display();write_cmd(0x80+0x0a);if(s=6)display();write_cmd(0x80+0x07);if(s=7)display();write_cmd(0x80+0x04);if(s=8)TR0=1;write_cmd(0x0c);display();f=1;if(s=9)s=0;
17、if(!key1)delay(5);if(!key1)while(!key1);if(s!=0)if(s=1)mia+;if(mia=60)mia=0;display();write_cmd(0x80+0x40+0x0b);if(s=2)fen+;if(fen=60)fen=0;display();write_cmd(0x80+0x40+0x08);if(s=3)shi+;if(shi=24)shi=0;display();write_cmd(0x80+0x40+0x05);if(s=4)a=a+3;if(a>18)a=0;display();write_cmd(0x80+0x0d);i
18、f(s=5)ri+;if(ri=32)ri=1;display();write_cmd(0x80+0x0a);if(s=6)yue+;if(yue=13)yue=1;display();write_cmd(0x80+0x07);if(s=7)nian+;if(nian>9999)nian=0;display();write_cmd(0x80+0x04);if(!key2)delay(5);if(!key2)while(!key2);if(s!=0)if(s=1)mia-;if(mia<0)mia=59;display();write_cmd(0x80+0x40+0x0b);if(s
19、=2)fen-;if(fen<0)fen=59;display();write_cmd(0x80+0x40+0x08);if(s=3)shi-;if(shi<0)shi=23;display();write_cmd(0x80+0x40+0x05);if(s=4)a=a-3;if(a<0)a=18;display();write_cmd(0x80+0x0d);if(s=5)ri-;if(ri<0)ri=31;display();write_cmd(0x80+0x0a);if(s=6)yue-;if(yue=0)yue=12;display();write_cmd(0x80+0x07);if(s=7)nian-;if(nian<0)nian=9999;display();write_cmd(0x80+0x04); int panding(int s) /閏年判定函數(shù)if(s%100=0)if(s%400=
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)班主任2022年度個人工作計劃(5篇)
- 叉車出租行業(yè)供需趨勢及投資風(fēng)險研究報告
- 中國汽車半導(dǎo)體行業(yè)市場前瞻與投資戰(zhàn)略規(guī)劃分析報告
- 《魯濱遜漂流記》學(xué)生讀后感
- 寫給女朋友的道歉信(匯編15篇)
- 關(guān)于試用期工作總結(jié)模板匯編七篇
- 環(huán)境演講稿范文集合6篇
- 高中教師個人工作計劃3篇集錦
- 房屋中介買賣合同
- 高中語文教學(xué)反思15篇
- 湖南2025年湖南機電職業(yè)技術(shù)學(xué)院合同制教師招聘31人歷年參考題庫(頻考版)含答案解析
- 2024年電子交易:電腦買賣合同
- 中國文化概論知識試題與答案版
- 期末復(fù)習(xí)提升測試(試題)(含答案)2024-2025學(xué)年四年級上冊數(shù)學(xué)人教版
- 生和碼頭港口設(shè)施維護(hù)管理制度(3篇)
- 黑龍江省哈爾濱市第六中學(xué)2025屆高考數(shù)學(xué)三模試卷含解析
- 【MOOC】數(shù)字邏輯設(shè)計及應(yīng)用-電子科技大學(xué) 中國大學(xué)慕課MOOC答案
- 傷口治療師進(jìn)修匯報
- 研學(xué)活動協(xié)議書合同范本
- ISBAR輔助工具在交班中應(yīng)用
- AIGC行業(yè)報告:國內(nèi)外大模型和AI應(yīng)用梳理
評論
0/150
提交評論