使用单片机P1口,通过两个74HC573控制一个8乘8的点阵。 求程序啊啊!!!
1个回答
展开全部
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code TAB[]={0x81,0xFD,0xFD,0xC1,0xBF,0xBF,0xBD,0xC3};
uchar i,t,d;
sbit hei_clk =P2^4;
sbit hei_data=P2^5;
sbit wei_x =P2^6;
sbit wei_x =P2^7;
delay(uchar t)
{
while (t--)
{;}
}
void out164(unsigned char k)
{
unsigned char i;
for(i=0;i<8;i++) //因为是1字节是8位,所以循环8次
{
hei_data=k&0x80;
hei_clk=0;
hei_clk=1;
k<<=1;
}
}
void main(void)
{
P2=0x75;
while(1)
{
d=0x01;
out164(d);
for(i=0;i<8;i++)
{
P0=TAB[i];
delay(100); //加大延时,看慢动作可理解点阵的是如何显示的
d=d<<1|d>>7;
P0=0xff; // 消隐,很重要,不加要红一片
out164(d);
}
}
}
你的图怎么有P28脚???标错了吗?
#define uchar unsigned char
#define uint unsigned int
uchar code TAB[]={0x81,0xFD,0xFD,0xC1,0xBF,0xBF,0xBD,0xC3};
uchar i,t,d;
sbit hei_clk =P2^4;
sbit hei_data=P2^5;
sbit wei_x =P2^6;
sbit wei_x =P2^7;
delay(uchar t)
{
while (t--)
{;}
}
void out164(unsigned char k)
{
unsigned char i;
for(i=0;i<8;i++) //因为是1字节是8位,所以循环8次
{
hei_data=k&0x80;
hei_clk=0;
hei_clk=1;
k<<=1;
}
}
void main(void)
{
P2=0x75;
while(1)
{
d=0x01;
out164(d);
for(i=0;i<8;i++)
{
P0=TAB[i];
delay(100); //加大延时,看慢动作可理解点阵的是如何显示的
d=d<<1|d>>7;
P0=0xff; // 消隐,很重要,不加要红一片
out164(d);
}
}
}
你的图怎么有P28脚???标错了吗?
追答
8、9行确实错了
sbit duan_x=P2^6;
sbit wei_x =P2^7;
还有P0要改为P1,显示汉字和图形需要用到数组。 你可以加 秋50804007
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询