【Proteus仿真软件学习之路】序列之3 高富帅初露脸—LED显示屏仿真
1.如何创建仿真界面本节我们主要介绍单片机仿真软件Proteus,主要是从下面3个方面进行讲解:
2.软件界面编写
3.联调——高富帅亮相
一、如何创建仿真界面
有了前面两节的基础,仿真界面就不是那么难了,主要是看你要实现什么功能,然后就选择器件即可!
我们需要LED点阵模块,MCU,74HC595和74HC154,这几个器件proteus里面都有。
file:///G:TempksohtmlwpsAFE0.tmp.jpgfile:///G:TempksohtmlwpsAFE1.tmp.jpg
LED点阵模块【绿色】 74HC154 模块
file:///G:TempksohtmlwpsAFF2.tmp.jpgfile:///G:TempksohtmlwpsAFF3.tmp.jpg
单片机模块 74HC595模块
有了这四个模块就可以开始干活了,只要按照自己想要的硬件方式进行连接即可。下面看一个LED点阵模块。
file:///G:TempksohtmlwpsB003.tmp.jpg
只要定义好管脚就可以了,这里就不细致讲解,稍后附件会有仿真具体连接。下面是搭建的整个仿真的界面。
file:///G:TempksohtmlwpsB004.tmp.jpg
二、软件界面编写
此处软件界面编写包括两部分:1.代码部分编写;2.取字模部分
1.代码部分编写
主函数部分主要是扫描方式,代码如下,具体的在附件里面。
/************主函数***************/
void main()
{
uchar i,j,k;//i:每个字的显示循环;j每个字的显示码除以2;k每列刷新次数
uint b=0;//显示偏移控制,char类型最多只能显示14个汉字+一个空白位字符
uchar a;//控制移动间隔时间
SCON = 0x00;
while(1)
{
j=0;
if(a>1)//移动间隔时间;取值0--255
{
a=0;
b+=2;
if(b>=352)//显示到最后一个字,回头显示,判断值=字数*32
{
b=0;
}
}
for(i=0;i<16;i++)
{
P1=i;
for(k=0;k<1;k++)
{
STTP = 0;
out_rxd(&hanzi[3][j+b+1]);
out_rxd(&hanzi[3][j+b]);
out_rxd(&hanzi[2][j+b+1]);
out_rxd(&hanzi[2][j+b]);
out_rxd(&hanzi[1][j+b+1]);
out_rxd(&hanzi[1][j+b]);
out_rxd(&hanzi[0][j+b+1]);
out_rxd(&hanzi[0][j+b]);
STTP = 1;
delay(15);
}
j=j+2;
}
a++;
}
}
2.取字模
按照下面的设置取字模既可以实现自己想要显示的字体。
file:///G:TempksohtmlwpsB015.tmp.jpg
三、联调&mdash;&mdash;高富帅亮相
这个是以前自己设计的,双色的,单色是16x64。
file:///G:TempksohtmlwpsB026.tmp.jpg
file:///G:TempksohtmlwpsB027.tmp.jpg
|