AT89C51接口技术.docx

上传人:b****6 文档编号:7015852 上传时间:2023-01-16 格式:DOCX 页数:30 大小:132.08KB
下载 相关 举报
AT89C51接口技术.docx_第1页
第1页 / 共30页
AT89C51接口技术.docx_第2页
第2页 / 共30页
AT89C51接口技术.docx_第3页
第3页 / 共30页
AT89C51接口技术.docx_第4页
第4页 / 共30页
AT89C51接口技术.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

AT89C51接口技术.docx

《AT89C51接口技术.docx》由会员分享,可在线阅读,更多相关《AT89C51接口技术.docx(30页珍藏版)》请在冰豆网上搜索。

AT89C51接口技术.docx

AT89C51接口技术

第8章AT89C51系统接口技术

难点

∙8255的控制字

∙8255的工作方式1和工作方式2

∙DAC0832工作方式

∙ADC0809工作方式

@要求

掌握:

∙8255接口芯片

∙MCS-51单片机与D/A转换器的接口连接

∙MCS-51单片机与A/D转换器的接口连接

∙初始化编程及应用

了解:

∙I/O口扩展的原因

∙简单I/O口的扩展

∙单片机的键盘技术

8.1 I/O口扩展概述

8.2简单I/O口扩展

8.38255可编程通用并行接口芯片

8.4 8155可编程通用并行接口芯片

8.1I/O口扩展概述

8.1.1I/O口扩展的原因

MCS-51系列单片机共有四个并行I/O口,分别是P0、P1、P2和P3。

其中P0口一般作地址线的低八位和数据线使用;P2口作地址线的高八位使用;P3是一个双功能口,其第二功能是一些很重要的控制信号,所以P3一般使用其第二功能。

这样供用户使用的I/O口就只剩下P1口了。

另外,这些I/O口没有状态寄存和命令寄存的功能,因此难以满足复杂的I/O操作要求。

由于MCS-51系列单片机I/O口数量和功能有限,所以在实际应用中不得不使用扩展的方法,来增加I/O口的数量,增强I/O口的功能。

8.1.2I/O口的编址技术

用户可以通过对I/O口进行读和写操作来完成数据的输入和输出。

例如:

P0口的地址为80H。

用户可以使用MOV指令对P0口进行写操作。

MOVP0,A

 8.1.3单片机I/O传送的方式

单片机为了实现数据的输入/输出传送,通常使用3种控制方式。

1.无条件传送方式

当外设和单片机能够同步工作时,可以采用无条件方式进行传送,即数据可以随时进行传送。

2.查询方式

查询方式又称为有条件传送方式,即数据的传送是有条件的。

在进行I/O操作之前,用户要通过软件查询外设是否为数据传送做好准备,只有确认外设为数据传送做好准备。

单片机才能执行数据的输入/输出(I/O)操作。

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

1

0

0

0

0

Q0

从功能表可知:

●        若

=1,不管数据和时钟信号(CK)是什么状态,锁存器输出锁存的内容(Q0)。

●        只有在

=0时,时钟信号才起作用,即时钟信号正跳变时,数据进入锁存器,也就是说输出端反映输入端的状态。

●        若CK=0,则不论

为何状态,锁存器输出锁存的内容(Q0),不受D端状态影响。

输出口扩展连接:

扩展单输出口只需要一片74LS377,其连接电路如图8.6所示。

图8.674LS377作输出口扩展

输出扩展使

作输出选通,因此,以MCS-51单片机的

信号在地址信号的配合下接CK。

因为在

信号由低变高时,数据线上出现的正是输出的数据,因此

接CK正好控制输出数据进入锁存器。

此外,74LS377的

信号接地,其目的是使锁存器的工作只受CK(

)信号的控制。

8.38255可编程通用并行接口芯片

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读写逻辑

所选断口

操作

0

00

0

1

A口

读A口

0

00

1

0

A口

写A口

0

01

0

1

B口

读B口

0

01

1

0

B口

写B口

0

10

0

1

C口

读C口

0

10

1

0

C口

写C口

0

11

1

0

控制寄存器

写控制寄存器

1

××

×

×

高阻状态

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读走,暂不能向接口输入数据。

INTR:

中断请求信号,高电平有效。

当外设将数据锁存于接口之中,且又允许中断请求发生时,就会产生中断请求。

方式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

 

 

MOV

R0,#79H

 

 

MOV

A,#80H

 

 

MOVX

@DPTR,A

;写控制字

 

MOV

R3,#0FEH

 

 

MOV

A,R3

 

LD:

MOV

DPTR,#7FFCH

 

 

MOVX

@DPTR,A

;最左边灯亮

 

INC

DPTR

;指向B口

 

MOV

A,@R0

;取显示数据

 

ADD

A,#13H

 

 

MOVC

A,@A+PC

;查数据编码

 

MOVX

@DPTR,A

;写B口

 

ACALL

DELAY

;延时

 

INC

R0

 

 

MOV

A,R3

 

 

JNB

ACC.5,ED

 

 

RL

A

 

 

MOV

R3,A

 

 

AJMP

LD

 

LEDTAB:

DB

3FH

 

 

DB

06H

 

 

DB

5BH

 

 

DB

4FH

 

 

DB

66H

 

 

DB

6DH

 

 

DB

7DH

 

 

DB

07H

 

 

DB

7FH

 

DELAY:

MOV

R7,#02H

 

 

MOV

R6,#FFH

 

LOOP:

DJNZ

R6,LOOP

 

 

DJNZ

R7,DELAY

 

 

RET

 

 

ED:

AJMP

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时,为输入寄存器直通

方式;当ILE=1和

=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和

=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

NOP

NOP

SJMPMM;反复

执行上述程序就可得到如图8.5所示的锯齿波。

    图8.5D/A转换产生的锯齿波

几点说明:

(1)  程序每循环一次,A加1,因此实际上锯齿波的上升边是由256个小阶梯构成的,但由于阶梯很小,所以宏观上看就如图中所画的先行增长锯齿波。

(2)可通过循环程序段的机器周期数,计算出锯齿波的周期。

并可根据需要,通过延时的方法来改变波形周期。

若要改变锯齿波的频率,可在AJMPMM指令前加入延迟程序即可。

延时较短时可用NOP指令实现(本程序就是如此),需要延时较长时,可以使用一个延长子程序。

延迟时间不同,波形周期不同,锯齿波的斜率就不同。

(3)通过A加1,可得到正向的锯齿波,反之A减1可得到负向的锯齿波。

(4)程序中A的变化范围是0~255,因此得到的锯齿波是满幅度的。

如要求得到非满幅锯齿波,可通过计算求的数字量的处置和终值,然后在程序中通过置初值和终值的方法实现。

【例8.2】矩形波电压发生器

采用单缓冲方式,口地址设为FEFFH.

参考程序如下:

ORG1100H

START:

MOVDPTR,#00FEH;送DAC0832口地址

LOOP:

MOVA,#dataH;送高电平数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1