微机接口技术.ppt

上传人:sccc 文档编号:5386522 上传时间:2023-07-02 格式:PPT 页数:115 大小:2.23MB
返回 下载 相关 举报
微机接口技术.ppt_第1页
第1页 / 共115页
微机接口技术.ppt_第2页
第2页 / 共115页
微机接口技术.ppt_第3页
第3页 / 共115页
微机接口技术.ppt_第4页
第4页 / 共115页
微机接口技术.ppt_第5页
第5页 / 共115页
点击查看更多>>
资源描述

《微机接口技术.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刷新电路,扬声器

26、,PB1,MOV AL,00110110BOUT 43H,ALMOV AL,0OUT 40H,ALOUT 40H,ALMOV AL,01010100BOUT 43H,ALMOV AL,12HOUT 41H,ALMOV AL,10110110BOUT 43H,ALMOV AX,0533HOUT 42H,ALMOV AL,AHOUT 42H,AL,63,(1)6种工作方式的波形验证 软件启动、硬件启动 初值(分频比)3、2、1、5、0、4(2)参考:书P182,8253,CLK0CLK1CLK2,GATE0GATE1GATE2,OUT0OUT1OUT2,1MHZ,+5V,CS8253,Y0,示波器

27、,8253/8254实验,64,中断系统(1),1、中断概念的引入:CPU与外设同时工作,输入设备,输入接口,现行程序,中断服务子程序,启动,CPU,中断请求,数据,中断响应,数据,2、中断定义:是一个硬件、软件配合的过程,3、中断源:时钟、外设、故障、调试。内部/外部,4、中断系统:CPU中处理中断功能的硬件电路 基本功能:屏蔽开放、判优先级、中断嵌套、进入返回,65,中断系统(2),5、CPU响应中断的三个条件:无总线请求(DMA)CPU允许中断(IF=1)现行指令执行完,6、CPU响应中断后自动完成三项任务:关闭中断 保护关键现场:断点、FLAGS 获得中断服务子程序入口地址,转入,7、

28、中断子程序中要处理六件事:保护现场 开中断 中断服务 关中断 恢复现场 开中断返回,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=读出

29、的中断向量(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引

30、脚图,69,可编程中断控制器8259(1),1、8259内部结构和引脚,中断服务寄存器ISR,优先权判别电路PR,中断请求寄存器IRR,中断屏蔽寄存器IMR,控制逻辑,数据总线缓冲,读/写逻辑,级连/缓冲,D7D0,/RD/WRA0/CS,CAS0CAS1CAS2/SP/EN,/INTA,INT,IR0IR1IR2IR3IR4IR5IR6IR7,共28根引脚,70,可编程中断控制器8259(2),工作原理IR0IR7引脚上来请求存入IRR;IMR控制是否送到PR;PR选中优先级最高的中断源并从INT引脚向CPU发请求。CPU若响应,从/INTA向8259发两个负脉冲作为应答;8259收到/IN

31、TA第一个负脉冲时,将ISR中与被选中的中断源 对应的位置1,同时将IRR中对应位清0;8259收到/INTA第二个负脉冲时,从数据总线把被选中中断源 的类型码送给CPU;CPU根据类型码从中断向量表查到中断子程序的入口地址,从而跳转到中断服务子程序;中断服务子程序结束前,CPU通知8259中断服务结束,8259将ISR中对应位清0,从而可再接受其它中断。,注意:8259与CPU配合,软件与硬件配合,71,可编程中断控制器8259(3),2、工作方式,中断触发方式:上升沿触发、高电平触发,中断屏蔽方式:一般屏蔽方式、特殊屏蔽方式,优先级方式:一般完全嵌套方式 特殊完全嵌套方式 优先级循环方式:

32、一般、自动、特殊,中断结束方式:自动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,可编程中断控制器825

33、9(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,一般完全嵌套方式,

34、同级不响应,用于从片,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为

35、编号,读偶端口,77,可编程中断控制器8259(9),OCW2:中断结束和优先级循环字,R=1:优先级循环;R=0:优先级固定EOI=1:中断结束命令SL=1:对由L2L0指定的IRi 操作,中断结束,EOI且循环,优先级循环,78,PC机中的中断源使用,主8259:IR0:时钟IR1:键盘IR2:从片IR3:辅串行口IR4:主串行口IR5:并行口2IR6:软盘IR7:并行口1端口号:20H、21H类型码:08H0FH,从8259:IR8:时钟IR9:用户中断IR10:保留IR11:保留IR12:保留IR13:协处理器IR14:硬盘IR15:保留端口号:A0H、A1H类型码:70H77H,79

36、,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

37、OUT 21H,ALW0:MOV AL,CNT2 CMP AL,CNT1 JZ W1,MOV CNT1,AL LEA DX,BUF MOV AH,9 INT 21H CMP CNT1,0 JZ EXITW1:MOV AH,6 MOV DL,0FFH INT 21H CMP AL,0 JZ W0EXIT: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

38、,N,N,N,Y,发EOI命令,CNT2减1,置数据段,恢复AX,DS,中断返回,中断服务子程序流程图,注意中断重入问题如何改为查询方式?传递参数一般用内存变量方法,81,键盘中断(1),1、键盘中断原理,主板键盘接口,键盘,主8259,CPU,IR1,INTR,D7D0,5芯串口VCCGNDCLKDATARESET,键盘由单片机控制,扫描码:通码、断码键盘接口进行串转并,发中断请求键盘中断子程序:将键代码存入40H:1EH3DH的FIFO循环缓冲区,INT 16H,60H,82,键盘中断(2),2、实验:显示按键对应的扫描码,读中断向量,保护中断向量,关中断,置中断向量,开屏蔽,开中断,置数

39、据段,指针清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、修改主程序,

40、将字母键大、小写各显示一次,其它按键 不显示。,84,可编程并行接口芯片8255(1),1、内部结构及引脚,数据总线缓冲器,读/写控制逻辑,A组控制,B组控制,A组A口,A组C口上,B组B口,B组C口下,D7D0,/RD/WRA0A1RESET/CS,PA7PA0,PB7PB0,PC7PC4,PC3PC0,共40根引脚,85,8255(2),2、控制字与编程,(1)方式控制字,方式字标志1=有效,A口方式00=方式001=方式11x=方式2,A口1=输入0=输出,C口上1=输入0=输出,B口方式0=方式01=方式1,B口1=输入0=输出,C口下1=输入0=输出,86,8255(3),(2)、C

41、口位控字,位控字标志0=有效,位选择000=PC0001=PC1111=PC7,1=置位0=复位,注意:方式控制字C口位控字都是写入控制口,A1 A00 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,A0D7D0,最短,最长,有效,88,8255(5),(1)方式0 输出时序,/WRD7D0/CS,A1,A0输出,最短,最长,有效,89,8255(6),(2)

42、方式1 输入时序,/STBIBFINTR/RD输入,联络信号,PC3,PC4,PC5,INTEA(PC4),PC6,7,PA07,/STBAIBFA,INTRA,PC0,PC2,PC1,INTEB(PC2),PB07,/STBBIBFB,INTRB,90,8255(7),(2)方式1 输出时序,联络信号,PC3,PC6,PC7,INTEA(PC6),PC4,5,PA07,/ACKA/OBFA,INTRA,PC0,PC2,PC1,INTEB(PC2),PB07,/ACKBOBFB,INTRB,/WR/OBFINTR/ACK输出,91,8255(8),(3)A口方式2:方式1输入输出的组合。,(4

43、)从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,L0RL1RL2RL3RL4RL5RL6RL7R,K0K1K2K3K4K5K6K7,PA0PA7,

44、PB0PB7,/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,中断返回,中断服务子程

45、序流程图,A00D,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芯两种连接器

46、 电平:“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/WRC/DCLKRESET/CS,D7D0,MODEM控制电路,发送控制电路,接收控制电路,发送

47、并串缓冲器 转换,接收 串并缓冲器 转换,/DSR/DTR/CTS/RTS,TXRDYTXE/TXC,RXRDYSYNDET/RXC,TXD,RXD,USARTUART,共28根引脚,99,8251(2),2、命令字和初始化编程,(1)方式选择字,波特率因子00=同步方式01=异步110=异步1611=异步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=外同步,SYN

48、DET为输入 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,单同步?,写同步字符

49、2,写工作命令字,复位?,数据传输,Y,N,Y,Y,N,N,数据传输:查询方式:读状态字的RXRDY TXRDY中断方式:用引脚RXRDY TXRDY 作为中断请求线,103,8251(6),2、实验:键盘输入字符,加1,用8251自送自收,显示。,8251,8253,/CS,GATE0CLK0,OUT0,TXC/RXC,CLK,/CS,RXDTXD,/CTS,Y0,VCC,Y7,1MHZ,波特率计算公式:波特率=f TXC/RXC/波特率因子=1M/TC/波特率因子,8253计数初值TC=1M/波特率/波特率因子8253工作方式用方式3,注意:波特率误差问题!,接收改为中断方式增加判断接收出

50、错的功能,104,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,结束,结束,注意:读硬件状态问题超时判断,105,DMA,DMA传送过程:,存储器,DMAC,ABDBCB,I/O接口,CPU,DMA请求,DMA响应,总线请求,总线响应,CPU释放总线,DMAC接管。,一个字节传送:发

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号