之前由于同學(xué)的一個(gè)小實(shí)驗(yàn),需要用到頻率計(jì),所以自己想搞一個(gè)出來(lái),于是網(wǎng)上找了很多資料,簡(jiǎn)單的有用8052單片機(jī)的定時(shí)器和計(jì)數(shù)器的結(jié)合來(lái)測(cè)其信號(hào)的頻率,還有的是c8051f的捕捉功能,想來(lái)想去,還是想用用自己熟悉的8052的計(jì)數(shù)器功能,畢竟平時(shí)都用的是定時(shí)器功能,很少用到計(jì)數(shù)器功能,以便更加深入的運(yùn)用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í)器比較值、計(jì)數(shù)值比較緩存寄存器TCMPBn、TCNTBn,這兩個(gè)寄存器用于存儲(chǔ)定時(shí)器的比較值和計(jì)數(shù)初始值。>>定時(shí)器比較值、計(jì)數(shù)值比較寄存器TCMPn、TCNTn,這兩個(gè)寄存器是定時(shí)器的內(nèi)部寄存器,用戶無(wú)需進(jìn)行操作。1.
之前由于同學(xué)的一個(gè)小實(shí)驗(yàn),需要用到頻率計(jì),所以自己想搞一個(gè)出來(lái),于是網(wǎng)上找了很多資料,簡(jiǎn)單的有用8052單片機(jī)的定時(shí)器和計(jì)數(shù)器的結(jié)合來(lái)測(cè)其信號(hào)的頻率,還有的是c8051f的捕捉功能,想來(lái)想去,還是想用用自己熟悉
1 //晶振的頻率2 #define OSC_FREQ (11059200UL)34 //每個(gè)指令的振蕩周期數(shù)(4,6,12),注意,這里一定要仔細(xì)查看芯片手冊(cè)5 //*12 - 早期的8051、8052及當(dāng)前的絕大部分51單片機(jī)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
這是寫的一個(gè)簡(jiǎn)單的測(cè)試定時(shí)器0的程序:要實(shí)現(xiàn)的目標(biāo)是,LED第一個(gè)跟第二個(gè)燈先循環(huán)亮起,第三盞燈則以間隔一秒鐘的時(shí)間亮起一次,其中,第三盞燈的亮起時(shí)間以定時(shí)器0的中斷來(lái)執(zhí)行,里邊有亮點(diǎn)需要注意。一、不要忘記