源程序設計 #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit D1=P1^0; uchar aa; void main() { TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; //定時50ms中斷一次 EA=1; //開總中斷 ET0=1; //允許定時器T0中斷 TR0=1; //起動定時器開始工作 D1=1; //讓LED燈初始時處在熄滅狀態 while(1); //等待中斷產生 } void my_timer0() interrupt 1 //中斷服務程序 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; //重新賦初值 aa++; //中斷一次變量aa加1 if(aa==20) //當aa=20時中斷了20次,定時時間為20*50ms=1s,更改一次P1.0口的輸出狀態,這樣得到的方波周期為2s { aa=0; //將變量aa清零,以便于下次重新定時 D1=~D1; //改變引腳P1.0的輸出狀態 } } |