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)

相关推荐
nuannuan2311a4 小时前
97AB-ASEMI机器人功率器件专用97AB
单片机
bloxd yzh5 小时前
简易版2D我的世界C++程序(有点BUG,但是可以玩!!!)
stm32·单片机·嵌入式硬件
落雨封海6 小时前
【5】GD32 基础通信外设:USART、I2C、SPI
单片机
yt948328 小时前
STM32裸机编程架构与思路
单片机·嵌入式硬件
夜月yeyue12 小时前
STM32 USB配置详解
stm32·单片机·嵌入式硬件
技术干货贩卖机13 小时前
0基础 | Proteus仿真 | 继电器
嵌入式硬件·51单片机·proteus·继电器·0基础
逼子格15 小时前
电路中的DGND、GROUND、GROUND_REF的区别,VREF、VCC、VDD、VEE和VSS的区别?
嵌入式硬件·硬件工程·硬件工程师·电源·接地·硬件工程师真题
总结所学15 小时前
擦除整片flash后,程序下载到单片机,单片机不运行
单片机·嵌入式硬件
2401_8888597116 小时前
STM32 ADC模数转换器
stm32·单片机·嵌入式硬件
四夕白告木贞17 小时前
stm32week13
stm32·单片机·嵌入式硬件·学习