8*8LED点阵图原理(74HC595芯片使用方法)
1.LED灯排线图
1.该线为共阳极点阵图,一行的阳极都是接在一条线上的
如果要亮第一排第一个灯,需要9号行位置为1(即5V),13号列为0(即0V)形成电流,该灯就亮。
2.故行为1000 000控制只有第一行有入口是高电压的,列为0111 1111控制只有第一列为低电压。
控制一个LED灯可以直接控制,但控制两个不在同一行的LED灯得用动态显示。
3.动态思想:我们确认好每行亮那几个LED灯,然后用1000 0000不断右移动,每次只亮一行的LED灯,然后每行变化很快(其实每次只有一行亮,但因为切换快,人眼看到是所有行),就可以看到显示所要显示的灯。
2.LED点阵屏的连接(74HC595)
8*8有16个接口,而16乘16就有32个接口,而通常都是成千上万的LED灯,不可能都用单片机的接口,这样耗费资源,故就用到74H595芯片。
3. 74HC595
74HC595芯片是一种串入平出的芯片,广泛用于LED屏显示。
串行平出就是8位数据可以一个一个排队通过一条通道,然后多行输出
平行平入就是一位数据一个通道,这样虽然很快,但是耗费的接口很多,然而LED并不需要这么快。
1.Q0到Q7就是数据输出端,连接8个LED灯端口
2.Q7’(第九脚)是串行数据输出,(连接的是两个该芯片,有16个端口,会传入16位数据,但都是只传入到第一片芯片中,然后由Q7‘把数据不断分配)(这个连到下一片的ds端口,没有下一片就不连)。
3.MR(第10脚),低电平时将寄存器数据清除,所有通常直接连到电源(开机就保存数据,关机就没)。
4.SH-CP(14脚),数据输入时间线,每片芯片的该端口都连到一个I/O口,通过产生一次上升沿(数据从0变成1,即电压从0V到5V),就录入一位数据到芯片寄存器内。
5.ST-CP(第12脚),通过产生一次上升沿(数据从0变成1,即电压从0V到5V),输出存在该芯片内寄存器的数据,直接8位数据通过Q0到Q7输出。
6.OE(第13脚),当它为高电平时为高阻态,所有通常把它接入地线。
所以只有到三个接口就可以控制到88的点阵屏(如果要1616的点阵屏,就在接两个该芯片,同样是3个接口)。
三个接口中
CLK为控制接收数据节奏(通过上升沿一位位接受)。
DI为传入数据的端口。
LE控制全部输入数据到寄存器内时输入到每个芯片的8个接口(通过上升沿直接全部输出)。
代码展示
这是阳极LED点阵,只有阴极用到了74HC595
#include "reg51.h"
#include "intrins.h"typedef unsigned int u16;
typedef unsigned char u8;u8 ledduan[] ={0x7E,0x3C,0x00,0x81,0x81,0xC3,0xE7,0xFF};//每行亮的位置
sbit SRCLK=P3^6; //移位数据时钟
sbit RCLK=P3^5; //输出数据时钟
sbit SER=P3^4; //数据输入口(一位一位)
void delay(unsigned int z)
{unsigned int x,y;for(x=z;x>0;x--)for(y=120;y>0;y--);
}
void Hc595SendByte(u8 dat) //74HC595芯片使用的程序
{u8 a;SRCLK = 0;RCLK = 0; //全部归0,以便拉高形成上升沿for(a=0;a<8;a++) {SER = dat >> 7; //接受第8位数据 dat <<= 1; //通过数据左移动,不断接受所有数据SRCLK = 1; //每得到一位就通过移位数据时钟(为一,产生上升沿)传入寄存器 SRCLK = 0; //归0}RCLK = 1; //数据8位直接输出RCLK = 0;
}
void main()
{ u8 i,ROW;while(1){ROW = 0x80; //从第一行开始1000 0000for(i=0;i<8;i++) {P0=ledduan[i]; //我们这开发板是8个口是直接连到P0位置端口,这是阳极Hc595SendByte(ROW); //发送列数据,阳极对应的行与阴极对应亮那里就控制了这一行亮的灯ROW = _cror_(ROW,1); //控制阳极的”1“位移,需要用到头文件。}}
}
结果
8*8LED点阵图原理(74HC595芯片使用方法)相关推荐
- 【74HC595】51单片机(普中A2开发板)LED点阵屏点亮以及74HC595芯片的使用笔记
使用74HC595芯片驱动LED点阵屏的使用笔记 1.控制显示LED点阵屏的思路 2.74HC595芯片的学习 2.1.74HC595芯片是什么? 2.2.74HC595芯片各引脚解释以及分析 2.3 ...
- 点阵图和Bitblt
点阵图是一个二维的位元阵列,它与图像的图素一一对应.当现实世界的图像被扫描成点阵图以後,图像被分割成网格,并以图素作为取样单位.在点阵图中的每个图素值指明了一个单位网格内图像的平均颜色.单色点阵图每个 ...
- 51单片机LED点阵控制原理、74HC595工作原理和字母和滚动显示实验代码
目录 1. 74HC595工作原理图解 2.LED点阵控制原理 3.点阵LED实验 3.1 配置74HC595代码 3.2 D点阵LED显示H 3.3 滚动LED (1) 滚动扫描图示 (2)程序代码 ...
- 74HC595芯片实现原理及跑马灯数码管应用程序-----day2
74HC595芯片应用-----day2 1.CMOS移位寄存器–74HC595 可串行输出控制下一级级联芯片.![在这里插入图片描述](https://img-blog.csdnimg.cn/2fa ...
- 51单片机之8×8点阵显示(74HC595)
目标:8×8点阵显示一个心 1:显示原理(扫描) 点阵在显示图形时并不是对应的LED同时点亮,而是显示一行(行扫描)或一列(列扫描)后,快速切换到下一行或下一列,依次显示到最后一行或一列.利用余晖效应 ...
- 51单片机LED点阵实验(74HC595)
实验目的:用8*8的LED点阵显示一颗爱心. 实验仪器:普中开发板(非广告) 实验背景:出于一些原因,最近在看Arduino,但仍觉得51好玩.遂,一边看Arduino,一边整理51. 8*8的LED ...
- IO口扩展 74HC595芯片
74HC595芯片目的:扩展IO口数量(一个芯片扩展8个IO口) 上面是A2-A4的芯片,下面是A5-A6的芯片,其中右端的QA--->QH'连接LED8*8点阵的A1-A8 A2-A4 上半部 ...
- 【单片机基础篇】74HC595芯片详解
74HC595芯片详解 芯片简述:74HC595是一个8位串行输入.并行输出的位移缓存器:并行输出为三态输出.在SCK 的上升沿,串行数据由SER输入到内部的8位位移缓存器,并由QA~QH'输出,而并 ...
- 重力感应贪吃蛇(C51 MPU6050 8*8LED点阵)
重力感应贪吃蛇(C51 MPU6050 8*8LED点阵) 本文讲述如何从无到有用C51做一个重力感应的贪吃蛇,包括元件选型.原理图PCB绘制和代码编写. 重力感应贪吃蛇(C51 MPU6050 8* ...
最新文章
- 提高php编程效率的小结
- JDBC-Statement 对象
- latex快速入门教程
- x5内核有什么优点_欧尚X5国产又一黑马SUV,颜值高性能强,顶配仅需10万左右
- 年度最期待游戏废土2登陆Linux
- JAVA面试常考系列三
- OpenShift上的无痛集装箱化JBoss通用贷款处理
- javascript学习之对象基础
- 程序员,Linux 下如何避免从删库到跑路的悲剧?
- typescript vuex_将已有的Vue项目升级支持TypeScript
- Shiro 整合SpringMVC 并实现权限管理,登录和注销
- Spring boot Jar和war运行差异
- 分析Redis集群原理
- 人脸识别相机对人脸库进行增删改查——MQTT协议
- 实施数据驱动的供应链管理能力问题
- IOS之 UITableview的简单使用
- java餐厅点餐系统免费_基于jsp的餐厅点餐系统-JavaEE实现餐厅点餐系统 - java项目源码...
- Nginx下https模式下,不带www的域名无法自动跳转到带www域名的问题
- 机器学习(上)线性回归、多项式回归、标准差、百分位数、数据分布、散点图
- 微信支付SDK接入流程梳理