51开发板简易闹钟程序.docx

上传人:大米 文档编号:548197137 上传时间:2023-12-25 格式:DOCX 页数:9 大小:17.30KB
返回 下载 相关 举报
51开发板简易闹钟程序.docx_第1页
第1页 / 共9页
51开发板简易闹钟程序.docx_第2页
第2页 / 共9页
51开发板简易闹钟程序.docx_第3页
第3页 / 共9页
51开发板简易闹钟程序.docx_第4页
第4页 / 共9页
51开发板简易闹钟程序.docx_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《51开发板简易闹钟程序.docx》由会员分享,可在线阅读,更多相关《51开发板简易闹钟程序.docx(9页珍藏版)》请在金锄头文库上搜索。

1、简易可调时可定时闹钟说明:1:功能:这是一个利用51开发板制作的简易的可调时可定时闹钟,功能是在数码管上显示时钟,在时钟模式下,按矩阵键盘的0,1,2可以分别使时,分,秒自加,完成调时功能,按k3键(P3.2,它是一个外部中断)时钟停止走动,进入闹钟定时功能,然后按k1(P3.1)键可以循环选中数码管显示时钟的6个位,在选中状态时,按矩阵键盘的9个键进行闹钟的定时,定时完成后,再按k4(P3.3,它是另一个外部中断)键回到时钟,当时钟走到设定的时间后,蜂鸣器会响,时钟继续走。2:数码管的位选是通过3-8译码器(P2.2,P2.3,P2.4)控制的,段选通过P0(共阴)控制的,蜂鸣器是无源蜂鸣器

2、,通过P1.5控制。程序源代码:#include#define uint unsigned int#define uchar unsigned charvoid WEI(uint a);/位选函数void clock();/时钟函数void delay1ms(uint);/1ms延时函数void timermod();/定时器中断初始化void Intmod();/外部中断初始化void KeyDown();/矩阵键盘检测函数void clock_stop();/时钟停止函数void ling_sheng();/铃声函数sbit beep=P15;uchar code DUAN=0x3f,0x

3、06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/0f段选sbit LED1=P22; sbit LED2=P23; sbit LED3=P24;sbit k1=P31;sbit k2=P30;sbit k3=P32;sbit k4=P33;uchar shi,fen,miao,miao1,fen1,shi1,m,key,p1,keystate;uint D1,D2,D3,D4,D5,D6,i,j,tsmark; void main(void)miao1=9;fen1=9;shi1=9;key=4

4、;p1=1;timermod();Intmod(); while(1)if(p1=0)/检测是否进入闹钟定时模式clock_stop();if(k1=0)/选择要定时的位(一共六个)delay1ms(10);if(k1=0)keystate=0;tsmark+;if(tsmark=7)tsmark=1;while(k1=0);/松手检测if(tsmark=1)/调时标志,检测是否调时的十位,下面以此类推KeyDown(); if(keystate=1) if(key2)key=2;D6=key;keystate=0;if(tsmark=2)KeyDown(); if(keystate=1) i

5、f(key4)key=4;D5=key;keystate=0;if(tsmark=3)KeyDown(); if(keystate=1) if(key5)key=5;D4=key;keystate=0;if(tsmark=4)KeyDown(); if(keystate=1) if(key9)key=9;D3=key;keystate=0;if(tsmark=5)KeyDown(); if(keystate=1) if(key5)key=5;D2=key;keystate=0;if(tsmark=6)KeyDown(); if(keystate=1) if(key9)key=9;D1=key;

6、keystate=0;if(p1=1)/检测是否进入时钟模式clock();KeyDown();if(key=0)/按矩阵键盘的0进行时的调时,下面以此类推key=4;shi+;if(shi=24)shi=0;if(key=1)key=4;fen+;if(fen=60)fen=0;if(key=2)key=4;miao+;if(miao=60)miao=0;void WEI(uint a)switch(a)case 0:LED1=0;LED2=0;LED3=0;break;case 1:LED1=1;LED2=0;LED3=0;break;case 2:LED1=0;LED2=1;LED3=0

7、;break;case 3:LED1=1;LED2=1;LED3=0;break;case 4:LED1=0;LED2=0;LED3=1;break;case 5:LED1=1;LED2=0;LED3=1;break;case 6:LED1=0;LED2=1;LED3=1;break;case 7:LED1=1;LED2=1;LED3=1;break;void clock()if(m=20)miao+;m=0;if(miao=60)fen+;miao=0;if(fen=60)shi+;fen=0;if(shi=24)shi=0;D1=miao%10;D2=miao/10;D3=fen%10;D

8、4=fen/10;D5=shi%10;D6=shi/10;for(i=0;i0;b-)for(c=110;c0;c-);void timermod()TMOD=0x01;TH0=0x3c;TL0=0xb0;EA=1;ET0=1;TR0=1;void Timer0() interrupt 1TH0=0x3c;TL0=0xb0;m+;void Intmod()IT0=1;EX0=1;IT1=1;EX1=1;EA=1;void Int0() interrupt 0delay1ms(10);if(k3=0)p1=0; void Int1() interrupt 2delay1ms(10);if(k4=0)key=3;p1=1;miao1=D2*10+D1;fen1=D4*10+D3;shi1=D6*10+D5;void clock_stop()uchar j;for(i=0;i=20)miao+;m=0;if

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号