📄 111.c
字号:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit f=P3^4;
uint a,ge,shi,i,j,k=12,fg,fs,xg,xs,xingqi=1;
uchar hour=0, minute=0,flag=0;
void display(uint ge,uint shi,uint fg,uint fs,uint xg,uint xs);
void fm();
uchar code wm[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar code dm[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
sbit ke1=P0^4; // 正常调时
sbit ke2=P0^5; //正常调分
sbit ke4=P0^7; //正常调星期
sbit k3=P0^6;//闹钟调时
sbit k5=P0^3; // 闹钟调分
sbit k6=P0^2;//切换闹钟模式
void delay(uint s)
{
uint x,y;
for(x=s;x>0;x--)
for(y=110;y>0;y--);
}
void timer()interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
}
void key()
{
P0=0xfe;
if(ke1==0)
{
k++;
if(k==24)
k=0;
while(!ke1);
}
if(ke2==0)
{
j++;
if(j==60)
j=0;
while(!ke2);
}
if(ke4==0)
{
while(!ke4);
xingqi++;
if(xingqi==8)
{
xingqi=1;
}
}
if(k6==0)
{
while(!k6);
flag=~flag;
} }
void setclock() //闹钟键盘扫描
{
if(k3==0)
{
delay(10);
if(k3==0)
{
if(hour<23)
hour++;
else hour=0;
}
while(!k3);
}
//模式——闹钟调分
{
if(k5==0)
{
delay(10);
if(k5==0)
{
if(minute<59)
minute++;
else minute=0;
}
while(!k5);
}
}
}
void panduanmaozhong()//判断闹钟时间是否到来
{
if( (j==minute)&(k==hour))
{
P3=0x00;
}
}
void main()
{
TMOD=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
P3=0x01;
while(1)
{
if(a>=20)
{
a=0;
i++;
if(i==60)//秒
{
j++;
i=0;
if(j==60) //分
{
k++;
j=0;
if(k==24) //时
{
xingqi++ ;
k=0;
if(xingqi>7) //星期
{
xingqi=1;
}
}
}
}
}
ge=i%10;
shi=i/10;
fg=j%10;
fs=j/10;
xg=k%10;
xs=k/10;
if(flag==0)
display(ge,shi,fg,fs,xg,xs);
else
display(ge,shi,(minute%10),(minute/10),(hour%10),(hour/10));
if(fg==9&&fs==5&&shi==5&&(ge==1||ge==3||ge==5||ge==7||ge==9))
P3=0x00;
else P3=0x01;
key();
setclock(); //闹钟键盘扫描
panduanmaozhong();//判断闹钟时间是否到来
}
}
void display(uint ge,uint shi,uint fg,uint fs,uint xg,uint xs)
{
P1=wm[0];
P2=dm[xingqi];
delay(1);
P1=wm[2];
P2=dm[xs];
delay(1);
P1=wm[3];
P2=dm[xg];
delay(1);
P1=wm[4];
P2=dm[fs];
delay(1);
P1=wm[5];
P2=dm[fg];
delay(1);
P1=wm[6];
P2=dm[shi];
delay(1);
P1=wm[7];
P2=dm[ge];
delay(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -