财政局网站建设方案,广西壮族自治区市场监督管理局,安装两个wordpress,宁波专业网站推广制作服务前言
写这个的时候我还是有点生气的#xff0c;因为发现完全按照书上面的步骤来#xff0c;结果发现不理想#xff0c;后面还是自己调试才解决了。-_-说多了都是泪#xff0c;直接进入正文。
软件的操作还是参考我之前的博客。
LED数码管的静态显示与动态显示#xff0…前言
写这个的时候我还是有点生气的因为发现完全按照书上面的步骤来结果发现不理想后面还是自己调试才解决了。-_-说多了都是泪直接进入正文。
软件的操作还是参考我之前的博客。
LED数码管的静态显示与动态显示KeilProteus-CSDN博客https://blog.csdn.net/weixin_64066303/article/details/134101256?spm1001.2014.3001.5501
原理
LED点阵屏_百度百科 (baidu.com)https://baike.baidu.com/item/LED%E7%82%B9%E9%98%B5%E5%B1%8F/7374324MCU-51LED点阵屏_单片机led点阵显示原理_Hello xiǎo lěi的博客-CSDN博客https://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 x250;for(;y0;y--){while(--x);x100;}
}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(j0;j4;j) //共显示4个汉字{for(n0;n40;n)//每个汉字整屏扫描40次{for(i0;i15;i)//逐行扫描16行{out1i%15;//输出行码out0string[i*2j*32];//输出列码C0~C7out2string[i*21j*32];//输出列码C8~C15delay(4);//每一行之间的延时//out00xff;//out20xff;}}}}
}
Proteus
对书上面的程序进行了修改图中16*16的LED点阵是通过4个8*8的点阵来实现的这样的点阵是需要自己绘制的不然引脚的位置不对。
这个我反犯的两个错误一个就是74HC154的接地符弄错了导致他每次的打印都是一列一列的。
第二个就是反相器我就是按照书上的弄但是不知道他要干嘛打印出来的结果感觉是一个字但是又不对想着是不是弄反了就将反相器去掉了。
先展示如果只用自带的器件来实现。
所需元器件
元件名称Proteus关键字51单片机AT89C514-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博客https://blog.csdn.net/weixin_46510976/article/details/127950291【Proteus】16乘16点阵滚动播放 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/138580722【精选】Proteus8.6中16x16LED点阵制作教程_16*16点阵_TiAmoLH的博客-CSDN博客https://blog.csdn.net/yz20200414/article/details/116958385proteus仿真51单片机驱动16x16点阵显示自己名字和符号_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV18G4y1b79A/?spm_id_from333.337.search-card.all.clickvd_source7c3bfbf39d037fe80c97234396acc524
总结
看了几天努力还是没有白费就一直按照书上面对结果也没有发现什么问题改了代码改原理图结果一模一样的反而是有问题的所以以后大家还是需要自己思考去完成。