IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STC89C52单片机矩阵LED灯介绍以及代码示例 -> 正文阅读

[嵌入式]STC89C52单片机矩阵LED灯介绍以及代码示例

目录

一,LED点阵屏介绍

二,显示原理

三,74HC595以及LED点阵屏

74HC595寄存器的介绍:

74HC595寄存器的使用方法:

74HC595以及LED点阵屏原理图:

四,开发板引脚对应关系

五, 寄存器声明与位声明的方法:

六,代码示例:


一,LED点阵屏介绍

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

LED点阵屏分类

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

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

二,显示原理

LED点阵屏的结构类似于数码管,只不过是数码管把每一列的像素以“8”字型排列而已

LED点阵屏与数码管一样,有共阴和共阳两种接法,不同的接法对应的电路结构不同

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

三,74HC595以及LED点阵屏

74HC595寄存器的介绍:

之前的数码管用的是74HC138译码器,但是如果我们要输出的不是8位,而是更多的16位或者32位

那么74HC595的串行输入,并行输出就很有用。那么下面来介绍串行输入,并行输出的相关知识

一、并行输入与串行输入的输入方式不同:

1、并行输入是并行通信的一种输入方式,是指将一串数据(如八位数据)一同输入目的寄存器。

2、串口输入则是将数据排成一行,一位一位输入。

二、并行输入与串行输入的效率不同:

1、并行传输方式的效率优于串行传输方式。通俗地讲,并行传输的通路犹如一条多车道的宽阔大道,而串行传输则是仅能允许一辆汽车通过的乡间公路。以古老而又典型的标准并行口(Standard Parallel Port)和串行口(俗称COM口)为例,并行接口有8根数据线,数据传输率高。

2、串行传输方式比并行传输方式低,同样以古老而又典型的标准并行口(Standard Parallel Port)和串行口(俗称COM口)为例,串行接口只有1根数据线,数据传输速度低。

三、并行输入与串行输入的添加内容不同:

1、并行传输不需要在数据中要加入起始标志和结束标志位。

2、串行传输需要在数据中要加入起始标志和结束标志位。

74HC595寄存器的使用方法:

1,SER输入想要输入的0,1数据

2,然后配置上升沿位移SERCLK,将SER的数据移向下一位

3,重复步骤1,2等待要求的位数移满以后(8位就移8次就行,别的16位,32位依此类推)

4,配置RCLK将8位数据一次性并行输出

74HC595以及LED点阵屏原理图:

?此时看到LED矩阵屏,相当于A1~~A8的数据已经置入完成,由发光二极管的单向导通性可以知道正极已经配置王岑,即将想要放光的列(P0_0~~P0_7)置0就可发光了,同样的为了使每一列都有显示,需要对其进行扫描。

四,开发板引脚对应关系

五, 寄存器声明与位声明的方法:

sfr P0 = 0x80类似的寄存器声明一般都在头文件里面定义了,不需要我们再次定义,否则系统会报错重复定义

sbit? P0_1 = 0x81是定义P0第一个端口的物理地址,同样也是不需要我们定义的

sbit? P0_1 = P0^1是将P0的第一个端口宏定义为P0_1,也就是说以后就可以用P0_1在主函数里面表示P0的第一个端口

六,代码示例:

#include <REGX52.H>
#include "Delay.h"

sbit RCK=P3^5;		//RCLK(上升沿锁存)
sbit SCK=P3^6;		//SRCLK(上升沿位移)
sbit SER=P3^4;		//SER(输入数据)

#define MATRIX_LED_PORT		P0//宏定义

/**
  * @brief  74HC595写入一个字节
  * @param  Byte 要写入的字节
  * @retval 无
  */
void _74HC595_WriteByte(unsigned char Byte)
{
	unsigned char i;
	for(i=0;i<8;i++)
	{
		SER=Byte&(0x80>>i);//Byte为8位,SER为1位,将8位数据赋给1位时,满足非0即1的原则
		SCK=1;
		SCK=0;
	}
	RCK=1;
	RCK=0;
}

/**
  * @brief  LED点阵屏显示一列数据
  * @param  Column 要选择的列,范围:0~7,0在最左边
  * @param  Data 选择列显示的数据,高位在上(从高位开始置入,置入后依旧为高位,LED矩阵显示也是高位在上),1为亮,0为灭
  * @retval 无
  */
void MatrixLED_ShowColumn(unsigned char Column,Data)//段选,位选,延时,复位
{
	_74HC595_WriteByte(Data);
	MATRIX_LED_PORT=~(0x80>>Column);
//Data中1为亮,0为灭;这里自然使前面有取反符号表示0为选中,1为未选中
	Delay(1);
	MATRIX_LED_PORT=0xFF;
}

void main()
{
	SCK=0;//相当于初始化
	RCK=0;
	while(1)
	{
		MatrixLED_ShowColumn(0,0x3C);
		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);
	}
}

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-01-28 12:04:46  更:2022-01-28 12:06:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:38:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码