|
在網(wǎng)上淘了一個PIC18F85K90自帶RTCC功能的單片機(jī),寫了一段測試一下RTCC的精度,運(yùn)作了5天,還好_精度達(dá)到了誤差毫秒級.
隨手加了一個AHT15溫濕度,上傳賺點(diǎn)黑幣  
注:32.768(5ppm)晶振需要加兩個30pF電容穩(wěn)定震蕩頻率, 每30分鐘與60分鐘進(jìn)位時秒顯示。
制作出來的實(shí)物圖如下:
IMG_20210523_213954.jpg (2.56 MB, 下載次數(shù): 52)
下載附件
2021-5-23 21:43 上傳
IMG_20210523_213908.jpg (2.9 MB, 下載次數(shù): 56)
下載附件
2021-5-23 21:43 上傳
IMG_20210523_213901.jpg (2.63 MB, 下載次數(shù): 64)
下載附件
2021-5-23 21:43 上傳
單片機(jī)源程序如下:
- #include <htc.h>
- #include "Delay.h"
- #include "Driver.h"
- #include "TA6932.H"
- #include "RTCC.H"
- #include "Selection.h"
- #include "AHT15.H"
-
- void main()
- {
- initialization(); //單片機(jī)寄存器初始化
- Delay_mS(500);
- AHT15_iic_Init(); //AHT15_初始化
- RTCC_WD_Init();
- while (1)
- {
- READ_RTCC(); //讀時間寄存器操作
- check_Data(); //時間校準(zhǔn)【此函數(shù)一定要放在READ_RTCC()后面_因?yàn)榕袛嗝糠昼娬{(diào)整一次的判斷值是十進(jìn)制】
- Function_Selection(); //功能選擇
- SMG_DisPlay_TIME(0x44, 0x06, LED);//數(shù)碼管顯示
- }
- }
- void interrupt TIMER0() //TIMER0中斷函數(shù)【定時 50mS】
- {
- TMR0IF = 0 ; //中斷標(biāo)志位清零
- TMR0H = 0x3C; // TMR0H只是緩沖寄存器,在寫 TMR0L寄存器同時,使用TMR0H的內(nèi)容更新Timer0的高字節(jié)內(nèi)容
- TMR0L = 0xB7 ; //初值 15536_分頻器倍數(shù)少于16,所有不用需要校正值【15536+(14/(2_分頻值))】
- if( Key_Flag == 400) Key_Flag = 0;
- if( Sec_Flag == 20) Sec_Flag = 0;
- Key_Flag ++;
- Sec_Flag++ ;
- }
復(fù)制代碼
51hei.png (7.42 KB, 下載次數(shù): 63)
下載附件
2021-5-23 23:23 上傳
所有代碼51hei提供下載:
PIC18F85K90.rar
(623.24 KB, 下載次數(shù): 21)
2021-5-23 21:27 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|