源程序設(shè)計(jì) #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; //定時(shí)50ms中斷一次 EA=1; //開總中斷 ET0=1; //允許定時(shí)器T0中斷 TR0=1; //起動(dòng)定時(shí)器開始工作 D1=1; //讓LED燈初始時(shí)處在熄滅狀態(tài) while(1); //等待中斷產(chǎn)生 } void my_timer0() interrupt 1 //中斷服務(wù)程序 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; //重新賦初值 aa++; //中斷一次變量aa加1 if(aa==20) //當(dāng)aa=20時(shí)中斷了20次,定時(shí)時(shí)間為20*50ms=1s,更改一次P1.0口的輸出狀態(tài),這樣得到的方波周期為2s { aa=0; //將變量aa清零,以便于下次重新定時(shí) D1=~D1; //改變引腳P1.0的輸出狀態(tài) } } |