![]() |
發(fā)布時間: 2023-10-13 20:41
正文摘要:下面的代碼來自STC89C52的手冊,代碼如下: #include <reg52.h> #define FOSC 18432000L #define T1MS (65535-FOSC/12/1000) sbit TEST_LED=P2^0; unsigned int count; void tm0_isr() interrupt 1 ... |
定時器程序可以自己寫, 總體思路是晶振頻率(12分頻, 可以選擇不12分頻) 一次 ,定時器就加或減一下. 預設的TH0,TL0 溢出了就進入定時器中斷服務函數(shù)做處理(翻轉(zhuǎn)IO口電平). 定時器有一定的精度, 但要求高就要換更高規(guī)格的時鐘芯片了. |
常量也是有類型的,不同類型有不同的存儲空間。在常數(shù)后面加L,表示此常量為long類型的,占4字節(jié)空間. |
//#define FOSC 18432000L//晶振頻率18.432MHz //#define FOSC 12000000L//晶振頻率12.0MHz #define FOSC 11059200L//晶振頻率11.0592MHz //#define T1MS (65535-FOSC/12/1000) #define T1MS (65536-FOSC/12/1000) |
1,18432000表示晶振頻率是18.432MHz 2,單片機平常用的是11.0592M或22.1184M,可能你的單片機晶振頻率是這個,與例子不一樣,所以定時不準確 |
Powered by 單片機教程網(wǎng)