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