AT89C51接口技术Word文件下载.docx
- 文档编号:20039195
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:30
- 大小:132.08KB
AT89C51接口技术Word文件下载.docx
《AT89C51接口技术Word文件下载.docx》由会员分享,可在线阅读,更多相关《AT89C51接口技术Word文件下载.docx(30页珍藏版)》请在冰豆网上搜索。
3.中断方式
当外设和计算机进行数据交换时,外设向单片机发出中断请求(即通知单片机)。
单片机接到中断请求后,就作出响应,暂停正在执行的程序,而转去为设备的数据输入/输出服务。
当服务完成后,程序返回,单片机再继续执行被中断的程序。
中断方式大大提高了单片机系统的工作效率,所以在单片机中被广泛应用。
8.2简单I/O口扩展
8.2.1简单输入口扩展
1.两个输入口扩展
简单输入口扩展使用的集成芯片,比较典型的如74LS244芯片。
图8.1为74LS244芯片的引脚。
图8.174LS244芯片的引脚图8.274LS244扩展两个输入口
其中,1A1~1A4,2A1~2A4,为输入线;
1Y1~1Y4,2Y1~2Y4,为输出线;
,
为片选信号线。
该芯片内部有2个4位的三态缓冲器,因此一片74LS244可以扩展两个输入口,其电路连接如图8.2所示。
使用时以
作为数据选通信号。
2.多输入口扩展
使用多片74LS244实现多个(例如5个)输入口扩展的电路连接如图8.3。
使用或门74LS32的输出作为输入口的选通信号。
或门的两个输入端一个是读选通信号
另一个则为P2的一条口线(线选法)。
当他们都是低电平时,才能得到一个有效的输入选通,使一片74LS244的8位数据进行输入。
图8.3多个(例如5个)输入口扩展的电路
8.2.2简单输出口扩展
输出口的主要功能是进行数据保持,或者说是数据锁存。
所以简单输出口扩展应使用锁存器实现。
1.简单输出口扩展使用的典型芯片
简单输出口扩展通常使用74LS377芯片,该芯片是一个具有“使能”控制端的锁存器。
其信号引脚如图8.4所示。
其中:
1D~8D为8位数据输入线,1Q~8Q为8位数据输出线,CK为时钟信号上升沿数据锁存,
为使能控制信号,低电平有效。
VCC为+5V电源。
74LS377的逻辑电路如图8.5所示。
图8.474LS377引脚图图8.574LS377的逻辑电路
由逻辑电路可知,74LS377是由D触发器组成的,D触发器在上升沿输入数据,即在时钟信号(CK)由低电平跳变为高电平时,数据进入锁存器。
其功能表如表7-1所示。
表7-174LS377功能表
CK
D
Q
1
Q0
0
↑
从功能表可知:
●
若
=1,不管数据和时钟信号(CK)是什么状态,锁存器输出锁存的内容(Q0)。
只有在
=0时,时钟信号才起作用,即时钟信号正跳变时,数据进入锁存器,也就是说输出端反映输入端的状态。
若CK=0,则不论
为何状态,锁存器输出锁存的内容(Q0),不受D端状态影响。
输出口扩展连接:
扩展单输出口只需要一片74LS377,其连接电路如图8.6所示。
图8.674LS377作输出口扩展
输出扩展使
作输出选通,因此,以MCS-51单片机的
信号在地址信号的配合下接CK。
因为在
信号由低变高时,数据线上出现的正是输出的数据,因此
接CK正好控制输出数据进入锁存器。
此外,74LS377的
信号接地,其目的是使锁存器的工作只受CK(
)信号的控制。
8.3.18255的外部引脚和内部结构
1.外部引脚
8255的外部引脚如图8.7所示,其中:
:
A口的输入输出信号线。
该口是输入还是输出或双向,由软件决定。
B口的输入输出信号线。
该口是输入还是输出,由软件决定。
C口信号线。
该口可作输入、输出、控制和状态线使用,由软件决定。
~
双向数据信号线,用来传送数据和控制字。
读信号线。
写信号线。
片选信号线,低电平(有效)时,
才选中该芯片,才能对8255进行操作。
RESET:
复位输入信号,高电平有效时,复位8255。
复位后8255的A口、B口和C口均被定为输入。
表7-2地址编码
端口
00
A口
01
B口
10
C口
11
控制寄存器
口地址选择信号线。
8255内部共有三个口,A口、B口、C口和一个控制寄存器供用户编程
的不同编码可分别选择上述三个口和一个控制寄存器。
地址编码如表7-2所示。
图8.78255外部引脚
由
、
和
可以确定A口、B口、C口和控制寄存器的,如表7-3所示。
表7-3读写逻辑
所选断口
操作
读A口
写A口
读B口
写B口
读C口
写C口
写控制寄存器
×
×
∕
高阻状态
2.内部结构
8255的内部结构框图如图8.8所示。
从图可以看到,左边的信号与系统总线相连。
而右边是与外设相连接的三个口。
三个口均为8位。
其中A口输出有锁存能力,输入亦有锁存能力。
B口输入输出均有锁存能力。
C口输出有锁存能力,输入没有锁存能力,在使用上要注意到这一点。
图8.88255的内部结构框图
为了控制方便,将8255的三个口分成A,B两组。
其中A组包括A口的8条口线和C口的高四位
。
B组包括B口的8条口线和C口的低四位
A组和B组分别由软件编程来加以控制。
8.3.28255的扩展逻辑电路
MCS-51单片机可
以和8255直接连接,图8.9给出了一种扩展电路。
图8.98255的扩展逻辑电路
8255的数据线和8031的P0直接相连,8255的片选信号
、A0、A1分别和8031的P2.7、P0.0、P0.1相连,所以8255的A口、B口、C口、控制寄存器的地址分别为7FFCH、7FFDH、7FFEH、7FFFH。
8255的读写线
分别和8031的读写选通线
相连。
8255的复位端RESET与8031的RST端相连。
8.3.38255的工作方式
8255共有三种工作方式,这些工作方式可用软件编程来指定。
1.工作方式0,又称基本输入输出方式
在此方式下,A口的8条线,B口的8条线,C口的高四位对应的4条线和C口的低四位对应的4条线这四部分可分别定义为输入或输出。
上述四部分的输入或输出是相互独立的,因此它们的输入或输出共有16种组合,方式0可将内部数据并行写到(输出)某个端口锁存,也可将外部数据通过某个端口缓冲后并行读入(输入)CPU。
在方式0下,C口还有按位复位和按位置位的功能。
有关C口的按位操作在后面再作详述。
2.工作方式1,又称选通输入输出方式
在这种方式下,A口和B口仍作为数据的输出或输入口而同时要利用C口的某些位作为控制和状态信号,从而实现这种工作方式。
A口和B口所使用的C口的各引线是固定不变的。
A口要利用
,B口要利用
A口和B口可任意由程序指定是输入口还是输出口。
为了阐述问题的方便,我们分别以A口、B口均为输入或均为输出加以说明。
(1)方式1下,A口和B口均为输出各条控制引线的定义如图8.10所示。
各控制信号的含义如下:
:
输出缓冲器满信号,低电平有效。
用来告诉外设,在规定的接口上CPU已输出一个有效的数据,外设可以从该口取走此数据。
外设响应信号,低电平有效。
用来通知接口外设已经将数据接收,并使
INTR:
中断请求信号,高电平有效。
当外设已从接口取走数据,口的缓冲器变空,且接口允许中断时,INTR有效。
即
且允许中断,则INTR=1。
方式1下,数据的输出过程可描述为:
当CPU向接口输出数据,并将数据锁存到输出缓冲器中。
此时,
有效。
有效的
通知外设接收数据。
一旦外设将数据取走,就送出一个有效的
信号。
该信号使
无效,同时产生中断请求(INTR=1),请求CPU输出下一个数据。
如此循环进行数据的输出。
图8.10A口和B口作输出口时,C口提供的控制引线
(2)方式1下,A口和B口均为输入
这种情况和两口均为输出类似,各条控制引线的定义如图8.11所示。
图8.11A口和B口作输入口时,C口提供的控制引线
输入选通信号,低电平有效。
它由外设提供,利用该信号可以将外设数据锁存于8255的口锁存器中。
输入缓冲器满信号,高电平有效。
当它有效时,表示已有一个有效的外设数据锁存于8255的口锁存器中。
可用此信号通知外设数据已锁存于接口中,尚未被CPU读走,暂不能向接口输入数据。
当外设将数据锁存于接口之中,且又允许中断请求发生时,就会产生中断请求。
方式1下,数据的输入过程可描述为:
当外设有数据需要输入时,将数据送到8255的接口上,同时利用输出信号
将数据锁存于口的数据锁存器中。
使
有效,如果此时接口允许中断,则产生中断请求信号INTR.。
CPU响应中断,去读8255的有关接口,将数据读到CPU中。
CPU读走数据后,IBF变为无效,表示输入缓冲器已空,可以再次接收外设提供的下一个数据。
3.
工作方式2,又称双向输入输出方式I/O操作
只有A口才能工作在方式2。
A口工作方式2时要利用C口的5条线才能实现。
此时,B口只能工作在方式0或者方式1下,而C口剩余的3条线可作为输入线、输出线或B口方式1之下的控制线。
C口提供的控制线如图8.12所示。
图8.12工作方式2时,C口提供的控制线
8.3.48255的控制字及初始化程序
8255是编程接口芯片,通过控制字(控制寄存器)对其端口的工作方式和C口各位的状态进行设置。
8255共有两个控制字,一个是工作方式控制字,另一个是C口置位/复位控制字。
这两个控制字共用一个地址,通过最高位来选择使用那个控制字。
1.工作方式控制字
主要功能:
确定8255接口的工作方式及数据的传送方向。
各位的控制功能如图8.13所示。
图8.138255工作方式控制字
对工作方式控制字作如下说明:
●A口可工作在方式0、方式1和方式2,B口可工作在方式0和方式1
●在方式1或方式2下,对C口的定义(输入或输出)不影响作为控制信号使用的C口各位功能
●最高位是标志位,作为方式控制字使用时,其值固定为1。
2.置位/复位控制字
在某些情况下,C口用来定义控制信号和状态信号,因此C口的每一位都可以进行置位或复位。
对C口的置位或复位是由置位/复位控制字进行的。
各位的功能如图8.14所示。
其中,最高位必须固定为“0”。
图8.148255置位/复位控制字
3.8255初始化
8255初始化就是向控制寄存器写入工作方式控制字和C口置位/复位控制字。
例如,对8255各口作如下设置:
A口方式0输入,B口方式1输出,C口高位部分为输出,低位部分为输入。
设8255的扩展电路如图8.8所示,则控制寄存器的地址为7FFFH。
按各口的设置要求,工作方式控制字为10010101,即95H。
所以初始化程序应为:
MOVDPTR,#7FFFH
MOVA,#95H
MOVX@DPTR,A
8.3.58255的应用举例
1.光二极管显示器的工作原理
发光二极管简称为LED(LightEmitingDiode)。
通常所说的LED显示器由7个发光二极管组成,因此也称之为七段LED显示器,其排列形状如图8.15(a)所示。
此外,显示器中还有一个小圆点型发光二极管(在图中以dp表示),用于显示小数点。
通过七段发光二极管亮暗的不同组合,可以显示多种数字、字母以及其它符合。
LED显示器中的发光二极管共有两种连接方法,一种是共阴极连接,另一种共阳极连接。
其连接图如图8.15(b)所示。
图8.15七段LED显示器
使用LED显示器时,要注意区分这两种不同的接法。
为了显示数字或字符,必须对数字或字符进行编码。
七段数码管加上一个小数点,共计8段。
因此为LED显示器提供的编码正好是一个字节。
用LED显示器显示16进制数的编码已列在表7-4所示。
表7-4LED显示器16进制数编码
通常使用的LED显示器都是多位的。
对多位LED显示器,通常采用动态扫描的方法进行显示,即逐个循环点亮各位显示器。
为了实现LED显示器的动态扫描除了要给显示器提供段码(字形编码)的输入之外,还要对显示器加位的控制(控制LED显示器亮灭),这就是通常所说的位控和段控。
2.应用举例
具体要求:
6个LED采用共阴极连接
79H~7EH分别存放6位显示器的显示数据(0~9)
8255的A口接LED显示器位控
8255的B口接LED显示器段控
(1)
电路设计
经分析知:
8255的A口、B口、C口、控制寄存器的地址分别为7FFCH、7FFDH、7FFEH、7FFFH。
(2)
编写程序
MOV
DPTR,#7FFFH
R0,#79H
A,#80H
MOVX
@DPTR,A
;
写控制字
R3,#0FEH
A,R3
LD:
DPTR,#7FFCH
最左边灯亮
INC
DPTR
指向B口
A,@R0
取显示数据
ADD
A,#13H
MOVC
A,@A+PC
查数据编码
ACALL
DELAY
延时
R0
JNB
ACC.5,ED
RL
A
R3,A
AJMP
LD
LEDTAB:
DB
3FH
06H
5BH
4FH
66H
6DH
7DH
07H
7FH
DELAY:
R7,#02H
R6,#FFH
LOOP:
DJNZ
R6,LOOP
R7,DELAY
RET
ED:
ED
8.1MCS-51单片机与D/A转换器的接口和应用
8.1.1典型D/A转换器芯片DAC0832
DAC0832是一个8位D/A转换器芯片,单电源供电,从+5V~+15V均可正常工作,基准电压的范围为±
10V,电流建立时间为1μs,CMOS工艺,低功耗20mW。
其内部结构如图8.1所示,它由1个8位输入寄存器、1个8位DAC寄存器和1个8位D/A转换器组成和引脚排列如图8.2所示。
该D/A转换器为20引脚双列直插式封装,各引脚含义如下:
(1)D7~D0——转换数据输入。
(2)
——片选信号(输入),低电平有效。
(3)ILE——数据锁存允许信号(输入),高电平有效。
(4)
——第一信号(输入),低电平有效。
该信号与ILE信号共同控制输入寄
存器是数据直通方式还是数据锁存方式:
当ILE=1和
=0时,为输入寄存器直通
方式;
=1时,为输入寄存器锁存方式。
(5)
——第2写信号(输入),低电平有效.该信号与
信号合在一起控制DAC
寄存器是数据直通方式还是数据锁存方式:
当
=0和
=0时,为DAC寄存器直通
方式;
当
=1和
=0时,为DAC寄存器锁存方式。
(6)
——数据传送控制信号(输入),低电平有效。
(7)Iout2——电流输出“1”。
当数据为全“1”时,输出电流最大;
为全“0”时输出电流最小。
(8)Iout2——电流输出“2”。
DAC转换器的特性之一是:
Iout1+Iout2=常数。
(9)Rfb——反馈电阻端
既运算放大器的反馈电阻端,电阻(15KΩ)已固化在芯片中。
因为DAC0832是电流输出型D/A转换器,为得到电压的转换输出,使用时需在两个电流输出端接运算放大器,Rfb即为运算放大器的反馈电阻,运算放大器的接法如图8.3所示。
(10)Vref——基准电压,是外加高精度电压源,与芯片内的电阻网络相连接,该电压可正可负,范围为-10V~+10V.
(11)DGND——数字地
(12)AGND——模拟地
8.1.2DAC0832工作方式
DAC0832利用
、
、ILE、
控制信号可以构成三种不同的工作方
式。
1.直通方式——
=
=0时,数据可以从输入端经两个寄存器直接
进入D/A转换器。
2.单缓冲方式——两个寄存器之一始终处于直通,即
=0或
=0,另一个寄存器处于受控状态。
3.双缓冲方式——两个寄存器均处于受控状态。
这种工作方式适合于多模拟信号同时输出的应用场合。
8.1.3单缓冲方式的接口与应用
1.单缓冲方式连接
所谓单缓冲方式就是使DAC0832的两个输入寄存器中有一个(多位DAC寄存器)处于直通方式,而另一个处于受控锁存方式。
在实际应用中,如果只有一路模拟量输出,或虽是多路模拟量输出但并不要求输出同步的情况下,就可采用单缓冲方式。
单缓冲方式连接如图8.3所示。
为使DAC寄存器处于直通方式,应使
=0。
为此可把这两个信号
固定接地,或如电路中把
与
相连,把
为使输入寄存器处于受控锁存方式,应把
接80C51的
,ILE接高电平。
此外还应把
接高位地址线或地址译码输出,以便于对输入寄存器进行选择。
图8.3DAC0832单缓冲方式接口
2.单缓冲方式应用举例
【例8.1】锯齿波电压发生器
在一些控制应用中,需要有一个线性增长的电压(锯齿波)来控制检测过程、移动记录笔或移动电子束等。
对此可通过在DAC0832的输出端接运算放大器,由运算放大器产生锯齿波来实现,其电路连接图如图8.4所示。
图8.4用DAC0832产生锯齿波电路
图中的DAC0832工作于单缓冲方式,其中输入寄存器受控,而DAC寄存器直通。
假定输入寄存器地址为7FFFH,产生锯齿波的程序清单如下:
MOVA,#00H;
取下限值
MOVDPTR,#7FFFH;
指向0832口地址
MM:
MOVX@DPTR,A;
输出
INCA;
延时
NOP
SJMPMM;
反复
执行上述程序就可得到如图8.5所示的锯齿波。
图8.5D/A转换产生的锯齿波
几点说明:
程序每循环一次,A加1,因此实际上锯齿波的上升边是由256个小阶梯构成的,但由于阶梯很小,所以宏观上看就如图中所画的先行增长锯齿波。
(2)可通过循环程序段的机器周期数,计算出锯齿波的周期。
并可根据需要,通过延时的方法来改变波形周期。
若要改变锯齿波的频率,可在AJMPMM指令前加入延迟程序即可。
延时较短时可用NOP指令实现(本程序就是如此),需要延时较长时,可以使用一个延长子程序。
延迟时间不同,波形周期不同,锯齿波的斜率就不同。
(3)通过A加1,可得到正向的锯齿波,反之A减1可得到负向的锯齿波。
(4)程序中A的变化范围是0~255,因此得到的锯齿波是满幅度的。
如要求得到非满幅锯齿波,可通过计算求的数字量的处置和终值,然后在程序中通过置初值和终值的方法实现。
【例8.2】矩形波电压发生器
采用单缓冲方式,口地址设为FEFFH.
参考程序如下:
ORG1100H
START:
MOVDPTR,#00FEH;
送DAC0832口地址
MOVA,#dataH;
送高电平数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AT89C51 接口 技术