51单片机实现LED数码管0-9999秒的计时功能

本文介绍了使用51单片机通过P0口控制LED灯显示0-9999秒的计时功能。利用74HC138实现数码管动态扫描,逻辑算法涉及P22-P24的逻辑关系,并详细说明了定时器的初始化设定,以11.0592MHz晶振频率计算出1ms定时器设置。文章还包含功能函数概述和实际运行效果展示。
摘要由CSDN通过智能技术生成

标题51单片机实现LED数码管0-9999秒的计时功能

一.实现原理:
P0口给高低电平控制LED灯亮暗,来显示数字;
74HC138实现数码管高低电平状态,循环实现数码管动态扫描显示。
LED1-LED8要给到低电平,P00-P07给到高电平,数码管即可显示,
循环实现LED1-LED4的动态显示。
在这里插入图片描述
在这里插入图片描述
二.逻辑算法:
P22-P24逻辑关系
在这里插入图片描述
P0显示数字逻辑:
DotNumMatrix[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};分别对应0-9;

定时器定时:
初始化设定(把timer0设成16位模式):
在这里插入图片描述
TH0和TL0设定:
晶振频率 freq_xtal=11.0592MHz
传统8051单片机定时器一般计数速率为12T mode
即12个晶振周期定时器加一;
mode0模式下定时器计时到0xFFFF(65535)再加1即触发中断;
(TH0<<8)|TL0=65536-freq_xtal/12/1000=0xFC67;//1ms timer calculation method in 12T mode

三.功能函数

void DisplayLED(u16 sec)
{
   
       u8 Thous,Hundr,Tens,Single;
       Thous=sec/1000;
       Hundr=(sec-Thous*1000)/100;
       Tens=(sec-Thous*1000-Hundr*100)/10;
       Single=sec%10;<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值