完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
#include
#define uint unsigned int//位定义 uchar table[]="tiME"; ***it lcden=P3^4; ***it lcdrs=P3^5;//液晶位定义 ***it L2=P3^6; ***it L1=P3^2; extern void key1(); extern void key2(); extern void key3(); uchar num,hour=12,minite,second,a,F_k1,F_k2,F_k3; void delay(uint z)//调用延迟函数 {uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void write_com(uchar com)//液晶写指令函数 {lcdrs=0;//rs=0表示读/写指令 P2=com;//准备要写的数据 delay(5); lcden=1;//E引脚拉高 delay(5); lcden=0;//E引脚的下降沿数据被写入 } void write_data(uchar date)//液晶写数据函数 {lcdrs=1;//rs=1表示读/写数据 P2=date;delay(5); lcden=1; delay(5); lcden=0; } void write_add(uchar add,uchar date) {ucharaa,bb;aa=date/10; bb=date%10; write_com(0x80+add); write_data(0x30+aa); write_data(0x30+bb); } void init() {lcden=0; write_com(0x38);//设置16x2显示 write_com(0x0c);//屏幕开,关光标 write_com(0x06);//显示模式:屏不动,字符后移 write_com(0x01);//清屏 write_com(0x80); } void display(uchar h,uchar m,uchar s) { write_com(0x80+0x04);//写入第一行 write_data(':');//写入: write_data(0x30+(h/10));//显示器写入小时的十位 write_data(0x30+(h%10));//显示器写入小时的个位 write_data(':');//写入: write_data(0x30+(m/10));//显示器写入分钟的十位 write_data(0x30+(m%10));//显示器写入分钟的个位 write_data(':');//写入: write_data(0x30+(s/10));//显示器写入秒的十位 write_data(0x30+(s%10));//显示器写入秒的个位 write_data(' '); write_data(' '); write_data(' '); write_data(' '); write_com(0xc0);//写入第二行 write_data(0x57);//写入W write_data(0x41);//写入A write_data(0x52);//写入R write_data(0x4e);//写入N write_data(0x49);//写入I write_data(0x4e);//写入N write_data(0x47);//写入G } void main(){init(); //*******定时器T1中断*********// TMOD=0X01;//设置定时器0工作方式为1 TH0=(65535-50000)/256; TL0=(65535-50000)%256; EA=1;//打开总中断 TR0=1;//开启定时器 ET0=1;//开启定时器0中断 for(num=0;num<4;num++)//循环5次 {write_data(table[num]);} while(1) {key1();key2();key3(); if((hour==0)&&(minite==0)&&(second==0))//显示器时间为00:00:00 { L2=0;//电磁锁打开 L1=0;//警示灯灭 write_com(0xc0);//写入显示器第二行 write_data(0x4f);//写入O write_data(0x50);//写入P write_data(0x45);//写入E write_data(0x4e);//写入N write_data(' '); write_data(' '); write_data(' '); while(1) {;} } if(F_k1==0&F_k3==0) display(hour,minite,second);//显示倒计时时间} } void timer0() interrupt 1 //定时器0工作方式1 { TH0=(65535-50000)/256; TL0=(65535-50000)%256; a--; if(a==0xff) {a=20; second--; if(second==0xff) {second=59; minite--; if(minite==0xff) {minite=59; hour--; if(hour==0xff) {hour=23; } } } } } #include "reg52.h" #define uchar unsigned char #define uint unsigned int ***it k1=P1^0;//定义P1.0为按键K1 ***it k2=P1^1;//定义P1.1为按键K2 ***it k3=P1^2;//定义P1.2为按键K3 extern uchar F_k1,F_k3,second,minite,hour; extern void write_com(uchar com); extern void write_add(uchar add,uchar date); extern void display(uchar h,uchar m,uchar s); void delay_key(int i) {while(i--);} void key1() { if(k1==0){delay_key(100); if(k1==0) { TR0=0;//关闭定时器T0 while(!k1); F_k1++; if(F_k1==4) {F_k1=0; write_com(0x0c); TR0=1;//启动T0定时器 } } } if(F_k1==1|F_k3==1) {write_com(0x80+0x0c);//显示器调节秒write_com(0x0f); } if(F_k1==2|F_k3==2) write_com(0x80+0x09);//显示器调节分 if(F_k1==3|F_k3==3) write_com(0x80+0x06);//显示器调节时 } void key2() {if(k2==0) {delay_key(100); {while(!k2); if(F_k1==1) {second++; if(second==60) second=0; write_add(0x0b,second);//显示器加1s } if(F_k1==2) {minite++; if(minite==60) minite=0; write_add(0x08,minite);//显示器加1min } if(F_k1==3) {hour++; if(hour==24) hour=0; write_add(0x05,hour);//显示加1h } if(F_k3==1) {second--; if(second==0xff) second=59; write_add(0x0b,second);//显示器减1s } if(F_k3==2) {minite--; if(minite==0xff) minite=59; write_add(0x08,minite);//显示器减1min } if(F_k3==3) {hour--; if(hour==0xff) hour=23; write_add(0x05,hour);//显示器减1h } } } } void key3() {if(k3==0) {delay_key(100); if(k3==0) {while(!k3); F_k3++; if(F_k3==4) {F_k3=0; write_com(0x0c); } if(F_k3==1) display(hour,minite,second);//显示小时分钟秒}}} |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
265 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
789 浏览 0 评论
1306 浏览 2 评论
787 浏览 0 评论
【RA4M2-SENSOR开发板评测】Analogue+Timers综合测试
1587 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16903 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 13:51 , Processed in 0.739257 second(s), Total 71, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2309