如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
简易可调时可定时闹钟说明: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(共阴)控制的,蜂鸣器是无源蜂鸣器,通过P1.5控制。程序源代码:#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharvoidWEI(uinta);//位选函数voidclock();//时钟函数voiddelay1ms(uint);//1ms延时函数voidtimermod();//定时器中断初始化voidIntmod();//外部中断初始化voidKeyDown();//矩阵键盘检测函数voidclock_stop();//时钟停止函数voidling_sheng();//铃声函数sbitbeep=P1^5;ucharcodeDUAN[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0~f段选sbitLED1=P2^2;sbitLED2=P2^3;sbitLED3=P2^4;sbitk1=P3^1;sbitk2=P3^0;sbitk3=P3^2;sbitk4=P3^3;ucharshi,fen,miao,miao1,fen1,shi1,m,key,p1,keystate;uintD1,D2,D3,D4,D5,D6,i,j,tsmark;voidmain(void){miao1=9;fen1=9;shi1=9;key=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(key>2)key=2;D6=key;keystate=0;}}if(tsmark==2){KeyDown();if(keystate==1){if(key>4)key=4;D5=key;keystate=0;}}if(tsmark==3){KeyDown();if(keystate==1){if(key>5)key=5;D4=key;keystate=0;}}if(tsmark==4){KeyDown();if(keystate==1){if(key>9)key=9;D3=key;keystate=0;}}if(tsmark==5){KeyDown();if(keystate==1){if(key>5)key=5;D2=key;keystate=0;}}if(tsmark==6){KeyDown();if(keystate==1){if(key>9)key=9;