74HC595的点阵屏种类原理硬件电路电路详解

他们给出的仅有51单片机代码,在这里我会用STM32F103ZET6驱动它,工程代码由STM32CubeMX生成,在MDK_ARM(Keil5)上使用HAL库快速开发。编译,无错误,连接屏幕与单开发板,下载代码到开发板,上电。

上一篇文章介绍了常见的屏幕类型和原理硬件电路。 在这篇文章中,我们将深入了解点阵屏。 我将尽可能详细地介绍它,并逐步向您展示从创建项目到编写代码的过程。

74HC595的点阵屏种类原理硬件电路电路详解

我使用的点阵屏正是上一篇文章中出现的。 它由四块0788BS 8*8点阵屏组成,由四块74HC595芯片级联驱动。 除电源输入(VCC、GND)外,只需要三个单片机IO口即可驱动。 我的屏幕是在tb的七旭电子卖的。 我展示的点阵屏是我自己做的。 电路布局和芯片布局不同,但原理是一样的。 他们只提供51微控制器代码。 这里我将使用STM32F103ZET6来驱动它。 工程代码由STM32CubeMX生成,并使用MDK_ARM(Keil5)上的HAL库快速开发。

74HC595的使用说明:

我们先来看看如何点亮屏幕:

首先我们要了解74HC595是一款什么样的芯片:

74HC595的点阵屏种类原理硬件电路电路详解

74HC595是串行输入、并行输出锁存器。

引脚14:DS(SER)SI(),串行数据输入引脚

引脚13:OE,输出使能控制引脚。 它只有在电量低时才会输出,因此将其连接到GND。

引脚12:RCK,存储寄存器时钟输入引脚。 在上升沿,数据从移位寄存器传输到存储寄存器。

引脚11:SCK,移位寄存器时钟引脚。 在上升沿,移位寄存器中的位数据整体向后移动并接受新的位(从DS输入)。

引脚10:MR,低电平时,清除移位寄存器中已有的位数据,一般不用,接高电平即可。

引脚 9:串行数据导出引脚。 当移位寄存器中的数据超过8位时,现有的位就会被“挤掉”,也就是出去的地方。 用于级联595。

QA~QH:8位并行输出引脚

介绍引脚不是很有用。 有兴趣的朋友,网上有很多关于这款芯片的介绍。 这里重点关注引脚9、11、12、QA~QH。

这里我们向74HC595串行输入一个8位二进制数0000 0001。 这个8位二进制数是IO口上的高低电平转换,也是用来控制点阵屏上各个LED灯的状态电平数据。 595芯片为串行输入,接收输入数据的引脚为引脚14(DS),接收到的数据由QA~QH输出。 引脚11 SCK(SH)控制移位寄存器,在上升沿(拉高)有效。 其工作过程可以理解为将子弹装入弹匣。 当单片机IO输出0000 0001时,首先向595芯片输入数据0,SH上升(拉高),595中的(移位)寄存器放入这个数据,它占据QA的位置,SH拉低(不拉高)如何可以再次进入上升沿),当第二位数据0放入寄存器时,第一位数据从原来的QA位置转移到QB,新传入的第二位数据占据QA位置。 当最后一位数据输入时,QA~QH 对应的是 1000 0000。在这个过程中,由于数据在移位寄存器的 QA~QH 中,所以 QA~QH 还没有输出。 这里用QA~QH来表示寄存器空间中的位置,这样大家更容易理解。

此时,所有8位二进制数(一个字节)已经输入完毕,我们需要并行输出。 这里我们需要用到595芯片的第12脚ST(RCK)存储寄存器时钟输入引脚。 上升沿有效,被拉高。 ,然后移位寄存器数据传送到存储寄存器,然后从QA~QH引脚并行输出。

这里,595芯片可以仅使用一个数据引脚输入来输出8位控制。 这样就大大节省了单片机的IO资源。

现在回到点阵屏,四块0788B点阵屏是8*8–>16*16。 理论上来说,控制一块点阵屏需要四颗595芯片,需要占用单片机的4个IO口来输入数据,而我这里的屏幕只有一个引脚用于输入数据。 是这个原因吗? 这里讲一下74H595的级联功能。 这就是我们要讲的595芯片的9脚的功能。

将上一个595芯片的9针连接到下一个595芯片的14针DS。 想想之前我们只放了8位数据,移位寄存器就满了。 当我们放入新数据时,原来在寄存器 QH 中的数据将移出到引脚 9 输出。 相当于向下一个芯片输入数据。

首先点亮屏幕:

了解了74HC595的原理之后,我们就可以编写代码了。

所需的微控制器IO资源:ST、SH、DS。 电源连接到5V和GND。

打开 CubeMX:

74HC595的点阵屏种类原理硬件电路电路详解

通过选择 MCU 来启动我的项目,因此单击中间深蓝色部分的第一个浅蓝色框:访问 MCU 选择器。

74HC595的点阵屏种类原理硬件电路电路详解

选择适合您的芯片型号。 这里我选择STM32F103ZE(T6)。

74HC595的点阵屏种类原理硬件电路电路详解

我的包是LQFP144,选择两台机器并创建一个新的项目模板。

在 SYS 处调试并选择串行线。

74HC595的点阵屏种类原理硬件电路电路详解

RCC 配置和时钟树配置可以根据您的选择进行更改。 新手可以先选择这个。

74HC595的点阵屏种类原理硬件电路电路详解

74HC595的点阵屏种类原理硬件电路电路详解

只需在其中输入 72 并按 Enter 键即可。

74HC595的点阵屏种类原理硬件电路电路详解

配置定时器,

74HC595的点阵屏种类原理硬件电路电路详解

打开定时器中断。

74HC595的点阵屏种类原理硬件电路电路详解

选择GPIO:

74HC595的点阵屏种类原理硬件电路电路详解

根据个人实际情况配置项目工程文件等:

74HC595的点阵屏种类原理硬件电路电路详解

74HC595的点阵屏种类原理硬件电路电路详解

最后点击GENERATE CODE生成项目文件,点击OpenProject打开项目。

生成的项目首先编译整个项目。 编译成功后,我们开始编写代码。

main函数内的宏定义:

要显示的字符:

几个定义:

HC595驱动函数和定时器中断回调函数:

int main(void) 主函数:

编译,没有错误,但是这里会出现警告,因为HAL_GPIO_WritePin(ST_GPIO_Port,ST_Pin,0);的写入问题; 该类函数的第三个参数可以替换为GPIO_PIN_RESET或GPIO_PIN_SET。

连接开发板和屏,下载代码到开发板,上电。 emmmm效果是这样的:

74HC595的点阵屏种类原理硬件电路电路详解

如果多个屏幕连接在一起,使用此代码可以在每个屏幕上显示相同的内容:

74HC595的点阵屏种类原理硬件电路电路详解

四个屏幕连在一起,滚动显示内容:

屏幕的PCB上有一块丝印。 将上一屏的 OUT 与下一屏的 IN 同等连接。 奇旭电子建议使用跳线帽,但是连接的时候你会发现会不平整(跳线帽就是原因),我这里的个人经验是使用2*5P 2.54母座,将母座的针脚短接成对使用,插入后会更平整。

CubeMX配置保持不变,生成一个新项目,或者使用原项目代码稍加改动。 这里我是在原来的代码基础上稍作改动,非常简单。

宏定义不变,修改字体模型(部分注释掉的是上面亮屏的,可以参考对比):

595驱动函数和中断回调函数,修改为:

int main(void) 主函数:

编译无误,将屏连接到单片开发板,下载代码到开发板,上电。 看:

74HC595的点阵屏种类原理硬件电路电路详解

【4个16*16点阵屏滚动显示_74HC595级联效果-Bilibili】

补充(1)–字符提取:

打开字体提取软件,选择字符模式作为模式。 点击选项进行配置,如图。

74HC595的点阵屏种类原理硬件电路电路详解

74HC595的点阵屏种类原理硬件电路电路详解

选择你需要的字体,在中间输入你想要生成字体的汉字,点击生成字体。 生成的字体如下。 您可以直接复制并访问它,也可以保存字体并生成文本文件进行存储。

74HC595的点阵屏种类原理硬件电路电路详解

补充(2)–关于此屏幕:

关于这款屏幕及其详细信息,朋友们可以前往奇旭电子的tb获取。 这可以让我更好地理解我编写的代码。 这不是它的广告。 我不认识他们,哈哈哈

74HC595的点阵屏种类原理硬件电路电路详解

单片机

你真的懂得怎么写总结吗?(通用6篇)

2024-4-29 22:02:43

单片机

中文编程语言,你有了解过吗?

2024-4-29 23:02:57

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索