这个流水灯程序,是位移8位的,可第8颗灯不亮怎么回事?
#include "STC15W4K.H" // 注意宏定义语句后面无分号
void delay100ms()
{
unsigned char i,j,k;
// i,j,k 由由软件计算出并验证正确。
for(i=157;i>0;i--) // 注意后面没分号
for(j=9;j>0;j--) // 注意后面没分号
for(k=194;k>0;k--); // 注意后面有分号
}
void port_mode() // 端口模式
{
// 同例 1.3
}
void main()
{
unsigned char a;
port_mode(); // 将单片机所有端口配置为准双向弱上拉方式
while(1)
{
P0 =~(1<<a++); // 第一次运行时 0000 0001<< 0 = 0000 0001
delay100ms();
if (a==0x08) // 允许左移 8 次。
{
a=0;
}
}
}
|
如果你是在真实的实验板上跑程序,那就把P0=~(1<<a++)改成P0=0x7F,以此确认LED是好的并且到P0.7口线之间的电路没问题。