目录
1LED点阵屏简绍
2 8*8点阵屏电路图74
3 74HC595芯片
4实践编程
1LED点阵屏简绍
2 8*8点阵屏电路图74
怎么点亮,正极给高负极给低
不能同时静态显示,跟数码管动态显示一样,反复横跳,利用视觉效果
3 74HC595芯片
串入并出:串行输入,并行输出
一个字节 A点 B点
87654321 通道(串行)一次一个到B
并行八个通道(速度快,但是占用硬件多)
为什么要级联?
输出要8个io口,点阵16脚,需要2*8
595内部有一个八位移位寄存器
锁存器:保持不闪屏
级联输出:3个io口输出16位(14脚进,11,12脚出
4实践编程
1点亮一个点
#include<reg52.h>
sbit DIO = P3^4;//串行数据口
sbit S_CLK = P3^5;//移位寄存器时钟
sbit R_CLK = P3^6;//输出锁存器时钟
void main()
{
//ROW行0x80 COL 0xfe
unsigned char i,dat;
dat = 0xfe;
for(i-0;i<8;i++)
{
S_CLK = 0;
R_CLK = 0;
if(dat & 0x01)
DIO = 1;
else
DIO =0;
S_CLK = 1;
//dat = dat>> 1;
dat >>=1;
}
dat = 0x80;
for(i-0;i<8;i++)
{
S_CLK = 0;
R_CLK = 0;
if(dat & 0x01)
DIO = 1;
else
DIO =0;
S_CLK = 1;
dat >>=1;
}
R_CLK = 1;
while(1);
}
显示一个电字
#include<reg52.h>
#include<intrins.h>
sbit DIO = P3^4;//串行数据口
sbit S_CLK = P3^5;//移位寄存器时钟
sbit R_CLK = P3^6;//输出锁存器时钟
unsigned char code table[8] = {0xef,0x01,0x6d,0x01,0x6d,0x01,0xee,0xe0};
//0xef,0x01,0x6d,0x01,0x6d,0x01,0xee,0xe0:电
void Send_Byte(unsigned char dat)
{
unsigned char i;
S_CLK = 0;
R_CLK = 0;
for(i=0;i<8;i++)
{
if(dat & 0x01)
DIO = 1;
else
DIO =0;
S_CLK = 1;
//dat = dat>> 1;
dat >>=1;
S_CLK =0;
}
}
void main()
{
unsigned char j,ROW;
while(1)
{ROW = 0x80;
for(j=0;j<8;j++)
{
Send_Byte(table[j]);
Send_Byte(ROW);
R_CLK = 1;
R_CLK =0;
ROW = _crol_(ROW,1);
}
}
}