打印

请教关于PIC16F72实时时钟问题

[复制链接]
2743|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wenzong|  楼主 | 2008-10-15 11:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用PIC16F72的TMR1实时时钟时,发现TMR1实时时钟很多停振,有的换掉单片机,或者换掉晶体可解决问题。

现想用TMR1内部时钟来做电子钟
具体做法如下:

主时钟:4M

每隔31.25ms产生一次中断

后给TMR1赋初值:

        bcf     PIR1,TMR1IF
        bcf        T1CON,TMR1ON
        movlw    low(T1_Const)
        addwf    TMR1L
        movlw    high(T1_Const)
        skpnc    
        addlw    .1
        addwf    TMR1H
        bsf        T1CON,TMR1ON 


#define        T1_Const    (.65536-.31250+.7)

不知可不可以?

谢谢


沙发
yewuyi| | 2008-10-15 11:44 | 只看该作者

请不要动TMR1的计数值,如果你想用他做RTC的话 。。。

使用特权

评论回复
板凳
wenzong|  楼主 | 2008-10-15 12:50 | 只看该作者

仿真没有问题,为何不能这样做?

使用特权

评论回复
地板
yewuyi| | 2008-10-15 13:01 | 只看该作者

可能不准了罢。。。

使用特权

评论回复
5
wenzong|  楼主 | 2008-10-15 13:51 | 只看该作者

yewuyi老兄,不准?原因呢?

yewuyi老兄,不准?原因呢?

张兄的书210页

使用特权

评论回复
6
yewuyi| | 2008-10-15 14:58 | 只看该作者

~~

如果你的软件处理的好,也没什么问题,所以我只是说了‘可能’:


yewuyi 发表于 2008-10-15 13:01 PIC 单片机 ←返回版面    

4楼: 可能不准了罢。。。 



自然震荡不去动它的值,就会少点麻烦,否则就要注意点,免得引起麻烦。。。

你的晶体是不是质量不大好?呵呵,可能起振困难造成的。。。

使用特权

评论回复
7
wenzong|  楼主 | 2008-10-15 15:06 | 只看该作者

精度30ppm的晶体,误差还是很大

一天:3600*24=86400(s)

一天误差:86400*30/1000000=2.592(s)

一月误差:2.592*30=77.76(s)

一年误差:77.76*12=933.12(s)=15.552(m)

使用特权

评论回复
8
wenzong|  楼主 | 2008-10-15 15:21 | 只看该作者

另外晶体旁边的两个电容对晶体的频率影响大吗?

使用特权

评论回复
9
yewuyi| | 2008-10-15 17:19 | 只看该作者

那两个电容对频率的影响需要看晶体的技术参数

一般估算在0.02%内,但那两个电容对晶体的起振也有影响。。。

使用特权

评论回复
10
wenzong|  楼主 | 2008-10-15 18:56 | 只看该作者

晶体的负载电容20p,晶体旁边的两个电容值应为多少?

晶体的负载电容为20p,晶体旁边的两个电容值应为多少?

10p还是40p?

应如何配置c1和c2值,使晶体的频率更准确?

用100M数字示波器测OSC2脚输出波形的频率为4.00008Hz

实际晶体的频率为多少?(因为示波器有输入电容)

使用特权

评论回复
11
yewuyi| | 2008-10-16 08:37 | 只看该作者

~~,呵呵,你可以用5PPM的晶体,如果你银子够的话

 wenzong 发表于 2008-10-15 15:06 PIC 单片机 ←返回版面    

7楼: 精度30ppm的晶体,误差还是很大 

一天:3600*24=86400(s)

一天误差:86400*30/1000000=2.592(s)

一月误差:2.592*30=77.76(s)

一年误差:77.76*12=933.12(s)=15.552(m)
 
 

使用特权

评论回复
12
谈的元| | 2008-10-16 21:06 | 只看该作者

软件补偿修正30PPM。可以提高一些精度

使用特权

评论回复
13
wenzong|  楼主 | 2008-10-17 08:20 | 只看该作者

软件补偿修正30PPM。可以提高一些精度?

软件补偿修正30PPM。可以提高一些精度?

如何做,请示下。




谈的元 发表于 2008-10-16 21:06 PIC 单片机 ←返回版面    

12楼: 软件补偿修正30PPM。可以提高一些精度 

 

使用特权

评论回复
14
谈的元| | 2008-10-17 20:32 | 只看该作者

就是用比较高精度的设备 测量其频率,再写到MCU中

使用特权

评论回复
15
wenzong|  楼主 | 2008-10-17 21:00 | 只看该作者

做试验还行,怎么批量生产?

做试验还行,怎么批量生产?


谈的元 发表于 2008-10-17 20:32 PIC 单片机 ←返回版面    

14楼: 就是用比较高精度的设备 测量其频率,再写到MCU 

使用特权

评论回复
16
xieyuanbin| | 2008-10-18 08:12 | 只看该作者

批量,对时间要求比如秒之类的比较高的话.

可以用非整数的晶振,比如32768之类的,然后用微调负载电容的方法生产.

使用特权

评论回复
17
谈的元| | 2008-10-18 18:56 | 只看该作者

批量:MCU一个脚输出一个频率,设备读取它,再

与MCU通信,将需要补偿的值告诉他,MCU再存在EEPROM,以后读取。

使用特权

评论回复
18
兰天白云| | 2008-10-19 20:57 | 只看该作者

xieyuanbin:负载电容影响精度还是???

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

158

帖子

1

粉丝