LCD液晶显示可调时钟

void  clock_2() //可调时钟
{
unsigned char num;
init_timer0();
while(1)
{
 num = keyscan1();
 switch(num)
 {
  case 1: hour++;if(hour == 24)hour = 0;
break;
case 5: hour--;if(hour == 255)hour = 23;
break;
case 2:minute++;if(minute == 60)minute = 0;
break;
case 6:minute--;if(minute == 255) minute = 59;
break;
default:break;
 }
 if(updatetimerflag == 1)
 {
  updatetimerflag = 0;
LCD_Write_Char(3,1,hour/10+'0');
LCD_Write_Char(4,1,hour%10+'0');
LCD_Write_Char(5,1,':');
LCD_Write_Char(6,1,minute/10+'0');
LCD_Write_Char(7,1,minute%10+'0');
LCD_Write_Char(8,1,':');
LCD_Write_Char(9,1,second/10+'0');
LCD_Write_Char(10,1,second%10+'0');
 }
}
}


void init_timer0() //定时器初始化程序
{
TMOD |= 0X01;
EA = 1;
ET0 = 1;
TR0 = 1;


}


void timer0_isr(void) interrupt 1  //定时器中断程序
{
unsigned int num,i,k,j;
TH0 = 0XF8;  //重新赋值2ms
TL0 = 0X30;

i++;
if(i==10)  //20ms更新一次
{
i = 0;
updatetimerflag = 1;


}
num++;
if(num==500)
{
for(j=0;j<5;j++)
      {
      delayus(1000); 
  delayus(1000); 
  SPK=!SPK;
}


num = 0;
second++;


if(second==60)
{
     second = 0 ;
minute++;
if(minute==60)
{
for(j=0;j<100;j++)
      {
      delayus(200); 
  delayus(200); 
  SPK=!SPK;
  }
            for(j=0;j<100;j++)
             {
                delayms(1);  
           SPK=!SPK;
        }
      minute = 0;
hour++;
if(hour==24)
{
hour = 0;
}
}
}
}


}


unsigned char keyscan1(void) //按键扫描函数,返回扫描键值
{
unsigned char keyvalue;
if(KEYPORT !=0xff)
{
delayms(10);
if(KEYPORT!=0XFF)
{
keyvalue=KEYPORT;
while(KEYPORT!=0XFF);
switch(keyvalue)
{
case 0xfe:return 1;break;
case 0xfd:return 2;break;
case 0xfb:return 3;break;
case 0xf7:return 4;break;
case 0xef:return 5;break;
case 0xdf:return 6;break;
case 0xbf:return 7;break;
case 0x7f:return 8;break;
default:return 0;break;

}
}
}
return 0;
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值