目录
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 0xfeunsigned 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);}}}