我是个初学者,最近在学习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--);
}
|