1 #include
2 __CONFIG (HS & PROTECT & PWRTEN & BOREN & WDTDIS);
3 //PIC單片機都需要配置該位,HS是外部晶振模式
4 // 使能PROTECT保護程序存儲器
5 //BOREN使能掉電保護
6
7 //WDTDIS關(guān)閉看門狗
8 void display(int pulse_amount);
9 void main(void)
10 {
11 int pulse_amount //定義變量,存儲外部脈沖數(shù)
12 SCS=0; //時鐘源的選擇。
13 TMR0=0; //清零計數(shù)器
14 OPTION_REG=0x20; //定義計數(shù)模式,對單片機的TOCK1引腳的脈沖
15 //計數(shù),每來一個脈沖,TMR0就會加1,設(shè)置好之后計數(shù)器就開始工作了
16 while(1) //這個循環(huán)就是不斷讀取計數(shù)值
17 {
18 pulse_amount=TMR0;
19 display(pulse_amount); //這個程序是我假設(shè)的,就是用來顯示計數(shù)值
20 }
21 }
22 程序的局限性在于,因為定時器0是8位的,也就是對外部引腳脈沖計數(shù)的最大值是256 當計數(shù)值達到這個值后,計數(shù)器的值會自動清零,這時候你可以設(shè)置一個中斷
23 程序來計數(shù)。我這里不多講了。外部脈沖頻率是由晶振決定的,定時器在計數(shù)模式下,計數(shù)初值和計數(shù)值跟那兩個沒有任何關(guān)系.