之前由于同學(xué)的一個小實驗,需要用到頻率計,所以自己想搞一個出來,于是網(wǎng)上找了很多資料,簡單的有用8052單片機的定時器和計數(shù)器的結(jié)合來測其信號的頻率,還有的是c8051f的捕捉功能,想來想去,還是想用用自己熟悉的8052的計數(shù)器功能,畢竟平時都用的是定時器功能,很少用到計數(shù)器功能,以便更加深入的運用8052,以后再學(xué)習(xí)C8051F。
#include#define uchar unsigned char #define uint unsigned int __CONFIG(0x3B31); void init(); uint intnum; void main() { init(); while(1) { if(intnum==5) { intnum=0; RD0=!RD0; } } }void
>>定時器比較值、計數(shù)值比較緩存寄存器TCMPBn、TCNTBn,這兩個寄存器用于存儲定時器的比較值和計數(shù)初始值。>>定時器比較值、計數(shù)值比較寄存器TCMPn、TCNTn,這兩個寄存器是定時器的內(nèi)部寄存器,用戶無需進行操作。1.
之前由于同學(xué)的一個小實驗,需要用到頻率計,所以自己想搞一個出來,于是網(wǎng)上找了很多資料,簡單的有用8052單片機的定時器和計數(shù)器的結(jié)合來測其信號的頻率,還有的是c8051f的捕捉功能,想來想去,還是想用用自己熟悉
1 //晶振的頻率2 #define OSC_FREQ (11059200UL)34 //每個指令的振蕩周期數(shù)(4,6,12),注意,這里一定要仔細(xì)查看芯片手冊5 //*12 - 早期的8051、8052及當(dāng)前的絕大部分51單片機6 //*6 - Philips 的芯片7 //*4 - Dall
#include"STC12C5616AD.H"#define uint unsigned int#define uchar unsigned charuchar MSG[]="ilovetheworld " ;uint num;void delay(uint x){uchar i;while(x--){for(i = 0;i < 120;i++);}}void Send_char(uchar c
這是寫的一個簡單的測試定時器0的程序:要實現(xiàn)的目標(biāo)是,LED第一個跟第二個燈先循環(huán)亮起,第三盞燈則以間隔一秒鐘的時間亮起一次,其中,第三盞燈的亮起時間以定時器0的中斷來執(zhí)行,里邊有亮點需要注意。一、不要忘記