《单片机原理与应用第八章》由会员分享,可在线阅读,更多相关《单片机原理与应用第八章(106页珍藏版)》请在金锄头文库上搜索。
1、第8章 单片机接口技术,8.1 单片机的系统总线 8.2 简单并行I/O口扩展 8.3 可编程并行I/O口扩展 8.4 D/A转换与DAC0832应用 8.5 A/D转换与ADC0809应用 8.6 开关量功率驱动接口技术,1,第8章 单片机接口技术,8.1 单片机的系统总线8.1.1 三总线结构 8.1.2 地址锁存原理及实现 8.2 简单并行I/O口扩展 8.3 可编程并行I/O口扩展 8.4 D/A转换与DAC0832应用 8.5 A/D转换与ADC0809应用 8.6 开关量功率驱动接口技术,2,计算机系统是由众多功能部件组成,三总线:地址总线(AB) 、数据总线(DB)、控制总线(C
2、B),第8章 单片机接口技术,为减少连接线,简化组成结构,可把具有共性的连线归并成一组公共连线,即总线传送信息的公共通道(BUS)。,51单片机属于总线型结构,片内各功能部件都是按总线关系设计并集成为整体的。,3,51单片机与外部设备连接有两种方式:,第8章 单片机接口技术,总线方式,I/O口方式(非总线方式 ),4,一般CPU都有专用总线引脚,51单片机没有专用总线引脚,而是采用了I/O引脚兼作总线引脚的方案。,第8章 单片机接口技术,I/O口方式采用片内RAM指令访问外设例如 MOV A,P0 (片内地址80H,90H,A0H,B0H),总线方式采用片外RAM指令访问外设例如 MOVX A
3、, DPTR (片外RAM 00FFFFH),单片机片外总线的地址都是片外RAM空间的地址,5,51单片机引脚与片外总线的关系,控制总线P3口+控制引脚 数据总线P0口 地址总线P0+P2,第8章 单片机接口技术,为减少引脚数量,又采用了复用P0口方案,即数据总线和低8位地址总线都由P0口承担。 为了将数据与地址信息分开,需要在P0口外部增加接口芯片地址锁存器。,6,第8章 单片机接口技术,8.1 单片机的系统总线8.1.1 三总线结构 8.1.2 地址锁存原理及实现 8.2 简单并行I/O口扩展 8.3 可编程并行I/O口扩展 8.4 D/A转换与DAC0832应用 8.5 A/D转换与AD
4、C0809应用 8.6 开关量功率驱动接口技术,7,地址锁存器74HC373,74LS373,54LS377等 373的工作过程: 1、P0口先将低8位地址信号锁存在373中; 2、373的输出端与输入端(P0口)隔离; 3、P0口输出8位数据信号+P2口输出高8位地址信号+373输出低8位地址信号同时产生16位地址信号+8位数据信号,第8章 单片机接口技术,8,373带有三态输出门的8D触发器,原理:/OE端为低电平时,D端信号在 LE正脉冲作用下实现“接通-锁存-隔离”功能。,第8章 单片机接口技术,结构:8个负边沿触发的D触发器和8个负逻辑控制的三态门,9,一种典型的P0口地址/数据接口
5、电路,第8章 单片机接口技术,接线方法: /OE地,LE正脉冲源,D0D7P0,Q0Q7外设地址端,地址锁存使能输出,10,第8章 单片机接口技术,MOVX指令部分时序图,S1P2S2P2期间:P0 低8位地址信息(A0 A7) ,ALE正脉冲Q0Q7锁存输出低8位地址信息(A0 A7) S5P1S6P1期间:P0 8位数据信息(D0D7)P0输入/输出8位数据 S1P2 S6P1期间: P0可以分时输出低8位地址和8位数据信息。,11,第8章 单片机接口技术,8.1 单片机的系统总线 8.2 简单并行I/O口扩展8.2.1 访问扩展端口的软件方法8.2.2 简单并行输出接口的扩展 8.2.2
6、 简单并行输入接口的扩展 8.3 可编程并行I/O口扩展 8.4 D/A转换与DAC0832应用 8.5 A/D转换与ADC0809应用 8.6 开关量功率驱动接口技术,12,I/O口扩展可有3种办法: 采用锁存或缓冲芯片的简单并行扩展; 采用串口方式0的串并转换扩展; 采用可编程控制功能芯片的并行扩展。,第8章 单片机接口技术,P0和P2口作为地址/数据总线后,留给用户使用的I/O口只有P1口和部分P3口,通常需要扩展I/O口数量。,13,访问扩展端口有2种软件方法:,1、汇编语言方法,第8章 单片机接口技术,14,MOVX指令的写端口时序,第8章 单片机接口技术,15,MOVX指令的读端口
7、时序,第8章 单片机接口技术,16,2、C51语言方法,#include #define port XBYTE 0x1000 unsigned char temp1,temp2; temp1 = port; /读端口操作port = temp2; /写端口操作 ,例如,对占用片外RAM 1000H的端口进行读写操作:,第8章 单片机接口技术,17,方法2:利用xdata存储类型指针变量对外设端口进行操作,例如,同样针对上述举例,程序设计如下:,unsigned char xdata *PORT =0x1000 ;/定义指针变量 unsigned char temp1,temp2;temp =
8、*PORT; /读0x1000端口*PORT = temp2; /写0x1000端口,第8章 单片机接口技术,数据类型 存储类型1 * 存储类型2 变量名 =地址常数;,18,方法3:采用_at_关键字访问片外RAM绝对地址,使用_at_可对指定存储器空间的绝对地址定位,但使用_at_定义的变量只能为全局变量。例如: unsigned char xdata xram0x80 _at_ 0x1000; /在片外RAM 0x1000处定义一个char型数组变量xram,元素个数为0x80,第8章 单片机接口技术,数据类型 xdata *变量名 =地址常数;,19,第8章 单片机接口技术,8.1 单
9、片机的系统总线 8.2 简单并行I/O口扩展8.2.1 访问扩展端口的软件方法8.2.2 简单并行输出接口的扩展 8.2.2 简单并行输入接口的扩展 8.3 可编程并行I/O口扩展 8.4 D/A转换与DAC0832应用 8.5 A/D转换与ADC0809应用 8.6 开关量功率驱动接口技术,20,可编程I/O扩展芯片(功能可由控制字设置) 锁存/缓冲器接口芯片(功能固定不能改变),两类常用集成接口芯片:,第8章 单片机接口技术,21,简单并行扩展常用电路芯片: 74LS 273、377 、244、373等,第8章 单片机接口技术,22,用74LS273扩展并行输出口,原理:/MR端为高电平时
10、,D端信号在CP(或CLK)端的脉冲下降沿时锁存到Q端,此后D与Q隔离。,用法: MRVcc,CP正脉冲源,Di接P0,Qi外设输入端,第8章 单片机接口技术,组成:8个带清零和负边沿触发功能的D触发器,23,实例1 利用两片74LS273扩展16位并行I/O口,且使其外接LED按1010 1010 0000 1111的规律发光。,与通用I/O口方式相比, P0口无需上拉电阻。,第8章 单片机接口技术,24,分析:两个273锁存不同P0数据的关键是,CLK端信号应为包含不同地址信息的下降沿脉冲。,第8章 单片机接口技术,25,如何将WR信号与地址信号合成为CLK信号?,U2选通U3不选通的地址
11、:01xx xxxx xxxx xxxx(0x7fff),U2不选通U3选通的地址:10xx xxxx xxxx xxxx(0xbfff),或门一端为0时,相当于给或门 “解锁”; 或门一端为1时,相当于给或门 “加锁”。,第8章 单片机接口技术,26,实例1运行效果,第8章 单片机接口技术,27,第8章 单片机接口技术,8.1 单片机的系统总线 8.2 简单并行I/O口扩展8.2.1 访问扩展端口的软件方法8.2.2 简单并行输出接口的扩展 8.2.2 简单并行输入接口的扩展 8.3 可编程并行I/O口扩展 8.4 D/A转换与DAC0832应用 8.5 A/D转换与ADC0809应用 8.
12、6 开关量功率驱动接口技术,28,输入接口扩展:具有三态缓冲功能的芯片,例如74LS244、74LS245等,原理:每组由1个选通端或控制4只三态门。当选通信号为低电平时,三态门导通,数据从A端流向Y端。当选通信号为高电平时,三态门截止,输入和输出之间呈高阻态。,29,U3口地址: 0xxx xxxx xxxx xxxx(0x7fff),举例:根据左图接线原理,分析其读端口时的地址,第8章 单片机接口技术,30,实例2:分析如下端口扩展原理,编程实现键控LED的功能。具体要求为,启动后先置黑屏,随后根据按键动作点亮相应LED(保持亮灯状态,直至新的按键压下为止)。,第8章 单片机接口技术,31
13、,电路分析,芯片273和244的片选均由P2.0实现,故访问地址均为 xxxx xxx0 xxxx xxxx (0xfeff),读操作:/RD=0,/WR=1,故U1:B=0,U1:A=1,芯片244被选中。,写操作: /RD=1,/WR=0,故U1:B=1,U1:A=0,芯片273被选中。,第8章 单片机接口技术,32,实例2程序,第8章 单片机接口技术,33,实例2运行效果,第8章 单片机接口技术,34,由于本例只有1个地址,可将电路中的U1元件省略。,第8章 单片机接口技术,35,第8章 单片机接口技术,8.1 单片机的系统总线 8.2 简单并行I/O口扩展 8.3 可编程并行I/O口扩
14、展8.3.1 8255A的内部结构、引脚及地址8.3.2 8255A 的控制字 8.4 D/A转换与DAC0832应用 8.5 A/D转换与ADC0809应用 8.6 开关量功率驱动接口技术,36,可编程接口功能可由计算机指令改变的接口芯片 特点:使用灵活,不需要或只需要很少的外加硬件 常用芯片(INTEL系列):8259可编程中断控制器8253可编程计数/定时器8250可编程串行接口(异步)8251可编程串行接口(异步+同步)8255可编程并行扩展接口8279可编程键盘显示接口8237可编程DMA控制器8155可编程多功能接口,第8章 单片机接口技术,37,80C51,8255芯片可以被编程
15、为多种工作方式,输出功能端口,输入功能端口,举例,第8章 单片机接口技术,38,8255,1、8255A的内部结构,第8章 单片机接口技术,4个逻辑结构: (1)A口、B口和C口:8255A连接外设的3个通道,每个通道有1个8位控制寄存器,对外有8根引脚,可以传送外设的输入/输出数据或控制信息。 (2)A组和B组控制电路:两组控制8255A工作方式的电路。其中A组控制A口及C口的高4位,B组控制B口及C口的低4位。,39,第8章 单片机接口技术,(3)数据总线缓冲器:一个双向三态8位驱动口,用于连接单片机的数据总线,传送数据或控制字。 (4)读/写控制逻辑:电路接收CPU送来的读、写命令和选口
16、地址,用于控制对8255A的读/写。,40,第8章 单片机接口技术,2、8255A的引脚,40引脚双列直插式芯片,41,第8章 单片机接口技术,3、8255A与单片机的连线,一般采用总线方式,典型接线方法如图,42,第8章 单片机接口技术,数据端D0D7直接和单片机的P0口对应相连; 复位端RESET接单片机的复位端RST; 内部寄存器选择位A0A1和片选端可接单片机的高8位地址引脚。,采用图示接线关系时,8255A内部各寄存器的地址:,43,PC口,第8章 单片机接口技术,8.1 单片机的系统总线 8.2 简单并行I/O口扩展 8.3 可编程并行I/O口扩展8.3.1 8255A的内部结构、引脚及地址8.3.2 8255A 的控制字 8.4 D/A转换与DAC0832应用 8.5 A/D转换与ADC0809应用 8.6 开关量功率驱动接口技术,