LED点阵
1.显示原理:
LED点阵屏结构类似于数码管,有共阴和共阳两种接法,需要进行逐行或逐列扫描,才能使所有LED同时显示。
2.开发板引脚对应关系:
3.74HC595寄存器:
74HC595是串行输入并行输出的移位寄存器,可用3根线输入串行数据,8根线输出并行数据。
LED屏显示图形:
#include<reg52.h>
#include"delay.h"
sbit RCK=P3^5; //RCLK
sbit SCK=P3^6; //SRCLK
sbit SER=P3^4; //对位进行声明
void _74HC595_WriteByte(unsigned char Byte) //字节数据
{
unsigned char i;
for(i=0;i<8;i++)
{
SER=Byte&(0x80>>i); //取出最高位(对Byte来说是第八位)(>>i为向右移i位,变为0x40,0x20.......)
SCK=1; //高电平,也就是一个上升沿,数据位 SER=Byte&0x80就会移进去
SCK=0; //清零,为下一次移位做准备
} //上升沿移位(SERCLK)
RCK=1;
RCK=0; //上升锁存(RCLK)
}
void MatrixLED_ShowColumn(unsigned char Column,Date)
{
_74HC595_WriteByte(Date);
P0=~(0x80>>Column); //向右移
}
void main()
{
SCK=0;
RCK=0;
while(1)
{
MatrixLED_ShowColumn(0,0x3C); //0表示第一列
MatrixLED_ShowColumn(1,0x42);
MatrixLED_ShowColumn(2,0xA9);
MatrixLED_ShowColumn(3,0x85);
MatrixLED_ShowColumn(4,0x85);
MatrixLED_ShowColumn(5,0xA9);
MatrixLED_ShowColumn(6,0x42);
MatrixLED_ShowColumn(7,0x3C);
}
}