IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 51单片机实现LED数码管0-9999秒的计时功能 -> 正文阅读

[嵌入式]51单片机实现LED数码管0-9999秒的计时功能

标题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 interrupt
	TH0 = 0xFC;
	TL0 = 0x18; // timer 0 counter
	TF0=0; // timer 1 flag

	/* -------------initialize Timer 0 -----------------------------*/
	ET1=0;  // disable timer 1 interrupt
	TH1=0;
	TL1=0; // timer 1 counter
	TF1=0; // timer 1 flag

	// setup Timer mode
	// TMOD=0x11;  // set timer 1 as timer(1) , timer 0 as counter(5)
	TMOD=0x01;
	// enable/disable timer
	TR0=1;  // disable timer 0
	TR1=0;  // disable timer 1
    EA = 1;



}
void Timer0() interrupt 1
{

 TH0 = 0xFC;
 TL0 = 0x67; // timer 0 counter
 ms_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
在这里插入图片描述

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 10:57:40  更:2021-08-02 10:59:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:48:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码