用一个P口的高四位和低四位分枝扰烂别驱动两片154驱动点阵的行和列,另外你还要在点李蠢阵的低电平端的驱动154的输出端加八位反向器。如果我没记错的话,154的输出只有一位是高电平,要反向成唯一低电平。
你第两个我没有太明白,你是要用二个P口只控制16*16的列吗,那行由谁控制呢
延时里有个j, 主程序里又有个j, 而且运宏明虚还在一个地方!for(j=0j<16j++)
{
P0=0XFF
Hi=1Lo=1
Hi=1
Lo=0
P0=LED[0][j]
delay(1)
Lo=1
Hi=0
P0=LED[1][j]
delay(1)
看这一部分,明显重复旁槐册了!
把其中一个j用另一个字母代替就行了!
还有不懂的问我,Q364630430
/*该程序是一个0-9单个数码管循环显示程序*/#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}//共阴的话取反。
uchar a,t
sbit dula=P2^6
sbit wela=P2^7
void display(uchar a)
void delay(uint z)
void main()
{
dula=0
wela=0
t=0
TMOD=0x01
TH0=(65536-50000)/256
TL0=(65536-50000)%256
EA=1
ET0=1
TR0=1
while(1)
{
if(t==20)
{
t=0
a++
if(a==10)
a=0
}
display(a)
}
}
void display(uchar a)
{
dula=1
P0=table[a]
dula=0
wela=1
P0=0xfe
wela=0
P0=0xff
delay(1)
}
void timer0()interrupt 1
{
TH0=(65536-50000)/256
TL0=(65536-50000)%256
t++
}
void delay(uint z)
{
uint x,y
for(x=zx>0x--)
for(y=110y>0y--)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)