微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 8*8LED点阵老是出现显示混乱,希望高手予以赐教

8*8LED点阵老是出现显示混乱,希望高手予以赐教

时间:10-02 整理:3721RD 点击:
我是个初学者,最近在学习8*8LED点阵实验中,老是遇到 LED点阵显示不全或者错位或者混乱的局面,不知道是不熟悉74系列芯片还是软件延时
出了问题造成的。希望大家可以给予一些帮助,谢谢。(*^__^*) 嘻嘻……
PROTEUS仿真图如下 (第一次发帖子,不知道怎去在文中插入图片)
采用的是 74HC245芯片
8*8LED点阵 行高列低 接法  

C51源程序如下:
#include<reg51.h>                //51头文件,
//---------常用的两个宏定义--------------
#define uchar unsigned char
#define uint  unsigned int


//------------显示数据-------------------
unsigned char code TableL[] = {
        0xFF,0xFF,0x8F,0xA1,0x8D,0xED,0xE1,0xFF,
};
unsigned char code TableH[] = {
        0x00,0x38,0x28,0x3E,0x12,0x12,0x1E,0x00,
};
//------------函数的声明-----------------
void delayms(uint xms);

//-------------主函数--------------------
void main(void)
{
        while(1)
        {
            uchar i;
                for(i=0;i<8;i++)
                {
                        P0 = TableH;
                        P2 = TableL;
                        delayms(5);
                        P0=0x00;
                }        
        }        
}

/********************************************************
** 名称 :void DelayMS(uint16 dly)
** 功能 :毫秒级延时(12M的晶振)
** 入口参数 :dly
                                        用户的延时参数   
** 出口参数 :无   
*********************************************************/
void delayms(uint xms)
{
        uint x,y;
        for(x=xms;x>0;x--)
                for(y=124;y>0;y--);
}





tableh[i];
tablel[i];
你试试

还是不行~~~不知道该怎么搞~~~~

P0 = TableH[i];
P2 = TableL[i];
delayms(5);
P0=0x00;
P2=0x00;
一定要把两个I/O口清除,否则会留下阴影,所以才会看到乱码

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

网站地图

Top