




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于STC89C52單片機時鐘1.1602顯示。第一行顯示年月日,第二行顯示時分秒。2.開機顯示個性的畫面,約5S后進入時間顯示界面。3.漢字顯示“年”“月”“日”。4.時間可調。時間調節由三按鍵控制。鍵一控制調節位,按下鍵一后,時鐘停止走時,出現光標,每按一次光標移向下一個調節位,按五次后,退出調節模式。鍵二為加鍵,鍵三為減鍵。只有在模式調節下才起作用。5.該時鐘程序僅僅只是時鐘功能的實現,走時并不精確。或者說是參考模型,可以在此基礎上進行優化和更改。按鍵部分可進行大優化,為了在實驗板上做實驗,而實驗板為矩陣鍵盤。所以按鍵定義了四個端口。#include #include #define u
2、char unsigned char#define uint unsigned intsbit LCD_RS=P10;/ 定義寄存器選擇sbit LCD_RW=P11;/ 定義讀寫信號線sbit LCD_EN=P12;/ 定義定義使能端sbit key1=P00;sbit key2=P04;sbit key3=P05;sbit key4=P06;void delay_ms(uint xms); /延時函數聲明bit lcd_busy();/忙檢查函數聲明void lcd_wcmd(uchar cmd);/寫指令寄存器IR函數聲明void lcd_wdat(uchar dat);/寫數據寄存器D
3、R函數聲明void lcd_clr(); / 清屏函數聲明void lcd_init(); / LCD初始化函數聲明void key_mode();void year_moon_day();uchar dis_buf19;uchar dis=0,1,2,3,4,5,6,7,8,9;uchar code name1=help yourself!;uchar code name2=hold on!;ucharyear_month_day38=0 x04,0 x0f,0 x12,0 x0f,0 x0a,0 x1f,0 x02,0,/年0 x0f,0 x09,0 x0f,0 x09,0 x0f,0 x
4、09,0 x13,0 x00,/月0 x0e,0 x0a,0 x0a,0 x0e,0 x0a,0 x0a,0 x0e,0 x02 /日;uchar dingshi=0;/50ms計數uchar flag=0;/按鍵控制變量char miao=55,fen=59,shi=23;char moon=12,day=31;int year=2012;uchar leap;uchar shan;/控制時分的閃爍位uchar key_value;/*LCD顯示部分*/讀忙bit lcd_busy()bit result;LCD_RS=0;LCD_RW=1;LCD_EN=1;_nop_();_nop_();
5、_nop_();_nop_();result=(bit)(P2&0 x80);LCD_EN=0;return result;/清屏void lcd_clr()lcd_wcmd(0 x01);delay_ms(5);/寫指令void lcd_wcmd(uchar cmd)while(lcd_busy();/delay_ms(2);LCD_RS=0;LCD_RW=0;LCD_EN=0;_nop_();_nop_();P2=cmd;_nop_();_nop_();_nop_();_nop_();LCD_EN=1;_nop_();_nop_();_nop_();_nop_();LCD_EN=0;/寫數
6、據void lcd_wdat(uchar dat)while(lcd_busy();/delay_ms(2);LCD_RS=1;LCD_RW=0;LCD_EN=0;_nop_();_nop_();P2=dat;_nop_();_nop_();_nop_();_nop_();LCD_EN=1;_nop_();_nop_();_nop_();_nop_();LCD_EN=0;/顯示初始化void lcd_init()/delay_ms(15);lcd_wcmd(0 x38); /顯示模式為16*2 5*7點陣 8位數據delay_ms(5);lcd_wcmd(0 x38);delay_ms(5);
7、lcd_wcmd(0 x01); /清屏delay_ms(5);lcd_wcmd(0 x06); /移動光標delay_ms(5);lcd_wcmd(0 x0c); /開光標delay_ms(5);void delay_ms(uint xms)uchar i,j;for(i=xms;i0;i-)for(j=110;j0;j-);void lcd_conv(uchar shi,fen,miao)dis_buf0=disshi/10;dis_buf1=disshi%10;dis_buf2=0 x3a;dis_buf3=disfen/10;dis_buf4=disfen%10;dis_buf5=0
8、x3a;dis_buf6=dismiao/10;dis_buf7=dismiao%10;void lcd_conv_year(uint year,uchar moon,day)dis_buf8=disyear/1000;dis_buf9=dis(year%1000)/100;dis_buf10=dis(year%100)/10;dis_buf11=disyear%10;dis_buf12=1;dis_buf13=dismoon/10;dis_buf14=dismoon%10;dis_buf15=2;dis_buf16=disday/10;dis_buf17=disday%10;dis_buf1
9、8=3;void lcd_dis()uchar i;lcd_conv(shi,fen,miao);lcd_conv_year(year,moon,day);lcd_wcmd(0 x00|0 x80);for(i=8;i19;i+)lcd_wdat(dis_bufi);lcd_wcmd(0 x40|0 x80);for(i=0;i8;i+)lcd_wdat(dis_bufi);/自定義字符圖形void lcd_wCGROM()/將漢字寫入CGROM uchar i,j;for(i=1;i4;i+)for(j=0;j5)flag=0;lcd_wcmd(0 x0c); /關光標delay_ms(1)
10、;TR0=1; if(key3=0)key_value=2; if(key4=0)key_value=3;while(key2=0|key3=0|key4=0); void keyprocess()switch(flag)case 1:if(key_value=2)shi+;if(shi23)shi=0;lcd_dis();lcd_wcmd(0 xc0+1);delay_ms(1);if(key_value=3)shi-;if(shi59)fen=0;lcd_dis();lcd_wcmd(0 xc0+4);delay_ms(1);if(key_value=3)fen-;if(fen9999)y
11、ear=2000;lcd_dis();lcd_wcmd(0 x80+3);delay_ms(1);if(key_value=3)year-;if(year12)moon=1;lcd_dis();lcd_wcmd(0 x80+6);delay_ms(1);if(key_value=3)moon-;if(moon29)day=1;if(moon=2&(year-2000)%4!=0)&day28)day=1;if(moon=1|moon=3|moon=5|moon=7|moon=8|moon=10|moon=12)&day31)day=1;if(moon=4|moon=6|moon=9|moon=
12、11)&day30)day=1;lcd_dis();lcd_wcmd(0 x80+9);delay_ms(1);if(key_value=3)day-;if(moon=2&(year-2000)%4=0)&day1)day=29;if(moon=2&(year-2000)%4!=0)&day1)day=28;if(moon=1|moon=3|moon=5|moon=7|moon=8|moon=10|moon=12)&day1)day=31;if(moon=4|moon=6|moon=9|moon=11)&day20)miao+; dingshi=0;if(miao59)miao=0;fen+;
13、if(fen59)fen=0;shi+;if(shi23)shi=0;year_moon_day();/年月日void year_moon_day()day+;if(year-2000)%4=0)leap=1;elseleap=0;if(day28) switch(moon) case 1:if(day31)day=1;break; case 2:if(leap=1) if(day29)day=1;moon+; else day=1;moon+; break; case 3:if(day31)day=1;moon+;break; case 4:if(day30)day=1;moon+;brea
14、k; case 5:if(day31)day=1;moon+;break; case 6:if(day30)day=1;moon+;break; case 7:if(day31)day=1;moon+;break; case 8:if(day31)day=1;moon+;break; case 9:if(day30)day=1;moon+;break; case 10:if(day31)day=1;moon+;break; case 11:if(day30)day=1;moon+;break; case 12:if(day31)day=1;moon+;break; if(moon12) moon=1; year+; if(year9999) year=2000; void display()/開機個性化顯示uchar i;lcd_wcmd(0 x00|0 x80);i=0;while(i14)lcd_wdat(name1i);i+;lcd_wcmd(0 x40|0 x80);i=0;while(i8)lcd_wdat(name2i);i+;void main()
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CHC 115.1-2021 T/CAS 115.1-2021保健紡織品第1部分:通用要求
- T/CGCC 17-2018商業信譽評價體系
- T/CECS 10181-2022消防排煙通風天窗
- T/CCSAS 026-2023化工企業操作規程管理規范
- T/CCS 027-2023煤礦地理信息系統地圖服務接口要求
- T/CCOA 14-2020組織蛋白
- T/CCMA 0166-2023施工升降機標識
- T/CCASC 6007-2023水合肼、ADC發泡劑行業清潔生產評價指標體系
- T/CCAAS 001-2023“黨建+企業文化管理”評價標準
- T/CATCM 026-2023中藥液體廢棄物循環利用指導原則
- 2025至2030年中國智能學習機行業投資前景及策略咨詢研究報告
- (高清版)DG∕TJ 08-7-2021 建筑工程交通設計及停車庫(場)設置標準
- 教育咨詢保密協議書
- 無房無車離婚協議書
- 南師附中高三數學備忘錄及答案詳解
- 2025-2030年中國甲巰咪唑片行業市場現狀供需分析及投資評估規劃分析研究報告
- 2025年安徽國控資產管理有限公司第二季度社會招聘5人筆試參考題庫附帶答案詳解
- 2025年安全知識競賽題庫及答案(共200題)
- 2025中考語文7-9年級總復習古詩詞默寫
- 2024年湖北省中考地理生物試卷(含答案)
- 電氣裝置安裝工程接地裝置施工及驗收規范——50169-2006
評論
0/150
提交評論