基于AT89C51 单片机控制的LED 显示屏的设计
2020-06-22苏州健雄职业技术学院赵素玲
苏州健雄职业技术学院 赵素玲
1 控制要求
使用AT89C51 单片机控制一个8×8LED 点阵显示屏,循环滚动显示不同的汉字。不同的汉字有不同的代码,本文以作者自己所在的城市“太”“仓”“市”三个字为例来进行循环滚动演示,当然也可以显示其他的汉字。具体要求是:
1.1 以AT89C51 芯片为核心,加上外围辅助电路,设计出仿真电路图;
1.2 根据要求用Keil 软件编写出C 语言程序代码;
1.3 用一个8×8LED 点阵显示屏,“太”“仓”“市”三个字循环滚动显示。
2 系统硬件设计
2.1 仿真电路图设计
AT89C51 芯片由电源、地、晶振和复位电路组成单片机最小系统。X1(晶体)与两个电容C1、C2(30PF)组成了晶振。1K 电阻R1、200Ω 电阻R2、22UF 电容和一个按钮构成复位电路。由P2口控制8×8LED 显示屏的列,P3 口控制8×8LED 显示屏的行,电路如下图所示。
2.2 元器件清单
系统仿真元器件清单列表如表2-1 所示:
表2- 1 元器件清单列表
3 系统软件设计
系统C 语言程序代码:
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar code tai[]={0xf7,0xf7,0x00,0xe7,0xdb,0xad,0x7e,0xff};//太
w++;}}}
在程序设计中,先对用到的变量进行初始化设置,保证程序可以有效运行。程序中用到一个延时子程序,“太”“仓”“市”三个字的字形码以一维数组的形式给出,不同的字对应的字形码不同,这部分程序需要在熟悉8×8LED 显示屏的工作原理,以及十六进制计数的基础上写出。
4 Protuse 仿真
程序仿真结果
5 结论
对于这个系统的程序代码,所设计的是三个字的循环滚动显示,利用动态显示的原理,其实这样的系统很容易扩展到任意多字的循环显示。系统中每个字的显示时间是利用变量u、v、w三个变量的值大小来控制的,变量的值越大,字显示的时间越长。由于Protuse 仿真软件中的LED 显示屏最大只有8×8 的,分辨率有限,若想显示笔画比较多的汉字,会有一定的难度,所以选了三个笔画相对比较少的汉字。若想一次显示更多、笔画更多的字,就要选择分辨率更高的显示屏。