首先确定一下,你的时钟模式。在一个是不是定时器的初始设置太小了。 |
任何厂家芯片内的RC振荡精度都不高,包括TI大厂的。这由它的本质决定,所以有了晶振这东西,要想精度高只有用晶振。如要求更高,还得用温补晶振。 STC11F04E(20脚)内部RC标称5Mhz,实测4.6~4.8Mhz。 |
内置时钟的稳定性很不好 像这种建议做精度不太高的执行控制器,不建议用作高精度运算部件 |
那个宝上有有LCD1602的IIC模块 |
tigerzq 发表于 2019-2-19 22:59 这种构思已使用过,用外部的时钟电路也难免会有些小误差,我就是用这种方法来进行自动校正的。 |
设计一个带自动校时的功能,每天自动校时 |
新新科技 发表于 2019-2-19 11:06 因为是使用了内部的时钟了,误差大是正常的,如果你用的是C来写,误差可能还会再大一点 片上的时钟能有5%的精度就不错了,而你做时钟的话,它是累加的,所以,想做时候,最好还是用有源时钟IC好一点 |
要求精度高可以外加个4060产生1Hz秒信号呀。这样不就解决了精度问题。104虽然没有ad脚。但是外部电路可以加个ad转换吧。8脚IC。!4个脚用于1602SPI显示。剩下二个脚用于电压电流数据输入。不知道用TM7711怎么样。我看他20-40MV精度好像是3%。可惜我不会编程。淘宝TM711电子秤ad转换IC。双路的0.7元一个。用在电压电流显示上不知道行不行 |
内部时钟会有误差,如果想要准确计时,用外部时钟比较好。 |
新新科技 发表于 2019-2-19 11:11 可以利用用外部RC充放电积分电路用软件模拟AD,当然精度比较差些,聊胜于无…… |
STC单片机的内部RC震荡频率误差是相当大的,而且随着运行还要受温度影响,估计跟它们的生产工艺和检测机制有关,我曾碰到有好几片甚至因为波特率误差太大而导致无法进行正常的串口通讯,有精确定时和时钟需求的还是建议采用外部晶振作时钟源 |
精度取决于使用条件,实在需要加温度补偿吧。 |
刘铁民 发表于 2019-2-18 21:19 加一片转换板可以实现LCD1602的IIC通信,我还没有遇到SPI接口的1602。104可以做成电压电流表?它有AD脚? |
Y_G_G 发表于 2019-2-18 22:25 如果几天下来快慢一分钟,那可以接受。而这104按厂家烧录工具提供的定时器设置例程编写的程序,感觉一小时下来还要出现很大的时间差,如果用于日常时钟根本不能用,如果用于相对严格的定时器也不行。 |
本帖最后由 wulin 于 2019-2-19 10:28 编辑 采用STC15F104W单片机做时钟因其只能使用内部RC振荡精度有限,积累误差很大。当然不是没有解决方案。 1.设置较高的振荡频率(24M) 2.设置定时器1T16位自动重载模式 3.根据±误差加减重载值 4.再根据±误差加减中断计数值 5.再根据±误差在23:59'59"加减最后1秒的中断计数值 6.修正值变量可以保存在EEPROM中,可以随时调用和修改以解决季节温度补偿 7.端口不够用可以采用端口复用技术解决 通过上述措施使走时精度轻松控制在日误差1秒内。 |
内部时钟会有误差的,要准确计时需要补偿,但也是不能解决根本问题。 要准确计时,用外部时钟吧。做好是恒温的晶振,,,,,, |
用单片机的定时器来检测或者波形输出可以很准确,但做时间却不怎么好,要么快,要么慢,而且这个是慢慢累加起来的,所以,几天慢个一分钟也算是正常的,你稍微的调一下,它又快了. |