初學(xué)51單片機(jī),試?yán)?/font>用中斷方式實(shí)現(xiàn)閃爍燈,提供源程序供有興趣者試看看!
/************************************************ 顯示效果:P1燈不停的閃爍 ************************************************/ // P1口大約1s置反一次 #include<reg52.h> //包含特殊功能寄存器的定義 #define LED P1 //宏定義LED代表P1 unsigned char ucCount = 0; //定時(shí)器初始化子程序 void Init_Timer0(void) { TMOD=0x01; //不影響定時(shí)計(jì)數(shù)器 //使用定時(shí)計(jì)數(shù)器T0(GATE 0,C/T 0, M1 0, M01) //使用模式1, 16位定時(shí)器. TH0 = (65536-50000)/256; //數(shù)器計(jì)數(shù)初值設(shè)定 TL0 = (65536-50000)%256; EA = 1; //總中斷打開 ET0 = 1; //定時(shí)器中斷打開 TR0 = 1; //定時(shí)器開關(guān)打開 } void main() { Init_Timer0 (); P1 = 0x00; //LED燈亮(依電路板設(shè)置) while(1); } //中斷函數(shù) void Timer0_isr(void) interrupt 1 using 1 { TH0 = (65536-50000)/256; //計(jì)數(shù)器計(jì)數(shù)初值 TL0 =(65536-50000)%256; ++ucCount; if(19 == ucCount) { LED =~LED; //LED反相燈滅,可以看到閃爍 ucCount = 0; } }
|