单片机系统扩展与接口技术课件_第1页
单片机系统扩展与接口技术课件_第2页
单片机系统扩展与接口技术课件_第3页
单片机系统扩展与接口技术课件_第4页
单片机系统扩展与接口技术课件_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机系统扩展与接口技术

系统扩展的含义

单片机中虽然已经集成了CPU、I/O口、定时器、中断系统、存储器等计算机的基本部件(即系统资源),但是对一些较复杂应用系统来说,有时感到以上资源中的一种或几种不够用,这就需要在单片机芯片外加相应的芯片、电路,使得有关功能得以扩充,我们称为系统扩展(即系统资源的扩充)。

接口的含义:

接口是连接单片机与外围电路、芯片、设备(如I/O设备、A/D、D/A设备)的中间环节。接口牵涉到包括外围电路、设备、芯片的结构、使用方法、时序要求;单片机本身的硬件、软件资源等很多问题。接口技术要解决系统扩展时单片机与相应芯片的接口(如地址总线、数据总线、控制总线的连接)与编程问题。系统扩展和接口技术一般有以下几方面内容:1.外部总线的扩展2.外部存储器的扩展3.输入、输出接口的扩展4.管理功能部件(如定时/计数器、键盘/显示器等)的扩展5.A/D和D/A的接口技术7.1外部总线的扩展一、外部总线的扩展图7.1MCS-51外部三总线示意图图7.2地址锁存器的引脚和接口二、总线驱动

在单片机应用系统中,扩展的三总线上挂接很多负载,如存储器、并行接口、A/D接口、显示接口等,但总线接口的负载能力有限,因此常常需要通过连接总线驱动器进行总线驱动。总线驱动器对于单片机的I/O口只相当于增加了一个TTL负载,因此驱动器除了对后级电路驱动外,还能对负载的波动变化起隔离作用。

在对TTL负载驱动时,只需考虑驱动电流的大小;在对MOS负载驱动时,MOS负载的输入电流很小,更多地要考虑电平的兼容和分布电容的电流。一般TTL电平和CMOS电平是不兼容的,CMOS电路能驱动TTL电路,而TTL电路一般不能驱动CMOS电路,在TTL电路和CMOS电路混用的系统中,应特别注意。1.常用的总线驱动器

系统总线中地址总线和控制总线是单向的,因此驱动器可以选用单向的,如74LS244。74LS244还带有三态控制,能实现总线缓冲和隔离。.

系统中的数据总线是双向的,其驱动器也要选用双向的,如74LS245。74LS245也是三态的,有一个方向控制端DIR,DIR=1时输出(An→Bn),DIR=0时输入(An←Bn)。图7.3总线驱动器芯片管脚(a)单向驱动器;(b)双向驱动器1G,2G为H时,Y为高阻;1G,2G为L时,Y=AG为H时,Y为高阻;G=L,DIR=0;B→AG=L,DIR=1;A→B2.总线驱动器的接口图7.48051与总线驱动器的接口

(a)

P2口的驱动;(b)P0口的驱动7.2外部存储器的扩展

MCS-51系列单片机数据存储器和程序存储器的地址空间是相互独立的。

MCS-51系列单片机具有64K的程序存储器寻址空间和64K的片外数据存储器寻址空间。如果系统需要用到的存储器超过了单片机本身具有的容量,就要进行片外程序存储器或者数据存储器的扩展。程序存储器的扩展要解决的几个问题:

.程序存储器的作用——

存放程序代码或常数表格

.扩展时所用芯片——

一般用只读型存储器芯片(可以是

EPROM、E2PROM、FLASH芯片等)。

.扩展电路连接

——

用EPROM2716、2732等扩展程序存储器。

.存储器地址分析——单片机输出什么地址值时,可以指向存储器中的某一单元。7.2.1外部程序存储器的扩展图7.5MCS-51单片机程序存储器的扩展原理1.外部程序存储器的扩展原理与时序分析图2.8读外部程序ROM时序2.EPROM扩展芯片图7.62716的引脚图2716容量:2K*8位2716有五种工作方式,见表7.1。表7.12716工作方式选择图7.72716与8031的连接图

由图7.7可确定2716芯片的地址范围。方法是A10~A0从全0开始,然后从最低位开始依次加1,最后变为全1,相当于211=2048个单元地址依次选通,称为字选。即地址与单元是多对一的关系3.E2PROM2864A的扩展图7.82864A管脚及原理框图(a)管脚;(b)原理框图表7.22864A工作方式图7.92864A与8031的接口电路7.2.2外部数据存储器的扩展1.外部数据存储器的扩展方法及时序图7.10MCS-51数据存储器的扩展示意图图2-9读外部数据RAM时序2.静态RAM芯片

图7.116264管脚图I/O0~7:数据线A0~A12:地址线CE、CE:片选线OE:输出使能WE:写入使能VCC、GND:电源NC:未使用表7.36264的工作方式图7.12扩展6264静态RAM6264的8KB地址范围不唯一(因为A14A13可为任意值),6000H~7FFFH是一种地址范围。当向该片6000H单元写一个数据DATA时,可用如下指令:

MOVA,#DATA

MOVDPTA,#6000H

MOVX@DPTR,A

从7FFFH单元读一个数据时,可用如下指令:

MOVDPTR,#7FFFH

MOVX

A,@DPTR7.2.3多片存储器芯片的扩展1.线选法寻址线选法使用P2、P0口的低位地址线对每个芯片内的统一存储单元进行寻址,称为字选。所需地址线数由每片的存储单元数决定,对于8K×8容量的芯片需要13根地址线A12~A0。然后将余下的高位地址线分别接到个存储芯片的片选端CS,称为线选。图7.13用线选法实现片选

下图是利用线选法,用3片2746A扩展24K×8位EPROM的电路图:各芯片的地址范围如下:2.译码法寻址译码法寻址就是利用地址译码器对系统的片外高位地址进行译码,以其译码输出作为存储器芯片的片选信号,将地址划分为连续的地址空间块,避免了地址的间断。译码法仍用低位地址线对每片内的存储单元进行寻址,而高位地址线经过译码器译码后输出作为各芯片的片选信号。常用的地址译码器是3/8译码器74LS138。

译码法又分为完全译码和部分译码两种。

完全译码:译码器使用全部地址线,地址与存储单元一一对应;部份译码:译码器使用部份地址线,地址与存储单元不是一一对应。部份译码会大量浪费寻址空间,对于要求存储器空间大的微机系统,一般不采用。但对于单片机系统,由于实际需要的存储容量不大,采用部份译码可简化译码电路。

例要求用2764芯片扩展8031的片外程序存储器空间,分配的地址范围为0000H~3FFFH。本例采用完全译码方法。

(1)确定片数。因0000H~3FFFH的存储空间为16KB,则所需芯片数=实际要求的存储容量/单个芯片的存储容量

=16KB/8KB

=2(片)(2)分配地址范围。(3)存储器扩展连接如图7.14所示。图7.14采用地址译码器扩展存储器的连接图7.3输入/输出接口的扩展7.3.18255A可编程并行I/O接口

8255A具有3个8位并行I/O口,称为PA口、PB口和PC口。其中PC口又分为高4位和低4位,通过控制字设定可以选择三种工作方式:①基本输入/输出;②选通输入/输出;③PA口为双向总线。

7.3.28155可编程并行I/O接口

8155芯片内具有256个字节的RAM,两个8位、一个6位的可编程并行I/O接口和一个14位的计数器,与MCS-51单片机接口简单,是单片机应用系统中广泛使用的芯片。

这种I/O口一般都是通过P0口扩展。由于P0口是双向数据线,图中74LS244作为输入口、74LS273作为输出口,它们都可以通过P0口输入、输出数据。输出控制信号由P2.0和WR反合成,当二者同时为0电平时,“或”门输出0电平,273的Q=D,数据进入273,当WR反无效(升为0)时,数据锁存在Q端并输出。输入控制信号由P2.0和RD反合成,当二者同时为0电平时,“或”门输出0电平,244的Q=D(直通),当RD反无效时,CPU已读走数据,244的Q端也不锁存输入的数据。注意使用是P2.0(A8)必须为0。7.4管理功能部件的扩展7.4.1键盘接口

键盘实际上是由排列成矩阵形式的一系列按键开关组成,用户通过键盘可以向CPU输入数据、地址和命令。键盘按其结构形式可分为:编码式键盘和非编码式键盘两类。单片机系统中普遍使用非编码式键盘,这类键盘主要解决以下几个问题:

①键的识别;

②如何消除键的抖动;

③键的保护。

1.非编码式键盘工作原理非编码式键盘识别按键的方法有两种:一是行扫描法,二是线反转法。

1)行扫描法通过行线发出低电平信号,如果该行线所连接的键没有按下的话,则列线所接的端口得到的是全“1”信号,如果有键按下的话,则得到非全“1”信号。为了防止双键或多键同时按下,往往从第0行一直扫描到最后1行,若只发现1个闭合键,则为有效键,否则全部作废。找到闭合键后,读入相应的键值,再转至相应的键处理程序。2)线反转法线反转法也是识别闭合键的一种常用方法,该法比行扫描速度快,但在硬件上要求行线与列线外接上拉电阻。先将行线作为输出线,列线作为输入线,行线输出全“0”信号,读入列线的值,然后将行线和列线的输入输出关系互换,并且将刚才读到的列线值从列线所接的端口输出,再读取行线的输入值。那么在闭合键所在的行线上值必为0。这样,当一个键被按下时,必定可读到一对唯一的行列值。2.键盘接口电路图7.26采用8155的键盘接口电路

下面的程序是用行扫描法进行键扫描的程序,其中KS1为判键闭合的子程序。有键闭合时(A)=0。DIR为数码显示器扫描显示子程序,执行一遍的时间约6ms。程序执行后,若键闭合,键值存入A中,键值的计算公式是:键值=行号×4+列号;若无键闭合,则A中存入标志FFH。KEY1:LCALLKS1;检查有无闭合键?

JNZLK1

;(A)=0,有键闭合则转

LJMPLK8

;无闭合键则返回LK1:LCALLDIR

;延时12ms

LCALLDIR;清抖

LCALLLS1

;再检查有键闭合否?

JNZLK2;有键闭合则转

LJMPLK8

;无键闭合则返回LK2:MOVR3,#00H;行号初值送R3

MOVR2,#FEH;行扫描初值送R2

LK3:MOVDPTR,#0101H;指向8155口A

MOVA,R2;行扫描值送A

MOVX@DOTR,A;扫描1行

INCDPTR

INCDPTR;指向8155口C

MOVXA,@DPTR;读入列值

ANLA,#0FH;保留低4位

MOVR4,A;暂存列值

CJNZA,#0FH,LK4;列值非全“1”则转

MOVA,R2;行扫描值送AJNBACC.7,LK8;扫至最后一行则转RLA

;未扫完,则移至下一行MOVR2,A;行值存入R2中INCR3;行号加1

SJMPLK3;转至扫描下一行LK4:MOVA,R3;行号送入A

ADDA,R3;行号×2

MOVR5,A

ADDA,R5;行号×4

MOVR5,A;存入R5中

MOVA,R4;列值送ALK5:RRCA

;右移一位

JNCLK6;该位为0则转

INCR5;列号加1

SJMPLK5;列号未判完则继续LK6:MOV20H,R5;存键值LK7:LCALLDIR;扫描一遍显示器

LCALLKS1;发扫描信号

JNZLK7

;键未释放等待

LCALLDIR

;键已释放

LCALLDIR;延时12ms,清抖

MOVA,20H

;键值存入A中KND:RETLK8:MOVA,#FFH;无键标志FFH存入A中

RET

KS1:MOVDPTR,#0101H;判键子程序

MOVA,#00H;全扫描信号

MOVX@DPTR,A;发全扫描信号

INCDPTR

INCDPTR;指向8155口C

MOVXA,@DPTR;读入列值

ANLA,#0FH;保留低4位

ORLA,#F0H;高4位取“1”

CPLA ;取反,无键按下则全“0”

RET最简单的键盘、指示灯扩展法7.4.2LED显示器接口1.LED显示器结构与原理图7.277段LED数码显示器各段码位的对应关系如下:表7.8十六进制数及空白与P的显示段码2.LED显示器接口电路图7.286位动态显示器接口图7.29显示子程序流程图程序清单如下:

DIR:MOVR0,#79H;显示缓冲区首址送R0

MOVR3,#01H

;使显示器最右边位亮

MOVA,R3

LD0:MOVDPTR,#0101H;扫描值送PA口

MOVX@DPTR,A

INCDPTR

;指向PB口

MOVA,@R0;取显示数据

ADDA,#12H;加上偏移量

MOVXA,@A+PC;取出字形

MOVX@DPTR,A;送出显示ACALLDL1 ;延时

INCR0 ;缓冲区地址加1

MOVA,R3;

JBACC.5,LD1 ;扫到第6个显示位了吗?

RLA ;没有,R3左环移一位,扫描下一个显示位

MOVR3,A

AJMPLD0

LD1:

RET

DSEG:DB3FH,06H,5BH,4FH,66H,6DH;显示段码表DSEG1:DB7DH,07H,7FH,6FH,77H,7CHDSEG2:DB39H,5EH,79H,71H,73H,3EH

DSEG3:DB31H,61H,1CH,23H,40H,03H

DSEG4:DB18H,00H,00H,00H

DL1:MOVR7,#02H[DW];延时子程序DL:MOVR6,#0FFH

DL6:DJNZR6,DL6

DJNZR7,DL

RET7.4.3键盘显示器接口82791.8279的组成及引脚

8279芯片有40条引脚,由单一+5V电源供电。它主要由以下几部分组成:

(1)I/O控制和数据缓冲器;

(2)控制和定时寄存器及定时控制部分;

(3)扫描计数器;

(4)回送缓冲器与键盘去抖动控制电路;

(5)FIFO(先进后出)寄存器和状态电路;

(6)显示器地址寄存器及显示RAM。图7.308279的引脚图2.8279的接口电路与应用图7.318031与8279接口连接框图7.5A/D和D/A接口功能的扩展

由于计算机本身只能处理数字量(二进制代码)。而在计算机应用领域中,特别是在实时控制系统中,常需要把外界连续变化的物理量(如温度、压力、流量、速度),变成数字量输入计算机进行加工、处理。反之,也需要把计算机计算结果的数字量转换成连续变化的模拟量输出,用以控制,调节些执行机构,实现对被控对象的控制。这种把模拟量变成数字量和把数字量转换成模拟量,就称为模/数和数/模转换。实现这类转换的器件,就称为模/数(A/D)和数/模(D/A)转换器。7.5.1A/D转换器接口

1.概述

A/D转换器用以实现模拟量向数字量的转换。按转换原理可分为4种:计数式、双积分式、逐次逼近式以及并行式A/D转换器。逐次逼近式A/D转换器是一种速度较快,精度较高的转换器,其转换时间大约在几微秒到几百微秒之间。常用的这种芯片有:(1)ADC0801~ADC0805型8位MOS型A/D转换器;

(2)ADC0808/0809型8位MOS型A/D转换器;

(3)ADC0816/0817型8位MOS型A/D转换器;量化间隔和量化误差是A/D转换器的主要技术指标之一。量化间隔由下式计算:

其中n为A/D转换器的位数。量化误差有两种表示方法:一种是绝对量化误差;另一种是相对量化误差。绝对量化误差2.典型A/D转换器芯片ADC0809简介ADC0809是采用CMOS工艺制造的双列直插式单片8位A/D转换器。分辨率8位,精度7位,带8个模拟量输入通道,有通道地址译码锁存器,输出带三态数据锁存器。启动信号为脉冲启动方式,最大可调节误差为±1LSB,ADC0809内部没有时钟电路,故CLK时钟需由外部输入,fclk允许范围为500kHz~1MHz,典型值为640kHz。每通道的转换需66~73个时钟脉冲,大约100~110μs。工作温度范围为-40℃~+85℃。功耗为15mW,输入电压范围为0~5V,单一+5V电源供电。它可以直接与Z80、8085、8080、8031等CPU相连,也可以独立使用。图7.32ADC0809的内部结构图7.33ADC0809引脚图表7.9地址码与输入通道的对应关系图7.34ADC0809时序图3.ADC0809与8031的中断方式接口电路图7.36ADC0809中断方式硬件接口

这里将ADC0809作为一个外部扩展的并行I/O口,直接由8031的P2.0和WR脉冲进行启动。因而其端口地址为0FEFFH。用中断方式读取转换结果的数字量,模拟量输入通道选择端ADDA、ADDB、ADDC分别与8031的P0.0、P0.1、P0.2直接相连,CLK由8031的ALE提供。其读取通道0转换后的数字量程序段如下:ORG1000H

INADC:SETBIT1;INT1设为边沿触发

SETBEA;开中断INT1

SETBEX1MOVDPTR,#0FEFFH;端口地址送DPTR

MOVA,#00H;选择0通道输入

MOVX@DPTR,A;启动输入

ORG0013H

AJMPPINT1

PINT1:…

MOVDPTR,#0FEFFH;端口地址送DPTR

MOVXA,@DPTR;读取IN0的转换结果

MOV50H,A;存入50H单元

MOVA,#00H

MOVX@DPTR,A;启动A/D,IN0通道输入并转换

RETI;返回7.5.2D/A转换器接口1.D/A转换器的性能指标

(1)分辨率。分辨率是D/A转换器对输入量变化敏感程度的描述,与输入数字量的位数有关。如果数字量的位数为n,则D/A转换器的分辨率为2-n。(2)建立时间。建立时间是描述D/A转换速度的一个参数,具体是指从输入数字量变化到输出达到终值误差±1/2LSB(最低有效位)时所需的时间。通常以建立时间来表明转换速度。(3)接口形式。D/A转换器有两类:一类不带锁存器,另一类则

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论