《单片机系统扩展与接口技术.ppt》由会员分享,可在线阅读,更多相关《单片机系统扩展与接口技术.ppt(84页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单元九单元九 单片机系统扩展与接口技术单片机系统扩展与接口技术 一、一、外部总线的扩展外部总线的扩展 二、二、外部存储器的扩展外部存储器的扩展三、三、输入输入/输出接口的扩展输出接口的扩展 四、四、管理功能部件的扩展管理功能部件的扩展 五、五、A/D和和D/A接口功能的扩展接口功能的扩展 系统扩展的含义系统扩展的含义 单片机中虽然已经集成了CPU、I/O口、定时器、中断系统、存储器等计算机的基本部件(即系统资源),但是对一些较复杂应用系统来说,有时感到以上资源中的一种或几种不够用,这就需要在单片机芯片外加相应的芯片、电路,使得有关功能得以扩充,我们称为系统扩展(即系统资源的扩充)。接口的含义:
2、接口的含义:接口接口是连接单片机与外围电路、芯片、设备(如I/O设备、A/D、D/A设备)的中间环节。接口牵涉到包括外围电路、设备、芯片的结构、使用方法、时序要求;单片机本身的硬件、软件资源等很多问题。接口技术要解决系统扩展时单片机与相应芯片的接口(如地址总线、数据总线、控制总线的连接)与编程问题。系统扩展和接口技术一般有以下几方面内容:系统扩展和接口技术一般有以下几方面内容:1.外部总线的扩展2.外部存储器的扩展3.输入、输出接口的扩展4.管理功能部件(如定时/计数器、键盘/显示器等)的扩展5.A/D和D/A的接口技术7.1 外部总线的扩展外部总线的扩展 一、一、外部总线的扩展外部总线的扩展
3、 图图 7.1 MCS-51外部三总线示意图外部三总线示意图 图图 7.2 地址锁存器的引脚和接口地址锁存器的引脚和接口 二、总线驱动二、总线驱动 在单片机应用系统中,扩展的三总线上挂接很多负载,如存储器、并行接口、A/D接口、显示接口等,但总线接口的负载能力有限,因此常常需要通过连接总线驱动器总线驱动器进行总线驱动。总线驱动器对于单片机的I/O口只相当于增加了一个TTL负载,因此驱动器除了对后级电路驱动外,还能对负载的波动变化起隔离作用。在对TTL 负载驱动时,只需考虑驱动电流的大小;在对MOS负载驱动时,MOS负载的输入电流很小,更多地要考虑电平的兼容和分布电容的电流。一般TTL 电平和C
4、MOS 电平是不兼容的,CMOS 电路能驱动TTL 电路,而TTL 电路一般不能驱动CMOS 电路,在TTL 电路和CMOS 电路混用的系统中,应特别注意。1 常用的总线驱动器常用的总线驱动器 系统总线中地址总线和控制总线是单单向向的,因此驱动器可以选用单向的,如74LS244。74LS244还带有三态控制,能实现总线缓冲和隔离。.系统中的数据总线是双向的,其驱动器也要选用双向的,如74LS245。74LS245 也是三态的,有一个方向控制端DIR,DIR=1时输出(AnBn),DIR=0时输入(AnBn)。图 7.3 总线驱动器芯片管脚(a)单向驱动器;(b)双向驱动器 1G,2G为H时,Y
5、为高阻;1G,2G为L 时,Y=AG为H时,Y为高阻;GL,DIR0;BAGL,DIR1;AB2.总线驱动器的接口总线驱动器的接口 图 7.4 8051与总线驱动器的接口与总线驱动器的接口(a)P2 口的驱动;(b)P0 口的驱动 7.2 外部存储器的扩展外部存储器的扩展 MCS51系列单片机数据存储器和程序存储器的地址空间是相互独立的。MCS51系列单片机具有64K的程序存储器寻址空间和64K的片外数据存储器寻址空间。如果系统需要用到的存储器超过了单片机本身具有的容量,就要进行片外程序存储器或者数据存储器的扩展。程序存储器的扩展要解决的几个问题:.程序存储器的作用 存放程序代码或常数表格 .
6、扩展时所用芯片 一般用只读型存储器芯片(可以是 EPROM、E2PROM、FLASH芯片等)。.扩展电路连接 用EPROM 2716、2732等扩展程序存 储器。.存储器地址分析单片机输出什么地址值时,可以 指向存储器中的某一单元。7.2.1 外部程序存储器的扩展外部程序存储器的扩展图 7.5 MCS-51 单片机程序存储器的扩展原理 1.外部程序存储器的扩展原理与时序分析外部程序存储器的扩展原理与时序分析 图图 2.8 读外部程序读外部程序ROM时序时序 2.EPROM扩展芯片扩展芯片图 7.6 2716的引脚图 2716容量:2K*8位2716 有五种工作方式,见表 7.1。表 7.1 2
7、716工作方式选择 图 7.7 2716与8031的连接图 由图 7.7可确定2716芯片的地址范围。方法是A10A0从全0开始,然后从最低位开始依次加 1,最后变为全1,相当于211=2 048个单元地址依次选通,称为字选。即 地址与单元是多对一的关系3.E2PROM 2864A的扩展的扩展 图图 7.8 2864A管脚及原理框图管脚及原理框图(a)管脚;管脚;(b)原理框图原理框图 表表 7.2 2864A 工作方式工作方式 图 7.9 2864A与8031的接口电路7.2.2 外部数据存储器的扩展外部数据存储器的扩展 1.外部数据存储器的扩展方法及时序外部数据存储器的扩展方法及时序 图
8、7.10 MCS-51 数据存储器的扩展示意图 图图 2-9 读外部数据读外部数据RAM时序时序 2.静态静态RAM芯片芯片 图 7.11 6264 管脚图 I/O 07:数据线A0A12:地址线CE、CE:片选线OE:输出使能WE:写入使能VCC、GND:电源NC:未使用表 7.3 6264的工作方式 图 7.12 扩展6264 静态RAM 6264的8 KB地址范围不唯一(因为A14A13可为任意值),6000H7FFFH是一种地址范围。当向该片6000H单元写一个数据DATA时,可用如下指令:MOV A,DATA MOV DPTA,6000H MOVX DPTR,A从FFFH单元读一个数
9、据时,可用如下指令:MOV DPTR,7FFFH MOVX ,DPTR 7.2.3 多片存储器芯片的扩展多片存储器芯片的扩展 1.线选法寻址线选法寻址 线选法使用P2、P0 口的低位地址线对每个芯片内的统一存储单元进行寻址,称为字选。所需地址线数由每片的存储单元数决定,对于8K8 容量的芯片需要13 根地址线A12A0。然后将余下的高位地址线分别接到个存储芯片的片选端CS,称为线选。图 7.13 用线选法实现片选 下图是利用线选法,用3 片2746A 扩展24K8 位EPROM 的电路图:各芯片的地址范围如下:2.译码法寻址译码法寻址 译码法寻址就是利用地址译码器对系统的片外高位地址进行译码,
10、以其译码输出作为存储器芯片的片选信号,将地址划分为连续的连续的地址空间块,避免了地址的间断。译码法仍用低位地址线对每片内的存储单元进行寻址,而高位地址线经过译码器译码后输出作为各芯片的片选信号。常用的地址译码器是 3/8 译码器 74LS138。译码法又分为完全译码和部分译码两种。译码法又分为完全译码和部分译码两种。完全译码完全译码:译码器使用全部地址线,地址与存储单元一一对应;部份译码部份译码:译码器使用部份地址线,地址与存储单元不是一一对应。部份译码会大量浪费寻址空间,对于要求存储器空间大的微机系统,一般不采用。但对于单片机系统,由于实际需要的存储容量不大,采用部份译码可简化译码电路。例例
11、 要求用 2764 芯片扩展 8031 的片外程序存储器空间,分配的地址范围为 0000H3FFFH。本例采用完全译码完全译码方法。(1)确定片数。因0000H 3FFFH的存储空间为16 KB,则 所需芯片数=实际要求的存储容量/单个芯片的存储容量 =16 KB/8 KB =2(片)(2)分配地址范围。(3)存储器扩展连接如图 7.14 所示。图 7.14 采用地址译码器扩展存储器的连接图 7.3 输入输入/输出接口的扩展输出接口的扩展 7.3.1 8255A可编程并行可编程并行I/O接口接口 8255A具有 3 个 8 位并行I/O口,称为PA口、PB口和PC口。其中PC口又分为高 4 位
12、和低 4 位,通过控制字设定可以选择三种工作方式:基本输入/输出;选通输入/输出;PA口为双向总线。7.3.2 8155 可编程并行可编程并行I/O接口接口 8155 芯片内具有256 个字节的RAM,两个8 位、一个6 位的可编程并行I/O 接口和一个14 位的计数器,与MCS-51 单片机接口简单,是单片机应用系统中广泛使用的芯片。这种I/O口一般都是通过P0口扩展。由于P0口是双向数据线,图中74LS244作为输入口、74LS273作为输出口,它们都可以通过P0口输入、输出数据。输出控制信号由P2.0和WR反合成,当二者同时为电平时,“或”门输出电平,273的,数据进入273,当反无效(
13、升为)时,数据锁存在端并输出。输入控制信号由.和反合成,当二者同时为电平时,“或”门输出电平,244的(直通),当反无效时,已读走数据,244的端也不锁存输入的数据。注意使用是P2.0(A8)必须为0。7.4 管理功能部件的扩展管理功能部件的扩展 7.4.1 键盘接口键盘接口 键盘实际上是由排列成矩阵形式的一系列按键开关组成,用户通过键盘可以向CPU输入数据、地址和命令。键盘按其结构形式可分为:编码式键盘和非编码式键盘两类。单片机系统中普遍使用非编码式键盘,这类键盘主要解决以下几个问题:键的识别;如何消除键的抖动;键的保护。1.非编码式键盘工作原理非编码式键盘工作原理 非编码式键盘识别按键的方
14、法有两种:一是行扫描法,二是线反转法。1)行扫描法 通过行线发出低电平信号,如果该行线所连接的键没有按下的话,则列线所接的端口得到的是全“1”信号,如果有键按下的话,则得到非全“1”信号。为了防止双键或多键同时按下,往往从第 0 行一直扫描到最后 1 行,若只发现 1 个闭合键,则为有效键,否则全部作废。找到闭合键后,读入相应的键值,再转至相应的键处理程序。2)线反转法 线反转法也是识别闭合键的一种常用方法,该法比行扫描速度快,但在硬件上要求行线与列线外接上拉电阻。先将行线作为输出线,列线作为输入线,行线输出全“0”信号,读入列线的值,然后将行线和列线的输入输出关系互换,并且将刚才读到的列线值
15、从列线所接的端口输出,再读取行线的输入值。那么在闭合键所在的行线上值必为 0。这样,当一个键被按下时,必定可读到一对唯一的行列值。2.键盘接口电路键盘接口电路 图 7.26 采用8155的键盘接口电路 下面的程序是用行扫描法进行键扫描的程序,其中KS1 为判键闭合的子程序。有键闭合时(A)=0。DIR为数码显示器扫描显示子程序,执行一遍的时间约6 ms。程序执行后,若键闭合,键值存入A中,键值的计算公式是:键值=行号4+列号;若无键闭合,则A中存入标志FFH。KEY1:LCALL KS1 ;检查有无闭合键?JNZ LK1 ;(A)=0,有键闭合则转 LJMP LK8 ;无闭合键则返回 LK1:
16、LCALL DIR ;延时 12 ms LCALL DIR ;清抖 LCALL LS1 ;再检查有键闭合否?JNZ LK2 ;有键闭合则转 LJMP LK8 ;无键闭合则返回 LK2:MOV R3,00H ;行号初值送R3 MOV R2,FEH ;行扫描初值送R2LK3:MOV DPTR,0101H ;指向 8155 口A MOV A,R2 ;行扫描值送A MOVX DOTR,A ;扫描 1 行 INC DPTR INC DPTR ;指向 8155 口C MOVX A,DPTR ;读入列值 ANL A,0FH ;保留低 4 位 MOV R4,A ;暂存列值 CJNZ A,0FH,LK4 ;列值
17、非全“1”则转 MOV A,R2 ;行扫描值送A JNB ACC.7,LK8 ;扫至最后一行则转RL A ;未扫完,则移至下一行MOV R2,A ;行值存入R2 中INC R3 ;行号加 1SJMP LK3 ;转至扫描下一行 LK4:MOV A,R3 ;行号送入A ADD A,R3 ;行号2 MOV R5,A ADD A,R5 ;行号4 MOV R5,A ;存入R5 中 MOV A,R4 ;列值送A LK5:RRC A ;右移一位 JNC LK6 ;该位为 0 则转 INC R5 ;列号加 1 SJMP LK5 ;列号未判完则继续LK6:MOV 20H,R5;存键值LK7:LCALL DIR
18、;扫描一遍显示器 LCALL KS1 ;发扫描信号 JNZ LK7 ;键未释放等待 LCALL DIR ;键已释放 LCALL DIR ;延时 12 ms,清抖 MOV A,20H ;键值存入A中KND:RET LK8:MOV A,FFH ;无键标志FFH存入A中 RET KS1:MOV DPTR,0101H ;判键子程序 MOV A,00H ;全扫描信号 MOVX DPTR,A ;发全扫描信号 INC DPTR INC DPTR ;指向8155口C MOVX A,DPTR;读入列值 ANL A,0FH ;保留低4位 ORL A,F0H ;高4位取“1”CPL A ;取反,无键按下则全“0”R
19、ET 最简单的键盘、指示灯扩展法7.4.2 LED显示器接口显示器接口 1.LED显示器结构与原理显示器结构与原理 图 7.27 7段LED数码显示器 各段码位的对应关系如下:表 7.8 十六进制数及空白与P的显示段码 2.LED显示器接口电路显示器接口电路 图 7.28 6 位动态显示器接口 图 7.29 显示子程序流程图 程序清单如下:DIR:MOV R0,79H ;显示缓冲区首址送R0MOV R3,01H ;使显示器最右边位亮MOV A,R3LD0:MOV DPTR,0101H ;扫描值送PA口MOVX DPTR,AINC DPTR ;指向PB口MOV A,R0 ;取显示数据ADD A,
20、12H ;加上偏移量MOVX A,A+PC ;取出字形MOVX DPTR,A ;送出显示 ACALL DL1;延时 INC R0;缓冲区地址加 1 MOV A,R3;JB ACC.5,LD1;扫到第 6 个显示位了吗?RL A;没有,R3 左环移一位,扫描下一个显示位 MOV R3,A AJMP LD0LD1:RETDSEG:DB 3FH,06H,5BH,4FH,66H,6DH ;显示段码表DSEG1:DB 7DH,07H,7FH,6FH,77H,7CH DSEG2:DB 39H,5EH,79H,71H,73H,3EHDSEG3:DB 31H,61H,1CH,23H,40H,03HDSEG4:
21、DB 18H,00H,00H,00HDL1:MOV R7,02HDW;延时子程序DL:MOV R6,0FFHDL6:DJNZ R6,DL6 DJNZ R7,DL RET 7.4.3 键盘显示器接口键盘显示器接口8279 1.8279的组成及引脚的组成及引脚 8279 芯片有 40 条引脚,由单一+5 V电源供电。它主要由以下几部分组成:(1)I/O控制和数据缓冲器;(2)控制和定时寄存器及定时控制部分;(3)扫描计数器;(4)回送缓冲器与键盘去抖动控制电路;(5)FIFO(先进后出)寄存器和状态电路;(6)显示器地址寄存器及显示RAM。图 7.30 8279的引脚图 2.8279的接口电路与应
22、用的接口电路与应用 图 7.31 8031与 8279 接口连接框图 7.5 A/D和和D/A接口功能的扩展接口功能的扩展 由于计算机本身只能处理数字量(二进制代码)。而在计算机应用领域中,特别是在实时控制系统中,常需要把外界连续变化的物理量(如温度、压力、流量、速度),变成数字量输入计算机进行加工、处理。反之,也需要把计算机计算结果的数字量转换成连续变化的模拟量输出,用以控制,调节些执行机构,实现对被控对象的控制。这种把模拟量变成数字量和把数字量转换成模拟量,就称为模/数和数/模转换。实现这类转换的器件,就称为模/数(A/D)和数/模(D/A)转换器。7.5.1 A/D转换器接口转换器接口
23、1.概述概述 A/D转换器用以实现模拟量向数字量的转换。按转换原理可分为 4 种:计数式、双积分式、逐次逼近式以及并行式A/D转换器。逐次逼近式A/D转换器是一种速度较快,精度较高的转换器,其转换时间大约在几微秒到几百微秒之间。常用的这种芯片有:(1)ADC0801ADC0805型 8 位MOS型A/D转换器;(2)ADC0808/0809 型 8 位MOS型A/D转换器;(3)ADC0816/0817 型 8 位MOS型A/D转换器;量化间隔和量化误差是A/D转换器的主要技术指标之一。量化间隔由下式计算:其中n为A/D转换器的位数。量化误差有两种表示方法:一种是绝对量化误差;另一种是相对量化
24、误差。绝对量化误差 2.典型典型A/D转换器芯片转换器芯片ADC0809 简介简介 ADC0809 是采用CMOS 工艺制造的双列直插式单片8 位A/D 转换器。分辨率8 位,精度7 位,带8 个模拟量输入通道,有通道地址译码锁存器,输出带三态数据锁存器。启动信号为脉冲启动方式,最大可调节误差为1LSB,ADC0809 内部没有时钟电路,故CLK 时钟需由外部输入,fclk 允许范围为500kHz1MHz,典型值为640kHz。每通道的转换需6673 个时钟脉冲,大约100110s。工作温度范围为-40+85。功耗为15mW,输入电压范围为05V,单一+5V 电源供电。它可以直接与Z80、80
25、85、8080、8031 等CPU 相连,也可以独立使用。图 7.32 ADC0809的内部结构 图 7.33 ADC0809引脚图 表 7.9 地址码与输入通道的对应关系 图 7.34 ADC0809时序图 3.ADC0809与与8031 的的中断方式中断方式 接口电路接口电路图 7.36 ADC0809 中断方式硬件接口 这里将ADC0809 作为一个外部扩展的并行I/O口,直接由8031的P2.0和WR脉冲进行启动。因而其端口地址为 0FEFFH。用中断方式读取转换结果的数字量,模拟量输入通道选择端ADD A、ADD B、ADD C分别与8031的P0.0、P0.1、P0.2 直接相连,
26、CLK由 8031 的ALE提供。其读取通道 0 转换后的数字量程序段如下:ORG 1000H INADC:SETB IT1 ;INT1设为边沿触发 SETB EA ;开中断INT1 SETB EX1 MOV DPTR,0FEFFH ;端口地址送DPTR MOV A,00H ;选择 0 通道输入 MOVX DPTR,A ;启动输入 ORG 0013HAJMP PINT1 PINT1:MOV DPTR,0FEFFH ;端口地址送DPTR MOVX A,DPTR ;读取IN0 的转换结果 MOV 50H,A ;存入 50H单元 MOV A,00H MOVX DPTR,A ;启动A/D,IN0 通道
27、输入并转换 RETI ;返回 7.5.2 D/A转换器接口转换器接口 1.D/A转换器的性能指标转换器的性能指标 (1)分辨率。分辨率是D/A转换器对输入量变化敏感程度的描述,与输入数字量的位数有关。如果数字量的位数为n,则D/A转换器的分辨率为 2-n。(2)建立时间。建立时间是描述 D/A转换速度的一个参数,具体是指从输入数字量变化到输出达到终值误差1/2LSB(最低有效位)时所需的时间。通常以建立时间来表明转换速度。(3)接口形式。D/A转换器有两类:一类不带锁存器,另一类则带锁存器。对于不带锁存器的D/A转换器,为保存单片机的转换数据,在接口处要加锁存器。2.典型典型D/A转换器转换器
28、DAC0832简介简介 图 7.37 DAC0832内部结构框图 图 7.38 图 7.39 DAC0832的引脚图 3.DAC0832与与MCS-51 的接口及应用的接口及应用 1)单缓冲方式 图 7.40 DAC0832单缓冲方式接口电路 执行下面的几条指令就能完成一次D/A转换:MOV DPTR,7FFFH;指向DAC0832 MOV A,DATA;数字量装入A MOVX DPTR,A;完成一次D/A输入与转换 2)双缓冲方式 图 7.41 DAC0832双缓冲方式接口电路 MOV DPTR,0DFFFH ;指向DAC0832(1)MOV A,data1 ;data1送入DAC0832(
29、1)中锁存MOVX DPTR,A ;MOV DPTR,0BFFFH ;指向DAC0832(2)MOV A,data2 ;data2送入DAC0832(2)中锁存MOVX DPTR,AMOV DPTR,7FFFH ;给0832(1)和(2)提供WR信号MOVX DPTR,A ;同时完成D/A转换输出 图 7.42 阶梯波形图 产生阶梯波的程序如下:START:MOV A,00H ;MOV DPTR,7FFFH ;0832 的地址送DPTR MOV R1,0AH ;台阶数为 10LP:MOVX DPTR,A ;送数据至 0832 CALL DELAY ;1 ms延时 DJN2 R1,NEXT ;不到 10 台阶转移 SJMP STRT ;产生下一个周期NEXT:ADD A,10 ;台阶增幅 SJMP LP ;产生下一台阶DELAY:MOV 20H,249 ;1 ms延时程序AGAIN:NOP NOP DJNZ 20H,AGAIN