




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、題目: 電子時鐘(LCD顯示)設(shè)計要求以AT89C51單片機為核心的時鐘,在LCD顯示器上顯示當前的時間: 使用字符型LCD顯示器顯示當前時間。 顯示格式為“時時:分分:秒秒”。 用4個功能鍵操作來設(shè)置當前時間,4個功能鍵接在P1.0P1.3引腳上。功能鍵K1K4功能如下。 K1進入設(shè)置現(xiàn)在的時間。 K2設(shè)置小時。 K3設(shè)置分鐘。 K4確認完成設(shè)置。程序執(zhí)行后工作指示燈LED閃動,表示程序開始執(zhí)行,LCD顯示“00:00:00”,然后開始計時。原理圖:仿真圖:程序:#include"reg51.h"#include"intrins.h"#define u
2、char unsigned int#define DelayNOP()_nop_();_nop_();_nop_();sbit K1=P10; /選擇調(diào)整小時,分鐘sbit K2=P11; /增加sbit K3=P12; /減少sbit K4=P13;sbit SPK=P30;sbit RS=P20;sbit RW=P21;sbit E=P22;uchar code Str1=" Current Time " /以下兩個字符串的串長均為16 uchar code Str2="Set New Time. "uchar HMS String=" 0
3、0:00:00 " /待顯示的時間串bit Settime=0; /是否修改時間bit Change_H_or_M=1; /1表示修改時,0表示修改分uchar Millisecond,Hour=0,Minute=0,Second=0;/-/延時函數(shù)/-void DelayMS(uint x)uchar i;while(x-) for (i=0;i<120;i+);/- /LCD忙狀態(tài)檢測/-bit LCD_Busy_check()bit result;RS=0; RW=1; E=1; DelayNOP(); result=(bit)(PO&0x80); E=0; re
4、turn result;/-/寫LCD命令/-void LCD_Write_Command(Uchar cmd)while( LCD_Busy_Check(); /判斷LCD是否忙碌RS=0; RW=0; E=0; nop_(); nop_(); P0=cmd; DelayNOP(); E=1; DelayNOP():E=0;/-/設(shè)置LCD顯示位置/-void LCD_Set_Pos(uchar pos)LCD_Write_Command(pos | 0x80);/-/寫LCD數(shù)據(jù)/-void LCD_Write_Data(uchar dat)while(LCD_Busy_Check();
5、/判斷LCD是否忙碌 RS=1;RW=0;E=0;P0=dat; DelayNOP();E=1;DelayNOP();E=0;/- /LCD初始化/-void LCD_Initialize()LCD_Write_Command(0x38);DelayMS(1);LCD_Write_Command(0x0c);DelayMS(1);LCD_Write_Command(0x06);DelayMS(1);LCD_Write_Command(0x01);DelayMS(1);/- /顯示函數(shù),在LCD指定的行上顯示字符/- void Display_String(uchar * str,uchar L
6、ineNo)uchar k;LCD_Set_Pos(LineNo);for(k=0;k<16;k+) LCD_Write_Data(strk); /- /蜂鳴函數(shù)/- void Beep()uchar i,j=70;for(i=0;i<200;i+)while (-j); SPK=SPK;DelayMS(300); SPK=0;/- /時分秒顯示/- void Display_HMS(uchar h,m,s)if(Settime) HMS_String3='>' /顯示修改標志 else HMS_String3='' /不顯示修改標志 HMS_
7、String4=h/10+'0' /時HMS_String5=h%10+'0'HMS_String7=m/10+'0' /分HMS_String8=m%10+'0'HMS_String10=s/10+'0' /秒HMS_String11=s%10+'0'Display_String(HMS_String,0x40);/- /設(shè)置時間/-void Change_Time()Settime=0;if(K1=0|K2=0|K3=0) /按下K1,K2,K3中的任何一 個鍵即進入修改狀態(tài)TRO=0;Disp
8、lay_String(Str2,0x00); /第一行提示修改時間Settime=1;while (Settime)if(K1=0) /確定調(diào)整小時還是分鐘Beep();while (K1=0)Change_H_or_M= !Change_H_or_M;else if (K2=0) /增加Beep();while (K2=0);if (Change_H_or_M=1)if (+Hour=24) Hour=0;elseif (+Minute=60) Minute=0;else if (K3=0) /減少Beep();while (K3=0);if (Change_H_or_M=1) if (-H
9、our=0xff) Hour=23;else if (-Minute=0xff) Minute=59;else if (K4=0) /確定Beep();while (K4=0);Display_String(Str1,0x00); /第一行還原顯示Str1Settime=0;TRO=1; /外層While在這里結(jié)束/- /定時器0中斷/-void Time() interrupt 1THO=(65536-50000)/256;TLO=(65536-50000)%256; /重新裝入50MS定時 if (+MilliSecond=20) /50*20=1sMilliSecond=0;if (+Second=60)Second=0;if (+Minute=60)Minute=o;if (+Hour=24)Hour=0;Minute=0;Second=0;/-/主函數(shù)/-void main()TMOD=0x01;THO =(65536-50000)/256;TLO =(65536-50000)%256;IE=0x82;SPK=0;LCD_I
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB3709T 038-2025泰山茶 山地低產(chǎn)茶園提升改造技術(shù)規(guī)程
- 海南九樂再生資源回收與利用有限公司水穩(wěn)站項目環(huán)評報告表
- 項目資金評分表
- 海航技術(shù)附件維修事業(yè)部??趶?fù)材車間新租賃廠房及APU新試車臺項目環(huán)評報告表
- 店鋪硅酸鈣板施工方案
- 隔墻板做磚胎膜的施工方案
- 福建省泉州市2025屆高中畢業(yè)班質(zhì)量監(jiān)測 (三)物理試題(含答案)
- 地板磚鋪設(shè)施工方案
- 2024-2025學(xué)年下學(xué)期高二語文第三單元A卷
- 數(shù)控加工工藝與編程技術(shù)基礎(chǔ) 教案 模塊一 任務(wù)2 初識數(shù)控加工工藝
- 小兒鋅缺乏癥剖析
- 古風(fēng)集市策劃方案
- 道路危險貨物運輸安全培訓(xùn)課件
- 社會工作綜合能力初級講義課件
- 青春期心理健康講座課件
- 《廣聯(lián)達培訓(xùn)教程》課件
- 兒童流感的防治和預(yù)防措施
- 美業(yè)招商課件
- 城市災(zāi)害學(xué)課件-地質(zhì)災(zāi)害(1)課件
- 面密度儀設(shè)備原理培訓(xùn)課件
- 鑄件(原材料)材質(zhì)報告
評論
0/150
提交評論