1、使用单片机定时器制作分表;
2、分、秒;
3、可任意调节设置时间;
4、可设置一个闹钟;
5、整点报时功能。
it L4=P2^7;
sbit k1=P3^2;//按钮
sbit k2=P3^3;
sbit k3=P3^4;
sbit k4=P3^5;
sbit beep=P3^6;//蜂鸣器
uchar code Lduan0[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//无小数点
uchar code Lduan1[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//有小数点
uchar time=0,miao=0,fen=0;//正常计时
uchar moshi=0; //系统模式
uchar fen_nao=0,miao_nao=30;//闹钟时间
uchar buzzr=0;//蜂鸣器报警时间
//延时函数
void delay_us(uint i)
{
uchar j=0;
for(j=0;j<i;j++);
}
//主函数
void main()
{
uchar k=0;
TMOD|=0X01;//设置定时器0
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
TR0=1;
while(1)
{
if(!k1 &&(k!=1))//设置
{
k=1;
if(buzzr==0)
{
if(moshi<4)
moshi++;
else
moshi=0;
}
else
{
buzzr=0;
}
}
if(!k4)//OK
{
moshi=0;
buzzr=0;
}
if(moshi==1)//设置当前分钟
{
if(!k2 &&(k!=2))//加
{
k=2;
if(fen<59)
fen++;
else
fen=0;
}
if(!k3 &&(k!=3))//减
{
k=3;
if(fen>0)
fen--;
else
fen=59;
}
}
if(moshi==2)//设置当前秒
{
if(!k2 &&(k!=2))//加
{
k=2;
if(miao<59)
miao++;
else
miao=0;
}
if(!k3 &&(k!=3))//减
{
k=3;
if(miao>0)
miao--;
else
miao=59;
}
}
if(moshi==3)//设置闹钟分钟
{
if(!k2 &&(k!=2))//加
{
k=2;
if(fen_nao<59)
fen_nao++;
else
fen_nao=0;
}
if(!k3 &&(k!=3))//减
{
k=3;
if(fen_nao>0)
fen_nao--;
else
资料借鉴于此纷传
阅读全文