原理图在上一篇文章,使用普中开发板完成
方法一:
一个个赋法
#include <REGX51.H>
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
i = 22;
j = 3;
k = 227;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
int main()
{
while(1)
{
P2=0xfe;//1111 1110
Delay500ms();
P2=0xfd;//1111 1101
Delay500ms();
P2=0xfb;//1111 1011
Delay500ms();
P2=0xf7;//1111 0111
Delay500ms();
P2=0xef;//1110 1111
Delay500ms();
P2=0xdf;//1101 1111
Delay500ms();
P2=0xbf;//1011 1111
Delay500ms();
P2=0x7f;//0111 1111
Delay500ms();
}
}
方法二:
移位
#include <REGX51.H>
unsigned char a[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
i = 22;
j = 3;
k = 227;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
int main()
{
unsigned int i;
while(1)
{
for(i=0;i<8;i++)
{
P2=a[i];
Delay500ms();
if(i==7)
{
continue;
}
}
}
}