单片机点阵屏滚动方法
1个回答
关注
展开全部
咨询记录 · 回答于2021-11-03
单片机点阵屏滚动方法
显示#说明:采用的芯片是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;\x09//常规无符号字符串和整数定义\x09\x09 typedef unsigned char u8;//将595的三个内置接口赋给新的名字sbit SRCLK = P3 ^ 6;\x09// 数据输入口(串)\x09sbit RCLK = P3 ^ 5;\x09// 移位寄存器时钟\x09sbit SER = P3 ^ 4;\x09// 存储寄存器时钟sbit stopscreen = P2^7;\x09 //暂停与开始开关定义引脚/*定义一个数组存储所有需要平滑滚动的文字的16进制码,由取模软件自动生成,每个字由32个16进制数字组合而成,现在数组中存储的是“计算机测控技术”*/u8 code word[] = {/*-- 文字: 计 --*/\x090x00, 0x02, 0x04, 0x02, 0x08, 0x02, 0x08, 0x02, 0x00,
已赞过
评论
收起
你对这个回答的评价是?