使用51单片机实现点阵汉字平滑滚动显示
#说明:采用的芯片是89C51,LED点阵屏的规格是16*16,同时使用了两个74HC595芯片,字模生成软件在文末有网盘链接。
1 连接原理图
整体的电路连接如上图所示,单片机只需要使用三个IO接口,就可以实现对点阵屏的控制。当然对于不同的单片机而言连线是不同的,但是使用74HC595扩展的原理是相同的,在这里不再对于其IO扩展原理进行探究。
2 实现的功能
在51单片机以及C语言的环境下,实现LED点阵屏幕上汉字的平滑滚动,就像是公交车上显示“前方到站第二医院,下车乘客请提前做好准备”一样。我们最后显示的是“计算机测控技术”几个字,当然显示的汉字内容是自定义的。同时,设置一个按钮能够让平滑滚动的汉字可以随时停下来。
这里有两点细节需要注意一下:
1、汉字循环到最后一个时,要继续滚动出第一个汉字,而不是跳变到开头重新循环。
2、汉字滚动的时候按下按钮停止,滚动停止的时候按下按钮继续滚动,使用同一个按钮。
3 C语言程序实现
3.1 定义变量
在这里我们定义芯片P3.4、P3.5、P3.6 三个接口为输出IO接口,P2.7为接开关控制的IO接口。同时定义一个大数组储存所有汉字对应的取模16进制码,一个小数组用于表示现在屏幕上所需显示的汉字。
#include
#include
typedef unsigned int u16;//常规无符号字符串和整数定义
typedef unsigned char u8;
//将595的三个内置接口赋给新的名字
sbit SRCLK = P3 ^ 6;// 数据