关于单片机知识,利用动态扫描方法在8位共阴极数码管上显示出稳定的87654321。下面为什么显示不了第一位8.

#include<reg51.h>
char m[]={0x7f,0x07,0x7d,0x6d,0x66,0x4f,0x5b,0x06};
void delay(unsigned int time)
{
unsigned char j;
for(;time>0;time--)
for(j=0;j<125;j++);
}

void main()
{
char i;
while(1)
{
P3=0xfe;
for(i=0;i<9;i++)
{
P2=m[i];
delay(1);
P3=P3<<1;
P3=P3|0x01;
}
}
}

第1个回答  2012-04-10
试试看:

void main()
{
char i;
while(1) {
P3 = 0xfe;
for(i = 0; i < 8; i++) {
P2 = m[i]; delay(1); P2 = 0;
P3 = P3 << 1; P3 = P3 | 0x01;
}
}
}本回答被提问者采纳
第2个回答  2012-04-10
你的for循环实际是执行了9次,应该改成i<8; 至于为什么最高位不显示我也没想通,或许是PROTUES的问题.

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网