菜鸟笔记——学习51单片机定时器T0

本文介绍了使用51单片机的定时器T0,通过设置不同计数值来实现定时3秒的功能。在中断服务程序中,利用变量i的自加实现LED流水灯效果。在学习过程中,作者发现将led=~0x01置于中断函数内无法展示流水灯效果,从而认识到程序设计的要点。这篇博客是作者的学习笔记,旨在分享学习心得。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

普中51-A2外接晶振为12MHz,则其机械周期=1us。即定时器计一个数就使用1us。

void Timer0Init()
{
   
	TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。

//	TH0=0XFC;	//给定时器赋初值,定时1ms
//	TL0=0X18;	
	TH0=0XF4;       //3ms
	TL0=0X48;
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器			
}

打开定时器0,赋初值,原程序赋予FC18,即64,536。而方式1所使用的的是16位计数位(高八位低八位),最大值为2*16=65,536。
65,536-64536=1000,即定时器要计算1000次,使用1000us,即1ms。我现在将赋值改为62536,让它计算3ms。

void 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值