微机接口技术.ppt
《微机接口技术.ppt》由会员分享,可在线阅读,更多相关《微机接口技术.ppt(115页珍藏版)》请在三一办公上搜索。
1、1,微机接口技术,复习:微机框图:三部件、三总线指令执行过程:取指、取数、运算、存数指令系统及汇编语言编程:IN、OUT,请按本PPT及实验讲义顺序预习!有些内容要查阅参考书;与实验内容有关的部分:精读!作业、实验报告必须手写!,体系独立的学科技术,2,接口技术概述,几个基本问题:1、什么是接口电路?2、为什么外设与CPU间必须要有接口电路?3、接口电路功能4、接口电路最基本功能5、接口电路分类,存储器与CPU连接呢?,3,1、什么是接口电路?Interface,CPU与外设间电路,简称I/O接口微机系统中最复杂的部分,接口设计:硬件电路设计、驱动程序设计。,接口电路,2、为什么外设与CPU间
2、必须要有接口电路?外设种类繁多,速率不匹配:机械/电子信号类型和电平幅度不匹配:数字/模拟信号格式不匹配:位数不同,并/串时序不匹配:特定工作原理/控制逻辑,4,接口电路功能,3、接口电路功能(1)寻址 类似存储器找到地址(2)输入/输出 类似存储器读或写(3)数据转换 外设可用的格式(4)联络 传送过程控制(5)中断管理 一种实时的传送方式(6)复位 使接口本身初始化(7)可编程 工作方式可用软件设置(8)错误检测 串口中,传输错误等,5,接口电路最基本功能,4、接口电路最基本功能:由总线结构决定 端口译码:寻址,片选 输出锁存:锁存器 CPU输出数据出现在总线上的时间有限 输入缓冲:三态缓
3、冲器 多个电路都挂在总线上,实际上存储器芯片也都具备上述三项基本功能!,要解决两个问题:1、引脚对接;2、时序配合,6,七个方面的内容:名称、功能、方向、三态、有效(高/低/边缘)、多功能、驱动能力,CPU引脚,按功能分三类:(早期CPU地址/数据复用)地址:A0A9A16A20A32数据:D0D7D15D31 控制:RD、WR、IO/M NMI、INTR、INTA,,8086为40脚DIP,80486为168脚PGA,.,7,8086引脚,AD0AD15:地址/数据(出/双向)A16/S3A19/S6:地址/状态(出)/BHE/S7:高字节有效/状态(出)/RD:读控制(出)/WR:写控制(
4、出)M/IO:存储器/IO选择(出)DT/R:数据发送/接收(出)/DEN:数据使能(出)ALE:地址锁存使能(出),8,*8086的引脚,AD0AD15:地址/数据复用总线;A16/S3A19/S6:地址状态总线;BHE/S7:高8位数据总线允许/状态复用引脚;RD:读信号;WR:写信号;M/IO:存储器或I/O端口访问信号;READY:读写准备就绪信号;INTR:可屏蔽中断请求信号;INTA:中断响应信号;NMI:不可屏蔽中断请求信号,上升沿触发;,9,*8086的引脚(续),ALE:地址锁存允许信号,将地址送上系统AB;DT/R:数据发送/接收控制信号;DEN:数据允许信号,将数据送上系
5、统DB;HOLD:总线请求信号,由另一主控模块发起;HLDA:总线请求响应信号,由CPU应答;TEST:测试信号,执行WAIT指令时决定是否继续等待;RESET:复位;MN/MX:最小/最大模式选择;CLK:时钟,10,存储器举例,6264:8K8位SRAM,A0A12:地址线13根(入);I/O0I/O7:数据线8根(双向);/CS1、CS2:片选信号(入);/OE:输出允许(入);/WE:写控制(入);,I/O接口电路的引脚类似,11,端口译码,用地址线确定要操作的端口。,片选:全译码、线译码、部分译码,译码电路,接口1,接口2,A9A8A7A6A5A4A3A2A1A0,Y7Y0,74HC
6、13874HC139,/CS/CS,RD/WRIO/M,12,*全译码,所有地址线均参与译码端口地址唯一结构复杂一般用在I/O空间较大的场合高位地址线用于片选,低位地址线用于片内字选,13,*线选法,少数几根地址线经简单逻辑或将某地址线直接作为片选没参加译码的地址线不论为0或为1均不影响片选结果结构简单,但地址重叠,地址空间浪费适用于I/O空间较小的场合难以扩展,14,*简单逻辑译码,15,*线选译码的地址空间,16,*部分译码法,某些最高位地址线不参加译码(即悬空,造成地址重叠)或以简单逻辑接入低位地址线作为字选剩余中间地址线接入译码器最常用也最容易设计的方法适用于I/O空间较大的场合,17
7、,*输入输出指令,直接寻址(端口号小于100H)IN AL/AX,N OUT N,AL/AX DX寄存器间接寻址(所有16位端口号)MOV DX,PORT IN AL/AX,DX OUT DX,AL/AX,18,CPU读/写时序,19,*指令、总线与时钟周期,执行一条指令所需时间为指令周期,不同指令其周期不等长。当CPU从存储器或I/O设备存取一次数据就需要一个总线周期。一个或多个总线周期组成一个指令周期。CLK周期即时钟周期T,一个总线周期至少由四个时钟周期T1、T2、T3、T4组成。,20,*总线周期,在T1期间送出地址;在其他三个T周期传送数据;如果无法在规定时间内完成传送,必须通过RE
8、ADY引脚发出请求信号,在T3与T4之间插入一个或数个等待周期Tw,直到READY有效。Tw也以T为单位。,21,*8086读周期时序,22,*8086写周期时序,23,*中断响应周期时序,24,*总线保持/响应时序,25,*复位时序,26,*最小方式下的总线形成,27,*三态锁存器8282,28,*数据收发器8286,29,接口电路分类,5、接口电路分类 按通用性分:专用接口、通用接口 按可编程性分:可编程接口、不可编程接口 按外设传送数据格式分:并行接口、串行接口 按工作对象分:面向CPU的外围接口、面向外设的I/O接口,8253、8259、8255、8251、8237,30,外设与CPU
9、传送的信息,数据信息:数字量、模拟量、开关量,双向状态信息:由外设到CPU,输入控制信息:由CPU到外设,输出,存储单元I/O端口地址 端口号(端口地址),存储器:程序、数据(数据有各种不同的物理意义)I/O接口:信息,分三种:,31,I/O端口,接口电路可抽象为三组寄存器(端口)数据端口、状态端口、控制端口,I/O端口编址方式:统一编址、单独编址,CPU,存储器,I/O接口,I/O设备,AB,DB,CB,读/写,输入/输出,32,CPU与外设信息传送控制方式,(1)无条件传送方式(2)条件传送方式(查询方式)(3)中断传送方式(4)直接存储器存取(DMA)方式必须理解清楚:硬件、软件配合的过
10、程,33,无条件方式,三态缓冲器,端口译码,锁存器,端口译码,/IOR,AB,DB,输入数据,DB,AB,/IOW,输出数据,输入,输出,0,0,0,0,1,1,74HC244,74HC273,74HC138,软件原理:一条IN或OUT指令,典型应用:按键/开关输入,LED显示输出,注意:端口译码有效为低或高?,34,条件方式(输入),硬件框图,输入设备,锁存器,三态缓冲器,+5V,R,D,Q,端口译码,AB,DBD7,/IOR,/IOR,STB,输入软件流程,0,0,0,0,1,1,准备好?,读状态,输入数据,N,Y,SCAN:IN AL,0F1H TEST AL,80H JZ SCAN I
11、N AL,0F0H MOV BUF,AL,保存数据,F0F1,状态寄存器,35,条件输入流程改进,其它操作,准备好?,读状态,输入数据,N,Y,保存数据,其它操作,准备好?,读状态,输入数据,N,Y,保存数据,一个子程序(OTHER),一个子程序(INPUT),主程序:MAIN:CALL OTHERCALL INPUTJMP MAIN,必须考虑:与硬件配合、与其它操作配合。数据准备好所花时间与指令执行时间比较。,36,条件方式(输出),硬件框图,输出软件流程,输出设备,锁存器,端口译码,AB,Q,R,D,DB,ACK,+5V,/IOR,/IOW,去DB,其它操作,设备忙?,读状态,输出数据,N
12、,Y,0,0,0,0,1,1,与条件输入一样的流程改进请同学们思考。,37,中断方式(输入),硬件框图,输入设备,锁存器,三态缓冲器,+5V,R,D,Q,端口译码,AB,DB,/IOR,/IOW,STB,0,0,0,1,Q,D,INTR,1,0,IRR,IMR,D0,软件原理,主程序,中断子程序,输出较少使用中断方式。,为提高CPU利用率,并实时处理随机事件,状态寄存器改为中断请求寄存器,38,DMA方式,适用于高速大量的数据传送,CPU,存储器,I/O接口,DMAC,AB,DB,CB,前三种方式都要CPU干预,传送时间长;实际数据是放在存储器中的。,39,1、如何确定外设准备好?2、几种方式
13、的优先级?3、软件中设置I/O缓冲区问题:与缓冲器区分!,共性问题讨论,接口与系统的连接:P13图1-11,接口技术的发展:从非标准化到标准化,从硬件到软件;内嵌CPU,智能化;新总线标准;软件接口标准化;,40,*典型的IO接口与外部连接,41,端口译码实验(1),ABCE1,0,Y4Y50 1 A30 0 A41 1 A5,0 A61 A70 A81 A9,/IOW/IOR,Y4Y5,CLK,R,D,PR,Q,L0R(LED),5V,A9A8,A7A6A5A4,A3A2A1A0Y0 1 0 1 0 0 0 0 X X X 280287Y4 1 0 1 0 1 0 0 X X X 2A02A
14、7Y5 1 0 1 0 1 0 1 X X X 2A82AFY7 1 0 1 0 1 1 1 X X X 2B82BF,需连线,74HC138,74HC74,0,42,端口译码实验(2),流程图,2A0端口输出,延时,2A8端口输出,延时,有按键?,结束,2A0和2A8输出数据任意;用IN或OUT指令均可;延时时间长则LED闪烁;延时时间短则示波器上可观察到波形。,Y,N,为调试程序方便一般要有按任意键结束程序的功能,43,并行口实验(1),244,1A11A42A12A4,273,1Y12Y4,1/G2/G,Q1Q8,D0D7,CLK,/IOR,/IOW,2A0,2A8,DB,DB,L0RL
15、1RL2RL3RL4RL5RL6RL7R,K0K1K2K3K4K5K6K7,需连线,验证无条件和条件传送原理,CLR,VCC,问题:为什么LED显示、开关(按键)输入可以用无条件方式?,0,0,44,并行口实验(2),无条件方式流程图,从2A0输入,暂存到BL,从2A8输出,到屏幕显示,从2A0输入,与BL相等?,有按键?,暂存到BL,从2A8输出,到屏幕显示,结束,N,N,Y,Y,改为查询方式:用K7作为状态位,不做此判断则现象如何?,注意:按键输入的抖动现象 软件办法消除,编写控制硬件的程序必须注意程序执行时间与硬件工作速度的配合。,其它操作,45,数码LED动态扫描(1),273,Q1Q
16、8,D0D7,CLK,/IOW,2A8,DB,CLR,VCC,273,Q8Q1,D0D7,CLK,/IOW,2A0,DB,CLR,VCC,LED0,LED7,DP SA,a,b,c,d,e,f,g,.h,1、硬件原理图,字型,位型,1,0,反相,静态显示:8个锁存器动态显示:2个锁存器,46,数码LED动态扫描(2),2、一般软件流程(八位显示),指针加1,位型左移,关显示,查字型表,输出字型,输出位型,返回,8位完?,指针位型初始化,延时,N,Y,注意:亮度不均问题,1ms2ms,位型输出全1,47,数码LED动态扫描(3),软件流程一位显示子程序:,3、实验程序,字型表:LED DB 3F
17、H,06H,71H显示数据表:BUF DB 8 DUP(?)显示指针:初值0LPTR DW?;07显示位型:初值01HLBIT DB?;02H,04H.80H,指针加1,位型左移,关显示,查字型表,输出字型,输出位型,返回,数据结构,主程序,指针初始化,位型初始化,段初始化,调用显示 子程序,键盘输入,有按键?,返回,Y,N,不存在亮度不均问题,其它操作,48,键盘扫描(1),273,Q1Q2Q3,D0D7,CLK,/IOW,2A0,DB,CLR,VCC,行输出,1、硬件原理,244,2A42A11A41A1,1Y12Y4,1/G2/G,/IOR,2A8,DB,列输入,VCC,F E D C
18、B A 9 8,7 6 5 4 3 2 1 0,KEY5,KEY1,KEY2,KEY3,KEY7,KEY6,KEY0,KEY4,KB0,KB1,KB2,3行8列,49,键盘扫描(2),2、一般软件流程(三行全部扫描),拼键值,返回,行输出全0,读入列值,列值全1?,一行输出0,返回,读入列值,列值全1?,下一行,行扫完?,返回,延时(20ms),再输出行值,读入列值,列值相同?,返回,行输出全0,读入列值,列值全1?,延时(20ms),N,Y,Y,Y,Y,N,N,N,Y,等待键松开,消抖,消除抖动,10ms,10ms,100ms,50,键盘扫描(3),3、实验程序,数据结构:,BUF DB 8
19、 DUP(?);键盘输入缓冲区(环形)KPTR DW?;键盘输入缓冲区指针(07)KBIT DB?;行输出位型(01H,02H,04H)KROW DB?;按键行值KCOL DB?;按键列值KCNT DB?;按键消抖计数KEY DB?;按键键值(00H07H,08H0FH,10H17H)子程序与主程序传递参数用,常数:,CNTMAX EQU 80H;按键消抖计数最大值,可根据其它操作时间长短调整,主程序用,子程序用,51,键盘扫描(4),一行键盘扫描子程序流程图,AHKROW,KBIT左移,KBIT=08H?,KBIT01H,KCOL=0?,KBIT=KROW?,返回,Y,N,Y,Y,N,N,K
20、BIT取反输出,列输入取反,列值=KCOL?,KCOL列值,KROWKBIT,KEYIN1,KEYIN0,KCNT0,KCNT+1,KCNT=CNTMAX?,N,返回参数:CF=1:无CF=0:AL=键,KCNT0,KCOL=0?,KEY=FF?,KEYIN2,KEYIN3,ALKEY,KEYFF,有键返回,KEYIN4,AL0,AHKCOL,AH右移,CF=1?,CF=1?,返回,返回,Y,N,Y,KEYIN5,返回,Y,N,N,Y,AL加1,AH右移,AL加8,KEYAL,返回,Y,Y,N,N,KEYIN6,KEYIN8,KEYIN7,KEYIN9,是否扫描,扫描,拼键值,按键松开,判按下
21、松开,图例:,问题:多键 连续键数字键/功能键,52,键盘扫描(5),主程序流程图,AL0A?,返回,段初始化,KPTR0,KBIT01H,KROW0,KCOL0,KCNT0,KEYFF,CF=1?,读PC机键盘,PC有按键?,调用键盘扫描,缓冲区AL,KPTR加1,AL10H?,ALAL+7,ALAL+30H,显示,Y,N,Y,N,N,Y,其它操作,Y,N,53,键盘扫描(6),键盘行列扫描与动态LED显示综合:0F的按键在数码LED上显示必须解决的问题:,1、因为键盘行输出与LED位型输出是共用的,所以软件上两者必须配合好;如何配合?若末配合好会有什么问题?KEYIN子程序稍加修改,LBI
22、T和KBIT合一。2、BUF缓冲区可共用,但存入指针KPTR和取出指针LPTR还是分开使用。,若用8位显示和3行扫描的子程序,则非常麻烦。,54,可编程定时/计数器基本原理,(3)基本功能:位数、二进制/十进制、加/减 8253/8254:16 减 8254有读出控制字和读出状态字,8253无。,(2)定时/计数器基本原理:可预置初值;对输入信号进行加或减计数;计到0或FFFF时有输出信号,从原初值重新计数.,(1)区分:可编程接口芯片(8253等)可编程器件(PLD、GAL、CPLD、FPGA),55,(4)定时功能:周期性输出信号 设输入时钟周期t,输出信号周期T,计数初值TC 减计数器:
23、tTC=T 加计数器:t(2n-TC)=T,二进制:2n改为10m,(5)计数功能:测量脉冲宽度 设输入时钟周期t,待测信号周期T,计数终值TC,初值置为0 加计数器:tTC=T 减计数器:t(2n-TC)=T,定时计数公式,56,8253/8254引脚图,与外设连接:三个计数器独立CLK0:计数信号(入)GATE0:门控信号(入)OUT0:输出信号(出)与CPU连接:D0D7:数据线.,57,8253/8254内部结构,数据总线缓冲器,读/写逻辑,控制字寄存器,0号计数器,1号计数器,2号计数器,内部数据总线,D0D7,CLK0GATE0OUT0,CLK1GATE1OUT1,CLK2GATE
24、2OUT2,/RD/WRA0A1/CS,左与CPU连接右与外设连接,/IOR/IOWA0A1/2A0,共24根引脚,58,8253/8254寄存器读写,59,8253/8254工作方式,输出波形不同,启动计数的触发方式不同,GATE作用不同,初值自动重装功能不同,波形图参见教材.,60,8253/8254控制字,计数器选择00=CH001=CH110=CH211=8254读出,读写控制00=锁存01=低字节10=高字节11=先低后高,工作方式000=方式0001=方式1x10=方式2x11=方式3100=方式4101=方式5,数制1=BCD0=二进制,61,计数值的读出:两种方法(1)直接读出
25、:低、高字节切分两次读,计数器未停则有可能读错(2)锁存读出:先用RL1,RL0=00锁存,再读出,02,0001,FF01,FE,8253/8254初始化编程及计数读出,初始化编程:三个计数独立1、写控制字;2、写计数初值。,62,8253/8254应用,PC机中:40H43H,CLK02=1.19MHZ,二进制CH0:方式3,55ms,实时时钟CH1:方式2,15.1us,DRAM刷新CH2:方式3,900HZ,扬声器,由PB0、PB1控制,CLK0CLK1CLK2,GATE0GATE1GATE2,OUT0OUT1OUT2,Fclk,+5V,PB0,8259IR0,DRAM刷新电路,扬声器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 接口 技术
链接地址:https://www.31ppt.com/p-5386522.html