51单片机实现精确定时

一、51单片机代码

cpp 复制代码
#include <reg52.h>

sbit LED = P3^3;

extern bit b10Ms;
extern bit b100Ms;
extern bit b1S;
extern bit b10S;

void Timer0_Init()
{
    TMOD |= 0x01; // 设置定时器0为模式1
    TH0 = (65536 - 1000) / 256; // 高8位赋初值
    TL0 = (65536 - 1000) % 256; // 低8位赋初值
    EA = 1; // 开启总中断
    ET0 = 1; // 开启定时器0中断
    TR0 = 1; // 启动定时器0
}

void Timer0_ISR() interrupt 1 // 定时器0中断服务函数
{
	static unsigned int b1000MsCnt;
	static unsigned int b10MsCnt;

    TH0 = (65536 - 1000) / 256; // 重新加载初值
    TL0 = (65536 - 1000) % 256;

	if (++b1000MsCnt >= 1000)
	{
		b1000MsCnt = 0;
		b1S = 1;
	}



	
}

void main()
{
    Timer0_Init(); // 初始化定时器0
    while(1)
	{
		
		if (b1S)
		{
			b1S = 0;
		   LED = ~LED; // 取反LED的状态
		}

	}
}

二、Proteus仿真

三、完整资料下载

基于51单片机的LED控制: https://url83.ctfile.com/d/45573183-66541738-df92bf?p=7526 (访问密码: 7526)

相关推荐
悠哉悠哉愿意7 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
Lester_11017 天前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
LCG元7 天前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
三佛科技-187366133977 天前
120W小体积碳化硅电源方案(LP8841SC极简方案12V10A/24V5A输出)
单片机·嵌入式硬件
z20348315207 天前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件
Alaso_shuang7 天前
STM32 核心输入、输出模式
stm32·单片机·嵌入式硬件
脚后跟8 天前
AI助力嵌入式物联网项目全栈开发
嵌入式硬件·物联网·ai编程
2501_918126918 天前
stm32死锁是怎么实现的
stm32·单片机·嵌入式硬件·学习·个人开发
z20348315208 天前
STM32F103系列单片机定时器介绍(一)
stm32·单片机
星马梦缘8 天前
驱动层开发——蜂鸣器驱动
stm32·单片机·嵌入式硬件·hal·驱动