2024-09-01
售卖作品
00

目录

首先找一个差不多的设计
然后制作点阵显示器显示设计
硬件配置:
全局变量:
字符数组:
函数:
主循环:
按钮功能:
注意:

课程设计题二十二:点阵显示器显示设计

(1)上电后滚动显示学校名称。

(2)按键1按下,滚动显示班级。

(3)按键2按下,滚动显示姓名及学号。

(4)一键开关。

首先找一个差不多的设计

这个设计网上找的,是一个16*16点阵(4个拼凑的)显示一个设计。

这个设计可以向左显示广告语、向右显示广告语、加速、减速、开始、暂停。

在这里插入图片描述

修改程序到自己可以使用:

(1)需要自己修改程序里变量zi = 15,有多少个字就写多少。

(2)汉字取模应该是下图这样的设置。

(3)根据取模修改程序里unsigned char code tab[]数组。最开始的32个字节不要动,最后面的32个字节也不要动。

在这里插入图片描述

c
#include <reg51.h> /* 头文件 */ sbit shcp = P1 ^ 2; /* 数据输入时钟线 595的11脚 */ sbit stcp = P1 ^ 1; /* 输出存储器锁存时钟线 595的12脚 */ sbit ds = P1 ^ 0; /* 数据线 595的14脚 */ sbit s1 = P3 ^ 1; /*按下暂停再暂按继续 */ sbit s2 = P3 ^ 2; /*按下方向取反 */ sbit s3 = P3 ^ 3; /*按下加速 */ sbit s4 = P3 ^ 4; /*按下减速 */ unsigned char fx; /* 方向切换 */ unsigned char alt; /* 数据移动定时时间 */ unsigned int net; /* 控制显示的字符 */ unsigned int net_2; /* 控制显示的字符 */ unsigned char speed = 5; /* 数据移动时间变量 */ unsigned char zi = 2; //----------------------这里是需要自己根据字数个数修改的---------------------- unsigned int zong; /* (所有的字数+1)*32 字数指的是汉字,字母、数字两个算一个数字 */ unsigned char code tab[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //前后32个0x00不要动 0x00,0x04,0x04,0x06,0x04,0x04,0x04,0x08,0x04,0x08,0xFF,0xFF,0x00,0x00,0x00,0x00, 0x00,0x00,0xFF,0xFC,0x02,0x02,0x04,0x02,0x08,0x02,0x10,0x02,0x00,0x1E,0x00,0x00,/*"北",0*/ 0x20,0x00,0x20,0x02,0x20,0x04,0x27,0xD8,0x24,0x40,0x24,0x42,0xA4,0x41,0x64,0x7E, 0x24,0x40,0x24,0x40,0x24,0x40,0x27,0xD0,0x20,0x08,0x20,0x06,0x20,0x00,0x00,0x00,/*"京",1*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,//前后32个0x00不要动 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };

动图效果:

在这里插入图片描述

然后制作点阵显示器显示设计

需要四个按键

按键1按下后滚动显示数组1的内容

按键2按下后滚动显示数组2的内容

按键3按下后滚动显示数组3的内容

按键4就相当于这个设计里的开始暂停按钮。开启滚动和关闭滚动。

对比之前那个设计。删除其余3个按键的处理,写点我们的处理即可。

在这里插入图片描述

代码和仿真:

bash
http://dt1.8tupian.net/2/28880a67b8888.pg3

这个程序是为了使用移位寄存器(例如74HC595)控制LED显示的滚动LED显示设计的。以下是主要组件和功能的详细说明:

硬件配置:

  • 引脚:

    • shcp(移位寄存器时钟引脚):连接到P1^2(端口1的第2脚)。

    • stcp(存储寄存器时钟引脚):连接到P1^1(端口1的第1脚)。

    • ds(数据引脚):连接到P1^0(端口1的第0脚)。

    • s1s2s3s4:用于控制的按钮,分别连接到P3^1、P3^2、P3^3、P3^4。

全局变量:

  • fx:滚动方向标志。

  • alt:用于控制滚动速度的计时变量。

  • netnet_2:用于控制显示的字符。

  • speed:滚动速度变量。

  • zong:要显示的字符总数。

字符数组:

  • 三个字符数组(tab1tab2tab3)存储不同字符的十六进制代码。

  • xianshinayigeshuzu:用于选择要显示的字符数组。

  • zi:用于选择起始字符。

函数:

  • delay:延时函数。

  • writedata:将数据写入用于显示的移位寄存器。

  • mgetmap:映射用于显示字符的索引。

主循环:

  • 程序不断检查按钮按下(s1s2s3s4)并根据按下的按钮执行操作。

  • 使用timer0中断控制字符的滚动。根据按钮按下调整滚动方向和速度。

按钮功能:

  • 按下s1暂停/恢复滚动。

  • 按下s2更改要显示的字符集。

  • 按下s3增加滚动速度。

  • 按下s4减小滚动速度。

注意:

  • 该程序使用定时器0(timer0中断)进行时间控制。

  • 主循环不断检查按钮并根据按钮更新显示。

这段代码允许通过不同字符集进行滚动,更改方向,调整滚动速度,并暂停/恢复显示。可以根据具体需求进行调整和增强。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!