用STC89C52 ,74hc138驱动列,74hc595驱动行,8x8点阵显示问题。

用STC89C52 ,74hc138驱动列,74hc595驱动行,8x8点阵显示问题。,第1张

没有看到你的原理图,只能从原理上告诉你如何检查故障,或称之为“授以渔”吧。

你的问题是:结果只显示了最后一行的两个点

说明你的sendbyte_L()行选择有问题,可能是软件问题,也可能是硬件问题

首先断开138输入A、B、C与cpu的连接,手动设置A、B、C的高低电平,看显示是否对应的8个行是否轮流都亮,不亮再看138输出8个引脚的电平是否相应变化,这样就可以排查硬件问题。

假如硬件没有问题,检查软件,你的关闭显示段去掉,再看看;或者直接在程序中固定某行亮,依次排查,相信很快就可以找到问题所在了。

在检查故障中可以学到很多东西,比一帆风顺的做好作品学到的东西要多得多。

祝你成功!

如果只显示这几个字,那么先到网上去找这几个字的16X16的字库(或者自己数格子,呵呵)。

如果是静态显示,那就定时把几个字的字库输出到引脚就可以了,不过驱动电路稍复杂。

如果是动态显示,那就定时把几个字的字库写入专门定义的显示缓存区,同时,在定时器中断程序中将显示缓存区输出到引脚,此方案驱动电路比较简单。

这就是大概的思路,具体的电路,网上很多,可以参考。

当然,如果是用专门的LED屏那就更简单了,只需要了解 *** 作方法就可以了。

8x8LED点阵显示数字

#include<reg51h>

#include<intrinsh>

#define uchar unsigned char

#define uint unsigned int

uchar code Table_OF_Digits[]=

{

0x00,0x3E,0x41,0x41,0x41,0x3E,0x00,0x00,

0x00,0x00,0x00,0x21,0x7F,0x01,0x00,0x00,

0x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00,

0x00,0x22,0x49,0x49,0x49,0x36,0x00,0x00,

0x00,0x0C,0x14,0x24,0x7F,0x04,0x00,0x00,

0x00,0x72,0x51,0x51,0x51,0x4E,0x00,0x00,

0x00,0x3E,0x49,0x49,0x49,0x26,0x00,0x00,

0x00,0x40,0x40,0x40,0x4F,0x70,0x00,0x00,

0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00,

0x00,0x32,0x49,0x49,0x49,0x3E,0x00,0x00,

};

uchar i=0,t=0,Num_Index=0;

void main()

{

P3=0x80;

Num_Index=0;

TMOD=0x00;

TH0=(8192-2000)/32;

TL0=(8192-2000)%32;

TR0=1;

IE=0x82;

while(1);

}

void LED_Screen_Display() interrupt 1

{

TH0=(8192-2000)/32;

TL0=(8192-2000)%32;

P3=_crol_(P3,1);

P0=~Table_OF_Digits[Num_Index8+i];

if(++i==8)

i=0;

if(++t==250)

{

t=0x00;

if(++Num_Index==10)

Num_Index=0;

}

}

#include<reg52h>

unsigned char code taba[]={0xFF,0x99,0x00,0x00,0x00,0x81,0xC3,0xE7};

unsigned char code tabb[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

void delay1(void)

{

unsigned char i,j,k;

for(k=8;k>0;k--)

for(i=10;i>0;i--)

for(j=15;j>0;j--);

}

main()

{

unsigned int i;

while(1)

{

for(i=0;i<8;i++)

{

P2=taba[i];

P0=tabb[i];

delay1();}

}

}

在8X8 LED 点阵上显示柱形,让其先从左到右平滑移动1次,其次从右到左

平滑移动1次,再次从上到下平滑移动1次,最后从下到上平滑移动次,

如此循环下去。

LED显示原理:显示某一个点时,列值设为1,行值设为0即可

以上就是关于用STC89C52 ,74hc138驱动列,74hc595驱动行,8x8点阵显示问题。全部的内容,包括:用STC89C52 ,74hc138驱动列,74hc595驱动行,8x8点阵显示问题。、用单片机控制的16x16(或8x8)点阵LED循环显示“08电子”,这个程序该怎么写啊、仿真软件中如何用8x8LED点阵显示数字等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9304057.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存