LED点阵显示原理(取字模软件+Keil+Proteus)

前言

写这个的时候我还是有点生气的,因为发现完全按照书上面的步骤来,结果发现不理想,后面还是自己调试才解决了。-_-说多了都是泪,直接进入正文。

软件的操作还是参考我之前的博客。

LED数码管的静态显示与动态显示(Keil+Proteus)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_64066303/article/details/134101256?spm=1001.2014.3001.5501

原理

LED点阵屏_百度百科 (baidu.com)icon-default.png?t=N7T8https://baike.baidu.com/item/LED%E7%82%B9%E9%98%B5%E5%B1%8F/7374324MCU-51:LED点阵屏_单片机led点阵显示原理_Hello xiǎo lěi的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_27928443/article/details/128468090        LED点阵显示原理是利用发光二极管(LED)组成点阵,通过控制每个LED灯的点亮和熄灭,从而实现对文字、数字、图形等信息的显示,如在很短时间内依次点亮很多个发光二极管,LED点阵就可显示一个稳定字符、数字或其他图形。控制LED点阵显示器显示,实质就是控制加到行线和列线上编码,控制点亮某些发光二极管(点),从而显示出由不同发光点组成的各种字符。。LED点阵显示屏通常由显示模块、控制系统及电源系统组成,具有制作简单、安装方便等优点,被广泛应用于各种公共场合,如汽车报站器、广告屏以及公告牌等。在实际应用中,可以根据需要选择适合的控制方式,并通过合理的电路设计和编程来实现LED点阵的控制。

16*16点阵码

首先是点阵码部分,我相信应该没有人会傻傻的自己去画吧,而且这样还容易出错,这里可以用取字模的软件来实现。

PCtoLCD2002

 封(0) 奚(1) 泽(2) 优(3)

DB 02H,02H,12H,23H,12H,22H,12H,22H,FEH,FCH,12H,24H,12H,24H,12H,24H;
DB 00H,00H,09H,00H,08H,C2H,08H,01H,FFH,FEH,08H,00H,08H,00H,00H,00H;"封",0

DB 00H,01H,40H,11H,60H,91H,54H,92H,4DH,92H,55H,94H,66H,98H,56H,F0H;
DB 84H,98H,88H,94H,82H,92H,91H,92H,A0H,D1H,80H,11H,00H,01H,00H,00H;"奚",1

DB 08H,20H,06H,20H,40H,7EH,31H,80H,00H,00H,41H,08H,61H,48H,52H,48H;
DB 4AH,48H,45H,FFH,4AH,48H,52H,48H,61H,48H,01H,08H,01H,00H,00H,00H;"泽",2

DB 00H,80H,01H,00H,06H,00H,1FH,FFH,E0H,00H,08H,01H,08H,06H,08H,38H;
DB FFH,C0H,08H,00H,0FH,FCH,88H,02H,68H,02H,08H,02H,08H,1EH,00H,00H;"优",3

 字模提取 V2.1

实验前先进行初始化设置:

 勾选字节倒序

接下来就可以字模提取了 

/*--  文字:  封  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x10,0x10,0x10,0x10,0x10,0x10,0xFE,0x10,0x10,0x7E,0x10,0x10,0xFF,0x10,0x00,0x12,
0x10,0x14,0x10,0x14,0xFE,0x10,0x10,0x10,0x10,0x10,0xF0,0x10,0x0F,0x14,0x02,0x08,

/*--  文字:  奚  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x3F,0xFE,0x00,0x44,0x10,0xA8,0x08,0x10,0x02,0xF8,0x01,0xC0,0x04,0x30,0x08,
0xFC,0x1F,0x80,0x10,0x80,0x00,0xFE,0x3F,0x40,0x01,0x20,0x02,0x18,0x0C,0x07,0x70,

/*--  文字:  泽  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0xE4,0x1F,0x48,0x10,0x88,0x08,0x01,0x05,0x02,0x02,0x82,0x0D,0x68,0x72,
0x08,0x02,0xC4,0x1F,0x07,0x02,0x04,0x02,0xE4,0x3F,0x04,0x02,0x04,0x02,0x00,0x02,

/*--  文字:  优  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x10,0x09,0x10,0x11,0x10,0x11,0x08,0x01,0xE8,0x7F,0x0C,0x05,0x0C,0x05,0x0A,0x05,
0x09,0x05,0x08,0x05,0x88,0x04,0x88,0x44,0x88,0x44,0x48,0x44,0x48,0x78,0x28,0x00,

11月6日补:(百度网盘链接)

链接:https://pan.baidu.com/s/1RkMxhWm7Tku89T9_ZtwcrA 
提取码:0205 

解压之后这里有两个软件,大家根据自己的需要选择。

Keil

程序就是和书上基本上一致,就是注释那两行代码即可。他的原理就是逐行的进行打印,然后通过十六进制数打印没一行,因为他的速度快,所以就和一起打印一样。

#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int 
#define out0 P0
#define out1 P1
#define out2 P2void delay(uint y) //延时函数
{uchar x=250;for(;y>0;y--){while(--x);x=100;}
}uchar code string[]=
{
/*--  文字:  封  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x10,0x10,0x10,0x10,0x10,0x10,0xFE,0x10,0x10,0x7E,0x10,0x10,0xFF,0x10,0x00,0x12,
0x10,0x14,0x10,0x14,0xFE,0x10,0x10,0x10,0x10,0x10,0xF0,0x10,0x0F,0x14,0x02,0x08,/*--  文字:  奚  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x3F,0xFE,0x00,0x44,0x10,0xA8,0x08,0x10,0x02,0xF8,0x01,0xC0,0x04,0x30,0x08,
0xFC,0x1F,0x80,0x10,0x80,0x00,0xFE,0x3F,0x40,0x01,0x20,0x02,0x18,0x0C,0x07,0x70,/*--  文字:  泽  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0xE4,0x1F,0x48,0x10,0x88,0x08,0x01,0x05,0x02,0x02,0x82,0x0D,0x68,0x72,
0x08,0x02,0xC4,0x1F,0x07,0x02,0x04,0x02,0xE4,0x3F,0x04,0x02,0x04,0x02,0x00,0x02,/*--  文字:  优  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x10,0x09,0x10,0x11,0x10,0x11,0x08,0x01,0xE8,0x7F,0x0C,0x05,0x0C,0x05,0x0A,0x05,
0x09,0x05,0x08,0x05,0x88,0x04,0x88,0x44,0x88,0x44,0x48,0x44,0x48,0x78,0x28,0x00,
}  ;
void main()
{	uchar i,j,n;while(1){for(j=0;j<4;j++)	//共显示4个汉字{for(n=0;n<40;n++)//每个汉字整屏扫描40次{for(i=0;i<15;i++)//逐行扫描16行{out1=i%15;//输出行码out0=string[i*2+j*32];//输出列码C0~C7out2=string[i*2+1+j*32];//输出列码C8~C15delay(4);//每一行之间的延时//out0=0xff;//out2=0xff;}}}}
}

Proteus

对书上面的程序进行了修改,图中16*16的LED点阵是通过4个8*8的点阵来实现的(这样的点阵是需要自己绘制的,不然引脚的位置不对)。

这个我反犯的两个错误一个就是74HC154的接地符弄错了,导致他每次的打印都是一列一列的。

第二个就是反相器,我就是按照书上的弄,但是不知道他要干嘛,打印出来的结果感觉是一个字,但是又不对,想着是不是弄反了,就将反相器去掉了。

先展示如果只用自带的器件来实现。

所需元器件

元件名称Proteus关键字
51单片机AT89C51
4-16译码器74HC154
蓝色的8*8LED点阵MATRIX-8X8-BLUE
绿色的8*8LED点阵MATRIX-8X8-GREEN
橘色的8*8LED点阵MATRIX-8X8-ORANGE
红色的8*8LED点阵MATRIX-8X8-RED
排阻PESPACK-8
电源POWER
接地GROUND

这个主要需要注意的就是引脚的连接。(别问怎么知道的,问就是试出来的,按照书上面的连接肯定四块大的方向不会错,就是可能会有行列连反的现象出现,把一个字拆成四块,然后再看四个部分哪里有问题,有问题就把行列反过来连接即可)

颜色可以统一一个颜色,我是看刚好有四种颜色就分别表示四个模块。

效果图

拓展

下面是用老师给的元件库来实现的。

 有反相器的效果图。

无反相器的效果图

 如果你可以自己绘制一个16*16的效果图就更加好。

参考链接

 Proteus仿真实验----8*8点阵(点扫描实验)_matrix-8x8_DH小雷家的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_46510976/article/details/127950291【Proteus】16乘16点阵滚动播放 - 知乎 (zhihu.com)icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/138580722【精选】Proteus8.6中16x16LED点阵制作教程_16*16点阵_TiAmoLH的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/yz20200414/article/details/116958385proteus仿真51单片机驱动16x16点阵显示自己名字和符号_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV18G4y1b79A/?spm_id_from=333.337.search-card.all.click&vd_source=7c3bfbf39d037fe80c97234396acc524

总结

看了几天努力还是没有白费,就一直按照书上面对,结果也没有发现什么问题,改了代码改原理图,结果一模一样的反而是有问题的,所以以后大家还是需要自己思考去完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/182828.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于wireguard与NAT实现windows10代理服务器

参考文章&#xff1a;https://blog.csdn.net/babytiger/article/details/127111474 一、 下载windows 安装包 下载wireguard安装包 二、 配置服务端&#xff1a; 新建空隧道并保存为server1&#xff0c;配置如下&#xff1a; 点击保存&#xff0c;并连接&#xff0c;多了个se…

Docker数据管理、网络与Cgroup资源限制

目录 一、Docker的数据管理 1、数据卷 2、数据卷容器 3、端口映射 4、容器互联 二、Docker网络 2.1Docker网络实现原理 2.2Docker 的网络模式 3.3网络模式详解&#xff1a; host模式 container模式 none模式 bridge模式 自定义网络 创建自定义网络 三、Cgroup资源…

Harbor企业级Registry基础镜像仓库的详细安装使用教程(保姆级)

Harbor Docker 官方提供的私有仓库 registry&#xff0c;用起来虽然简单 &#xff0c;但在管理的功能上存在不足。 Harbor是vmware一个用于存储和分发Docker镜像的企业级Registry服务器&#xff0c;harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。 ha…

shell综合项目

主菜单 http和Nginx分别的install的菜单&#xff0c;安装过程通过重定向到/dev/null达到看不见的效果 输入非整数或者大于4的数字都会提示错误 代码如下: [rootserver ~]# vim install_menu.sh #!/bin/bash function menu() { cat << EOF …

蓝桥杯官网填空题(方格计数)

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 如下图所示&#xff0c;在二维平面上有无数个 11 的小方格。 我们以某个小方格的一个顶点为圆心画一个半径为 50000 的圆。 你能计算出这个圆里有多少个完整的小方…

CSAPP BOMB LAB part2

bomb lab part2 phase3 将rsp0xc存入rcx, 将rsp0x8存入rdx, 地址0x4025cf存储格式&#xff0c;然后调用好sscanf函数&#xff0c; 当rsp0x8的值大于0x7, 会跳转到400fad, 会boom!!! 所以rsp0x8的值不大于0x7。 0x8rsp的值不进入ja的代码段&#xff0c;会执行400f71对应的指令…

docker---dockerfile相关知识

第 3 章 Docker 高级实践 在这一部分我们主要来介绍一些Docker的高级内容&#xff1a; Dockerfile 和 Docker compose 3.1 Dockerfile Dockerfile我们从下面的几个方面来介绍&#xff1a; Dockerfile简介 Dockerfile快速入门 Dockerfile详解 Dockerfile简单 实践 3.1.1 Docke…

阿里云安全恶意程序检测(速通一)

阿里云安全恶意程序检测 赛题理解赛题介绍赛题说明数据说明评测指标 赛题分析数据特征解题思路 数据探索数据特征类型数据分布箱型图 变量取值分布缺失值异常值分析训练集的tid特征标签分布测试集数据探索同上 数据集联合分析file_id分析API分析 特征工程与基线模型构造特征与特…

【Kubernetes部署】通过Kubeadm部署Kubernetes高可用集群

Kubeadm 一、kubeadm部署思路二、基本架构2.1 资源分配2.2 系统初始化操作&#xff08;所有节点&#xff09;2.2.1关闭防火墙、selinux和swap分区2.2.2 修改主机名&#xff0c;添加域名映射2.2.3 内核相关2.2.4 加载ip_vs模块2.2.5 时间同步 三、部署docker3.1 通过yum安装dock…

程序员笔记本电脑选 windows 还是 MAC

计算机选择是每个进入 IT 行业同学的第一个重要选择&#xff0c;那么你是怎么选择的呢&#xff1f; 选择操作系统&#xff08;Windows还是macOS&#xff09;取决于程序员的需求、偏好和工作流程。每个操作系统都有其优点和缺点&#xff0c;下面将分别讨论它们&#xff0c;以帮助…

小红书运营篇1,新手如何快速分析拆解对标账号

hi&#xff0c;同学们&#xff0c;本期是第1期AI运营技巧篇 很多新手博主初期都非常迷茫&#xff0c;主要是因为他们没有找对标账号&#xff0c;也没有充分分析同行账号。 有些人可能会说&#xff0c;“我不想参考同行&#xff0c;我想要追求创新”。这种勇气是真的非常值得鼓…

文件夹批量改名:轻松实现文件夹随机重命名

无论是在我们的日常生活还是工作中&#xff0c;批量重命名文件夹是一项非常常见的任务。当我们需要整理或分类大量的文件时&#xff0c;往往需要对相应的文件夹进行重命名。然而&#xff0c;手动一个接一个地完成这个任务不仅会消耗大量的时间&#xff0c;还容易在重命名过程中…

JS逆向爬虫---请求参数加密②【某麦数据analysis参数加密】

主页链接: https://www.qimai.cn/rank analysis逆向 完整参数生成代码如下&#xff1a; const {JSDOM} require(jsdom) const dom new JSDOM(<!DOCTYPE html><p>hello</p>) window dom.windowfunction customDecrypt(n, t) {t t || generateKey(); //…

《006.Springboot+vue之旅游信息推荐系统》【有文档】

《006.Springbootvue之旅游信息推荐系统》【有文档】 项目简介 [1]本系统涉及到的技术主要如下&#xff1a; 推荐环境配置&#xff1a;DEA jdk1.8 Maven MySQL 前后端分离; 后台&#xff1a;SpringBootMybatis; 前台&#xff1a;vueElementUI; [2]功能模块展示&#xff1a; …

汽车网络安全渗透测试概述

目录 1.汽车网络安全法规概述 1.1 国外标准 1.2 国内标准 2.汽车网络安全威胁分析 2.1 汽车网络安全资产定义 2.2 汽车网络安全影响场景及评级示例 3.汽车网络安全渗透测试描述 3.1 参考法规 3.2 渗透测试内容 4.小结 1.汽车网络安全法规概述 近年来&#xff0c;汽车…

C语言每日一题(24)回文素数题解

BC158 [NOIP1999]回文数 题目描述 若一个数&#xff08;首位不为零&#xff09;从左向右读与从右向左读都一样&#xff0c;我们就将其称之为回文数。 例如&#xff1a;给定一个10进制数56&#xff0c;将56加65&#xff08;即把56从右向左读&#xff09;&#xff0c;得到121是…

科技创意赋能乡村文旅振兴

近日&#xff0c;由北京大学创意产业研究中心联合中国国际科技促进会新基建专委会共同主办的“科技创意赋能乡村振兴研讨会”在京举行&#xff0c;与会专家学者围绕“和美乡村共同富裕智慧文旅”主题进行深入探讨。北京大学创意产业研究中心副主任吕艺、国家文化和旅游公共服务…

【MongoDB】集群搭建实战 | 副本集 Replica-Set | 分片集群 Shard-Cluster | 安全认证

文章目录 MongoDB 集群架构副本集主节点选举原则搭建副本集主节点从节点仲裁节点 连接节点添加副本从节点添加仲裁者节点删除节点 副本集读写操作副本集中的方法 分片集群分片集群架构目标第一个副本集第二个副本集配置集初始化副本集路由集添加分片开启分片集合分片删除分片 安…

2023数学建模国赛C题赛后总结

今天国赛的成绩终于出来了&#xff0c;盼星星盼月亮的。之前面试的时候已经把我给推到国奖评委那里去了&#xff0c;可是好可惜&#xff0c;最终以很微小的劣势错失国二。只拿到了广西区的省一。我心里还是很遗憾的&#xff0c;我真的为此准备了很久&#xff0c;虽然当中也有着…

001、Nvidia Jetson Nano Developer KIT(b01)

之——镜像烧录 杂谈 Nvidia Jetson Nano Developer KIT&#xff08;b01&#xff0c;4G&#xff09;&#xff0c;系统配置全纪录&#xff0c;镜像烧录、系统安装、远程桌面安装、cuda与torch安装、pycharm、pycuda、tensorrt等等。 正文 1.开发板系统安装 1.1 开发板简介 Jet…