51单片机学习笔记7 串转并操作方法

一、串转并操作简介

由于单片机的I/O资源有限,在进行一些外围设备通讯时,如LED点阵、数码管操作,需要大量的I/O资源,为了减少单片机的资源占用,可以使用串转并的操作,通过引入专用芯片,用较少的单片机I/O引脚,控制大量的外围I/O引脚设备。

在串转并操作中,串行数据首先经过一个串行转并行转换器,该转换器将串行数据拆分为多个并行数据。
这些并行数据同时传输到并行数据接收器,每个并行数据接收器负责接收并处理其中的一部分数据。
最后,这些处理后的并行数据再通过并行数据输出端口一起输出,形成并行数据流。

二、74HC595介绍

74HC595是一种串行输入/并行输出(SIPO)移位寄存器,常用于扩展微控制器的输出端口:

1.功能:

74HC595具有8位并行输出端口,可以同时控制8个输出设备,如LED、数码管等。

它具有串行输入端口,可以通过串行输入将数据加载到内部寄存器中。

74HC595还具有控制引脚,用于控制数据的加载和输出使能。

74HC595的并行输出为三态输出:高电平、低电平

2.引脚:

DS(串行数据输入):用于接收串行输入数据。

SH_CP(时钟输入):用于接收时钟脉冲,控制数据的移位。

ST_CP(存储时钟输入):用于接收存储时钟脉冲,控制数据的加载到寄存器中。

OE(输出使能):用于控制输出端口的使能状态。

Q7’(串行输出):输出从DS端输入的数据,用于级联多个74HC595。

Q0-Q7(并行输出):8位并行输出端口。

其中Q7’可以级联下一个74HC595,这样通过3个单片机的IO口,可以控制更多的外设IO。

3.工作原理:

74HC595的工作过程分为两个阶段:移位阶段和存储阶段。

移位阶段:在时钟信号的作用下,串行输入的数据从DS端依次移位到寄存器中。

存储阶段:当存储时钟信号触发时,寄存器中的数据被加载到并行输出端口,并同时输出到外部设备。

4.开发板原理图(1)8*8LED点阵:

通过P0端口控制列是否有效,设置P0=0,可以启用全部列。

通过DPa~DPh控制每一行是否有效,行的数值通过74HC595传过来。

(2)74HC595串转并:


传送一个数据的过程:

OE置低使能芯片;

SER传一个BIT数据;

给SR_CLK一个上升沿,将SER的数据移到QA;

重复第2步,更多数据移入寄存器,先移入的数据放入A,其它B、C、D…依次向后移动;

传完8个bit数据,给R_CLK一个上升沿,将数据推到DPn的并口输出。

三、代码示例1.LED滚动显示程序

本代码实验现象是:LED点阵从最下行向上,每次滚动显示一行。
显示到第一行后,改从最右列向左,每次滚动显示一列。

(1)led_matrix_
include"common_"//时钟输入引脚,用于控制数据的移位操作sbitSR_CLK=P3^6;//数据数据推到输出寄存器的引脚sbitR_CLK=P3^5;//串行数据输入sbitSER=P3^4;u8gc595_buf[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//低电平有效,开启列"common_"include"led_matrix_"//时钟输入引脚,用于控制数据的移位操作sbitSR_CLK=P3^6;//数据数据推到输出寄存器的引脚sbitR_CLK=P3^5;//串行数据输入sbitSER=P3^4;u8gled_column[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//低电平有效,开启列"common_"include""//数据0u8gled_row[8]={0x00,0x7c,0x82,0x82,0x82,0x7c,0x00,0x00};/***@brief主函数*/main(){//关闭所有ledled_all_off();led_matrix_init();while(1){hc595_show_char(gled_row);}}
发布于 2024-11-10
5
目录

    推荐阅读