单片机——LED点阵
1. 基本介绍
LED点阵
LED点阵是由发光二极管排列组成的显示器件,通常应用较多的是88点阵,然后通过多个88点阵组成不同分辨率的LED点阵显示屏,如4个88组成的1616点阵
8*8点阵由64个LED组成,每个LED是放置在行线和列线的交叉点上,因此通过横纵坐标就可以实现对任何一个LED亮和灭。
74CH595芯片
74HC595芯片是串转并移位锁存器,即芯片通过一个IO口串行接收8bit的数据,然后将8bit数据转为并行输出的移位缓存器。
单片机可以只通过1个IO口串行的输出8bit数据,通过这个芯片转为并行的8bit数据,就可以控制led点阵中的8条阳极,此时在加一个相同的芯片控制阴极,就可以实现两个IO口控制8*8的led点阵,节省了IO口的数量。
- QA~QH:并行数据输出,即将串行输入的数据通过8个引脚并行输出出去
- SER:串行数据输入,芯片通过这个引脚逐位接收数据
- SCK:移位寄存器时钟输入,芯片在每个SCK上升沿时,通过SER读取1bit数据
- RCK:存储寄存器时钟输入,芯片在每个RCK上升沿时,将SER读取到的数据通过QA-QH并行端口输出
- Q‘H:串行数据输出,在芯片中存满8位数据后,再输入数据时,就会将原来存的8bit数据通过该引脚逐位挤出去
- ^G:输出有效
- ^SCLR:低电平复位引脚
2. 电路原理图
16*16LED点阵
74HC595模块
由原理图可知,74HC595的C和D是直接与LED点阵的阴极连接在一起的,因此只要将LED点阵的阳极(J28、J34)与74HC595的A和B输出(J27、J32)连接在一起即可。同时将J24与单片机上的引脚连接。
3. 软件编程
单独显示
sbit SER = p1^0;
sbit SCK = p1^1;
sbit RCK = p1^2;/*传入4个595模块的值*/
void SendLedData(u8 Neg9to16, u8 Neg1to8, u8 Pos9to16, u8 Pos1to8)
{int i = 0;SCK = 0;RCK = 0;/*第一个595芯片工作,数据为Negative 9-16引脚*/for(i = 0; i < 8; i++){SER = Neg9to16 >> 7; //数据最高位SCK = 0;SCK = 1; //制造上升沿读取数据Neg9to16 = Neg9to16 << 1;//移到下一位}for(i = 0; i < 8; i++){SER = Neg1to8>> 7;SCK = 0;SCK = 1;Neg1to8 = Neg1to8<< 1;}/*第三个595芯片工作,数据为Positive9-16引脚*/for(i = 0; i < 8; i++){SER = Pos9to16>> 7;SCK = 0;SCK = 1;Pos9to16= Pos9to16<< 1;}for(i = 0; i < 8; i++){SER = Pos1to8>> 7;SCK = 0;SCK = 1;Pos1to8= Pos1to8<< 1;}RCK = 0; //制造上升沿,595芯片并行输出RCK = 1;
}void main()
{SendLedData(0x00, 0x00, 0x00, 0x01); //只亮第一行SendLedData(0xff, 0xfe, 0xff, 0xff); //只亮第一列
}
字模显示
/*“姜”字横向取模*/
u8 colData[] = {0x10,0x04,0x20,0x02,0xFE,0x3F,0x80,0x00,0xFC,0x1F,0x80,0x00,0xFF,0x7F,0x40,0x00,0x20,0x00,0xFF,0x7F,0x10,0x04,0x08,0x04,0x38,0x02,0xC0,0x01,0x30,0x0E,0x0E,0x10,
};
u8 rowData[32] =
{0x01,0x00, 0x02,0x00, 0x04,0x00, 0x08,0x00, 0x10,0x00, 0x20,0x00, 0x40,0x00, 0x80,0x00, 0x00,0x01, 0x00,0x02, 0x00,0x04, 0x00,0x08, 0x00,0x10, 0x00,0x20, 0x00,0x40, 0x00,0x80,
};
sbit SER = P3^4;
sbit RCK = P3^5;
sbit SCK = P3^6;void sendLedData(u8 n1, u8 n0, u8 p1, u8 p0)
{int i;RCK = 0;SCK = 0;for(i = 0; i < 8; i++){SER = n1>>7;SCK = 0;SCK = 1;n1= n1 << 1;} for(i = 0; i < 8; i++){SER = n0>>7;SCK = 0;SCK = 1;n0= n0 << 1;} for(i = 0; i < 8; i++){SER = p1>>7;SCK = 0;SCK = 1;p1= p1 << 1;} for(i = 0; i < 8; i++){SER =p0>>7;SCK = 0;SCK = 1;p0= p0 << 1;}RCK = 0;RCK = 1;
}void displayLedData(u8 row[], u8 col[])
{int i;//按行显示,共显示16行for(i = 0; i < 16; i++){sendLedData(~colData[2*i+1], ~colData[2*i], rowData[2*i+1], rowData[2*i]); }
}void main(void)
{displayLedData(rowData, colData);
}
单片机——LED点阵相关推荐
- 51单片机LED点阵显示文字
51单片机LED点阵显示文字 代码如下. #include <REGX51.H> #define u8 unsigned char sbit SER = P3^4; sbit RCLK = ...
- led动态显示 c语言,单片机LED点阵的纵向移动(动态显示)
点阵的动画显示,说到底就是对多张图片分别进行取模,使用程序算法巧妙的切换图片,多张图片组合起来就成了一段动画了,我们所看到的动画片.游戏等等,它们的基本原理也都是这样的. 上一节我们学了如何在点阵上画 ...
- 51单片机 | LED点阵实验 | 点亮一个点 | 显示数字 | 显示图像
文章目录 一.LED点阵介绍 二.硬件设计 三.软件设计 1.LED点阵(点亮一个点) 2.LED点阵(显示数字) 3.LED点阵(显示图像) 四.实验现象 1.LED 点阵(点亮一个点) 2. LE ...
- 单片机LED点阵控制。
系列文章目录 <font color=#999AAA 文章目录 系列文章目录 前言 一.74HC595芯片的说明及其使用 二.LED点阵 1![](https://img-blog.csdnim ...
- 51单片机LED点阵实验(74HC595)
实验目的:用8*8的LED点阵显示一颗爱心. 实验仪器:普中开发板(非广告) 实验背景:出于一些原因,最近在看Arduino,但仍觉得51好玩.遂,一边看Arduino,一边整理51. 8*8的LED ...
- 51单片机LED点阵控制原理、74HC595工作原理和字母和滚动显示实验代码
目录 1. 74HC595工作原理图解 2.LED点阵控制原理 3.点阵LED实验 3.1 配置74HC595代码 3.2 D点阵LED显示H 3.3 滚动LED (1) 滚动扫描图示 (2)程序代码 ...
- 51单片机led点阵C语言,51单片机驱动LED点阵扫描显示C语言程序
#ifndef__Matrix_H__ #define__Matrix_H__ #ifdef__cplusplus extern"C" { #endif #define SET ...
- 51单片机学习笔记(清翔版)(13)——LED点阵、74HC595
如图3,点阵屏分单色和彩色,点阵屏是由许多点组成的,在一个点上,只有一颗一种颜色的灯珠,这就是单色点阵屏,彩色的在一个点上有三颗灯珠,分别是RGB三原色. 图4你可能没看出来,那么大块黄色的就是点阵屏 ...
- 【51单片机实验笔记】3. LED点阵的基本控制
目录 前言 硬件介绍 驱动芯片 74HC595芯片 MAX7219芯片 原理分析 软件实现 爱心图片 旋转大风车 滚动日期 螺旋线动画 LED点阵功能函数封装 总结 前言 本章接触的硬件依然与LED息 ...
- 【Proteus仿真】【51单片机】LED点阵花样显示设计
文章目录 一.功能简介 二.软件设计 三.实验现象 联系作者 一.功能简介 本项目使用Proteus8仿真51单片机控制器,使用8*8LED点阵.按键模块等. 系统运行后,默认以静态模式显示,此时点阵 ...
最新文章
- 计算机专业指南考试,电大计算机专业专科期末考试试卷《计算机专业指南》试卷...
- 问题 | FileNotFoundError: [Errno 2] No such file or directory: 'null'
- Kettle使用_4 Excel批量数据输入
- GitKraken - 简单教程
- 弹出数组第一个元素 php,弹出第一个元素数组以在php codeigniter中插入批处理
- MTV模型—urls和view
- centos6.6_vsftpd 虚拟账户FTP服务搭建
- 电脑开机无logo,进不了bios
- 在升龙备份方法_[求助]关于使用再生龙备份系统的问题
- 米签---个人中心页面功能(uniapp)
- Google工作10年的职场感悟
- 4.1 I/O流
- 如何设置word从某一页开始第一页页码?今天介绍给大家
- 开发神器,color-dev ,告别百度rgb转16进制和16进制转rgb
- ajax 泛微oa表单js_【泛微OA】付款报销单-检查部门是否填写以及调取明细表预算并计算差额...
- 计算机系统基础实验-LinkLab实验
- POJ 3133 Manhattan Wiring 笔记
- Alembic数据库迁移工具使用
- mac苹果屏幕截图快捷键
- 用独立思考与自我管理构建人生规划(在南方科技大学的演讲稿)
热门文章
- 贪心+二分+快速排序
- MySQLworkbench中PK,NN,UQ意思详解
- html5 css3冷色调渐变色特效
- 什么是数字图书馆——What is Digital Library?
- Rime添加Emoji输入方案
- uni-app个人中心页开发
- 《关键对话》思维导图
- Another exception was thrown: The PrimaryScrollController is currently attached to more than one Scr
- 简明c语言,简明易懂的C语言俄罗斯方块
- Kienct与Arduino学习笔记(1) 基础知识之Arduino’Kinect‘Processing