这个问题是这样的,这可能是因为你的单片机晶振的原因,如果是12MHz的话,中断值设置为3CB0,意味着50ms中断一次,if(t50mscnt==20)就可以实现1s的变化,前提是外部晶振频率为12MHz,你检查看看你的晶振频率为多少吧!
如果你要定时很准的话,又不想用时钟芯片,可以用32.768khz的晶振,或者用11.0592mhz这些,计算出来的时间是个整数的,还有你要注意你程序里面初始化以后最好不要操作定时器,这样应该会好很多。