問(wèn)題描述:流水燈只依次循環(huán)點(diǎn)亮一遍。我想讓它一直在循環(huán)點(diǎn)亮。
題目:如圖8-3所示,P1口外接8個(gè)LED燈,要求編程實(shí)現(xiàn)循環(huán)流水燈功能,時(shí)間間隔0.5s,單片機(jī)外接晶振12MHz。
(所用實(shí)現(xiàn)方法:用定時(shí)器T0實(shí)現(xiàn)精確定時(shí)0.5s,將0.5s分解為100個(gè)5000us,用定時(shí)器T0的方式0實(shí)現(xiàn)。)
00.png (23.96 KB, 下載次數(shù): 53)
下載附件
2017-6-29 18:51 上傳
#include < reg51.h>
unsigned char count=0,i=0;
unsigned char s=0xfe;
//主函數(shù)
main ( )
{
P1=0xfe;
TMOD=0x00;
TH0=0x63;
TL0=0x18;
ET0=1;
EA=1;
TR0=1;
while(1);
}
//服務(wù)函數(shù)
void Timer0_int( ) interrupt 1
{
count++;
if (count==100)
{
count=0;
i++;
if(i<8)
{
s=s<<1;
s=s^0x01;
P1=s;
}
else
i=0;
}
TH0=0x63;
TL0=0x18;
}
|