文章目录
一、预备知识
1.1 如何自己检测8×8点阵屏的引脚信息
1.2 常见8×8点阵屏的引脚信息
二、Proteus仿真以及原理讲解
2.1 仿真图示
2.2 原理讲解
2.3 源文件
2.4 注意事项
❤️ 三、C代码编写
3.1 取字模软件设置以及链接
3.2 C代码的编写以及解析
3.3效果
3.4获取仿真源文件
四、结尾
一、预备知识
首先,在proteus8.6中并没有已经集成好的16×16的点阵屏。因此我们需要利用已有的8×8点阵屏来实现
1.1 如何自己检测8×8点阵屏的引脚信息
调出一个8×8点阵,在点阵的管脚上接上VCC,另一端的管脚就接GND,运行仿真,看看点阵是不是能亮,亮了哪几个点,如果不亮就调换VCC和GND,这样测出点阵的行和列,共阴或共阳等引脚信息。
假如说在仿真的时候不想自己检测引脚信息,这里已经给出四种颜色的点阵屏的引脚信息以及图示
1.2 常见8×8点阵屏的引脚信息
对于红色的点阵屏说,在不旋转的情况下:
上面是列选,高电平有效;
下面是行选,低电平有效;
对于其他点阵屏说,在不旋转的情况下:
下面是列选,高电平有效;
上面是行选,低电平有效;
提示:以下是本篇文章正文内容,下面案例可供参考
二、Proteus仿真以及原理讲解
2.1 仿真图示
2.2 原理讲解
我并没有直接使用端口,是为了让看的人更加直观的理解原理;
对列选来说: 我将C0-C15这16根线逐个引至下面的两个8×8矩阵,是为了列选的端口接收到的数据是一样的,使其从逻辑上和8×8矩阵的原理一样;
当然,如果说读者对于我的这样子的做法觉得不太满意,我也自己制作了一个16*16点阵屏的元器件,直接下载就能用.
2.3 源文件
仿真源文件获取方法已经放在文末,需要自取 有 Proteus8.6 以及 Proteus7.8 两个版本 相应版本的下载链接已经放到文末;2.4 注意事项
本原理图中使用的是红色点阵屏,那么相应的要使用74HC07驱动器,不能用74LS系列,否则后果不可名状
❤️ 三、C代码编写
3.1 取字模软件设置以及链接
下载途径:
链 接:跳转百度网盘下载
提取码:TTFF
3.2 C代码的编写以及解析
代码如下:
#include
#include
#define uint unsigned int
#define uchar unsigned char
#define out0 P0
#define out1 P1
#define out2 P2
//这里的字模可以用上面的取模软件获得
uchar code string[]=
{
//物
0x10,0x00,0x10,0x02,0x14,0x02,0x7E,0x3F,
0x91,0x50,0x10,0x58,0x7F,0x6C,0x10,0x76,
0x10,0x5B,0x10,0x4C,0x10,0x46,0x10,0x70,
0x10,0x60,0x10,0x00,0x00,0x00,0x00,0x00,
//联
0x00,0x00,0x00,0x00,0x7E,0x21,0x24,0x12,
0x3C,0x0C,0xA4,0x7F,0x3C,0x0C,0x24,0x0C,
0xA4,0x7F,0x7F,0x0C,0x20,0x1E,0x20,0x33,
0xA0,0x61,0x00,0x00,0x00,0x00,0x00,0x00,
//网
0x00,0x00,0x00,0x00,0xFE,0xFF,0x01,0x80,
0x01,0x80,0x45,0xA2,0x29,0x94,0x11,0x88,
0x29,0x94,0x45,0xA2,0x01,0x80,0x01,0xC0,
0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
//工
0xFC,0x3F,0x00,0x01,0x00,0x01,0x00,0x01,
0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,
0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,
0x00,0x01,0x00,0x01,0xFE,0x7F,0x00,0x00,
//程
0x00,0x00,0x00,0x00,0x30,0x1F,0x0C,0x11,
0x0B,0x11,0x08,0x1F,0x08,0x00,0x3F,0x00,
0x1C,0x1F,0x1A,0x04,0x29,0x1F,0x48,0x04,
0x08,0x04,0x88,0x3F,0x08,0x00,0x00,0x00
};
//延时函数
void delay(uint j)
{
uchar i=250;
for(;j>0;j--)
{
while(--i);
i=100;
}
}
//主函数
void main()
{
uchar i, j ,n;
while(1)
{
for(j=0;j<5;j++)
//这里控制输出几个字
{
for(n=0;n<40;n++)
{
for(i=0;i<16;i++)
//逐行来扫描,一共扫描十六行
{
out1=i%16;
//利用4-16译码器来控制显示哪一行
out0=string[i*2+j*32];
out2=string[i*2+1+j*32];
//该数组中,前后两个十六进制数正好为16位
//所以,out0不需加一,out2需要加一
delay(4);
}
}
}
}
}
3.3 效果
3.4 获取仿真源文件
点击跳转下载地址:16×16点阵屏利用8×8点阵实现内有配套源码
结尾
若有错误,欢迎私信指出
Proteus 8.6下载链接