定時器與TATE應用
阿新 • • 發佈:2017-05-23
pre reg .cn err 開始 main 定時 .com spa
1 #include <reg51.h> 2 #include <stdio.h> 3 #define uchar unsigned char 4 sbit led=P2^6; 5 //GATE就是門 GATE=0一關掉就會不執行 GATE=1打開門執行 定時器T1的門在P3.3(INT1) 定時器T0的門在P3.2(INT0) 6 void init () 7 { 8 ET1=1;//允許打開定時器1分開關 9 EA=1;//打開總開關 10 TMOD=0xd0;//1101 0000 //在TMOD選擇定時器1 工作方式1 TATE 計數器 即1101 0000 11 TH1=255; // TH0 TL0 是16位定時器或是計數器裝載初值 即從什麽數開始定時或計數 12 TL1=255; // TH0 TL0 賦值255 意思是65535 從65535開始計數或定時 超過65536 就會觸發中斷服務程序 13 TR1=1; //代碼執行到TR1就會跳到中斷服務程序 所以要TR1之前準備好初始化代碼 14 } 15 void main(void) 16 { 17 init();//執行初始化 18 while(1); //在這裏死循環 讓程序不執行下去 響應初始化代碼 19 } 20 void cgh() interrupt 3 21{ 22 led=~led; 23 TH1=255;//在工作方式1下 不能自動裝載 需要手動裝載 24 TL1=255; //定時器是獨立的 不依賴CPU 一當觸發就會一直工作定時 25 }
定時器與TATE應用