这个电路图就不上了,整个电路用4个573和2个138还有单片机,这个电路我觉得最难的地方在于把每个8乘8的点阵要连起来而且要连对不可以出现顺序不一致,我说下我大致的电路思想,用573作为行扫描138作为列扫描一个138负责扫描一个8乘32的一行.573用OE端来控制不用时不用消上一次的电平这个是程序方便些
电路简陋大家不要笑喷喔,上个程序和图片#include
#define uchar unsigned char
#define uint unsigned int
uchar code tab1[]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x3F,0x20,0x20,0x20,0x20,0xA0,0x60,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
0x00,0x20,0x20,0x23,0x2D,0x31,0xE1,0x21,0x2F,0x21,0x21,0x21,0x21,0x20,0x00,0x00,
0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,
0x08,0x48,0x4B,0x7F,0x89,0x88,0x01,0xFD,0x85,0x85,0x85,0x85,0xFD,0x01,0x00,0x00,
0x40,0x40,0x7F,0x49,0x49,0x7F,0x40,0x00,0x7F,0x41,0x41,0x41,0x41,0x7F,0x00,0x00,
0x00,0x08,0x06,0x01,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x01,0x06,0x1C,0x08,0x00,
0x10,0x10,0x11,0xFF,0x12,0x14,0x00,0x13,0x12,0x12,0xFE,0x12,0x13,0x12,0x10,0x00,
0x08,0x08,0x08,0x08,0x08,0x09,0x0A,0xFF,0x0A,0x09,0x48,0x28,0x08,0x08,0x08,0x00,
0x02,0x0C,0x08,0x48,0x3A,0x2A,0x0A,0x8A,0x7A,0x2B,0x0A,0x18,0xEA,0x4C,0x08,0x00,
0x7F,0x40,0x4C,0x52,0x61,0x30,0x24,0x24,0xA4,0x64,0x24,0x24,0x24,0x30,0x20,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
uchar code tab2[]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x0C,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x04,0x18,0x70,0x20,0x04,0x02,0xFF,0x00,0x40,0x20,0x18,0x0C,0x00,0x00 ,
0x04,0x04,0x04,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,
0x20,0xC0,0x00,0xFF,0x00,0x82,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0x02,0x00,
0x08,0x08,0xF0,0x10,0x10,0xFF,0x20,0x22,0x84,0x38,0x10,0x00,0x20,0x90,0x0C,0x00,
0x04,0x04,0x04,0xC4,0x84,0xFC,0x04,0x04,0x04,0xFC,0x44,0x84,0x04,0x0C,0x04,0x00,
0x80,0x82,0x01,0xFE,0x00,0x02,0x02,0x04,0xC8,0x30,0x30,0x48,0x84,0x06,0x04,0x00,
0x08,0x08,0x10,0x20,0x40,0x80,0x00,0xFE,0x00,0x00,0x80,0x60,0x30,0x18,0x10,0x00,
0x00,0x40,0x40,0x40,0x40,0x40,0x42,0x41,0xFE,0x40,0x40,0x40,0x40,0x40,0x40,0x00,
0xFF,0x00,0x40,0x20,0xC1,0x82,0x8C,0xF0,0x80,0x80,0xFE,0x81,0x81,0x81,0x8F,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
***it line1 = P3^5;
***it line2 = P3^4;
void display(uchar h);
void delay(uchar i)
{
while(i--);
}
void main()
{
uchar count,t;
while(1)
{
line1 = 0;
line2 = 1;
display(t+0);
line1 = 1;
line2 = 0;
display(t+16);
count ++;
if(count == 8)
{
count=0;
t++;
if(t==176)
t=0;
}
}
}
void display(uchar h)
{
uchar i;
for(i=0x00; i<0x08; i++)
{
P1 = i;
P0 = 0X00;
P2 = 0X00;
P0 = tab1[i+h];
P2 = tab1[i+h+8];
delay(100);
}
for(i=0x08; i<=0x0f; i++)
{
P1 = i;
P0 = 0X00;
P2 = 0X00;
P0 = tab2[i+h-8];
P2 = tab2[i+h];
delay(100);
}
}
|