51单片机教程:8*8 点阵显示字符、数字、简单汉字

您所在的位置:网站首页 led显示屏怎么上传图片 51单片机教程:8*8 点阵显示字符、数字、简单汉字

51单片机教程:8*8 点阵显示字符、数字、简单汉字

#51单片机教程:8*8 点阵显示字符、数字、简单汉字| 来源: 网络整理| 查看: 265

点阵显示实验

一、什么是点阵? 我们用之前的方法一个IO口只能控制一个led,如果需要用更少的IO口控制更多的led怎么办呢,于是就有了点阵。 8X8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮;如要将第一个点点亮,则1脚接高电平a脚接低电平,则第一个点就亮了;

二、点阵原理图 可以看到点阵是由led按照一定的排列组成 在这里插入图片描述 实物图: 在这里插入图片描述 我们可以打开protues,用led模仿一下点阵结构,了解一下原理 在这里插入图片描述 三、测试点阵 1、 proteus里点阵是MATRIX,选择8*8就行了 发现没有引脚标识,只能自己测试一下了、 先接一个电源试一下 (一定要自己测一下,proteus仿真布置的点阵每次方向都可能发生改变) 在这里插入图片描述 它不亮,说明下面的一排是正极,反接一下,可以看到第一个led已经亮了。 在这里插入图片描述 正极多接几个线试试,发现上面的是控制列,下面是控制行 在这里插入图片描述 画原理图,标记一下点阵的极性。方便写下代码 在这里插入图片描述 首先我们要知道点阵的显示原理,这个很重要 1、点阵是扫描显示,也就是同一时刻只有一列或者一行有led显示 2、视觉暂留效果,当扫描足够快的时候,人眼是看不到闪烁的 3、点阵可以横向扫描,也可以纵向扫描

图形显示: 比如要显示 : ‘F’ ,以横向扫描为例,从上到下显示

在这里插入图片描述 1、显示第一行

在这里插入图片描述 2、显示第二行

在这里插入图片描述 3、显示第三行

在这里插入图片描述 4、显示第4行

在这里插入图片描述 5、显示第五行 在这里插入图片描述 这样把8行显示完就可以显示整个图形。

四、取模软件 上面的 ‘F’,利用取模软件生成数组,对于复杂的图形显示就方便的多,这里我使用的lcd图形生成,百度就能下载到,也可以点这个下载链接 取模软件合集.rar,可以下载取模软件合集(4个常用取模软件),解决任何取模难题。 在这里插入图片描述 这里取模设置横向取模,字节倒序,根据不同的电路要做不同设置,不然可能出现图形镜像或者反白等现象 在这里插入图片描述 五、编写程序 1、显示字符

#include unsigned int wei[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //扫描8位 unsigned int duan[8] = {//用软件生成的 /*-- 调入了一幅图像宽度x高度=8x8:F --*/ 0x3E,0x02,0x02,0x3E,0x02,0x02,0x02,0x02, }; void delayms(unsigned int m) // 延时子程序 { int i,j; for(i=0; i for(i=0; i0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //扫描8位 unsigned int duan[8] = { /*-- 调入了一幅图像宽度x高度=8x8 : 1 --*/ 0x00,0x08,0x0C,0x08,0x08,0x08,0x08,0x1C, }; void delayms(unsigned int m) // 延时子程序 { int i,j; for(i=0; i for(i=0; i0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //扫描8位 unsigned int duan[8] = { /*-- 调入了一幅图像宽度x高度=8x8 : 大 --*/ 0x00,0x08,0x7F,0x08,0x14,0x22,0x41,0x00, }; void delayms(unsigned int m) // 延时子程序 { int i,j; for(i=0; i for(i=0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3