标题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;  while1_counter++;  switch(while1_counter%4){case 0:P2=0x00;P0=DotNumMatrix[Single];break;case 1:P2=0x04;P0=DotNumMatrix[Tens];break;case 2:P2=0x08;P0=DotNumMatrix[Hundr];break;case 3:P2=0x0C;P0=DotNumMatrix[Thous];break;case 4:P2=0x10;P0=DotNumMatrix[sec/10000];break;case 5:P2=0x14;P0=DotNumMatrix[sec/100000];break;case 6:P2=0x18;P0=DotNumMatrix[sec/1000000];break;case 7:P2=0x1C;P0=DotNumMatrix[sec/10000000];break;}  delay(100);P0=0;
}
void Init_Timer(void)
{EA = 0;ET0=1;  // enable timer 0 interruptTH0 = 0xFC;TL0 = 0x18; // timer 0 counterTF0=0; // timer 1 flag/* -------------initialize Timer 0 -----------------------------*/ET1=0;  // disable timer 1 interruptTH1=0;TL1=0; // timer 1 counterTF1=0; // timer 1 flag// setup Timer mode// TMOD=0x11;  // set timer 1 as timer(1) , timer 0 as counter(5)TMOD=0x01;// enable/disable timerTR0=1;  // disable timer 0TR1=0;  // disable timer 1EA = 1;}
void Timer0() interrupt 1
{TH0 = 0xFC;TL0 = 0x67; // timer 0 counterms_Counter--; if (ms_Counter == 0)
{Set_SecondFlag();ms_Counter=SystemTick;
//  LED=~LED;
}
}
void TimerHandler()
{if(SecondFlag){Second++;Clr_SecondFlag();if(Second>=9999)Second=0;}
}
void main()
{Init_Timer();
while(1)
{DisplayLED(Second);TimerHandler();
}       }

四.实际效果图片:
计时到4387

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

  1. 51单片机控制系统的人机交互接口设计【51单片机与LED数码管的动态显示接口案例分析】

    本章节利用Keil uVision5和ISIS 7 Professional两个软件来进行仿真实验. [例]运用51单片机实现8位8段数码管的动态显示,LED数码管的段选数据由51单片机的P0口控制, ...

  2. 51单片机按键控制数码管0~9_51单片机外部中断

    前面为大家介绍的点亮LED灯.数码管.按键只用到了51单片机的IO资源,我们要是仅仅用单片机点灯.操作数码管,那可真是大才小用了.这些都只是51单片机资源的冰山一角,51单片机还有好多的功能,我后面将 ...

  3. 51单片机按键控制数码管0~9_AT89C51单片机数字电子钟的设计

    一. 设计目的与要求 设计目的:通过设计,培养运用已学知识解决实际问题的能力.查阅资料的能力.自学能力和独立分析问题.解决问题的能力和能通过独立思考. 设计要求:设计一个时.分可调的数字电子钟.断电后 ...

  4. 51单片机按键控制数码管0~9_对于常用的数码管,你有多熟悉?

    数码管是嵌入式开发中比较常用的一个模块,本篇文章根据查阅的资料以及学习笔记整理成文,尽可能详尽的讲解常用数码管原理和使用方法.有不足和疏忽的地方,请不吝指正. 一.工作原理数码管是一种半导体发光器件, ...

  5. 51单片机按键控制数码管0~9_7种常见的51单片机时钟电路图

    在MCS-51单片机片内有一个高增益的反相放大器,反相放大器的输入端为XTAL1,输出端为XTAL2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式. 电子学习资料大礼包​mp.weix ...

  6. 51单片机按键控制数码管0~9_(51单片机)课设项目1-按键控制步进电机转向、转速、启停。...

    总体设计方案 硬件部分实现电机转动和数码管显示,包括控制开关模块.电机转动模块.数码管显示模块.软件部分实现对步进电机的控制功能,主要设计思想通过控制程序的开关来控制电机的转动启停.方向.速度.电源驱 ...

  7. 51单片机实验 LED半秒闪烁 定时器0方式2 中断实现

    51单片机实验 LED半秒闪烁 定时器0方式2 中断实现 实验目的: P1.0接一个发光管,实现亮半秒灭半秒, 要求使用定时器0工作方式2,中断实现. C语言代码: #include "at ...

  8. 51单片机:静态数码管详细教程

    51单片机:静态数码管详细教程 目录 51单片机:静态数码管详细教程 一.数码管通电 1.原理图 2.数码管真值表 二.实现程序 1.程序编写 2.接线问题 三.结果与总结 1.成果展示 2.总结 一 ...

  9. 【51单片机】七段数码管显示实验+详细讲解

    [51单片机]七段数码管显示实验 前言 一.兵马未动,粮草先行--认识七段数码管 1.关于显示器 2.七段数码管 3.七段数码管的结构 4.数码管显示方法 二.数码管显示程序 1.静态显示 效果 2. ...

最新文章

  1. 在windows中创建一个影子用户
  2. 别把个人信息“玩”丢了
  3. Google(谷歌)中国工程研究院 工程师 方坤 对学生朋友的一些建议
  4. 时间序列分类算法简介及其在能耗数据分类上的应用
  5. Nginx 性能优化
  6. HDU - 6641 TDL(数学)
  7. java –cp ./:_成为Java流专家–第2部分:中级操作
  8. python基于opencv的手势识别_怎么在Python3.5 中利用OpenCV实现一个手势识别功能
  9. HTML如何实现斜体字
  10. 一线数分师天天被喷不值钱,数据分析师如何“刷存在感”?
  11. Java笔记(十二) 文件基础技术
  12. Java分布式系统框架教程,架构设计
  13. SURF算法之Opencv代码详解
  14. 一款简单的取色器:ObtainColor拾色器
  15. 百度快照劫持的解决方法
  16. 视频教程-Python疫情监控完整项目实战-Python
  17. 华为 P10 手机开始推送鸿蒙 HarmonyOS 2 内测版
  18. 什么是面向对象编程(通俗易懂)
  19. 信号系统一些基本概念
  20. 视频剪辑 - Pr入门[第一次学习] - 小白蜕变!!!

热门文章

  1. 离散数学题目收集整理练习(期末过关进度70%)
  2. NeurIPS 2020 | 基于能量的OOD检测
  3. 笔记本在机械硬盘的基础上新加装固态硬盘(SSD)方法!
  4. vue项目中 jsconfig.json是什么
  5. 【学术信息】2019年期刊中科院分区-管理科学
  6. 高一物理匀加速运动公式
  7. 优化|神经网络与混合整数模型
  8. 超超超超超详细的计网课设报告-简单电子邮件客户端的设计与实现
  9. 非常好用的一款win10 1703精简版
  10. java标识符于关键字的区别,java 标识符和关键字