微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > HC6800 ES V2.0 8*8点阵问题请教

HC6800 ES V2.0 8*8点阵问题请教

时间:10-02 整理:3721RD 点击:
看HC6800 ES V2.0 8*8点阵的原理图,给的图不清楚,没有标明哪些口是正极,哪些口是负极,正负极如何连接到595和P0?图片如下:视频里说,就是下面的连线图:




请各位大侠指点,自己经过代码发现,595连接的是点阵的正极;P0口连接的是点阵的负极。各种图片,能够正确显示。是这么理解吗,还是逻辑图是正确的,我的理解是错误的。问普中的工程师,答复:点阵部分正负极?对这个答复表示疑问。请高手指点,谢谢!

不知道你怎么从程序分析的,从点阵的接线图和结构图来看,P0口接的是点阵的正极,也就是点阵LED的正极,595是接点阵的负极,也就是点阵LED的负极,如果两者与点阵之间没有其他任何芯片,那么应该是当P0口置1,595置0是,点阵点亮。
LED点阵仍然属于LED,具有单向通电特性,所以是要分正负极的。
好了,以上是只看了连接图的部分引脚做出的结论,又仔细看了一下,首先要确定的是LED一定是分正负的,其次,估计你看这个程序已经看得头昏了,分不清到底哪个端口接正极,哪个接口接负极了,不过这个结论也是对的,因为这个连接图只是按引脚次序和端口次序进行连接,并没有按照正负极的区分来连接,所以这个程序应该很难看懂。
举个例子,ROW 1和COL 1的LED,正极是点阵引脚9,接P03,负极是点阵引脚13,接595的D0,但是ROW 7和COL 4的LED,正极是点阵引脚2,接595的D6,负极是点阵引脚10,接P02,另外还有就是ROW 7和COL 1的LED,则正极是点阵引脚2,接595的D6,负极是点阵引脚13,接595的D0。
所以从接线图看,个人觉得这个程序理解起来会挺乱的。

我忘了说了一点:看视频的时候,照着代码敲了,实验结果很乱。我就去看示例代码,开头就说,JOE要短接GND。然后实验就成功了,同样的代码。
下面我把代码展示下:这个代码,在8*8上显示一个“十”字:
/*8*8点阵的使用*/
#include <reg51.h>
#include <intrins.h>
typedef unsigned char uc8;
typedef unsigned int ui16;
sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4;
void delay(ui16 i)
{
        while(i--);
}
void hc595send(uc8 dat)
{
        uc8 a;
        SRCLK=0;
        RCLK=0;
        for(a=0;a<8;a++)
        {
                SER=dat>>7;
                dat<<=1;
                SRCLK=1;
                _nop_();
                _nop_();
                SRCLK=0;
        }
        RCLK=1;
        _nop_();
        _nop_();
        RCLK=0;
}
void main()
{
        int hang[]={0x80,0x40,0x20,0x10,0x08,0x04};
        int lie[]={0xdf,0x07,0xdf,0xdf,0xdf,0xdf};
       
        while(1)
        {
                int qq=0;
                for(;qq<6;qq++)
                {
                        hc595send(hang[qq]);       //控制行,高电压,当为1时,整行亮。正极。
                        P0=lie[qq];               //控制列,低电压,当为0时,行为1,才能亮。负极。
                        delay(100);
                        hc595send(0x00);   //消隐
                }
        }
}
谢谢指点。

你确定这个程序可以正确显示你所想显示的内容吗,根据你的程序,线路连接是以行和列来对应595和P0端口连接的,但是接线图和LED点阵的结构图来看却是根据LED点阵的引脚次序连接的,确定LED点阵的结构图和实物能对应吗。
是否能正确显示英文字符。

英文字符我还没试呢,晚上回去试试,我一直怀疑普中给的文档有问题。晚上试了,明天贴代码,谢谢!

英文字符没问题,但是,又出现新问题了,就是有些点,会亮的很暗,即使消隐,也不行。
还有,就是,如下的代码:为什么,不加最后一句消隐,整个8*8的点阵都不亮,这是为什么,谢谢指教。
void main()
{
        while(1)
        {
                senddata(0xff]);
                P0=0x00;
                senddata(0x00);
                }
        }
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top