RT-Thread与cubemx|74HC595驱动数码管详解
发布网友
发布时间:2024-09-26 23:43
我来回答
共1个回答
热心网友
时间:2024-10-04 08:54
74HC595是一款8位串行输入、并行输出的位移缓存器,拥有三态输出功能,即高电平、低电平和高阻抗三种输出状态。其内部包含一个8位位移缓存器和一个8位并行输出缓存器。在SCK上升沿时,串行数据由SDL输入到位移缓存器中,由Q7'输出;在LCK上升沿时,数据存入并行输出缓存器。并行输出端的输出值等于并行输出缓存器存储的值,当OE控制信号为低时激活。74HC595具有100MHz的移位频率,具有三态输出功能,输出寄存器可以直接清除。
74HC595的输出具有三态输出功能,可以实现高电平、低电平和高阻抗三种输出状态。在单片机时钟脉冲的控制下,数据可以逐位输入到移位寄存器中,最多可以输入8次以积攒一个字节的数据。例如,将二进制数据0111 1111输入到移位寄存器中,数据输入过程可以分为多个阶段,通过单片机时钟脉冲信号驱动,数据在每一次上升沿移动,腾出位置为接收下一个数据做准备。
数据接收完成后,需要通过时钟脉冲驱动将移位寄存器的数据转移到存储寄存器中。存储寄存器与8个输出引脚直接连接,接收并保持移位寄存器的数据。存储寄存器的数据不会随着一次输出而消失,只要595不断电,没有新的数据输入,数据将一直保持不变。当有新的数据输入时,存储寄存器中的数据将被覆盖更新。
代码实现方面,首先创建基于falling-star board的RT_Thread工程,并配置所需的组件。在cubemx配置中,选择打开并配置资源和操作,重点关注需要控制的引脚,如DATA、SCLK、RCLK。配置后,代码会自动更新,完成串口和GPIO的配置。
为了实现74HC595的驱动,需要编写驱动代码,首先在工程中创建一个文件夹存放HC595的驱动代码。在代码中对用到的IO进行简单的宏定义,并进行GPIO初始化,便于更改IO。接着进行数码管编码,编写单字节数据写入函数和数码管显示函数。最后,通过演示展示74HC595的驱动效果。
热心网友
时间:2024-10-04 08:55
74HC595是一款8位串行输入、并行输出的位移缓存器,拥有三态输出功能,即高电平、低电平和高阻抗三种输出状态。其内部包含一个8位位移缓存器和一个8位并行输出缓存器。在SCK上升沿时,串行数据由SDL输入到位移缓存器中,由Q7'输出;在LCK上升沿时,数据存入并行输出缓存器。并行输出端的输出值等于并行输出缓存器存储的值,当OE控制信号为低时激活。74HC595具有100MHz的移位频率,具有三态输出功能,输出寄存器可以直接清除。
74HC595的输出具有三态输出功能,可以实现高电平、低电平和高阻抗三种输出状态。在单片机时钟脉冲的控制下,数据可以逐位输入到移位寄存器中,最多可以输入8次以积攒一个字节的数据。例如,将二进制数据0111 1111输入到移位寄存器中,数据输入过程可以分为多个阶段,通过单片机时钟脉冲信号驱动,数据在每一次上升沿移动,腾出位置为接收下一个数据做准备。
数据接收完成后,需要通过时钟脉冲驱动将移位寄存器的数据转移到存储寄存器中。存储寄存器与8个输出引脚直接连接,接收并保持移位寄存器的数据。存储寄存器的数据不会随着一次输出而消失,只要595不断电,没有新的数据输入,数据将一直保持不变。当有新的数据输入时,存储寄存器中的数据将被覆盖更新。
代码实现方面,首先创建基于falling-star board的RT_Thread工程,并配置所需的组件。在cubemx配置中,选择打开并配置资源和操作,重点关注需要控制的引脚,如DATA、SCLK、RCLK。配置后,代码会自动更新,完成串口和GPIO的配置。
为了实现74HC595的驱动,需要编写驱动代码,首先在工程中创建一个文件夹存放HC595的驱动代码。在代码中对用到的IO进行简单的宏定义,并进行GPIO初始化,便于更改IO。接着进行数码管编码,编写单字节数据写入函数和数码管显示函数。最后,通过演示展示74HC595的驱动效果。