




已阅读5页,还剩110页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,微机接口技术,复习: 微机框图:三部件、三总线 指令执行过程:取指、取数、运算、存数 指令系统及汇编语言编程:IN、OUT,请按本PPT及实验讲义顺序预习! 有些内容要查阅参考书; 与实验内容有关的部分:精读! 作业、实验报告必须手写!,体系独立的学科技术,2,接口技术概述,几个基本问题: 1、什么是接口电路? 2、为什么外设与CPU间必须要有接口电路? 3、接口电路功能 4、接口电路最基本功能 5、接口电路分类,存储器与CPU连接呢?,3,1、什么是接口电路? Interface,CPU与外设间电路,简称I/O接口 微机系统中最复杂的部分, 接口设计:硬件电路设计、驱动程序设计。,接口电路,2、为什么外设与CPU间必须要有接口电路? 外设种类繁多,速率不匹配:机械/电子 信号类型和电平幅度不匹配:数字/模拟 信号格式不匹配:位数不同,并/串 时序不匹配:特定工作原理/控制逻辑,4,接口电路功能,3、接口电路功能 (1)寻址 类似存储器找到地址 (2)输入/输出 类似存储器读或写 (3)数据转换 外设可用的格式 (4)联络 传送过程控制 (5)中断管理 一种实时的传送方式 (6)复位 使接口本身初始化 (7)可编程 工作方式可用软件设置 (8)错误检测 串口中,传输错误等 ,5,接口电路最基本功能,4、接口电路最基本功能:由总线结构决定 端口译码:寻址,片选 输出锁存:锁存器 CPU输出数据出现在总线上的时间有限 输入缓冲:三态缓冲器 多个电路都挂在总线上,实际上存储器芯片也都具备上述三项基本功能!,要解决两个问题: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:写控制(出) 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:数据允许信号,将数据送上系统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,A9 A8 A7 A6 A5 A4 A3 A2 A1 A0,Y7 Y0,74HC138 74HC139 ,/CS /CS,RD/WR IO/M,12,*全译码,所有地址线均参与译码 端口地址唯一 结构复杂 一般用在I/O空间较大的场合 高位地址线用于片选,低位地址线用于片内字选,13,*线选法,少数几根地址线经简单逻辑或将某地址线直接作为片选 没参加译码的地址线不论为0或为1均不影响片选结果 结构简单,但地址重叠,地址空间浪费 适用于I/O空间较小的场合 难以扩展,14,*简单逻辑译码,15,*线选译码的地址空间,16,*部分译码法,某些最高位地址线不参加译码(即悬空,造成地址重叠)或以简单逻辑接入 低位地址线作为字选 剩余中间地址线接入译码器 最常用也最容易设计的方法 适用于I/O空间较大的场合,17,*输入输出指令,直接寻址(端口号小于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周期传送数据; 如果无法在规定时间内完成传送,必须通过READY引脚发出请求信号,在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传送的信息,数据信息:数字量、模拟量、开关量,双向 状态信息:由外设到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)方式 必须理解清楚:硬件、软件配合的过程,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,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,状态寄存器,35,条件输入流程改进,其它操作,准备好?,读状态,输入数据,N,Y,保存数据,其它操作,准备好?,读状态,输入数据,N,Y,保存数据,一个子程序(OTHER),一个子程序(INPUT),主程序: MAIN: CALL OTHER CALL INPUT JMP MAIN,必须考虑:与硬件配合、与其它操作配合。 数据准备好所花时间与指令执行时间比较。,36,条件方式(输出),硬件框图,输出软件流程,输 出 设 备,锁 存 器,端口译码,AB,Q,R,D,DB,ACK,+5V,/IOR,/IOW,去DB,其它操作,设备忙?,读状态,输出数据,N,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、几种方式的优先级? 3、软件中设置I/O缓冲区问题:与缓冲器区分!,共性问题讨论,接口与系统的连接:P13图1-11,接口技术的发展: 从非标准化到标准化,从硬件到软件; 内嵌CPU,智能化; 新总线标准; 软件接口标准化;,40,*典型的IO接口与外部连接,41,端口译码实验(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,42,端口译码实验(2),流程图,2A0端口输出,延时,2A8端口输出,延时,有按键?,结束,2A0和2A8输出数据任意; 用IN或OUT指令均可; 延时时间长则LED闪烁; 延时时间短则 示波器上可观察到波形。,Y,N,为调试程序方便一般要有 按任意键结束程序的功能,43,并行口实验(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,44,并行口实验(2),无 条 件 方 式 流 程 图,从2A0输入,暂存到BL,从2A8输出,到屏幕显示,从2A0输入,与BL相等?,有按键?,暂存到BL,从2A8输出,到屏幕显示,结束,N,N,Y,Y,改为查询方式: 用K7作为状态位,不做此判断则现象如何?,注意:按键输入的抖动现象 软件办法消除,编写控制硬件的程序必须 注意程序执行时间与硬件 工作速度的配合。,其它操作,45,数码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个锁存器,46,数码LED动态扫描(2),2、一般软件流程(八位显示),指针加1,位型左移,关显示,查字型表,输出字型,输出位型,返回,8位完?,指针位型初始化,延时,N,Y,注意: 亮度不均问题,1ms2ms,位型输出全1,47,数码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,不存在亮度不均问题,其它操作,48,键盘扫描(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列,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 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,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,是否扫描,扫描,拼键值,按键松开,判按下松开,图例:,问题:多键 连续键 数字键/功能键,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子程序稍加修改,LBIT和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 减计数器: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,CLK0 GATE0 OUT0,CLK1 GATE1 OUT1,CLK2 GATE2 OUT2,/RD /WR A0 A1 /CS,左与CPU连接 右与外设连接,/IOR /IOW A0 A1 /2A0,共24根引脚,58,8253/8254寄存器读写,59,8253/8254工作方式,输出波形不同,启动计数的触发方式不同, GATE作用不同,初值自动重装功能不同,波形图参见教材.,60,8253/8254控制字,计数器选择 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=二进制,61,计数值的读出:两种方法 (1)直接读出:低、高字节切分两次读, 计数器未停则有可能读错 (2)锁存读出:先用RL1,RL0=00锁存,再读出,02,00 01,FF 01,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控制,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,63,(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实验,64,中断系统(1),1、中断概念的引入:CPU与外设同时工作,输 入 设 备,输 入 接 口,现 行 程 序,中 断 服 务 子 程 序,启动,CPU,中断请求,数据,中断响应,数据,2、中断定义:是一个硬件、软件配合的过程,3、中断源:时钟、外设、故障、调试。内部/外部,4、中断系统:CPU中处理中断功能的硬件电路 基本功能:屏蔽开放、判优先级、中断嵌套、进入返回,65,中断系统(2),5、CPU响应中断的三个条件: 无总线请求(DMA) CPU允许中断(IF=1) 现行指令执行完,6、CPU响应中断后自动完成三项任务: 关闭中断 保护关键现场:断点、FLAGS 获得中断服务子程序入口地址,转入,7、中断子程序中要处理六件事: 保护现场 开中断 中断服务 关中断 恢复现场 开中断返回,8、中断源的识别: 软件方法 硬件方法,9、优先级的确定 解决:同时、嵌套 软件方法 硬件方法:编码比较 菊花链排队,66,中断向量表,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,67,中断分类,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,68,8259引脚图,69,可编程中断控制器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根引脚,70,可编程中断控制器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配合,软件与硬件配合,71,可编程中断控制器8259(3),2、工作方式,中断触发方式:上升沿触发、高电平触发,中断屏蔽方式:一般屏蔽方式、特殊屏蔽方式,优先级方式:一般完全嵌套方式 特殊完全嵌套方式 优先级循环方式:一般、自动、特殊,中断结束方式:自动EOI、一般EOI、特殊EOI,总线连接方式:缓冲方式、非缓冲方式,72,可编程中断控制器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 机中设置的工作方式不能更改!,73,可编程中断控制器8259(5),ICW1:,LTIM:中断触发方式,1=高电平触发 0=上升沿触发,SNGL:单片或级连,1=单片 0=级连,要写ICW3,IC4:1=要写ICW4 0=不写ICW4,D4为特征位,写入ICW1后自动对8259初始化,74,可编程中断控制器8259(6),ICW2:中断类型码,T7T3:中断类型码,低3位为IR7IR0的编号,ICW3:主片/从片,主片 从片,Si=1,对应IRi上接有从片, Si=0,对应IRi上未接从片,ID20:本从片接至主片的IRi的编号,75,可编程中断控制器8259(7),ICW4:,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,76,可编程中断控制器8259(8),OCW1:中断屏蔽字,Mi:对IRi的屏蔽位,1=屏蔽,0=允许,OCW3:特殊屏蔽和读出命令 D4、D3为特征位,ESMM,SMM:11=设置特殊屏蔽方式,10=撤消,RR,RIS:读寄存器命令,10=读IRR,11=读ISR,P=1:查询命令,读入的D7=1表示有请求,D2D0为编号,读 偶 端 口,77,可编程中断控制器8259(9),OCW2:中断结束和优先级循环字,R=1:优先级循环;R=0:优先级固定 EOI=1:中断结束命令 SL=1:对由L2L0指定的IRi 操作,中断结束,EOI且循环,优先级循环,78,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,79,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,主程序,80,8259实验(2),主 程 序 流 程 图,置中断向量,置数据段,置计数初值,开屏蔽,CNT1=CNT2?,CNT1CNT2,显示,CNT1=0?,有按键?,屏蔽,保护DS,AX,结束,Y,Y,N,N,N,Y,发EOI命令,CNT2减1,置数据段,恢复AX,DS,中断返回,中 断 服 务 子 程 序 流 程 图,注意中断重入问题 如何改为查询方式? 传递参数一般用内存变量方法,81,键盘中断(1),1、键盘中断原理,主板 键盘接口,键盘,主8259,CPU,IR1,INTR,D7D0,5芯串口 VCC GND CLK DATA RESET,键盘由单片机控制,扫描码:通码、断码 键盘接口进行串转并,发中断请求 键盘中断子程序:将键代码存入40H:1EH3DH 的FIFO循环缓冲区,INT 16H,60H,82,键盘中断(2),2、实验:显示按键对应的扫描码,读中断向量,保护中断向量,关中断,置中断向量,开屏蔽,开中断,置数据段,指针清0,空?,其它操作,从BUF读数据,指针加1,显示低4位,显示高4 位,显示空格,ESC?,恢复中断向量,关中断,开中断,结束,主程序流程图,N,N,Y,Y,PTR1读出,PTR2写入,环形:INC BX AND BX,0FH,空:PTR1=PTR2,满:PTR2+1=PTR1,83,键盘中断(3),中断服务子程序流程图,保护BX,AX,发EOI命令,读入扫描码,置数据段,恢复DS,中断返回,保护DS,复位键盘,断码?,存入缓冲区,指针加1,满?,恢复AX,BX,Y,Y,N,N,断码不存入缓冲区,数据段段地址DS保护问题,实验内容: 1、列出字母和数字键 对应的扫描码 2、修改主程序,将字母键大、 小写各显示一次,其它按键 不显示。,84,可编程并行接口芯片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根引脚,85,8255(2),2、控制字与编程,(1)方式控制字,方式字标志 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=输出,86,8255(3),(2)、C口位控字,位控字标志 0=有效,位选择 000=PC0 001=PC1 111=PC7,1=置位 0=复位,注意:方式控制字C口位控字都是写入控制口,A1 A0 0 0 A口 0 1 B口 0 C口 1 1 控制口,87,8255(4),3、工作方式,方式0:基本输入/输出,PA、PB、PC;无条件方式 方式1:选通输入/输出,PA、PB 条件方式、中断方式 方式2:双向输入/输出,PA 条件方式、中断方式,(1)方式0 输入时序,/RD 输入 /CS,A1,A0 D7D0,最短,最长,有效,88,8255(5),(1)方式0 输出时序,/WR D7D0 /CS,A1,A0 输出,最短,最长,有效,89,8255(6),(2)方式1 输入时序,/STB IBF INTR /RD 输入,联络信号,PC3,PC4,PC5,INTEA (PC4),PC6,7,PA07,/STBA IBFA,INTRA,PC0,PC2,PC1,INTEB (PC2),PB07,/STBB IBFB,INTRB,90,8255(7),(2)方式1 输出时序,联络信号,PC3,PC6,PC7,INTEA (PC6),PC4,5,PA07,/ACKA /OBFA,INTRA,PC0,PC2,PC1,INTEB (PC2),PB07,/ACKB OBFB,INTRB,/WR /OBF INTR /ACK 输出,91,8255(8),(3)A口方式2:方式1输入输出的组合。,(4)从C口读状态,(5)C口联络线功能,92,8255(9),4、8255的应用,PC机中:60H63H,方式0 PA口:输入,键盘扫描码 PB口:输出,控制,PB7、PB6控制键盘 PB1、PB0控制扬声器 PC口:输入,系统配置开关,5、实验 (1)方式1输出,中断方式,要求改为查询方式 /ACKA接单负脉冲,INTRA接PC总线的IRQ7 (2)方式1输入,可用查询或中断方式 /STBB接单负脉冲,INTRB接PC总线的IRQ7 PA口输出接LED,PB口输入接开关,93,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,需连线,/ACKA (PC6),INTRA (PC3),负脉冲,IRQ7,负脉冲,IRQ7,/STBB (PC2),INTRB (PC0),实验硬件原理图,功能要求: (1)输出: LED由右向左移动显示 (2)输入: 开关设置值当ASCII 在屏幕上显示,端口号:28828F,94,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,95,串行通信(1),1、串行通信类型:异步、同步,起始位,58位数据位,(奇偶校验位),停止位,(1)异步,(2)同步:单同步、双同步、外同步,发收,96,串行通信(2),2、串行数据传输方式 单工 半双工 全双工,3、异步通信协议,发送器,接收器,发/收,发/接,发/收,发/接,(1)数据帧格式:起始位、数据位、(校验位)、停止位,(2)通信速率:波特率,位/秒=波特,一对一、一对多、多对多,97,串行通信(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,98,可编程同步/异步收发器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根引脚,99,8251(2),2、命令字和初始化编程,(1)方式选择字,波特率因子 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/波特率因子,100,8251(3),(2)工作命令字(操作命令字),请求发送 1=/RTS有效,内部复位 1=复位,搜索同步字符 1=进入搜索,数据终端 准备好 1=/DTR有效,允许发送 1=允许 0=禁止,允许接收 1=允许 0=禁止,出错标志复位 1=清PE,OE,FE,发中止字符 1=使TXD为低 0=正常,101,8251(4),(3)状态字:1有效,同步检测,发送准备好,发送缓冲器空,重叠错误,帧格式错,数据设备准备好,接收准备好,奇偶错误,102,8251(5),(4)初始化编程,系统复位,写方式选择字,异步?,写同步字符1,单同步?,写同步字符2,写工作命令字,复位?,数据传输,Y,N,Y,Y,N,N,数据传输: 查询方式:读状态字的RXRDY TXRDY 中断方式:用引脚RXRDY TXRDY 作为中断请求线,103,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,注意:波特率误差问题!,接收改为中断方式 增加判断接收出错的功能,104,8251(7),Y,N,N,计算8253初值,置数据段,置8253工作方式,置8253初值,写三个0到8251,对8251复位,写方式选择字,写工作命令字,显示提示信息,读键盘,ESC?,读状态,TXRDY?,键盘输入,ESC?,AL加1,发送,读键盘,ESC?,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年夫妻离婚婚生子权益保护与财产合理分割合同范本
- 2025年绿色矿山建设地质环境综合治理工程承包合同
- 2025年度餐厅厨艺大赛选手聘用及赛事执行服务合同
- 2025年度高品质食品包装印刷设计及制作合作协议
- 2025年绿色建筑节能环保技术引进与应用实施协议
- 2025年个人创业贷款担保责任合同范本
- 2025年度金融科技数据服务与风险控制合作协议书
- 2025年度环保型企业土地抵押融资贷款合同样本
- 2025年高端纸质礼品盒设计制作及品牌形象推广合同
- 2025年度酒店会议室租赁合同范本
- 阀门配送方案模板(3篇)
- 激光切割安全操作规程
- 海事管理培训课件
- 《曾国藩传》读书分享课件
- 十五五林业发展规划(完整版)
- 厂区安保巡逻管理制度
- T/CECS 10209-2022给水用高环刚钢骨架增强聚乙烯复合管材
- 项目包装合作协议书
- 安徽省合肥一中2025届高三5月回归教材读本
- 2024年江西省投资集团有限公司总部招聘考试真题
- 2025年04月广东省特种设备检测研究院东莞检测院招考笔试历年典型考题(历年真题考点)解题思路附带答案详解
评论
0/150
提交评论