51单片机入门:LED点阵屏

2024-04-06 20:04
文章标签 led 入门 单片机 51 点阵

本文主要是介绍51单片机入门:LED点阵屏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

LED点阵屏介绍

LED点阵屏由若干个独立的LED组成,LED以矩阵的形式排列,以灯珠亮灭来显示文字、图片、视频等。LED点阵屏广泛应用于各种场合,如:广告屏、公告牌等。

分类

按颜色:单色、双色、全彩;

按像素:8*8、16*16等(大规模的LED点阵屏通常由很多个小点阵屏拼接而成);

显示原理

 如图为8*8点阵模块,总共有8×8=64个LED灯,由16个引脚来控制,其中8个为正极(Da、Db、...、Dh);8个为负极(P00、P01、...、P07);

LED点阵屏与数码管一样,有共阴和共阳极两种接法,不同的接法对应的电路结构不同(对于单色点阵屏区别不大,对于双色或多色区别大)。

LED点阵屏需要逐行或逐列扫描,才能使所有LED同时显示。

原理:当16个引脚状态确定,LED点阵屏中的所有LED状态也确定,就构成了一幅画面。不停地改变16个引脚的状态,就会组成不同的画面,也就显示出了动态画面。


74HC595芯片

74HC595芯片是一个串行输入、并行输出的设备。内部包含一个8位移位寄存器、一个存储器以及三态输出门电路。其中移位寄存器和存储器都有相互独立的时钟。

用三根线(SER、SRCLK、RCLK)输入串行数据,8根线输出并行数据;多片级联后可输出16为、24位、32位等数据。

  • 引脚定义

OE:输出使能(上图为低电平有效),即当其为0时这个芯片才能工作(通过跳线帽将J24的VCC和OE连接在一起即可)。

SER(DS):串行数据输入。

RCLK:移位寄存器时钟。当出现上升沿时,将移位寄存器的数据存到存储寄存器。

SRCLR(MR):串行清零端(低电平时将清空移位寄存器的数据),一般不用,接高电平即可。

SRCLK:串行时钟。当出现上升沿时,移位寄存器的数据向前移位,并从SER上读取新的一位数据存到移位寄存器里(压子弹一样)。

QH':当串行数据多于8位时,会将已有的位挤出去。级联后可作为下一级的SER引脚输入。

Qa到Qh:并行输出引脚。

  • 工作流程

(1)每个芯片的数据都是通过SER引脚输入,并保存到移位寄存器中;

(2)SRCLK引脚出现一次上升沿,就读取SER引脚状态,将数据保存到移位寄存器中;

(3)当需要传递的数据都保存到各级芯片的移位寄存器后,RCLK引脚出现一次上升沿,就将移位寄存器的值刷新到存储寄存器中,更新8个并行输出引脚的状态;

  • 芯片应用

通常使用74HC595芯片来控制LED点阵屏,优点如下:

1、采用74HC595芯片,只需3个引脚就能控制LED点阵屏,减少了引脚的使用数;

2、控制更大的LED点阵屏,还是只需使用3个引脚,只是要增加级联的74HC595芯片数量;


LED点阵屏显示图片代码:

#include <REGX52.H>
#include <delay.h>sbit RCK=P3^5; //RCLK
sbit SCK=P3^6; //SRCLK
sbit SER=P3^4; //SERvoid _74HC595(unsigned char Byte){unsigned char i;for(i=0;i<8;i++){SER=Byte&(0x80>>i);SCK=1;SCK=0;}RCK=1;RCK=0;
}void LEDshow(unsigned char x,y){_74HC595(y);  //代表这一列亮哪几个灯P0=~(0x80>>x);//代表第几列亮Delay100us();P0=0xFF;
}void main (){SCK=0;RCK=0;while(1){LEDshow(0,0x70);LEDshow(1,0x88);LEDshow(2,0x44);LEDshow(3,0x22);LEDshow(4,0x22);LEDshow(5,0x44);LEDshow(6,0x88);LEDshow(7,0x70);}
}

这篇关于51单片机入门:LED点阵屏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/880701

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们的MySQL服务安装好了之后, 会有一个配置文件, 也就

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显

C语言指针入门 《C语言非常道》

C语言指针入门 《C语言非常道》 作为一个程序员,我接触 C 语言有十年了。有的朋友让我推荐 C 语言的参考书,我不敢乱推荐,尤其是国内作者写的书,往往七拼八凑,漏洞百出。 但是,李忠老师的《C语言非常道》值得一读。对了,李老师有个官网,网址是: 李忠老师官网 最棒的是,有配套的教学视频,可以试看。 试看点这里 接下来言归正传,讲解指针。以下内容很多都参考了李忠老师的《C语言非