LED 点阵是由发光二极管排列组成的显示器件。
通常应用较多的是 8* 8 点阵,通过进行对不同位置的点亮与熄灭,构成一个图案,这一点也被应用到了电视机的显示屏上。下面是点阵屏的原理图

它的DPa到DPh引脚分别对应了侧排的引脚(引脚为高电平,控制P0号引脚低电平即可点亮二极管),采用74HC595串转并芯片,需要在使用过程中对595的3个输入端进行控制。

跳线帽OE:OE, 输出使能控制脚,它是低电才使能输出,所以接GND,OE端会被GND下拉为0。
P34-SER:代表串行输入,我们串行输入就是把数据放到这。
P35-SCK :上升沿移位,即RCK从0-1电位变化会让数据往下移一位
P36-RCK:上升沿锁存,搬运工,即SCK从0-1电位变化会把数据搬运到芯片输出端
其中:SER负责将数据输入,SCK上升沿触发后数据插入队列,RCK则会锁存复制到输出端队列当中。

可以用取字模软件进行取模,下载链接在文末,下面是操作例图:

程序:

#include <reg52.h>
#include <intrins.h>typedef unsigned char u8;         // 重命名类型u8简化代码编写
typedef unsigned int u16;
#define MATRIX_PORT P0      // 点阵LED负极端口sbit SCK = P3^6;           // SCK上升沿移位
sbit RCK = P3^5;           // RCK上升沿串行输出寄存器锁存
sbit SER = P3^4;           // SER引脚送字节数据进去
// 点阵列选值,数组每个元素的值选中其中一列
u8 gLineCode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //位选控制哪个亮、段选控制输入内容
u8 gZhong[] = {0x00,0x3C,0x52,0x52,0x7E,0x12,0x10,0x00};/*"中",0*/void delay(u16 i);
void Hc595SendByte(u8 dat);
void MatrixDisplay(u8 *zimo);
void delay(u16 i)
{while(i--);
}/*********************************************************************
* 函 数 名       : main
* 函数功能       : 主函数
* 参数列表       : 无
* 函数输出       : 无
*********************************************************************/
void main(void)
{MatrixDisplay(gZhong);
}
/*********************************************************************
* 函 数 名       : MatrixDisplay
* 函数功能       : 循环刷新显示字模到点阵上
* 参数列表       : zimo - 待显示的字模数组
* 函数输出       : 无
*********************************************************************/
void MatrixDisplay(u8 *zimo)
{u8 i = 0;while (1){for(i=0;i<8;i++){MATRIX_PORT = gLineCode[i];                // 位选Hc595SendByte(zimo[i]);        // 发送段选数据delay(100);Hc595SendByte(0x00);        // 消隐}break;    }
}
/*********************************************************************
* 函 数 名       : Hc595SendByte
* 函数功能       : 通过74HC595串行移位发送一个字节出去
* 参数列表       : dat - 待发送的字节数据
* 函数输出       : 无
*********************************************************************/
void Hc595SendByte(u8 dat)   //从低位往高位移动数据
{u8 i = 0, j = 0;SCK = 0;                // 将SCK置为初始状态RCK = 0;              // 将RCK置为初始状态for (i=0; i<8; i++){SER = dat & (0x01);dat >>= 1;SCK = 1;j++;             // 延时代码,等同于nop指令_nop_();j++;               // 延时代码,等同于nop指令SCK = 0;    }RCK = 1;j++;                    // 延时代码,等同于nop指令j++;                   // 延时代码,等同于nop指令
}

效果图:

取字模软件下载

51单片机系列--led点阵屏显示汉字相关推荐

  1. 51单片机系列--滚动点阵屏

    这一篇是前一篇点阵屏显示汉字的序章.就不多说了,原理都一样,都是进行位运算后点亮不同的发光二极管. 源码: #include<reg51.h> //宏定义 #define uchar un ...

  2. 【51单片机】LED点阵屏(74HC595讲解)

  3. 51单片机——LED点阵屏显示动画

    1.前言 LED点阵屏显示图形: https://blog.csdn.net/YLG_lin/article/details/126587462?spm=1001.2014.3001.5501 当我们 ...

  4. 51单片机系列(三)51 单片机游戏设计 —— 双人对战小游戏(石头剪刀布)

    本博客51单片机实训系列,旨在记录本人在大学上单片机技术这门课时所做的课程实训内容,并与大家分享基于51单片的课程作业,如果作业中的某些细节和代码能给大家一点启发那就更好了,希望大家能用51单片机做出 ...

  5. 【Proteus仿真】【51单片机】LED点阵广告牌设计

    文章目录 一.功能简介 二.软件设计 三.实验现象 联系作者 一.功能简介 本项目使用Proteus8仿真51单片机控制器,使用16*16LED点阵.按键.74HC595D等. 系统运行后,默认以静态 ...

  6. 51单片机控制系统的人机交互接口设计【51单片机与LED数码管的动态显示接口案例分析】

    本章节利用Keil uVision5和ISIS 7 Professional两个软件来进行仿真实验. [例]运用51单片机实现8位8段数码管的动态显示,LED数码管的段选数据由51单片机的P0口控制, ...

  7. 51单片机 IIC OLED驱动显示通用程序模板

    51单片机 IIC OLED驱动显示通用程序模板 本模板是通过中景园OLED屏幕资料中提取保留ASCII字符集,点阵大小:6x8和8X16. 汉字取模方式 取模软件:pctolcd2002 /汉字取模 ...

  8. 51单片机实现LED数码管0-9999秒的计时功能

    标题51单片机实现LED数码管0-9999秒的计时功能 一.实现原理: P0口给高低电平控制LED灯亮暗,来显示数字: 74HC138实现数码管高低电平状态,循环实现数码管动态扫描显示. LED1-L ...

  9. 51单片机的LED的位定义(通俗易懂)

    51单片机的LED的位定义 一.位定义原理 二.代码实现 三.烧录演示 一.位定义原理 定义方法:sbit 位名=特殊功能寄存器^位置; sbit LED1 = P2^0; 符号"^&quo ...

  10. 单片机 c语言百位加上小数点,51单片机水温控制LCD显示加VB上位机温度曲线绘制...

    现功能,1L水由1KW电炉加热,要求水温在一定范围内人工设定,并能随着环境温度改变自动调节,以维持设定的温度不变. 矩阵键盘输入设定温度,LCD1602显示温度值,VB上位机绘制温度曲线 /***** ...

最新文章

  1. ZigBee On Windows Mobile--3.模拟器和实物调试
  2. C#设计模式之十七中介者模式(Mediator Pattern)【行为型】
  3. BEA WebLogic平台下J2EE调优攻略--转载
  4. volunteer research
  5. VS2003创建动态库的一点笔记
  6. 31个EMC标准电路分享
  7. 常见网络游戏的端口列表
  8. 微信小程序tabbar美化(中间图标突起)
  9. 自然语言处理——字符串基础操作及应用
  10. obs推流视频比特率_我如何使用OBS和WebSockets流视频
  11. c语言什么意思 app 视频 新闻,开发新闻资讯APP需要哪些功能?
  12. Sentinel SuperPro加密锁编程开发指南
  13. linux查看ip等信息的命令
  14. 你还在用if-else吗?
  15. 猴子选大王 java_猴子选大王(java求解) | 学步园
  16. spring cloud eureka无法加载样式wro.css和脚本wro.js
  17. 计算机图形学-抛物线的中点Bresenham算法
  18. ISO 16750.4-2010道路车辆电子电气部件的环境试验 第四部分
  19. hive时间戳格式化HH和hh的区别
  20. 程序员能干到50岁?

热门文章

  1. 世界上到处都是有才华的穷人
  2. 悉尼大学计算机一年制硕士,悉尼大学一年制硕士
  3. 为NodePad++添加CSS格式化功能
  4. 如何扩大计算机的硬盘空间,c盘分区小了怎么扩大_电脑c盘分区空间太小如何扩大...
  5. 磁珠特性以及选型注意事项
  6. 云原生的高效生产工具 ---vagrant
  7. windows10 家庭版U盘安装教程
  8. 屏幕快照之旅:Android 4.2 Jelly Bean的10个新功能
  9. 这是一个鲜为人知,却身怀绝技的神秘工具——幻灯片母版
  10. 哈佛php公开课,哈佛公开课