求单片机输出10KHZ的方波程序 请问其初值详细怎么算(T0的工作方式为1定时)

晶振频率11.0952MHZ
2024-11-21 17:54:18
推荐回答(1个)
回答1:

思路:
机器周期 = 1 / (11095200 / 12) = 1.0815us ≈ 1us
如果 12M 晶振
机器周期 = 1 / (11095200 / 12) = 1.0000us
10KHZ = 100us
由于是方波,所以 100us / 2 = 50us (100us 内 50us H,50us L)
T0 方式1,即 16bit 定时器
T0 初值 = 65536-50 = 65486(由于每个机器周期为 1us 当累加 50 次后 T0 溢出)
即:
TH0=0xFF
TL0=0xCE
这样,每次T0中断,控制某 IO 脚反相就好了。
(以上未经实测,有错欢迎指正,大家共同学习!)