52定时器有关问题
52定时器问题用22.1184M晶振 定时器1的初始值 TH0 0xFETL0 0x0E要改成11.0592M的晶振 初值应该是多少
52定时器问题
用22.1184M晶振 定时器1的初始值 TH0 = 0xFE;TL0 = 0x0E;
要改成11.0592M的晶振 初值应该是多少?
怎么计算呢 请大家帮忙 谢谢
C/C++ code SCON &=0X1F; SCON |= 0XD0; TMOD |= 0x21; IP = 0x00;//// PCON = 0x00;// 38400PS// AUXR = 0x09;// AUXR1 = 0x00; TH0 = 0xFE; TL0 = 0x0E; TL1 = 0xFF; TH1 = 0xFF; TH2 = 0xFF; TL2 = 0xEE; RCAP2H = 0xFF; RCAP2L = 0xEE; T2CON= 0x34; TCON |= 0x15; IE |= 0x92;
[解决办法]看看 manual
[解决办法]晶体慢了一半
如果没有分频的话
那定时值应该为原来的一半
[解决办法]看看单片机原理,
应该不是一半的关系
记得有个1减去啥的
[解决办法]为了保证定时时间的一致,晶振降低1倍速度后,计数值也需减少1倍。
计算方法和结果是:
0x10000-(0x10000-0xfe0e)/2=0xff07
[解决办法][解决办法][解决办法]电容仅仅是滤波作用,晶振减慢,电容可以增大,不增不会有问题;
不行的原因也不会在0x10000-(0x10000-0xfe0e)/2=0xff07这个公式上;
不行表现在什么地方?
[解决办法]用移位的方法,向右移一位