再发一个关于12F509片子的问题
用这个片子做30秒延时板,板子电压输入端为AC24V,半波整流后接LM2575-5V给单片机供电,单片机输出到三级管基极做个开关
根据手册得知内部RC频率为4M,内部有一个频率校准的寄存器,而且在片子的最后一个地址官方出厂有写一个校准常数。读取后每个片子都不一样。根据内部RC为4M,大概算出50毫秒TMR0应该赋值0X4A,计数600次约为30秒,出现的一些问题如下:
一共20个片子,有6个出现时间不对的情况,4个小于30秒,2个大于30秒,小的大概少2-4秒,大于的大概多1-3秒,每次定时有几百毫秒的偏差,(比如第一次为29.75,第二次30.13,第三次29.81····没有什么规律)客户的要求是30S±1S,但是出现了6个有点离谱的原因不详(个人观点是不是官方出厂的时候校准就不是很准确)后来上示波器发现2575输出给单片机供电端波形不是很好,常有尖峰出现,将滤波电容加大容量后尖峰消除,但是新问题来了,定时普遍都延长了3秒左右,原来都是30S左右的板子换了滤波电容测试时间都变成了33秒左右,不理解是什么原因求大神解答.:dizzy:
以前有用877a做老化板,也是要定时的,定20秒,用877a从没出现过这个问题,是不是内部RC 4M不能按外部晶振4M那么算计数器初值?算的时候是不是还要加一些什么条件呢?
出现这个问题改用外部晶振是不是能解决掉呢? |