搜索

TIMER0 流水灯,两组8个流水灯,我想让每循环一周期就多一盏灯亮起,一直...

发布网友

我来回答

1个回答

热心网友

/*已验证通过*/
#include<reg52.h>

unsigned char cycle,i,j;

void init()
{
TMOD = 0x11;
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
IE = 0x82;
TR0 = 1;
cycle = i = P1 = P2 = 0;
j = 0x01;
}

void timer0() interrupt 1
{
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
i++;
P1 = j;
j<<=1;
if(i==8)
{
i = 0;
j = 0x01;
cycle++;
if(cycle==8)
{
cycle=0;
}
}

}

void main()
{
init();
while(1)
{
switch(cycle)
{
case 0:P2 = 0x00;break;
case 1:P2 = 0x01;break;
case 2:P2 = 0x03;break;
case 3:P2 = 0x07;break;
case 4:P2 = 0x1F;break;
case 5:P2 = 0x3F;break;
case 6:P2 = 0x7F;break;
case 7:P2 = 0xFF;break;
default:P2 = 0x00;
}
}
}
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com

热门图文

Top