利用定时器实现数字钟设计
选用芯片:AT89S52
功能:能校时和校分,具有整点报时功能(四低一高)。
我在设计的时候,想设计出那种四低一高的整点报时,刚开始想的时候确实费了点脑子,在网上搜也没相关的代码参考。不过好在最后用定时器的50ms设计出符合自己的要求的整点报时。
由于自己能力不足,本设计功能简陋,并没有日历和闹钟功能。
博主刚接触单片机,才疏学浅,可能会出现设计不足和错误,欢迎大家评论区交流。^ _ ^
/***********************************************************
此函数功能为:用定时器的中断方式实现数字钟功能,能校时和校分,
具有整点报时功能。
作者:Crazy Wind
日期:2020.10.2
version:1.0.0 2020.10.2
1.1.0 2020.10.5 (取消了中断校分校时,改用独立按键)
1.1.1 2020.10.5 (增加了整点报时功能,四低一高)
***********************************************************/
#include "reg52.h"
#include "intrins.h"
typedef unsigned char u8;
typedef unsigned int u16;
u8 code smgduan[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //段码:0~F
u8 code smgwei[8]={
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //位码
u16 i,j,q,r;
sbit k1=P1^4; //校分按键
sbit k2=P1^5; //校时按键
sbit beep=P3^6; //蜂鸣器
u8 s=0;
u8 m=0;
u8 h=0;
u16 k=0;
u8 shuxian[8]; //装填秒分时数字段码的数组
void delayms(u16 ms)