基于51单片机的8位数码管显示的可调时电子时钟

本文介绍了使用51单片机设计的两段代码,第一部分展示了一个基于51单片机的8位数码管显示的不可调时电子时钟,通过两个定时器实现时间显示,但存在精度问题。第二部分则增加了可调时间的功能,通过按键K1、K2、K3、K4实现时间的增减和切换显示,提高了用户交互性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 基于51单片机的8位数码管显示的可调时电子时钟

本人大二本科生,第一次发东西,功能比较简单,代码有点复杂,希望能有大神指正。

  1. 基于51单片机的不可调时间的时钟显示,晶振为11.0592MHZ,60HZ左右刷新一次,用了两个定时器,定时器0负责LED循环显示,定时器1负责定时,大概200秒左右落后1秒。
#include <REGX51.H>
#include <intrins.h>
void begin();
void ledshow();
unsigned char number[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x40};
unsigned char wei[]={0xe3,0xe7,0xeb,0xef,0xf3,0xf7,0xfb,0xff};
unsigned char num[8];
unsigned char hour,min,sec;
int main(){
	begin();
	hour=8;
	min=56;
	sec=00;
	while(1){
		ledshow();
	}
}

void begin(){
	TMOD &= 0xF0;		//???????
	TL0 = 0x18;		//??????
	TH0 = 0xC4;		//??????
	TF0 = 0;		//??TF0??
	TR0 = 1;		//???0????

	TMOD &= 0x0F;		//???????
	TMOD |= 0x10;		//???????
	TL1 = 0x00;		//??????
	TH1 = 0xF7;		//??????
	TF1 = 0;		//??TF1??
	TR1 = 1;		//???1?
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值