2021-01-18

51单片机之数码管动态显示【74HC573】

点击可下载配套电子资源

在这里插入图片描述

#include"reg51.h"
#define uchar unsigned char
#define uint  unsigned int 

uchar code shuzima[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x80,0x17};
uint ms,sec,z,num;

void delay(int x);
void main()
{
	TMOD = 0X02;											
	TH0  = 6;							
	TL0  = 6;
	EA   = 1;										//中断总开关开启
	ET0  = 1;										//计数/定时器T0开启
	TR0  = 1;										//中断启动
	
	P0   = shuzima[0];								
	P1   = 0XFC;									//0x1111 1100
	while(1)
		{
			if(z==1)											
													//第5ms刷新个位数码管
			{
					P1 = 0xfd;						//这一句必须放在前面
					P0 = shuzima[sec%10];			//字符
							
			}
													//第10ms刷新十位数码管
			if(z==2)
			{
					P1 = 0xfe;						//这一句必须放在前面
					P0 = shuzima[sec/10];			//字符
				z=0;								//一个刷新周期后,时间参照归零
			}

		}
}

void time() interrupt 1
{
	num++;										//一次中断250us
	if(!(num%4))								//4次为1ms						
	{
		ms++;								
		num=0;									//中断计数初始
			if(!(ms%5))							//5ms
			{
				z++;						   //5ms自加1,为前面数码管刷新率提供时间参照
			}
			if(!(ms%1000))						//1000ms为1s,
			{
				sec++;					      //秒自加1,
				ms=0;						 //毫秒归零
			
			if(sec==100)					//100秒时秒数归零
				sec = 0;
		}
	}
}

点击可下载配套电子资源

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Surning

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值