利用定时器/计数器T0产生2秒钟的定时,AT89C51,有大神吗?急急急?

利用定时器/计数器T0产生2秒钟的定时,每当2秒定时到来时,更换指示灯闪烁,每个指示灯闪烁的频率为0.2秒,也就是说,开始L1指示灯以0.2秒的速率闪烁,当2秒定时到来之... 利用定时器/计数器T0产生2秒钟的定时,每当2秒定时到来时,更换指示灯闪烁,每个指示灯闪烁的频率为0.2秒,也就是说,开始L1指示灯以0.2秒的速率闪烁,当2秒定时到来之后,L2开始以0.2秒的速率闪烁,如此循环下去。0.2秒的闪烁速率也由定时/计数器来完成。 展开
 我来答
巍峨且素净丶彩霞5
2019-07-05 · TA获得超过544个赞
知道小有建树答主
回答量:763
采纳率:50%
帮助的人:147万
展开全部
很简单,因为定时器的计数器是16位的,也就是最大65536us=65ms
所以这里设置20ms中断一次。
设置2个变量 cnt1和cnt2。
每次20ms中断,2个变量各加1。
那么当cnt1==100的时候,也就是过了2秒,切换LED,同时cnt1置零。
当cnt2==5的时候,也就是过了0.1秒,让LED=~LED,就可以达到0.2秒闪烁一次的效果,同时cnt2也要置零。
void Timer0Init(void) //20毫秒@12.000MHz
{
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0xE0; //设置定时初值
TH0 = 0xB1; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式