微机接口技术

上传人:ll****x 文档编号:242950186 上传时间:2024-09-12 格式:PPT 页数:115 大小:2.01MB
返回 下载 相关 举报
微机接口技术_第1页
第1页 / 共115页
微机接口技术_第2页
第2页 / 共115页
微机接口技术_第3页
第3页 / 共115页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,微机接口技术,复习:,微机框图:,三部件、三总线,指令执行过程:,取指、取数、运算、存数,指令系统及汇编语言编程:,IN、OUT,请按本PPT及实验讲义顺序预习!,有些内容要查阅参考书;,与实验内容有关的部分:精读!,作业、实验报告必须手写!,体系独立的学科技术,1,接口技术概述,几个基本问题,:,1、什么是接口电路?,2、为什么外设与CPU间必须要有接口电路?,3、接口电路功能,4、接口电路最基本功能,5、接口电路分类,存储器与CPU连接呢?,2,1、什么是接口电路?,Interface,CPU与外设间电路,简称I/O接口,微机系统中最复杂的部分,,,接口设计:硬件电路设计、驱动程序设计。,接口电路,2、为什么外设与CPU间必须要有接口电路?,外设种类繁多,速率不匹配:机械/电子,信号类型和电平幅度不匹配:数字/模拟,信号格式不匹配:位数不同,并/串,时序不匹配:特定工作原理/控制逻辑,3,接口电路功能,3、接口电路功能,(1)寻址,类似存储器找到地址,(2)输入/输出,类似存储器读或写,(3)数据转换,外设可用的格式,(4)联络,传送过程控制,(5)中断管理,一种实时的传送方式,(6)复位,使接口本身初始化,(7)可编程,工作方式可用软件设置,(8)错误检测,串口中,传输错误等,4,接口电路最基本功能,4、接口电路最基本功能:,由总线结构决定,端口译码,:寻址,片选,输出锁存,:锁存器,CPU输出数据出现在总线上的时间有限,输入缓冲,:三态缓冲器,多个电路都挂在总线上,实际上存储器芯片也都具备上述三项基本功能!,要解决两个问题:1、引脚对接;2、时序配合,5,七个方面的内容:,名称、功能、方向,、,三态、有效(高/低/边缘)、多功能、驱动能力,CPU引脚,按功能分三类:,(早期CPU地址/数据复用),地址:,A0A9A16A20A32,数据:,D0D7D15D31,控制:,RD、WR、IO/M,NMI、INTR、INTA,,8086为40脚DIP,80486为168脚PGA,.,6,8086引脚,AD0AD15:,地址/数据(出/双向),A16/S3A19/S6:,地址/状态(出),/BHE/S7:,高字节有效/状态(出),/RD:,读控制(出),/WR:,写控制(出),M/IO:,存储器/IO选择(出),DT/R:,数据发送/接收(出),/DEN:,数据使能(出),ALE:,地址锁存使能(出),7,*8086的引脚,AD,0,AD,15,:地址/数据复用总线;,A,16,/S,3,A,19,/S,6,:地址状态总线;,BHE/S,7,:高8位数据总线允许/状态复用引脚;,RD:读信号;,WR:写信号;,M/IO:存储器或I/O端口访问信号;,READY:读写准备就绪信号;,INTR:可屏蔽中断请求信号;,INTA:中断响应信号;,NMI:不可屏蔽中断请求信号,上升沿触发;,8,*8086的引脚(续),ALE:地址锁存允许信号,将地址送上系统AB;,DT/R:数据发送/接收控制信号;,DEN:数据允许信号,将数据送上系统DB;,HOLD:总线请求信号,由另一主控模块发起;,HLDA:总线请求响应信号,由CPU应答;,TEST:测试信号,执行WAIT指令时决定是否继续等待;,RESET:复位;,MN/MX:最小/最大模式选择;,CLK:时钟,9,存储器举例,6264:8K8位SRAM,A0A12:,地址线13根(入),;,I/O0I/O7 :,数据线8根(双向),;,/CS1、CS2:,片选信号(入),;,/OE:,输出允许(入),;,/WE:,写控制(入),;,I/O接口电路的引脚类似,10,端口译码,用地址线确定要操作的端口。,片选:,全译码、线译码、部分译码,译,码,电,路,接口1,接口2,A9,A8,A7,A6,A5,A4,A3,A2,A1,A0,Y7,Y0,74HC138,74HC139,/CS /CS,RD/WR,IO/M,11,*全译码,所有地址线均参与译码,端口地址唯一,结构复杂,一般用在I/O空间较大的场合,高位地址线用于片选,低位地址线用于片内字选,12,*线选法,少数几根地址线经简单逻辑或将某地址线直接作为片选,没参加译码的地址线不论为0或为1均不影响片选结果,结构简单,但地址重叠,地址空间浪费,适用于I/O空间较小的场合,难以扩展,13,*简单逻辑译码,14,*线选译码的地址空间,15,*部分译码法,某些最高位地址线不参加译码(即悬空,造成地址重叠)或以简单逻辑接入,低位地址线作为字选,剩余中间地址线接入译码器,最常用也最容易设计的方法,适用于I/O空间较大的场合,16,*输入输出指令,直接寻址(端口号小于100H),IN AL/AX , N,OUT N , AL/AX,DX寄存器间接寻址(所有16位端口号),MOV DX , PORT,IN AL/AX , DX,OUT DX , AL/AX,17,CPU读/写时序,18,*指令、总线与时钟周期,执行一条指令所需时间为指令周期,不同指令其周期不等长。,当CPU从存储器或I/O设备存取一次数据就需要一个总线周期。一个或多个总线周期组成一个指令周期。,CLK周期即时钟周期T,一个总线周期至少由四个时钟周期T,1,、T,2,、T,3,、T,4,组成。,19,*总线周期,在T,1,期间送出地址;,在其他三个T周期传送数据;,如果无法在规定时间内完成传送,必须通过READY引脚发出请求信号,在T,3,与T,4,之间插入一个或数个等待周期Tw,直到READY有效。Tw也以T为单位。,20,*8086读周期时序,21,*8086写周期时序,22,*中断响应周期时序,23,*总线保持/响应时序,24,*复位时序,25,*最小方式下的总线形成,26,*三态锁存器8282,27,*数据收发器8286,28,接口电路分类,5、接口电路分类,按通用性分:,专用接口、通用接口,按,可编程,性分:,可编程接口、,不可编程接口,按外设传送数据格式分:,并行接口、,串行接口,按工作对象分:,面向CPU的外围接口、,面向外设的I/O接口,8253、8259、8255、8251、8237,29,外设与CPU传送的信息,数据信息:,数字量、模拟量、开关量,,双向,状态信息:,由外设到CPU,,输入,控制信息:,由CPU到外设,,输出,存储单元,I/O端口,地址,端口号(端口地址),存储器:程序、数据,(数据有各种不同的物理意义),I/O接口:,信息,,分三种,:,30,I/O端口,接口电路可抽象为三组寄存器(端口),数据端口,、,状态端口,、,控制端口,I/O端口编址方式,:,统一编址、单独编址,CPU,存储器,I/O接口,I/O设备,AB,DB,CB,读/写,输入/输出,31,CPU与外设信息传送控制方式,(1)无条件传送方式,(2)条件传送方式(查询方式),(3)中断传送方式,(4)直接存储器存取(DMA)方式,必须理解清楚:硬件、软件配合的过程,32,无条件方式,三态,缓冲器,端口译码,锁存器,端口译码,/IOR,AB,DB,输入数据,DB,AB,/IOW,输出数据,输入,输出,0,0,0,0,1,1,74HC244,74HC273,74HC138,软件原理:一条IN或OUT指令,典型应用:按键/开关输入,LED显示输出,注意:端口译码有效为低或高?,33,条件方式(输入),硬件框图,输,入,设,备,锁,存,器,三,态,缓,冲,器,+5V,R,D,Q,端口,译码,AB,DB,D7,/IOR,/IOR,STB,输入软件流程,0,0,0,0,1,1,准备好?,读状态,输入数据,N,Y,SCAN:IN AL,0F1H,TEST AL,80H,JZ SCAN,IN AL,0F0H,MOV BUF,AL,保存数据,F0,F1,状态寄存器,34,条件输入流程改进,其它操作,准备好?,读状态,输入数据,N,Y,保存数据,其它操作,准备好?,读状态,输入数据,N,Y,保存数据,一个子程序(OTHER),一个子程序(INPUT),主程序:,MAIN:,CALL OTHER,CALL INPUT,JMP MAIN,必须考虑:与硬件配合、与其它操作配合。,数据准备好所花时间与指令执行时间比较。,35,条件方式(输出),硬件框图,输出软件流程,输,出,设,备,锁,存,器,端口,译码,AB,Q,R,D,DB,ACK,+5V,/IOR,/IOW,去DB,其它操作,设备忙?,读状态,输出数据,N,Y,0,0,0,0,1,1,与条件输入一样的流程改进请同学们思考。,36,中断方式(输入),硬件框图,输,入,设,备,锁,存,器,三,态,缓,冲,器,+5V,R,D,Q,端口,译码,AB,DB,/IOR,/IOW,STB,0,0,0,1,Q,D,INTR,1,0,IRR,IMR,D0,软件原理,主程序,中,断,子,程,序,输出较少使用中断方式。,为提高CPU利用率,并实时处理随机事件,状态寄存器改为中断请求寄存器,37,DMA方式,适用于高速,大量,的数据传送,CPU,存储器,I/O接口,DMAC,AB,DB,CB,前三种方式都要CPU干预,传送时间长;,实际数据是放在存储器中的。,38,1、如何确定外设准备好?,2、几种方式的优先级?,3、软件中设置I/O缓冲区问题:与缓冲器区分!,共性问题讨论,接口与系统的连接:P13图1-11,接口技术的发展:,从非标准化到标准化,从硬件到软件;,内嵌CPU,智能化;,新总线标准;,软件接口标准化;,39,*典型的IO接口与外部连接,40,端口译码实验(1),A,B,C,E1,0,Y4Y5,0 1,A3,0 0,A4,1 1,A5,0 A6,1 A7,0 A8,1 A9,/IOW,/IOR,Y4,Y5,CLK,R,D,PR,Q,L0R(LED),5V,A9A8,A7A6A5A4,A3A2A1A0,Y0,1 0 1 0,0 0 0,X X X,280287,Y4,1 0 1 0,1 0 0,X X X,2A02A7,Y5,1 0 1 0,1 0 1,X X X,2A82AF,Y7,1 0 1 0,1 1 1,X X X,2B82BF,需连线,74HC138,74HC74,0,41,端口译码实验(2),流程图,2A0端口输出,延时,2A8端口输出,延时,有按键?,结束,2A0和2A8输出数据任意;,用IN或OUT指令均可;,延时时间长则LED闪烁;,延时时间短则,示波器上可观察到波形。,Y,N,为调试程序方便一般要有,按任意键结束程序的功能,42,并行口实验(1),244,1A1,1A4,2A1,2A4,273,1Y1,2Y4,1/G,2/G,Q1,Q8,D0,D7,CLK,/IOR,/IOW,2A0,2A8,DB,DB,L0R,L1R,L2R,L3R,L4R,L5R,L6R,L7R,K0,K1,K2,K3,K4,K5,K6,K7,需连线,验证无条件和条件传送原理,CLR,VCC,问题:,为什么,LED显示,、,开关(按键)输入,可以用无条件方式?,0,0,43,并行口实验(2),无,条,件,方,式,流,程,图,从2A0输入,暂存到BL,从2A8输出,到屏幕显示,从2A0输入,与BL相等?,有按键?,暂存到BL,从2A8输出,到屏幕显示,结束,N,N,Y,Y,改为查询方式:,用K7作为状态位,不做此判断则现象如何?,注意:按键输入的抖动现象,软件办法消除,编写控制硬件的程序必须,注意程序执行时间与硬件,工作速度的配合。,其它操作,44,数码LED动态扫描(1),273,Q1,Q8,D0,D7,CLK,/IOW,2A8,DB,CLR,VCC,273,Q8,Q1,D0,D7,CLK,/IOW,2A0,DB,CLR,VCC,LED0,LED7,DP SA,a,b,c,d,e,f,g,.,h,1、硬件原理图,字型,位型,1,0,反相,静态显示:8个锁存器,动态显示:2个锁存器,45,数码LED动态扫描(2),2、一般软件流程(八位显示),指针加1,位型左移,关显示,查字型表,输出字型,输出位型,返回,8位完?,指针位型初始化,延时,N,Y,注意:,亮度不均问题,1ms2ms,位型输出全1,46,数码LED动态扫描(3),软件流程,一位显示子程序:,3、实验程序,字型表:,LED DB 3FH,06H,71H,显示数据表:,BUF DB 8 DUP(?),显示指针:初值0,LPTR DW ?;07,显示位型:初值01H,LBIT DB ?;02H,04H.80H,指针加1,位型左移,关显示,查字型表,输出字型,输出位型,返回,数据结构,主程序,指针初始化,位型初始化,段初始化,调用显示 子程序,键盘输入,有按键?,返回,Y,N,不存在亮度不均问题,其它操作,47,键盘扫描(1),273,Q1,Q2,Q3,D0,D7,CLK,/IOW,2A0,DB,CLR,VCC,行输出,1、硬件原理,244,2A4,2A1,1A4,1A1,1Y1,2Y4,1/G,2/G,/IOR,2A8,DB,列输入,VCC,F E D C 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列,48,键盘扫描(2),2、一般软件流程(三行全部扫描),拼键值,返回,行输出全0,读入列值,列值全1?,一行输出0,返回,读入列值,列值全1?,下一行,行扫完?,返回,延时(20ms),再输出行值,读入列值,列值相同?,返回,行输出全0,读入列值,列值全1?,延时(20ms),N,Y,Y,Y,Y,N,N,N,Y,等待键松开,消抖,消除抖动,10ms,10ms,100ms,49,键盘扫描(3),3、实验程序,数据结构:,BUF DB 8 DUP(?),;,键盘输入缓冲区(环形),KPTR DW ?,;,键盘输入缓冲区指针(0,7,),KBIT DB ?,;,行输出位型(01H,02H,04H),KROW DB ?,;,按键行值,KCOL DB ?,;,按键列值,KCNT DB ?,;,按键消抖计数,KEY DB ?,;,按键键值(00H,07H,08H,0FH,10H,17H),子程序与主程序传递参数用,常数:,CNTMAX EQU 80H,;,按键消抖计数最大值,,可根据其它操作时间长短调整,主程序用,子程序用,50,键盘扫描(4),一行键盘扫描子程序流程图,AHKROW,KBIT左移,KBIT=08H?,KBIT01H,KCOL=0?,KBIT=,KROW?,返回,Y,N,Y,Y,N,N,KBIT取反输出,列输入取反,列值=,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,是否扫描,扫描,拼键值,按键松开,判按下松开,图例:,问题:多键,连续键,数字键/功能键,51,键盘扫描(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,52,键盘扫描(6),键盘行列扫描与动态LED显示综合:,0F的按键在数码LED上显示,必须解决的问题:,1、因为键盘行输出与LED位型输出是共用的,,所以软件上两者必须配合好;,如何配合?若末配合好会有什么问题?,KEYIN子程序稍加修改,LBIT和KBIT合一。,2、BUF缓冲区可共用,,但存入指针KPTR和取出指针LPTR还是分开使用。,若用8位显示和3行扫描的子程序,则非常麻烦。,53,可编程定时/计数器基本原理,(3)基本功能:,位数、二进制/十进制、加/减,8253/8254:,16 减,8254有读出控制字和读出状态字,8253无。,(2)定时/计数器基本原理:,可预置初值;,对输入信号进行加或减计数;,计到0或FFFF时有输出信号,从原初值重新计数.,(1)区分:,可编程接口芯片(8253等),可编程器件(PLD、GAL、CPLD、FPGA),54,(4)定时功能:周期性输出信号,设输入时钟周期t,输出信号周期T,计数初值TC,减计数器:tTC=T,加计数器:t(2,n,-TC)=T,二进制:2,n,改为10,m,(5)计数功能:测量脉冲宽度,设输入时钟周期t,待测信号周期T,,计数终值TC,初值置为0,加计数器:tTC=T,减计数器:t(2,n,-TC)=T,定时计数公式,55,8253/8254引脚图,与外设连接:,三个计数器独立,CLK0:计数信号(入),GATE0:门控信号(入),OUT0:输出信号(出),与CPU连接:,D0D7:数据线,.,56,8253/8254内部结构,数据,总线,缓冲器,读/写,逻辑,控制字,寄存器,0号,计数器,1号,计数器,2号,计数器,内,部,数,据,总,线,D0D7,CLK0,GATE0,OUT0,CLK1,GATE1,OUT1,CLK2,GATE2,OUT2,/RD,/WR,A0,A1,/CS,左与CPU连接,右与外设连接,/IOR,/IOW,A0,A1,/2A0,共24根引脚,57,8253/8254寄存器读写,/CS,/RD,/WR,A1A0,操作,0,1,0,00,计数初值写入计数器0,0,1,0,01,计数初值写入计数器1,0,1,0,10,计数初值写入计数器2,0,1,0,11,控制字写入控制寄存器,0,0,1,00,读计数器0当前计数值,0,0,1,01,读计数器1当前计数值,0,0,1,10,读计数器2当前计数值,0,0,1,11,无操作,0,1,1,xx,无操作,1,x,x,xx,禁止,58,8253/8254工作方式,输出波形不同,启动计数的触发方式不同,,GATE作用不同,初值自动重装功能不同,波形图参见教材.,59,8253/8254控制字,D7,D6,D5,D4,D3,D2,D1,D0,SC1,SC0,RL1,RL0,M2,M1,M0,BCD,计数器选择,00=CH0,01=CH1,10=CH2,11=8254读出,读写控制,00=锁存,01=低字节,10=高字节,11=先低后高,工作方式,000=方式0,001=方式1,x10=方式2,x11=方式3,100=方式4,101=方式5,数制,1=BCD,0=二进制,60,计数值的读出:两种方法,(1)直接读出:低、高字节切分两次读,,计数器未停则有可能读错,(2)锁存读出:先用RL1,RL0=00锁存,再读出,02,00,01,FF,01,FE,8253/8254初始化编程及计数读出,初始化编程:三个计数独立,1、写控制字;,2、写计数初值。,61,8253/8254应用,PC机中:,40H,43H,CLK0,2=1.19MHZ,二进制,CH0:方式3,55ms,实时时钟,CH1:方式2,15.1us,DRAM刷新,CH2:方式3,900HZ,扬声器,,由PB0、PB1控制,CLK0,CLK1,CLK2,GATE0,GATE1,GATE2,OUT0,OUT1,OUT2,Fclk,+5V,PB0,8259IR0,DRAM刷新电路,扬声器,PB1,MOV AL,00110110B,OUT 43H,AL,MOV AL,0,OUT 40H,AL,OUT 40H,AL,MOV AL,01010100B,OUT 43H,AL,MOV AL,12H,OUT 41H,AL,MOV AL,10110110B,OUT 43H,AL,MOV AX,0533H,OUT 42H,AL,MOV AL,AH,OUT 42H,AL,62,(1)6种工作方式的波形验证,软件启动、硬件启动,初值(分频比),3、2,、,1、5,、,0、4,(2)参考:书P182,8253,CLK0,CLK1,CLK2,GATE0,GATE1,GATE2,OUT0,OUT1,OUT2,1MHZ,+5V,CS8253,Y0,示波器,8253/8254实验,63,中断系统(1),1、中断概念的引入,:,CPU与外设同时工作,输,入,设,备,输,入,接,口,现,行,程,序,中,断,服,务,子,程,序,启动,CPU,中断请求,数据,中断响应,数据,2、中断定义,:,是一个硬件、软件配合的过程,3、中断源,:,时钟、外设、故障,、,调试。,内部/外部,4、中断系统,:,CPU中处理中断功能的硬件电路,基本功能,:,屏蔽开放、判优先级、中断嵌套、进入返回,64,中断系统(2),5、CPU响应中断的三个条件,:,无总线请求(DMA),CPU允许中断(IF=1),现行指令执行完,6、CPU响应中断后自动完成三项任务,:,关闭中断,保护关键现场:断点、FLAGS,获得中断服务子程序入口地址,转入,7、中断子程序中要处理六件事,:,保护现场,开中断,中断服务,关中断,恢复现场,开中断返回,8、中断源的识别,:,软件方法,硬件方法,9、优先级的确定,解决:同时、嵌套,软件方法,硬件方法:编码比较,菊花链排队,65,中断向量表,1、中断向量,:,中断子程序入口地址,偏移地址、段基址,共4 个字节,2、中断向量表,:,在00000003FFH中,,共256个中断源,中断类型码(n)0FFH,3、中断向量表原理,:,类型码n的表中位置为4n+04n+3,4n+0,4n+1=偏移地址,4n+2,4n+3=段地址,4、中断向量表操作,:,功能调用INT 21H,(1)读中断矢量:入:AH=35H,AL=类型码,出:ES:BX=读出的中断向量,(2)置中断矢量:入:AH=25H,AL=类型码,DS:DX=要写入的中断向量,出:无,5、特殊向量,:,n=1DH,1EH,1FH,41H,46H,66,中断分类,1、CPU中断,0:除法错,1:单步中断,2:NMI,3:断点中断,4:溢出中断,2、软件中断,(1)BIOS中断,:,05H,10H1FH,(2)DOS中断,:,DOS专用,:22H、23H、24H、28H3FH,用户可用,:20H、21H、25H、25H、27H,用户可开发,:60H66H,DOS保留,:42H45H、4BH5FH、,68H6FH、72H74H,77H7FH,共256个中断源,软件中断,硬件中断:INTR、NMI,67,8259引脚图,68,可编程中断控制器8259(1),1、8259内部结构和引脚,中断服务,寄存器,ISR,优先权,判别电路,PR,中断请求,寄存器,IRR,中断屏蔽寄存器IMR,控制逻辑,数据总,线缓冲,读/写逻辑,级连/缓冲,D7D0,/RD,/WR,A0,/CS,CAS0,CAS1,CAS2,/SP/EN,/INTA,INT,IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7,共28根引脚,69,可编程中断控制器8259(2),工作原理,IR0IR7引脚上来请求存入IRR;,IMR控制是否送到PR;,PR选中优先级最高的中断源并从INT引脚向CPU发请求。,CPU若响应,从/INTA向8259发两个负脉冲作为应答;,8259收到/INTA第一个负脉冲时,将ISR中与被选中的中断源,对应的位置1,同时将IRR中对应位清0;, 8259收到/INTA第二个负脉冲时,从数据总线把被选中中断源,的类型码送给CPU;,CPU根据类型码从中断向量表查到中断子程序的入口地址,,从而跳转到中断服务子程序;,中断服务子程序结束前,CPU通知8259中断服务结束,,8259将ISR中对应位清0,从而可再接受其它中断。,注意:8259与CPU配合,软件与硬件配合,70,可编程中断控制器8259(3),2、工作方式,中断触发方式,:,上升沿触发,、,高电平触发,中断屏蔽方式,:,一般屏蔽方式,、,特殊屏蔽方式,优先级方式,:,一般完全嵌套方式,特殊完全嵌套方式,优先级循环方式:一般、自动、特殊,中断结束方式,:,自动EOI,、,一般EOI,、,特殊EOI,总线连接方式,:,缓冲方式,、,非缓冲方式,71,可编程中断控制器8259(4),3、8259的编程,(,1)使用端口两个,:A0=0,偶端口、A0=1,奇端口,PC机中,: 20H 21H,(2)共有7 个命令字,初始化命令字,:ICW1ICW4,ICW1写入偶端口,其余按顺序写入奇端口,操作命令字,: OCW1OCW3,OCW1写入奇端口,OCW2、3写入偶端口,写入偶端口的ICW1、OCW2、OCW3用特征位区别,读奇端口为为OCW1,读偶端口为IRR、ISR或有效中断源,(3)PC 机中设置的工作方式不能更改!,72,可编程中断控制器8259(5),ICW1:,D7,D6,D5,D4,D3,D2,D1,D0,0,0,0,1,LTIM,0,SNGL,IC4,LTIM:中断触发方式,1=高电平触发,0=上升沿触发,SNGL:单片或级连,1=单片,0=级连,要写ICW3,IC4:1=要写ICW4,0=不写ICW4,D4为特征位,写入ICW1后自动对8259初始化,73,可编程中断控制器8259(6),ICW2:中断类型码,D7,D6,D5,D4,D3,D2,D1,D0,T7,T6,T5,T4,T3,0,0,0,T7T3:中断类型码,低3位为IR7IR0的编号,ICW3:主片/从片,D7,D6,D5,D4,D3,D2,D1,D0,S7,S6,S5,S4,S3,S2,S1,S0,0,0,0,0,0,ID2,ID1,ID0,主片,从片,Si=1,对应IRi上接有从片, Si=0,对应IRi上未接从片,ID20:本从片接至主片的IRi的编号,74,可编程中断控制器8259(7),ICW4,:,D7,D6,D5,D4,D3,D2,D1,D0,0,0,0,SFNM,BUF,M/S,AEOI,1,SFNM=1,特殊完全嵌套方式,同级可响应,用于主片,=0,一般完全嵌套方式,同级不响应,用于从片,BUF=0,非缓冲方式,主从由/SP引脚决定,/SP=0为从片,1,缓冲方式,主从由M/S位决定,M/S=0,从片;M/S=1,主片,AEOI=0,非自动EOI,要用EOI命令清ISRi,1,自动EOI,8259收到第二个/INTA时将ISRi对应位清0,75,可编程中断控制器8259(8),OCW1:中断屏蔽字,D7,D6,D5,D4,D3,D2,D1,D0,M7,M6,M5,M4,M3,M2,M1,M0,Mi:对IRi的屏蔽位,1=屏蔽,0=允许,OCW3:特殊屏蔽和读出命令,D4、D3为特征位,D7,D6,D5,D4,D3,D2,D1,D0,0,ESMM,SMM,0,1,P,RR,RIS,ESMM,SMM:11=设置特殊屏蔽方式,10=撤消,RR,RIS:读寄存器命令,10=读IRR,11=读ISR,P=1:查询命令,读入的D7=1表示有请求,D2D0为编号,读,偶,端,口,76,可编程中断控制器8259(9),OCW2:中断结束和优先级循环字,D7,D6,D5,D4,D3,D2,D1,D0,R,SL,EOI,0,0,L2,L1,L0,R=1:优先级循环;R=0:优先级固定,EOI=1:中断结束命令,SL=1:对由L2L0指定的IRi 操作,0,0,1,一般EOI,ISR中最高有效位清0,0,1,1,特殊EOI,L2L0指定的ISRi清0,1,0,1,一般EOI且优先级循环,服务后降为最低,1,1,1,特殊EOI且按L2L0优先级循环,1,0,0,设置优先级自动循环,0,0,0,清除优先级自动循环,1,1,0,按L2L0编码循环,0,1,0,无意义,中断结束,EOI且循环,优先级循环,77,PC机中的中断源使用,主8259:,IR0:时钟,IR1:键盘,IR2:从片,IR3:辅串行口,IR4:主串行口,IR5:并行口2,IR6:软盘,IR7:并行口1,端口号:20H、21H,类型码:08H0FH,从8259:,IR8: 时钟,IR9: 用户中断,IR10:保留,IR11:保留,IR12:保留,IR13:协处理器,IR14:硬盘,IR15:保留,端口号:A0H、A1H,类型码:70H77H,78,8259实验(1),中断子程序:,INT7:PUSH DS,PUSH AX,MOV AX,DATA,MOV DS,AX,DEC CNT2,MOV AL,20H,OUT 20H,AL,POP AX,POP DS,IRET,硬件原理:,正脉冲接到IR7,BUF DB “THIS IS A IRQ7!”,0ah,0dh,“$”,CNT1 DB ?;数据段,CNT2 DB ?,MOV AX,CS,MOV DS,AX,LEA DX,INT7,MOV AX,250FH,INT 21H,MOV AX,DATA,MOV DS,AX,MOV CNT1,10,MOV CNT2,10,IN AL,21H,AND AL,7FH,OUT 21H,AL,W0:MOV AL,CNT2,CMP AL,CNT1,JZ W1,MOV CNT1,AL,LEA DX,BUF,MOV AH,9,INT 21H,CMP CNT1,0,JZ EXIT,W1: MOV AH,6,MOV DL,0FFH,INT 21H,CMP AL,0,JZ W0,EXIT:IN AL,21H,OR AL,80H,OUT 21H,AL,MOV AH,4CH,INT 21H,主程序,79,8259实验(2),主,程,序,流,程,图,置中断向量,置数据段,置计数初值,开屏蔽,CNT1=CNT2?,CNT1CNT2,显示,CNT1=0?,有按键?,屏蔽,保护DS,AX,结束,Y,Y,N,N,N,Y,发EOI命令,CNT2减1,置数据段,恢复AX,DS,中断返回,中,断,服,务,子,程,序,流,程,图,注意中断重入问题,如何改为查询方式?,传递参数一般用内存变量方法,80,键盘中断(1),1、键盘中断原理,主板,键盘接口,键盘,主8259,CPU,IR1,INTR,D7D0,5芯串口,VCC,GND,CLK,DATA,RESET,键盘由单片机控制,扫描码:通码、断码,键盘接口进行串转并,发中断请求,键盘中断子程序:将键代码存入40H:1EH3DH,的FIFO循环缓冲区,INT 16H,60H,81,键盘中断(2),2、实验:显示按键对应的扫描码,读中断向量,保护中断向量,关中断,置中断向量,开屏蔽,开中断,置数据段,指针清0,空?,其它操作,从BUF读数据,指针加1,显示低4位,显示高4 位,显示空格,ESC?,恢复中断向量,关中断,开中断,结束,主程序流程图,N,N,Y,Y,PTR1读出,PTR2写入,环形:INC BX,AND BX,0FH,空:PTR1=PTR2,满:PTR2+1=PTR1,82,键盘中断(3),中断服务子程序流程图,保护BX,AX,发EOI命令,读入扫描码,置数据段,恢复DS,中断返回,保护DS,复位键盘,断码?,存入缓冲区,指针加1,满?,恢复AX,BX,Y,Y,N,N,断码不存入缓冲区,数据段段地址DS保护问题,实验内容:,1、列出字母和数字键,对应的扫描码,2、修改主程序,将字母键大、,小写各显示一次,其它按键,不显示。,83,可编程并行接口芯片8255(1),1、内部结构及引脚,数据,总线,缓冲器,读/写,控制,逻辑,A组,控制,B组,控制,A组,A口,A组,C口上,B组,B口,B组,C口下,D7D0,/RD,/WR,A0,A1,RESET,/CS,PA7PA0,PB7PB0,PC7PC4,PC3PC0,共40根引脚,84,8255(2),2、控制字与编程,(1)方式控制字,D7,D6,D5,D4,D3,D2,D1,D0,方式字标志,1=有效,A口方式,00=方式0,01=方式1,1x=方式2,A口,1=输入,0=输出,C口上,1=输入,0=输出,B口方式,0=方式0,1=方式1,B口,1=输入,0=输出,C口下,1=输入,0=输出,85,8255(3),(2)、C口位控字,D7,X,X,X,D3,D2,D1,D0,位控字标志,0=有效,位选择,000=PC0,001=PC1,111=PC7,1=置位,0=复位,注意:方式控制字C口位控字都是写入控制口,A1 A0,0 0 A口,0 1 B口,0 C,口,1 1,控制口,86,8255(4),3、工作方式,方式0:基本输入/输出,,PA、PB、PC,;,无条件方式,方式1:选通输入/输出,,PA、PB,条件方式、中断方式,方式2:双向输入/输出,,PA,条件方式、中断方式,(1)方式0 输入时序,/RD,输入,/CS,A1,A0,D7D0,最短,最长,有效,87,8255(5),(1)方式0 输出时序,/WR,D7D0,/CS,A1,A0,输出,最短,最长,有效,88,8255(6),(2)方式1 输入时序,/STB,IBF,INTR,/RD,输入,联络信号,PC3,PC4,PC5,INTE,A,(PC4),PC6,7,PA07,/STB,A,IBF,A,INTR,A,PC0,PC2,PC1,INTE,B,(PC2),PB07,/STB,B,IBF,B,INTR,B,89,8255(7),(2)方式1 输出时序,联络信号,PC3,PC6,PC7,INTE,A,(PC6),PC4,5,PA07,/ACK,A,/OBF,A,INTR,A,PC0,PC2,PC1,INTE,B,(PC2),PB07,/ACK,B,OBF,B,INTR,B,/WR,/OBF,INTR,/ACK,输出,90,8255(8),(3)A口方式2:方式1输入输出的组合。,(4)从C口读状态,(5)C口联络线功能,91,8255(9),4、8255的应用,PC机中:60H63H,方式0,PA口:输入,键盘扫描码,PB口:输出,控制,PB7、PB6控制键盘,PB1、PB0控制扬声器,PC口:输入,系统配置开关,5、实验,(1)方式1输出,中断方式,要求改为查询方式,/ACK,A,接单负脉冲,INTR,A,接PC总线的IRQ7,(2)方式1输入,可用查询或中断方式,/STB,B,接单负脉冲,INTR,B,接PC总线的IRQ7,PA口输出接LED,PB口输入接开关,92,8255(10),8255,L0R,L1R,L2R,L3R,L4R,L5R,L6R,L7R,K0,K1,K2,K3,K4,K5,K6,K7,PA0,PA7,PB0,PB7,/CS,Y1,需连线,/ACK,A,(PC6),INTR,A,(PC3),负脉冲,IRQ7,负脉冲,IRQ7,/STB,B,(PC2),INTR,B,(PC0),实验硬件原理图,功能要求:,(1)输出:,LED由右向左移动显示,(2)输入:,开关设置值当ASCII,在屏幕上显示,端口号:28828F,93,8255(11),关中断,置中断向量,开屏蔽,8255允许中断,置数据段,主程序流程图,数据段:,DATA1 DB ?,0000,0001,置初值,置8255方式,开中断,有按键?,屏蔽,结束,N,Y,保护DS,AX,DX,发EOI命令,DATA1输出,置数据段,恢复DX,AX,DS,中断返回,中断服务子,程序流程图,A0,0D,DATA1左移,注意:,1、输入/输出设置,要与引脚连接一致,2、查询方式要读INTR,不读IBF或OBF,94,串行通信(1),1、串行通信类型:异步、同步,起始位,58位数据位,(奇偶校验位),停止位,(1)异步,(2)同步:单同步、双同步、外同步,同步字符,数据1,2,3,n,校验字符1,校验字符2,同步字符1,同步字符1,数据1,2,n,校验字符1,校验字符2,数据1,2,3,4,n,校验字符1,校验字符2,发收,95,串行通信(2),2、串行数据传输方式,单工,半双工,全双工,3、异步通信协议,发送器,接收器,发/收,发/接,发/收,发/接,(1)数据帧格式,:,起始位、数据位、(校验位)、停止位,(2)通信速率,:,波特率,位/秒=波特,一对一、一对多、多对多,96,串行通信(2),(3)接口标准:RS-232C,9芯、25芯两种连接器,电平:“1”=-3V-15V,“0”=+3V+15V,电平转换芯片:MC1488、MC1489,、,MAX232,信号:,TXD发送数据,/RTS请求发送,输出,RXD接收数据,/CTS允许发送,输入,GND地,/DSR数据设备准备好,输入,/DTR数据终端准备好,输出,/DCD载波检测,输入,RI振铃指示,输入,(4)信号的调制解调(MODEM),ASK振幅键控,FSK频移键控,PSK相移键控,RS-485,97,可编程同步/异步收发器8251(1),1、内部结构及引脚,数据,总线,缓冲器,读/写,控制,逻辑,/RD,/WR,C/D,CLK,RESET,/CS,D7D0,MODEM,控制,电路,发送控制电路,接收控制电路,发送 并串,缓冲器 转换,接收 串并,缓冲器 转换,/DSR,/DTR,/CTS,/RTS,TXRDY,TXE,/TXC,RXRDY,SYNDET,/RXC,TXD,RXD,USART,UART,共28根引脚,98,8251(2),2、命令字和初始化编程,(1)方式选择字,D7,D6,D5,D4,D3,D2,D1,D0,波特率因子,00=同步方式,01=异步1,10=异步16,11=异步64,字符长度,00=5位,01=6位,10=7位,11=8位,奇偶校验,x0=无,01=奇校验,11=偶校验,帖控制,00=不确定,01=1个停止位,10=1.5个停止位,11=2个停止位,D1D0=00时,同步方式:,D6:同步控制 D7:同步字符,0=内同步,SYNDET为输出 0=双同步字符,1=外同步,SYNDET为输入 1=单同步字符,波特率=f,TXC/RXC,/波特率因子,99,8251(3),(2)工作命令字(操作命令字),D7,D6,D5,D4,D3,D2,D1,D0,EH,IR,RTS,ER,SBRK,RXEN,DTR,TXEN,请求发送,1=/RTS有效,内部复位,1=复位,搜索同步字符,1=进入搜索,数据终端,准备好,1=/DTR有效,允许发送,1=允许,0=禁止,允许接收,1=允许,0=禁止,出错标志复位,1=清PE,OE,FE,发中止字符,1=使TXD为低,0=正常,100,8251(4),(3)状态字:1有效,D7,D6,D5,D4,D3,D2,D1,D0,DSR,SYNDET,FE,OE,PE,TXE,RXRDY,TXRDY,同步检测,发送准备好,发送缓冲器空,重叠错误,帧格式错,数据设备准备好,接收准备好,奇偶错误,101,8251(5),(4)初始化编程,系统复位,写方式选择字,异步?,写同步字符1,单同步?,写同步字符2,写工作命令字,复位?,数据传输,Y,N,Y,Y,N,N,数据传输:,查询方式:读状态字的RXRDY,TXRDY,中断方式:用引脚RXRDY,TXRDY,作为中断请求线,102,8251(6),2、实验:键盘输入字符,加1,用8251自送自收,显示。,8251,8253,/CS,GATE0,CLK0,OUT0,TXC/RXC,CLK,/CS,RXD,TXD,/CTS,Y0,VCC,Y7,1MHZ,波特率计算公式:,波特率=f,TXC/RXC,/波特率因子,=1M/TC/波特率因子,8253计数初值TC,=1M/波特率/波特率因子,8253工作方式用方式3,注意:波特率误差问题!,接收改为中断方式,增加判断接收出错的功能,103,8251(7),Y,N,N,计算8253初值,置数据段,置8253工作方式,置8253初值,写三个0到8251,对8251复位,写方式选择字,写工作命令字,显示提示信息,读键盘,ESC?,读状态,TXRDY?,键盘输入,ESC?,AL加1,发送,读键盘,ESC?,读状态,RXRDY?,读接收数据,显示,结束,Y,Y,Y,Y,N,N,N,40H,4EH,27H,结束,结束,注意:,读硬件状态问题,超时判断,104,DMA,DMA传送过程:,存储器,DMAC,AB,DB,CB,I/O接口,CPU,DMA请求,DMA响应,总线请求,总线响应,CPU释放总线,DMAC接管。,一个字节传送:发地址、发IOR/MEMW或MEMR/IOW。,字节数完,总线请求变无效,CPU重新控制总线。,105,8237(1),1、内部结构和引脚,控制寄存器,状态寄存器,请求寄存器,屏蔽寄存器,方式寄存器,基地址寄存器,当前地址寄存器,当前字节数寄存器,基字节数寄存器,请求,暂存寄存器,通道1,通道2,通道3,屏蔽,通道0,/IOR,/IOW,/MEMR,/MEMW,READY,/EOP,DREQ0,DACK0,DREQ1,DACK1,DREQ2,DACK2,DREQ3,DACK3,HRQ,HLDA,CLK,AEN,/CS,RESET,ADSTB,DB7DB0,A7A4,A3A0,共40根引脚,106,8237(2),2、内部寄存器,8位,16位,107,8237(3),(1)控制(命令)寄存器,D7,D6,D5,D4,D3,D2,D1,D0,D0:0=禁止存储器到存储器传送,,1=允许,CH0为源,CH1为目的。,D1:仅D0=1时有效,0=源地址不保持,1=源地址保持不变,D2:0=启动8237工作,1=禁止8237工作,D3:0=正常时序,1=压缩时序,D4:0=固定优先级,1=循环优先级,D5:仅D3=0时有效,0=正常时序写,1=扩展时序写,D6:0=DREQ高电平有效,1= DREQ低电平有效,D7:0=DACK低电平有效,1= DACK高电平有效,PC 机中全0,108,8237(4),(2)模式(方式)寄存器,D7,D6,D5,D4,D3,D2,D1,D0,通道选择,00=CH0,01=CH1,10=CH2,11=CH3,传输类型,00=校验,01=写,10=读,11=无意义,传送方式,00=请求,01=单字节,10=数据块,11=级联,地址增减方式,0=地址加1,1=地址减1,自动重装,0=禁止,1=允许,PC中只能用单字节传送方式,指对存储器,109,8237(4),(3)状态寄存器,通道3,通道2,通道1,通道0,通道3,通道2,通道1,通道0,1=计数结束,1=有DMA请求,(4)请求寄存器,X,X,X,X,X,D2,D1,D0,通道选择,00=CH0,01=CH1,10=CH2,11=CH3,1=软件请求,0=无请求,110,8237(5),(5)屏蔽寄存器:DMA传送结束自动屏蔽,单屏蔽字,全屏蔽字,X,X,X,X,X,D2,D1,D0,通道选择,00=CH0,01=CH1,10=CH2,11=CH3,1=屏蔽,0=开屏蔽,X,X,X,X,CH3,CH2,CH1,CH0,1=屏蔽,0=开屏蔽,111,8237(6),清除屏蔽字:0EH,(6)清除高/低字节寄存器:0CH,(7)软件复位寄存器:0DH,8位均任意,(8)暂存寄存器:0DH读,3、8237的应用,PC中两片共7 个通道,CH0:动态RAM刷新,CH1:用户,CH2:软盘,CH3:硬盘,CH4:级联,CH5CH7:备用,页面地址寄存器器,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!