使用74HC595实现IO口的扩展.docx
- 文档编号:10059995
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:10
- 大小:347.53KB
使用74HC595实现IO口的扩展.docx
《使用74HC595实现IO口的扩展.docx》由会员分享,可在线阅读,更多相关《使用74HC595实现IO口的扩展.docx(10页珍藏版)》请在冰豆网上搜索。
使用74HC595实现IO口的扩展
使用74HC595实现IO口的扩展
使用74HC595实现I/O口的扩展
一、实验目的
1.了解74HC595(串入并出)基本原理和使用
2.了解数码管的基本原理和驱动方式
3.学会使用74HC595来驱动静态数码管
二、实验器材
C51单片机开发板(含74HC595芯片,静态数码管)1块
8PIN排线1根
数据线1根
三、实验原理
1.数码管
数码管是一种半导体发光器件,其基本单元是发光二极管。
数码管按段数分为七段数码管和八段数码管(还有一种“米”字型的数码管,其段数更多),八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示),其基本原理是:
将所有LED的一端(正极、负极均可)连在一起作为一个公共端,然后通过分别控制这组LED的另一个端口来使部分LED点亮,从而达到显示一定字形的目的。
(1)数码管的分类
按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。
共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。
共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。
当某一字段的阴极为高电平时,相应字段就不亮。
。
共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。
共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。
当某一字段的阳极为低电平时,相应字段就不亮。
我们在实际使用中一定要搞清楚数码管是共阴极的还是共阳极的。
(2)数码管段、位引脚的确定(以4位8段数码管为例)
数码管引脚测量分三步:
极性判断(共阳极还是共阴极)、公共端判断(位选端口)、段码端判断(段选端口)。
首先要确定数码管是共阴极还是共阳极的:
找一个3到5V的直流电源,准备几个1K或者几百欧姆的电阻。
将电源的正极串接一个电阻后连在数码管的任意一个脚上,然后将电源的负极逐个接到数码管的其余引脚上,观察数码管的某一段是否会点亮,如果全部引脚试过都没有亮的,那么将电源正极(串电阻)换一个引脚再试,直到有一个LED发光,这时固定电源负极不动,电源正极(串电阻)逐个接到数码管的其余引脚上,如果有8段LED都亮,说明该数码管是共阴极的。
相反,按住电源正极不动,电源负极逐个接到数码管的其余引脚上,如果有8个数码管全亮,那么该数码管是共阳极的。
确定了数码管的极性后,下面该确定数码管的位选端口了。
仍旧按照第一步的测量方法,如果测量过程中发现当一个引脚固定后,逐个连接到其余端口上的时候,会有一个数码管的所有段都被点亮了,那么这个固定端就是一个位选端。
依照这种方法依次找出其余的3个位选端即可。
最后确定段选端口,根据数码管的极性将电源正极(串电阻)或负极固定在一个位选端上,然后将电源的另一端逐个连接数码管的位选端口以外的引脚,当接到一个引脚上数码管的哪一段点亮,就能够确定该引脚对应那一段了,依次量出全部8段分别对应那个引脚。
经过上面的步骤后,我们就完成了数码管引脚的确定,其实在实际使用过程中,操作熟练的话是不必经过这么繁琐的步骤来确定数码管的引脚的。
(3)数码管的驱动方式:
数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
①静态显示驱动:
静态驱动也称直流驱动。
静态驱动是指将公共端接到电源正极或者电源地上,每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:
),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
②动态显示驱动:
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
在实际使用中,通常都是采用动态显示驱动的方法。
在本实例中我们采用的静态驱动的方法。
2.74HC595功能描述
在本实例中我们使用了一片74HC595来驱动8位数码管的位选端口,下面就简单介绍一下74HC595的功能。
74HC595是带锁存功能的三态输出的8位串行输入/并行输出的移位寄存器。
由于它自带锁存器,所以其数据在移位寄存器中的移位与锁存器的输出是独立的,当数据移位时,可以保持锁存器输出的数据不改变,等所有8位数据全部串入完成移位操作后,一次性的将数据打入锁存器中,从而实现了并行输出的同步改变。
另外该芯片可以进行级联,能够实现8Xn个并口扩展。
下图是74HC595的逻辑功能表
输入
输出
功能
SHcp
STcp
OE
MR
Ds
Q7’
Qn
×
×
L
↓
×
L
NC
MR为低电平时仅仅影响移位寄存器
×
↑
L
L
×
L
L
空移位寄存器到输出移位寄存器
×
×
H
L
×
L
Z
清空移位寄存器,并行输出为高阻态
↑
×
L
H
H
Q6’
NC
逻辑高电平移入移位寄存器状态0,包含所有的移位寄存器状态移入,例如,以前的状态6(内部Q6’)出现在串行输出位
×
↑
L
H
×
NC
Qn’
移位寄存器的内容到达保持寄存器并从并口输出
↑
↑
L
H
×
Q6’
Qn’
移位寄存器内容移入,先前的移位寄存器的内容到达保持寄存器并输出
74HC595管脚描述:
QA--QH:
八位并行输出端,可以直接控制数码管的8个段。
QH':
级联输出端。
我将它接下一个595的SI端。
SI:
串行数据输入端。
74595的控制端说明:
/SCLR(10脚):
复位引脚,低电平时将移位寄存器的数据清零。
一般情况下接Vcc。
SCK(11脚):
时钟引脚,上升沿时数据寄存器的数据移位。
QA-->QB-->QC-->...-->QH;下降沿移位寄存器数据不变。
(脉冲宽度:
5V时,大于几十纳秒就行了。
RCK(12脚):
锁存引脚,上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。
通常将RCK置为低电平,当移位结束后,在RCK端产生一个正脉冲(5V时,大于几十纳秒就行了),更新显示数据。
/G(13脚):
使能引脚。
高电平时禁止输出(高阻态)。
如果单片机的引脚不紧张,用一个引脚控制它,可以方便地产生闪烁和熄灭效果。
比通过数据端移位控制要省时省力,通常可以直接接地GND。
A(14脚):
数据串入引脚。
74595的主要优点是具有数据存储寄存器,在移位的过程中,输出端的数据可以保持不变。
这在串行速度慢的场合很有用处,数码管没有闪烁感。
74HC595还具有SPI功能,但在本例中我们先不使用,我们直接用单片机的普通I/O口模拟74HC595的时序来实现数据的串入并出功能。
从74HC595的逻辑功能表中我们可以分析出74HC595的工作过程:
数据的串入和内部数据移位的操作由SCLK控制。
SCLK的上升沿将移位寄存器中的数据由Qa向Qh依次移动一位,同时将数据线上的电平打入Qa,而最高位的数据Qh从SQh端移出。
如果把SQh与另一片74HC595的数据端连接,那么SQh的串行输出就是第2片74HC595的串行数据输入,从而实现级联。
74HC595在移位的过程中并不影响其锁存器的输出,移位寄存器中的数据是通过锁存端的上升沿打入到锁存器中的。
正是由于74HC595具备了锁存功能,因而可以保证并行输出数据的稳定和数据同步改变的功能。
经过以上分析我们可以得出74HC595控制数据输入输出的实现步骤:
1、在SCLK上升沿期间将数据端串入的数据经过发送到移位寄存器中,如果需要发送8位的数据,则需要8个SCLK上升沿才能将8位数据全部输入到移位寄存器中。
2、使锁存端产生一个上升沿,从而将移位寄存器中的数据打入到锁存器中并输出。
本实例中8位数码管显示电路的工作原理:
8位数码管的8个段选端口全部并联接到单片机的PB口上。
74HC595控制8位数码管的8个位选端,当某位选通后,点亮该位的数码管,使它显示相应的数字。
3.实验原理图(Protues仿真图)
四、实验操作步骤
1.JP595用跳线冒短接,JP1302跳线帽断接或取下,JP3和JP2用8PIN排线连接。
2.用数据线将单片机开发板与PC机连接好。
3.打开Keil软件,新建一个工程(记住工程所保存的位置),将所给HC595_LED.c(或HC595_LED.asm)文件添加到这个工程中,然后进行编译,编译完成后,打开工程所保存的文件夹,可以看到此工程中生成了一个HC595_LED.hex的文件。
4.打开烧录软件,单击窗口中的“打开文件”,选中上述生成的HC595_LED.hex的文件,然后打开单片机开发板的电源,再单击烧录软件窗口中的“下载程序”,当窗口中出现“文件下载完毕,数据下载成功”字样后,程序下载成功。
5.程序下载成功后,观察单片机开发板上静态数码管的现象:
最开始静态数码管会显示数字2,然后依次跳变为3,4,5,6,7,8,9,A,B,C,D,E,F。
显示F后会跳变为0,再依次增加,循环显示0-F。
如果想再次从头观察现象可以按复位键RSTK。
6.实验完成后,先关闭单片机开发板的电源,再将接线拆下,最后要将实验仪器放回原处。
五、实验流程图
六、小结
1.通过此例程,可以熟悉我们所使用的C51单片机开发板,了解74HC595芯片和数码管的构造和原理,理解串入并出的原理与方法,也更进一步熟练Protues仿真图的制作。
2.作此实验之前最好先查一些资料,了解本例程所要用的C51芯片、74HC595芯片和数码管,了解它们各引脚的作用和工作原理,帮助看懂此例程的程序和仿真图。
3.仿真图中所用芯片可能与开发板上的或程序所给的不是同一款,但它们可以实现相同的功能,通过了解各引脚功能可得知它们引脚的对应关系。
七、实物图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 74 HC595 实现 IO 扩展