首页 理论教育单片机硬件扩展与接口技术指南

单片机硬件扩展与接口技术指南

【摘要】:近三年四川省对口升学本章考点内容及考题分析本章是“单片机技术与应用”科目考试中重要的章节,介绍单片机的硬件结构及其应用,要求考生能够利用单片机和8255芯片扩展并行I/O口。本章考试主要以单项选择题、填空题为主,考查考生对三大总线、存储器扩展和并行I/O口扩展的掌握情况。电路简单,扩展接口电路数量受限。因此,单片机的系统扩展就归结到外接数据存储器、程序存储器和I/O接口与三总线的连接。

1.MCS—51单片最小应用系统。(B)

2.MCS—51单片机扩展芯片寻址方式(线选法和译码法)。(A)

3.静态数码管显示与动态数码管扫描显示。(A)

4.8255内部结构。(B)

5.8255引脚功能及控制字编写。(C)

6.A/D转换概念及转换方式。(A)

7.ADC0809应用基础。(B)

8.DAC0832应用基础。(B)

近三年四川省对口升学本章考点内容及考题分析

本章是“单片机技术与应用”科目考试中重要的章节,介绍单片机的硬件结构及其应用,要求考生能够利用单片机和8255芯片扩展并行I/O口。本章考试主要以单项选择题、填空题为主,考查考生对三大总线、存储器扩展和并行I/O口扩展的掌握情况。

一、最小应用系统及扩展

最小应用系统的组成见本部分第二章。由于单片机最小应用系统内部资源(存储器容量等)、驱动能力和自带I/O接口等的限制,单片机最小应用系统只能完成简单的小电流控制任务,要完成大电流、高电压、复杂的任务就必须扩展存储器、I/O接口等。

1.I/O接口电路的主要功能

主要功能包括:实现地址译码 ;实现信息转换 ;实现数据缓冲与锁存(输入具备缓冲功能,输出具备锁存功能) ;实现通信联络。

2.I/O接口电路的作用

实现单片机与外设的信息交换,其过程包含两部分(单片机与I/O接口电路的信息交换,I/O接口电路与外设的信息交换)。

3.I/O接口电路的寻址方式

线选法:直接使用高位地址线作为片选控制线。电路简单,扩展接口电路数量受限。

译码法:利用译码器输出端作为片选控制线。高位地址线作为译码器输入信号。这种方式可节约高位地址线。

4.I/O接口电路扩展方法:并行扩展(利用AB、DB、CB并行三总线实现)、串行扩展(利用SPI总线和I2 C总线实现)。

二、单片机并行I/O口扩展

1.8255A芯片引脚功能及片内结构(如图3-5-1所示)

图3-5-1

(1)8255A芯片引脚功能

8255A为双列直插式40条引脚。

RESET:复位信号,输入电平有效。一般和单片机的复位相连,复位后,8255所有内部寄存器清0,所有口都为输入方式。

:写控制端,输入,低电平有效。

:读控制端,输入,低电平有效。

:片选线,输入,低电平有_效。

A1 A0:地址输入线。当=0,芯片被选中时,这两位的4种组合00、01、10、11分别用于选择A、B、C口和控制寄存器。

电源线(2条):VCC为+5 V,GND为地线。

I/O口线(24条):PA0~PA7、PB0~PB7、PC0~PC7为24条双向三态I/O总线,分别与A、B、C口相对应,用于8255和外设之间传送数据。

(2)内部结构

8255A三个8位并行数据端口都有自己各自的特点。

A口:具有一个8位数据输出锁存器/缓冲器和一个数据输入锁存器。

B口:具有一个8位数据输出锁存器/缓冲器和一个数据输入缓冲器。

C口:除了单独作为8位输入、输出口使用外,还可以按控制命令被分成两个4位端口使用,分别作为A口和B口输出控制信号和输入状态信号。

8255A的4个端口的地址如下。

A1、A0确定8255A内部3个数据口和一个控制寄存器地址。

A1 A0选中端口地址:

0 0——A端口

0 1——B端口

1 0——C端口

1 1——控制寄存器地址

表3-5-1 对8255各端口的操作

2.8255A的三种工作方式

8255芯片有三种工作方式:基本输入/输出方式(方式0)、选通工作方式(方式1)、双向传送方式(方式2)。

(1)方式0

相当于三个独立的8位简单接口,各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出。C端口可以是一个8位的简单接口,也可以分为两个独立的4位端口。方式0常用于连接简单外设(适于无条件或查询方式)。

常使A端口和B端口作为8位数据的输入或输出口,使C口的某些位作状态输入。

(2)方式1

利用一组选通控制信号控制A端口和B端口的数据输入输出,其中A口、B口作输入或输出口,C口的部分位用作选通控制信号,而A口、B口在作为输入和输出时的选通信号是不同的。

方式1主要用于中断控制方式下的输入输出,C口的8位除用作选通信号外,其余位可工作于方式0下,作为输入或输出口。

(3)方式2

此方式为双向输入输出方式——可以既作为输入口,又作为输出口,而只有A端口可工作在方式2下。

此种工作方式可使A端口作为双向端口所有,并且主要用于中断控制方式,当A口工作于方式2时,B口可工作于方式1(此时C口的所有位都用作选通控制信号的输入输出),也可工作于方式0(此时C口的剩余位也可工作于方式0)。

3.8255A的控制字(工作方式选择控制字、C口控制字)

(1)工作方式选择控制字(如图3-5-2所示)

图3-5-2

(2)C口“置0/置1”控制字(如图3-5-3所示)

图3-5-3

三、单片机存储器扩展

1.单片机是通过地址总线、数据总线和控制总线与外部交换信息的,如图3-5-4所示。

数据总线:信息的公共通道,各外围芯片必须分时使用。

地址总线:区别什么时候使用哪个芯片。

控制总线:控制什么时候打开指定地址的那个芯片通往数据总线的门。

因此,单片机的系统扩展就归结到外接数据存储器、程序存储器和I/O接口与三总线的连接。

图3-5-4 单片机的总线接口信号

2.程序存储器扩展

(1)典型的EPROM芯片有Intel公司的2716(2K×8)、2732(4K×8)、2764(8K×8)、27128(16K×8)、27256(32K×8)、27512(64K×8)等。

如图3-5-5所示为EPROM 2732。EPROM 2732的容量为4K×8位。4K表示有4×1024(22×210=212)个存储单元,8位表示每个单元存储数据的宽度是8位。前者确定了地址线的位数是12位(A0~A11),后者确定了数据线的位数是8位(O0~O7)。目前,除了串行存储器之外,一般情况下,我们使用的都是8位数据存储器。2732采用单一+5 V供电,最大静态工作电流为100 m A,维持电流为35 m A,读出时间最大为250 ns。

图3-5-5 扩展程序存储器2732的电路

单片机扩展2716,2764,27128等EPROM的方法与图3-5-3相同,差别仅在于不同的芯片的存储容量的大小不同,因而使用高8位地址的P2端口线的根数不同。

扩展2716(2 KB)需使用A8~A10三条高位地址线。

扩展2764(8 KB)需要A8~A12五条高位地址线。

扩展27128(16 KB)时需要A8~A13六条高位地址线。

这是因为存储器其容量=2 N,N为地址线的根数。

注意:2764和27128的PGM(编程控制)引脚应接Vcc。(读2764和27128)

(2)EEPROM的扩展

电可擦除只读存储器EEPROM既可像EPROM那样长期非易失地保存信息,又可像RAM那样随时用电改写。近年来出现了快擦写FLASH EEPROM,它们被广泛用作单片机的程序存储器和数据存储器。

目前它们有如下共同特点:

①单+5V供电,电可擦除可改写 ;

②使用次数为1万次,信息保存时间为10年 ;

③读出时间为ns级,写入时间为ms级 ;

④芯片引脚信号与相应的RAM和EPROM芯片兼容。

3.数据存储器的扩展

MCS—51单片机内只有128字节的数据RAM,当应用中需要更多的RAM时,只能在片外扩展。可扩展的最大容量为64 KB。

当执行指令MOVX A,@R i或MOVX A,@DPTR时进入读外部数据存储器。

访问外部数据RAM的操作与从外部程序存储器取指令的过程基本相同,只是前者有读有写,而后者只有读而无写 ;前者用选通,而后者用选通 ;前者一个机器周期中ALE一次有效,后者则只有两次有效。因此,不难得出MCS—51单片机和外部RAM的连接方法。

图3-5-6 8XX51扩展6264外部数据RAM

如图3-5-6所示,ALE把P0端口输出的低8位地址A0~A7锁存在74LS373,P2口的P2.0~P2.4直接输出高5位地址A8~A12,由于单片机的分别与6264的输出允许和写信号相连,执行读操作指令时,使有效,6262 RAM中指定地址单元的数据经D0~D7由P0口读入 ;执行写指令时,使有效,由P0口提供的要写入RAM的数据经D0~D7写入6264的指定地址单元中。

单片机8XX51读写外部数据RAM的操作使用MOVX指令,用R i间址或用DPTR间址。

四、A/D转换接口

1.A/D转换简介

A/D转换器是将模拟量转换成数字量的器件,简称ADC。模拟量可以是电信号和非电的物理量。非电的物理量必须通过合适的传感器转换成电信号输入ADC。

A/D转换器就其位数来分,有8位、10位、12位、16位等 ;按其转换方式可分逐次逼近式A/D转换器、双积分式转换器、计数式A/D转换器和并行式A/D转换器。

2.ADC0809转换器的结构

ADC0809是采用CMOS工艺制成的带有8通道模拟输入的8位逐次逼近式A/D转换器,采用28脚DIP封装。其内部结构和引脚分配如图3-5-7所示。

图3-5-7

各引脚的意义如下。

IN7~IN0:8路模拟输入,由ADD A、ADD B、ADD C三条线选择。

ADD A、ADD B、ADD C:模拟通道选择线。与单片机的地址线或数据线相连,ADD A接低位线,ADD C接高位线。

ALE:地址锁存允许信号,其上升沿将ADD A、ADD B和ADD C三条引线的信号锁存,经译码选择相应的模拟通道。

START:转换启动信号。其上升沿将所有内部寄存器清0,下降沿开始进行A/D转换。在A/D转换期间,START信号保持为低电平。

D7~D0:数据输出线。为三态缓冲输出形式,可以与单片机的数据线直接相连,由输出允许信号OE控制。

OE:输出允许信号。该信号为高电平时,打开三态缓冲器,将转换结果送到D7~D0上。

EOC:转换结束信号。当转换结束,数据锁存在输出锁存器之后,EOC变为高电平。该信号既可作为被查询的状态信号,亦可作为中断请求信号。

VCC:+5 V电源。

VREF(+)、VREF(-):基准电压输入。

CLK:时钟输入,时钟频率为640k Hz。

3.ADC0809与CPU的连接和编程

ADC0809和89S51单片机接口电路如图3-5-8所示。

图3-5-8

ADC0809与单片机的连接电路中需要考虑转换数据的传送问题。启动A/D转换后,单片机可以用查询方式(将EOC接到一条I/O线上)或者中断方式(将EOC接到上)了解A/D转换是否结束,也可以使用定时传送方式实现转换数据的传送。显然,图3-5-8是采用中断方式进行数据传送。

五、D/A转换接口

1.D/A转换器概述

D/A转换器(简称DAC)是一种将数字信号转换成模拟信号的器件,其原理结构框图如图3-5-9所示。

图3-5-9

D/A转换器的输出模拟电压VO与输入数字量D和参考电压VREF的关系如下:

VO=(D/2n)·VREF

式中:

n为二进制位数

D=dn-1·2n-1+dn-2·2n-2+…+d1·21+d0·20(其中di=0,1)

由此可见,D/A转换器的输出模拟量是由数字输入和参考电压源VREF组合进行控制的。D/A转换器按输入数字量的位数来分,有8位、10位、12位和16位等 ;按输入数字量的形式来分,有二进制码和BCD码 ;按数字量的传输方式来分,有并行DAC和串行DAC ;按输出模拟量的形式分,有电压和电流两种形式。对于电流输出型,需要用运算放大器组成的电流—电压转换器将电流输出转换成电压输出。

2.DAC0832转换器的结构

DAC0832是一个8位D/A转换器,采用20引脚双列直插式封装。其内部结构和引脚排列如图3-5-10所示。

图3-5-10

各信号引脚的意义如下。

D7~D0:8位数据输入线,D7为最高位,D0为最低位。

:片选信号输入线,低电平有效。

ILE:允许输入锁存信号,高电平有效。

:输入锁存器写选通输入线,低电平有效。输入锁存器的锁存信号LE1由ILE、CS、的逻辑组合产生。当ILE=1,WR1=0时,为输入寄存器直通方式 ;当ILE=1,WR1=1时,为输入寄存器锁存方式。

:数据传送控制信号输入线,低电平有效,与WR2信号结合,用来选通DAC寄存器。

:DAC寄存器写选通信号输入线,低电平有效。(www.chuimin.cn)

当WR2=0,=0时,为DAC寄存器直通方式 ;当=1,=0时,为DAC寄存器锁存方式。

Iout1:模拟电流输出线1。当输入数字量为全“1”时,输出电流为最大值 ;输入为全“0”时,输出电流为最小值,近似为0。

Iout2:模拟电流输出线2。Iout1和Iout2之和为常数,采用单极性输出时,Iout2常常接地。

RFB:反馈信号输入线。反馈电阻被固化在芯片中,作为外接的运算放大器的反馈电阻,为DAC提供电压输出。

VREF:参考电压输入线,外接一精密电压源。范围为-10 V~+10 V。

VCC:电源电压线,范围为+5 V~+15 V。

AGND:模拟地。模拟量接地点。

DGND:数字地。数字量接地点。

3.DAC0832与单片机的接口和编程

根据DAC0832的5个控制信号)的不同连接方式,可以有3种工作方式,如下所述。

直通方式:将接地,ILE接高电平。常用于连续反馈控制的环路中。

单缓冲方式:此方式就是使两个寄存器中的一个工作在直通状态,另一个处于受控的锁存状态。在实际应用中,在不要求多个模拟输出通道同步输出时,可采用这种方式。

双缓冲方式:两个寄存器都处于受控的锁存状态。还可以实现多个模拟通道的同步输出。

六、数码管的显示方法

1.数码管的结构

通常所说的LED显示器由8个发光二极管组成,如图3-5-11(a)所示。其中a~g段用于显示数字、字符的笔画,dp显示小数点,而3、8引脚连接,作为公共端。LED显示器的发光二极管有共阳极和共阴极两种连接方法,详见图3-5-11(b)、(c)。

图3-5-11

使用时a段接控制码最低位,dp段接控制码最高位。

2.数码管的显示方法

静态显示:数码管连续发光。使用时公共端接地(共阴极)或接电源(共阳极),只需字形码控制各段即可。字形码可用软件译码法(查表)或硬件译码(译码器)得到。

动态显示:利用人眼视觉暂留特性,数码管间断发光,最终视觉效果是连续发光。这种方式用于多个数码管控制,此时需字形码和字位码共同控制。

【例1】 在采用8255扩展I/O口时,若把8255A口每一位接一个开关,B口每一位接一个发光二极管。请编写A口开关为1时,B口相应位发光二极管点亮的程序。

【答案】 假设电路如图所示,当开关闭合时(即A口的输入信号等于1),使发光二极管点亮(即B口的输出信号等于1)。设8255的A、B、C、控制口地址分别为8000 H、8001H、8002 H和8003H。控制字:10010000B(90H)即A口输入、方式0 ;B口输出、方式0。

程序如下:

ORG 1000 H

MOV DPTR,#8003H

MOV A,#90H

MOVX@DPTR,A ;写控制字

LOOP:MOV DPTR,#8000 H

MOVX A,@DPTR

;将A口的数

;据送到累加器A中

INC DPTR

MOVX@DPTR,A ;将累加器中

;的数从B口输出

SJMP LOOP

END

【例2】 设ADC0809的8个模拟输入通道IN0~IN7所占用的外部RAM的地址分别为7FF8H~7FFFH。若对8路模拟输入检测一遍,采样数据依次存放在内部RAM的30H~37H单元中。

采用中断控制方式采集数据的程序如下:

ORG 0000H

AJMP MAIN ;跳转主程序

ORG 0013H ;外部中断1入口地址

LJMP ;跳转中断服务程序

主程序:

MAIN:MOV R0,#30 H ;数据区首地址

MOV R1,#08H ;置通道数

SETB IT1 ;选择为边沿触发方式

SETB EA ;中断允许

SETB EX1 ;允许中断

MOV DPTR,#7FF8H ;通道0地址

NEXT:SETB F0 ;置中断标志

MOVX@DPTR,A ;启动A/D转换

LOOP: JB F0,LOOP ;等待中断

DJNZ R1,NEXT

SJMP $

中断服务程序:

:MOVX A,@DPTR ;数据采样

MOV@R0,A ;转换结果存入内部RAM

INC DPTR ;指向下一模拟通道

INC R0 ;指向数据区下一单元

CLR F0 ;清中断标志

RETI ;中断返回

【例3】 如图所示89S51单片机使用DAC0832以单缓冲方式产生锯齿波。

【解析】 若未用地址线为1,则输入寄存器的端口地址为7FFFH。

START:MOV DPTR,#7FFFH ;输入寄存器端口地址

MOV A,#00H ;转换初值

LOOP:MOVX @DPTR,A ;D/A转换

INC A ;转换值增量

NOP ;延时

NOP

SJMP LOOP

执行上述程序,在运算器的输出端就能得到如图所示的锯齿波。

每一次转换时间(延时)越长则锯齿波的周期越长。

【例4】 如图所示89S51单片机使用DAC0832以双缓冲方式实现绘图仪电机控制(假定X坐标数据存放在内部RAM 30H单元中,Y坐标数据存放在内部RAM 31H单元中)。

【解析】 若未用地址线为1,则片1输入寄存器的端口地址为0DFFFH ;片2输入寄存器的端口地址为0BFFF ;两片0832的DAC寄存器地址为7FFFH。先分别将X电机控制的数字量送入片1的输入寄存器,Y电机控制的数字量送入片2输入寄存器,再同时选通两片的DAC寄存器即可完成任务。

MOV DPTR,#0DFFFH ;指向X向输入锁存器地址

MOV A,30H ;X坐标数据送累加器A

MOVX @DPTR,A ;X坐标数据送输入锁存器

MOV DPTR,#0BFFFH ;指向Y向输入锁存器地址

MOV A,31H ;Y坐标数据送累加器A

MOVX @DPTR,A ;Y坐标数据送输入锁存器

MOV DPTR,#7FFFH ;指向DAC寄存器端口地址

MOVX @DPTR,A ;X、Y转换数据同步输出

一、单项选择题

1.8255A既可作数据输入、输出端口,又可提供控制信息、状态信息的端口是( )

A.A口 B.B口 C.C口 D.A、B、C三端口均可以

2.若某存储器芯片地址线为13根,那么它的存储容量为( )

A.1 KB B.2 KB C.4 KB D.8 KB

3.MCS—51系列单片机扩展ROM,RAM和I/O口时,它的数据总线是( )

A.P0 B.P1 C.P2 D.P3

4.当MCS—51系列单片机扩展4 KB程序存储器时,需要使用________片EPROM 2716。( )

A.2 B.3 C.4 D.5

5.8255A引脚信号时,表示( )

A.无效操作 B.CPU读8255A控制口

C.CPU向数据口写数据 D.CPU控制口送控制字

二、判断题(正确的选“A”,错误的选“B”)

1.在8255A中可以进行按位置位/复位的端口是端口A、B、C。( )

2.8255A的三个端口中只有端口C没有输入输出锁存功能。( )

3.74LS138芯片是锁存器。( )

4.使用8255可以扩展32根I/O口。( )

5.MCS—51系列单片机使用来读、写片外程序存储的内容。( )

三、填空题

1.8255A控制字的最高位D7=_________时,表示该控制字为方式控制字。

2.8255A中,可使用的控制字有________控制字和________控制字,其中________控制字只对端口C有效。

3.如果8255芯片,PA口工作于方式1输入,PB口工作于方式0输出,则其控制字为_________。

4.可编程并行I/O接口芯片8255A有_________个8位并行I/O端口,可通过编程决定它们的功能。

5.8255A属于可编程的_________I/O接口芯片,8255A的A通道有_________种工作方式。

四、分析题

1.当数据从8255A的C端口读到CPU时,8255A的控制信号、分别是什么电平?

2.设8255的端口地址为200 H~203 H。

(1)要求PA口工作在方式1,输入 ;PB口工作在方式0,输出 ;PC7~PC6为输入 ;PC1~PC0为输出。试写出8255的初始化程序。

(2)程序要求当PC7=0时置位PC1,而当PC6=1时复位PC0,编写相应程序。

五、综合题

8051与6个LED的接口电路如下图所示。图中8255的A口接LED显示器位控,8255的B口接LED显示器段控,A口、B口均为输出口,LED采用共阴极连接。已知8051单片机片内RAM中79 H-7FH分别存放6位LED的显示数据(0-9),试回答下列问题。

1.该接口电路中8255的工作方式是什么?

2.8255的A口、B口、C口的地址分别是什么?

3.下面程序段实现了6位LED的循环动态扫描显示功能,试编写完成此功能的程序。

MOV DPTR,#7FFF

MOV A,________ ; 初始化8255

MOVX@DPTR,A

LEDSHOW:MOV R0,#79H

MOV R3,#0FEH

LD:MOV A,R3

_________ ;

MOVX@DPTR,A ;写A口

INC DPTR

MOV A,@R0

ADD A,#12

MOVC A,@A+PC

_________ ;写B口

ACALL DELAY ;调用延时子程序

INC R0

MOV A,R3

JNB AC C.5,_________

RL A

_________

AJMP LD

LEDTAB:DB 3FH,06 H,5BH,4FH,66 H,6DH,7DH,07 H,7FH,6FH ;LED共阴字码(0-9)

DELAY:略

END形