基于51单片机的数字钟设计

本文介绍了使用AT89S52单片机设计数字钟的过程,包括利用定时器实现50ms计时以达到整点报时功能,尽管设计中未包含日历和闹钟功能,但欢迎读者交流讨论。
摘要由CSDN通过智能技术生成

利用定时器实现数字钟设计

选用芯片: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)			  
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值