关于同时点亮数码管且变换的问题
我用的数码管是共阴的,原理图一直不显示,我用的是74HC138译码器,没有锁存器想要同时点亮4个数码管,并且同时变换显示1-F。源代码如下:
#include<at89x52.h>
sbit u8=P2^3;
sbit u9=P2^4;
sbit u10=P2^6;
sbit a=P2^0;
sbit b=P2^1;
sbit c=P2^2;
unsigned char code tab[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
};
//void relay();
void main()
{
unsigned char n;
unsigned char m;
u8=0;
u9=0;
u10=1;
while(1)
{
P1=0;
n=0;
if(++m>3)m=0;
switch(m)
{
case 0:a=1;b=0;c=0;
P1=tab[1];
break;
case 1:a=0;b=1;c=0;
P1=tab[1];
break;
case 2:P1=0;a=1;b=1;c=0;
P1=tab[1];
break;
case 3:P1=0;a=0;b=0;c=1;
P1=tab[1];
break;
default:
break;
}
}
}
现在只能同时显示4个1,想加个for循环,for(n=1;n<17;n++),然后把if case里面的P1=tab[n],但是之后却全部显示4个0,在线求教各位。
[解决办法]
这个相当简单,因为是你逻辑上有问题了,所以你用KEIL一步一步软仿,然后看变量值是不是你想的那样,看程序是不是按自己设计的路子在走,很快就能搞定!
[解决办法]