完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
***it sd=P3^6; //选锁存器 ***it key1=P1^0; // 选择键 ***it key2=P1^3; //s4 时间增加 ***it key3=P1^2; //S3 时间减少 char a=0,hour=0,minute=0,seconed=0; char h1,h2,m1,m2,s1,s2; char num=0; char code table[]={~0x3f,~0x06,~0x5b,~0x4f,~0x66,~0x6d,~0x7d,~0x07,~0x7f,~0x6f}; void delay(char z) { char x,y; for(x=z;x>0;x--) for(y=160;y>0;y--); } void display_hour(char h) //显示小时 { h1=h/10; h2=h%10; sd=1; P0=table[h1]; P2=0xfe; //1111 1110 sd=0; delay(10); sd=1; P2=0xfd; //1111 1101 P0=table[h2]; sd=0; delay(10); } void display_minute(char m) //显示分钟 { m1=m/10; m2=m%10; sd=1; P0=table[m1]; P2=0xf7; //1111 0111 sd=0; delay(10); sd=1; P2=0xef; //1110 1111 P0=table[m2]; sd=0; delay(10); sd=1; P0=0xbf; P2=0xdb; sd=0; delay(10); } void display_seconed(char s) //显示秒 { s1=s/10; s2=s%10; sd=1; P2=0xbf; //1011 1111 P0=table[s1]; sd=0; delay(10); sd=1; P2=0x7f; //0111 1111 P0=table[s2]; sd=0; delay(10); } void init() //初始化函数 { TMOD=0x01; //定时器0工作方式1 TH0=(65536-45872)/256; //装初值晶振11.0592 50ms为45872 TL0=(65536-45872)%256; EA=1; //开总中断 ET0=1; //开定时器0中断 TR0=1; //开启定时器0 } void key() //按键函数,功能为对时间进行调整 { if(key1==0) //key1键按下进入选择并停止定时器 { delay(10); while(!key1); //松手检测 TR0=0; num++; //没按一次key1 num自加1 } if(num==1) //key1按一次进行“小时”调整 { if(key2==0) //key2按下时间增加 { delay(10); while(!key2); hour++; if(hour==24) hour=0; } if(key3==0) //key3按下时间减少 { delay(10); while(!key3); hour--; if(hour<0) hour=23; } } if(num==2) //按下key1两次进行“分钟调整” { if(key4==0) { delay(10); while(!key4); minute++; if(minute==60) minute=0; } if(key3==0) { delay(10); while(!key3); minute--; if(minute<0) minute=59; } } if(num==3) //key1按下三次对“秒”进行调节 { if(key4==0) { delay(10); while(!key4); seconed++; if(seconed==60) seconed=0; } if(key3==0) { delay(10); while(!key3); seconed--; if(seconed<0) seconed=59; } } if(num==4) //key1按下四次认为调节完毕开启定时器并将num清0 { num=0; TR0=1; } } void main() { init(); while(1) { display_seconed(seconed); //显示“秒,分,时” display_minute(minute); display_hour(hour); if(a==20) //判断定时器是否到1s { a=0; seconed++; if(seconed>59) { seconed=0; minute++; if(minute>59) { minute=0; hour++; if(hour>23) { hour=0; } } } } key(); } } void time() interrupt 1 { TH0=(65536-45872)/256; TL0=(65536-45872)%256; a++; } 求哪位高人帮我再加一个闹钟 ,我已经弄了好几次了,都没成功。
|
|
相关推荐
10个回答
|
|
程序要调行,谁也保证不了写个程序不调就能用,自己慢慢调吧,有什么具体的问题再来问
|
|
|
|
|
|
|
|
最重要我是不知道怎么编一个闹钟的啊,帮帮忙啦,你有没有关于闹钟的程序啊?
|
|
|
|
大概加在那里啊,我有急用。学校马上就要交了,{:soso_e109:} |
|
|
|
同学 你会了吗?
|
|
|
|
|
|
着急赶快调呀
|
|
|
|
程序有错吧,哪里有key4啊?
|
|
|
|
不错的文件,值得收藏
|
|
|
|
感谢分享好资料
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
828 浏览 0 评论
824 浏览 0 评论
861 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
836 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
1292 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11824 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 17:33 , Processed in 0.887189 second(s), Total 89, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号