单片机定时里 TH0=(65536-45872)/256; TL0=(65536-45872)%256; 这两句 为什么每算完一次就是50MS?

如题所述

第1个回答  2022-09-28

/256和%256 是用于计算TH,和TL的值。即高8位,和低8位。

要了解定时器计数一次是多久,例如:定时器对系统时钟计数,系统时钟周期1US,那么定时器1US计数一次。要计数1MS,那么就计数1000次,计算方法:

TH0=(65536-1000)/256;

TL0=(65536-1000)%256;

依次类推。

50MA定时初值应该是50000,但考虑到中断延迟,故把常数改为了45872。

前一个求商后赋值给TH0,后一个求余数赋值给TL0

相当于:

TH0=(65536-100)>>8,所以得到16位的高八位。

TL0=(65536-100)&0x00ff,所以得到16位的低八位。

TH0=(65536-100)/256 ;//这是定时100us时高8位的值。

TL0=(65536-100)%256;//这是定时100us时低8位的值。

扩展资料:

(1)单片机的体积比较小, 内部芯片作为计算机系统,其结构简单,但是功能完善,使用起来十分方便,可以模块化应用。

(2)单片机有着较高的集成度,可靠性比较强,即使单片机处于长时间的工作也不会存在故障问题。

(3) 单片机在应用时低电压、低能耗,是人们在日常生活中的首要选择, 为生产与研发提供便利。

(4)单片机对数据的处理能力和运算能力较强,可以在各种环境中应用,且有着较强的控制能力。

参考资料来源:百度百科-单片原理

相似回答
大家正在搜