Lecture07概述IO.ppt_第1页
Lecture07概述IO.ppt_第2页
Lecture07概述IO.ppt_第3页
Lecture07概述IO.ppt_第4页
Lecture07概述IO.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

微机原理与接口技术,输入输出接口 主讲:杨蓉 机电与控制工程学院,接口,接口(interface):两个部件或两个系统之间的交接部分 微机接口:微处理器与各外部设备之间的接口 存储器接口:微处理器与储存器之间的接口,较简单 I/O接口:微处理器与外设之间的接口 微型计算机之间的接口,I/O接口是微机的基本组成部件,I/O接口是微机与外部I/O设备之间的公用边界,I/O接口的作用,采用I/O接口的必要性 外围设备的品种繁多:机械,电子,机电,磁电,光电 所传输的信息的要求不同:数字,模拟,电压,电流等 微机与外设两者信号传输的速度和时序往往不匹配 计算机与外设之间的信息交换应解决的问题 速度不匹配: CPU 100MIPS vs 外设 毫秒级 信号电平不匹配:电传电报 几十伏 vs 计算机 5V 信号格式不匹配:串行数据,并行数据,D/A,A/D 信号时序不匹配,I/O接口的一般结构,信号:CPU与外设之间传送的信号有:数据、状态、控制,状态信号:反映外设当前所处的工作状态。输入设备数据准备好, READY1;输出设备正忙于处理,BUSY1。,控制信号:控制外设的工作。CPU启动或停止外设工作,CPU确定外设 工作方式。,数据信号:CPU和外部设备之间传送的数据信息,每连接一个外设,就需要一个I/O接口(Interface),但每个接口都可以不止一个端口。一个接口芯片(电路)中包括一组寄存器,当CPU和外设进行数据传输时,各类信息在接口中存入不同的寄存器 端口(port):在接口电路中用以完成某种信息传送,并可由编程人员通过端口地址进行读/写的寄存器 一个接口电路可能含有一个或几个I/O端口 数据端口:存放来自CPU和内存的数据或外设送CPU和内存的数据(能读能写) 状态端口:存放外部设备或接口本身当前的工作状态,CPU通过对状态端口的访问检测并了解外设或接口的当前状态(只能读不能写) 控制端口:存放CPU发出的控制外设或接口执行具体操作的命令(只能写不能读) 每一个端口都要分配一个地址。CPU将不同的信息写到不同的端口地址,也从不同的端口地址来读取不同的信息。,外设的编码方式,外设的地址与存储器的地址没有关系;存储器和I/O端口在两个独立的地址空间中; 存在地址重复的问题,即必须区分地址线上发出的地址是存储器地址还是外设地址。,把外设端口当作存储器单元来对待;,外设端口单独编址,外设与存储器统一编址,优点:外设不占存储器地址 缺点:需专门IN和OUT指令,CPU要有区分访问存储器和访问外设的控制线,优点:可以直接使用访问存储器的各种指令访问外设端口,使用方便 缺点:I/O端口地址占用存储器地址空间,译码电路相对复杂,从指令上加以区分,例如:8086系统有专门的输入输出指令: IN A, n OUT n, A,存储器地址,外设地址,0000H FFFFH,00H FFH,存储器地址,0000H FF00H FFFFH,外设地址,MCS-51系统中外设与存储器统一编址,例:8031和外部程序存储器、外部数据存储器以及一个I/O口的连接图。外部ROM是8KB的EPROM。外部RAM是8KB。I/O本身有4个端口,需要至少4个地址。ROM的片选接译码器的/Y0,RAM的片选接译码器的/Y2。请分析各存储器和I/O口的地址范围。,地址范围: ROM x000 0000 0000 0000 x001 1111 1111 1111 RAM x100 0000 0000 0000 x101 1111 1111 1111 I/O 0xxx xxxx xxxx xx00 0xxx xxxx xxxx xx11,存在地址重复问题,MCS-51系统中外设与存储器统一编址,改进:,地址锁存器,3/8译码器,A0A15,8031,A0A12,A15A13,A15,A0A12,A0A12,A0 A1,/Y0 /Y2,/CS ROM,/CS RAM,/CS I/O,地址范围: ROM 0000 0000 0000 0000 0001 1111 1111 1111 RAM 0100 0000 0000 0000 0101 1111 1111 1111 I/O 0xxx xxxx xxxx xx00 0xxx xxxx xxxx xx11,将外设当作数据存储器访问,8051对外设的连接方式和8051对外部存储器的连接方式相同 8051通过控制线/WR和/RD和外设的I/O口连接 /WR(/RD)与I/O的写(读)控制线连接 8051通过访问外部存储器的指令来访问外设接口 当外设端口地址为8位地址时 MOVX A, Ri ;读 MOVX Ri, A ;写 当外设端口地址为16位地址时 MOVX A, DPTR ;读 MOVX DPTR, A ;写,CPU与外设数据传送方式,一、无条件传送,二、查询式传送,三、中断传送方式,四、直接存储器存取方式,一、无条件传送,CPU总是认为外设在任何时刻都是处于“准备好”的状态,传送方式上不需要交换状态信息 外设的工作速度非常快,可以和CPU数据传送速度相比。例如CPU和DAC的连接图,一、无条件传送,CPU总是认为外设在任何时刻都是处于“准备好”的状态,传送方式上不需要交换状态信息 外设的工作速度虽然不高,但两次数据传送的间隔足够长。 例如:8031和一组开关和一个LED显示器的接口。从开关读入一个BCD码,并将读入的值在显示器上显示。输入缓冲器的地址是8000H,输出缓冲器的地址是8002H.,4个开关16个状态,其中00001001对应BCD码,则先转换为7段显示码,再从输出口输出。如果输入是10101111,则属于错误输入,显示字母“E”。 两次输入输出操作之间加上适当的延迟,以保证稳定的显示输出。 START: MOV DPTR, #8000H ;输入口地址 MOVX A, DPTR ;输入BCD码 ANL A, 0FH ;取低4位 CJNE A, #09H, NEXT1 ;检测是否为BCD码 NEXT1: JNC NEXT2 ;不是,转移到next2 MOV DPTR, #TABLE ;准备查表 MOV A, A+DPTR ;查表 MOV DPTR, #8002H ;输出口地址 MOVX DPTR, A ;输出显示 CALL DELAY ;延迟 SJMP START ;再次输入 NEXT2: MOV DPTR, #8002H ;错误输入处理 MOV A, #06H ;“E”的7段码 MOVX DPTR, A ;显示“E” SJMP START ;再次输入 TABLE: DB 40H, 79H, 24H, 30H ;03的7段显示码 DB 19H, 12H, 02H, 78H ;47的7段显示码 DB 00H, 18H ;89的7段显示码,二、查询式传送方式,CPU需不断查询外设的状态,一旦外设满足数据传送的条件,就执行IN或OUT指令,读入或输出数据。,输入外设状态信号Ready,Ready=1,输入数据,N,查询输入,Y,输出外设状态 信号Busy,Busy=1,输出数据,Y,查询输出,N,二、查询式传送方式,查询信号是从数据线的哪一位引入的 查询信号的有效是高电位还是低电位表示,;* ME500单片机开发系统演示程序 - K1-K4状态指示 LED显示 * K1 BIT P1.4 K2 BIT P1.5 K3 BIT P1.6 K4 BIT P1.7 ORG 0000H JMP MAIN ORG 0030H MAIN: MOV SP,#60H MOV P2,#0FFH LOOP: MOV P0,#0FFH ;关闭所有LED MOV P1,#0F0H ;置P1.4-P1.7为输入状态 JNB K1,K1_PROG JNB K2,K2_PROG JNB K3,K3_PROG JNB K4,K4_PROG JMP LOOP K1_PROG: MOV P0,#0FEH ;D00灯亮 JMP LOOP K2_PROG: MOV P0,#0FDH ;D01灯亮 JMP LOOP K3_PROG: MOV P0,#0FBH ;D02灯亮 JMP LOOP K4_PROG: MOV P0,#0F7H ;D03灯亮 JMP LOOP END,CPU与外设数据传送方式,三、中断传送,无条件、查询传送都需要CPU的等待或不断查询,使CPU的效率降低。 中断传送:外设需要传送数据时,申请中断;当CPU允许中断,在中断服务程序中执行IN /OUT指令;然后返回主程序。,无条件、查询、中断传送,每传送一个数据都需要CPU干预一次,限制了数据传送的速度。,外设,DMA(Direct Memory Access):是一种不需要CPU干预也不需要软件介入的高速数据传送方式。在外设(如磁盘)与内存之间成批传送数据时,完全由硬件(DMA)完成外设与内存的数据传送,而不必 CPU的干预。对这一数据传送过程进行控制的硬件称为DMA控制器(DMAC)。,CPU与外设数据传送方式,四、直接数据通信传送DMA,总 线,执行程序指令的 数据传送路径,DMA方式的 数据传送路径,锁存器74LS373,8位D锁存器电路,三态控制输出,D Q G,1D 2D 3D 4D 5D 6D 7D 8D G (选通),1Q 2Q 3Q 4Q 5Q 6Q 7Q 8Q OE (输出允许),当选通端G为高电平,同时输出允许端OE为低电平, 则输出Q = 输入D (输出Q跟随输入D) 当选通端G为低电平,同时输出允许端OE为低电平, 则输出Q = Q0 (Q0为原状态) 当输出允许端OE为高电平, 则输出Q总为高阻态,缓冲器74LS244,三态输出的8位缓冲器/驱动器,8个输入端,分为两路 8个输出端,分为两路 两路数据传送由两个控制信号1G和2G控制 当1G有效时,1Y11Y4 = 1A11A4 当2G有效时,2Y12Y4 = 2A12A4 当1G(或2G)无效时,输出为高阻态,1A1 1A2 1A3 1A4 2A1 2A2 2A3 2A4,1Y1 1Y2 1Y3 1Y4 2Y1 2Y2 2Y3 2Y4,1G,2G,;* ;* * ;* ME500单片机开发系统演示程序 - K5中断计数 * ;* * ;* 5位数码管显示 * ;* * ;* 版本: V1.0 (2006/11/20) * ;* 作者: gguoqing (Email: ) * ;* 网站: (伟纳电子) (伟纳单片机世界) * ;* 邮箱: * ;* * ;*【版权】Copyright(C)伟纳电子 All Rights Reserved * ;*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! * ;* * ;* K5 EQU P3.3 DISSTART EQU 40H ;显示单元首地址 LED_DATA EQU P0 ;数码管数据口定义 COUNT_L EQU 30H ;低位计数单元 COUNT_H EQU 31H ;高位计数单元 ;- ORG 0000H JMP MAIN ORG 0013H JMP INT1_EX1 ORG 0030H ;- MAIN: MOV SP,#60H MOV P0,#0FFH MOV P2,#0FFH MOV 30H,#00H MOV 31H,#00H MOV TCON,04H ;INT1为下降沿触发 ;MOV TCON,00H ;INT1为电平触发 SETB EA SETB EX1 MAIN1: CALL CONVT CALL PLAY JMP MAIN1 ;- ;INT1中断服务子程序 ;- INT1_EX1: PUSH ACC PUSH PSW SETB PSW.3 ;设置当前寄存器 CLR PSW.4 MOV A,COUNT_L ADD A,#01H ;低位计数值加1 MOV COUNT_L,A JNC EX1_01 ;判低位计数值是否有溢出 INC COUNT_H ;高位计数值加1 EX1_01: MOV R4,#0FH ;调显示子程序做键延时 EX1_02: CALL CONVT CALL PLAY DJNZ R4,EX1_02 EX1_END: POP PSW POP ACC RETI ;- ;代码变换 (HEX TO BCD) ; ;双字节十六进制整数转换成三字节BCD码整数 ;入口条件:待转换的双字节十六进制整数在R6、R7 ; R6(高位)R7(低位) ;出口信息:转换后的三字节码整数在R3、R4、R5中。 ; R3(最高位)R4(高位)R5(低位) ;- CONVT: ;HEXTOBCD: PUSH PSW SETB PSW.4 ;设置当前寄存器 CLR PSW.3 MOV R6,COUNT_H MOV R7,COUNT_L CLR A MOV R3,A ;清零 MOV R4,A MOV R5,A MOV R2,#10H ;转换双字节十六进制整数 H_B: MOV A,R7 ;从高端移出待转换数的一位到CY中 RLC A MOV R7,A MOV A,R6 RLC A MOV R6,A MOV A,R5 ;BCD码带进位自身相加,相当于乘2 ADDC A,R5 DA A ;十进制调整 MOV R5,A MOV A,R4 ADDC A,R4 DA A MOV R4,A MOV A,R3 ADDC A,R3 MOV R3,A ;双字节十六进制数的万位数不超过6,不用调整 DJNZ R2,H_B ;处理完16bit ;RET ;- ;码型变换,将待转换的数据分成不同的数位,并转换成单位BCD码 ;- MOV R0,#DISSTART ;获得首地址 MOV A,R5 ;获得待转化的低位 MOV B,#16 ;转化进制,如果要进行十进制转换 改为 10 DIV AB ;计算 A/B MOV R0,B ;第一位转换完毕,保存低位转化后的数据 INC R0 ;自增 MOV R0,A ;保存高位 INC R0 ;取第二个数据地址 MOV A,R4 ;获得第二个需要转换的数据 MOV B,#16 ;十六进制 DIV AB ;计算 MOV R0,B ;存低位 INC R0 MOV R0,A ;存高位 INC R0 ;第三位 MOV A,R3 ;获得第三个需要转换的数据 MOV R0,A ;存高位 POP PSW RET ;完毕,返回 ;- PLAY: MOV R0,#DISSTART ;获得显示单元首地址 MOV R1,#07FH ;从第一个数码管开始 MOV R2,#05H ;共显示5位数

温馨提示

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

评论

0/150

提交评论