微机接口技术.ppt

上传人:豆**** 文档编号:59828708 上传时间:2022-11-13 格式:PPT 页数:115 大小:2.29MB
返回 下载 相关 举报
微机接口技术.ppt_第1页
第1页 / 共115页
微机接口技术.ppt_第2页
第2页 / 共115页
点击查看更多>>
资源描述

《微机接口技术.ppt》由会员分享,可在线阅读,更多相关《微机接口技术.ppt(115页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、微机接口技术 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望接口技术概述 几个基本问题:1、什么是接口电路?2、为什么外设与CPU间必须要有接口电路?3、接口电路功能4、接口电路最基本功能5、接口电路分类存储器与CPU连接呢?21、什么是接口电路?Interface,CPU与外设间电路,简称I/O接口微机系统中最复杂的部分,接口设计:硬件电路设计、驱动程序设计。接口电路2、为什么外设与CPU间必须要有接口电路?外设种类繁多,速率不匹配:机械/电子信号类型和电平幅度

2、不匹配:数字/模拟信号格式不匹配:位数不同,并/串时序不匹配:特定工作原理/控制逻辑3接口电路功能3、接口电路功能 (1)寻址 类似存储器找到地址 (2)输入/输出 类似存储器读或写 (3)数据转换 外设可用的格式 (4)联络 传送过程控制 (5)中断管理 一种实时的传送方式 (6)复位 使接口本身初始化 (7)可编程 工作方式可用软件设置 (8)错误检测 串口中,传输错误等 4接口电路最基本功能4、接口电路最基本功能:由总线结构决定 端口译码:寻址,片选 输出锁存:锁存器 CPU输出数据出现在总线上的时间有限 输入缓冲:三态缓冲器 多个电路都挂在总线上实际上存储器芯片也都具备上述三项基本功能

3、!要解决两个问题:1、引脚对接;2、时序配合5七个方面的内容:名称、功能、方向、三态、有效(高/低/边缘)、多功能、驱动能力CPU引脚按功能分三类:(早期CPU地址/数据复用)地址:A0A9A16A20A32数据:D0D7D15D31 控制:RD、WR、IO/M NMI、INTR、INTA,8086为40脚DIP,80486为168脚PGA,.68086引脚AD0AD15:地址/数据(出/双向)A16/S3A19/S6:地址/状态(出)/BHE/S7:高字节有效/状态(出)/RD:读控制(出)/WR:写控制(出)M/IO:存储器/IO选择(出)DT/R:数据发送/接收(出)/DEN:数据使能(

4、出)ALE:地址锁存使能(出)7*8086的引脚AD0AD15:地址/数据复用总线;A16/S3A19/S6:地址状态总线;BHE/S7:高8位数据总线允许/状态复用引脚;RD:读信号;WR:写信号;M/IO:存储器或I/O端口访问信号;READY:读写准备就绪信号;INTR:可屏蔽中断请求信号;INTA:中断响应信号;NMI:不可屏蔽中断请求信号,上升沿触发;8*8086的引脚(续)ALE:地址锁存允许信号,将地址送上系统AB;DT/R:数据发送/接收控制信号;DEN:数据允许信号,将数据送上系统DB;HOLD:总线请求信号,由另一主控模块发起;HLDA:总线请求响应信号,由CPU应答;TE

5、ST:测试信号,执行WAIT指令时决定是否继续等待;RESET:复位;MN/MX:最小/最大模式选择;CLK:时钟9存储器举例6264:8K8位SRAMA0A12:地址线13根(入);I/O0I/O7:数据线8根(双向);/CS1、CS2:片选信号(入);/OE:输出允许(入);/WE:写控制(入);I/O接口电路的引脚类似10端口译码用地址线确定要操作的端口。片选:全译码、线译码、部分译码译码电路接口1接口2A9A8A7A6A5A4A3A2A1A0Y7Y074HC13874HC139/CS /CSRD/WRIO/M11*全译码所有地址线均参与译码端口地址唯一结构复杂一般用在I/O空间较大的场

6、合高位地址线用于片选,低位地址线用于片内字选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 I

7、N AL/AX ,DX OUT DX ,AL/AX17CPU读/写时序18*指令、总线与时钟周期执行一条指令所需时间为指令周期,不同指令其周期不等长。当CPU从存储器或I/O设备存取一次数据就需要一个总线周期。一个或多个总线周期组成一个指令周期。CLK周期即时钟周期T,一个总线周期至少由四个时钟周期T1、T2、T3、T4组成。19*总线周期在T1期间送出地址;在其他三个T周期传送数据;如果无法在规定时间内完成传送,必须通过READY引脚发出请求信号,在T3与T4之间插入一个或数个等待周期Tw,直到READY有效。Tw也以T为单位。20*8086读周期时序21*8086写周期时序22*中断响应周

8、期时序23*总线保持/响应时序24*复位时序25*最小方式下的总线形成26*三态锁存器828227*数据收发器828628接口电路分类5、接口电路分类 按通用性分:专用接口、通用接口 按可编程性分:可编程接口、不可编程接口 按外设传送数据格式分:并行接口、串行接口 按工作对象分:面向CPU的外围接口、面向外设的I/O接口8253、8259、8255、8251、823729外设与CPU传送的信息数据信息:数字量、模拟量、开关量,双向状态信息:由外设到CPU,输入控制信息:由CPU到外设,输出存储单元I/O端口地址 端口号(端口地址)存储器:程序、数据(数据有各种不同的物理意义)I/O接口:信息,

9、分三种:30I/O端口接口电路可抽象为三组寄存器(端口)数据端口、状态端口、控制端口I/O端口编址方式:统一编址、单独编址CPU存储器I/O接口I/O设备ABDBCB读/写输入/输出31CPU与外设信息传送控制方式(1)无条件传送方式(2)条件传送方式(查询方式)(3)中断传送方式(4)直接存储器存取(DMA)方式必须理解清楚:硬件、软件配合的过程32无条件方式三态缓冲器端口译码锁存器端口译码/IORABDB输入数据DBAB/IOW输出数据输入输出00001174HC24474HC27374HC138软件原理:一条IN或OUT指令典型应用:按键/开关输入,LED显示输出注意:端口译码有效为低或

10、高?33条件方式(输入)硬件框图输入设备锁存器三态缓冲器+5VRDQ端口译码ABDBD7/IOR/IORSTB输入软件流程000011准备好?读状态输入数据NYSCAN:IN AL,0F1H TEST AL,80H JZ SCAN IN AL,0F0H MOV BUF,AL保存数据F0F1状态寄存器34条件输入流程改进其它操作准备好?读状态输入数据NY保存数据其它操作准备好?读状态输入数据NY保存数据一个子程序(OTHER)一个子程序(INPUT)主程序:MAIN:CALL OTHERCALL INPUTJMP MAIN必须考虑:与硬件配合、与其它操作配合。必须考虑:与硬件配合、与其它操作配合

11、。数据准备好所花时间与指令执行时间比较。数据准备好所花时间与指令执行时间比较。35条件方式(输出)硬件框图输出软件流程输出设备锁存器端口译码ABQRDDBACK+5V/IOR/IOW去DB其它操作设备忙?读状态输出数据NY000011与条件输入一样的流程改进请同学们思考。与条件输入一样的流程改进请同学们思考。36中断方式(输入)硬件框图输入设备锁存器三态缓冲器+5VRDQ端口译码ABDB/IOR/IOWSTB0001QDINTR10IRRIMRD0软件原理主程序中断子程序输出较少使用中断方式。输出较少使用中断方式。为提高为提高CPUCPU利用率,并实时处理随机事件利用率,并实时处理随机事件状态

12、寄存器改为中断请求寄存器状态寄存器改为中断请求寄存器37DMA方式适用于高速适用于高速大量大量的数据传送的数据传送CPU存储器I/O接口DMACABDBCB前三种方式都要CPU干预,传送时间长;实际数据是放在存储器中的。381、如何确定外设准备好?2、几种方式的优先级?3、软件中设置I/O缓冲区问题:与缓冲器区分!共性问题讨论接口与系统的连接:P13图1-11接口技术的发展:从非标准化到标准化,从硬件到软件;内嵌CPU,智能化;新总线标准;软件接口标准化;39*典型的IO接口与外部连接40端口译码实验(1)ABCE10Y4Y50 1 A30 0 A41 1 A50 A61 A70 A81 A9

13、/IOW/IORY4Y5CLKRDPRQL0R(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 2A02A7Y5 1 0 1 0 1 0 1 X X X 2A82AFY7 1 0 1 0 1 1 1 X X X 2B82BF需连线74HC13874HC74041端口译码实验(2)流程图2A0端口输出延时2A8端口输出延时有按键?结束2A02A0和和2A82A8输出数据任意;输出数据任意;用用ININ或或OUTOUT指令均可;指令均可;延时时间长则延时时间长则LEDLED闪烁;闪烁;

14、延时时间短则延时时间短则示波器上可观察到波形。示波器上可观察到波形。YN为调试程序方便一般要有为调试程序方便一般要有按任意键结束程序的功能按任意键结束程序的功能42并行口实验(1)2441A11A42A12A42731Y12Y41/G2/GQ1Q8D0D7CLK/IOR/IOW2A02A8DBDBL0RL1RL2RL3RL4RL5RL6RL7RK0K1K2K3K4K5K6K7需连线验证无条件和条件传送原理CLRVCC问题:问题:为什么为什么LEDLED显示显示、开关开关(按键按键)输入输入可以用无条件方式?可以用无条件方式?0043并行口实验(2)无条件方式流程图从2A0输入暂存到BL从2A8

15、输出到屏幕显示从2A0输入与BL相等?有按键?暂存到BL从2A8输出到屏幕显示结束NNYY改为查询方式:用K7作为状态位不做此判断则现象如何?不做此判断则现象如何?注意:按键输入的抖动现象注意:按键输入的抖动现象 软件办法消除软件办法消除编写控制硬件的程序必须编写控制硬件的程序必须注意程序执行时间与硬件注意程序执行时间与硬件工作速度的配合。工作速度的配合。其它操作44数码LED动态扫描(1)273Q1Q8D0D7CLK/IOW2A8DBCLRVCC273Q8Q1D0D7CLK/IOW2A0DBCLRVCCLED0LED7DP SAabcdefg.h1、硬件原理图字型位型10反相静态显示:静态显

16、示:8 8个锁存器个锁存器动态显示:动态显示:2 2个锁存器个锁存器45数码LED动态扫描(2)2、一般软件流程(八位显示)指针加1位型左移关显示查字型表输出字型输出位型返回8位完?指针位型初始化延时NY注意:注意:亮度不均问题亮度不均问题1ms2ms位型输出全146数码LED动态扫描(3)软件流程一位显示子程序:3、实验程序字型表:LED DB 3FH,06H,71H显示数据表:BUF DB 8 DUP(?)显示指针:初值0LPTR DW?;07显示位型:初值01HLBIT DB?;02H,04H.80H指针加1位型左移关显示查字型表输出字型输出位型返回数据结构主程序指针初始化位型初始化段初

17、始化调用显示 子程序键盘输入有按键?返回YN不存在亮度不均问题不存在亮度不均问题其它操作47键盘扫描(1)273Q1Q2Q3D0D7CLK/IOW2A0DBCLRVCC行输出1、硬件原理2442A42A11A41A11Y12Y41/G2/G/IOR2A8DB列输入VCCF E D C B A 9 87 6 5 4 3 2 1 0KEY5KEY1KEY2KEY3KEY7KEY6KEY0KEY4KB0KB1KB23行8列48键盘扫描(2)2、一般软件流程(三行全部扫描)拼键值返回行输出全0读入列值列值全1?一行输出0返回读入列值列值全1?下一行行扫完?返回延时(20ms)再输出行值读入列值列值相同

18、?返回行输出全0读入列值列值全1?延时(20ms)NYYYYNNNY等待键松开消抖消除抖动10ms10ms100ms49键盘扫描(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 ;按键消抖计数最大值,可根据其它操作时间长短调整主程序用子程序用50键盘扫描(4)

19、一行键盘扫描子程序流程图AHKROWKBIT左移KBIT=08H?KBIT01HKCOL=0?KBIT=KROW?返回YNYYNNKBIT取反输出列输入取反列值=KCOL?KCOL列值KROWKBITKEYIN1KEYIN0KCNT0KCNT+1KCNT=CNTMAX?N返回参数:CF=1:无CF=0:AL=键KCNT0KCOL=0?KEY=FF?KEYIN2KEYIN3ALKEYKEYFF有键返回KEYIN4AL0AHKCOLAH右移CF=1?CF=1?返回返回YNYKEYIN5返回YNNYAL加1AH右移AL加8KEYAL返回YYNNKEYIN6KEYIN8KEYIN7KEYIN9是否扫描

20、扫描 拼键值按键松开判按下松开图例:问题:多键问题:多键 连续键连续键数字键数字键/功能键功能键51键盘扫描(5)主程序流程图AL0A?返回段初始化KPTR0KBIT01HKROW0KCOL0KCNT0KEYFFCF=1?读PC机键盘PC有按键?调用键盘扫描缓冲区ALKPTR加1AL10H?ALAL+7ALAL+30H显示YNYNNY其它操作YN52键盘扫描(6)键盘行列扫描与动态LED显示综合:0F的按键在数码LED上显示必须解决的问题:1、因为键盘行输出与LED位型输出是共用的,所以软件上两者必须配合好;如何配合?若末配合好会有什么问题?如何配合?若末配合好会有什么问题?KEYIN KEY

21、IN子程序稍加修改,子程序稍加修改,LBITLBIT和和KBITKBIT合一。合一。2、BUF缓冲区可共用,但存入指针KPTR和取出指针LPTR还是分开使用。若用若用8 8位显示和位显示和3 3行扫描的子程序,则非常麻烦。行扫描的子程序,则非常麻烦。53可编程定时/计数器基本原理(3)基本功能:位数、二进制/十进制、加/减 8253/8254:16 16 减减 8254有读出控制字和读出状态字,8253无。(2)定时/计数器基本原理:可预置初值;对输入信号进行加或减计数;计到0或FFFF时有输出信号,从原初值重新计数.(1)区分:可编程接口芯片(8253等)可编程器件(PLD、GAL、CPLD

22、、FPGA)54(4)定时功能:周期性输出信号 设输入时钟周期设输入时钟周期t t,输出信号周期,输出信号周期T T,计数初值,计数初值TCTC 减计数器:tTC=T 加计数器:t(2n-TC)=T二进制:2n改为10m(5)计数功能:测量脉冲宽度 设输入时钟周期设输入时钟周期t t,待测信号周期,待测信号周期T T,计数终值计数终值TCTC,初值置为,初值置为0 0 加计数器:tTC=T 减计数器:t(2n-TC)=T定时计数公式558253/8254引脚图与外设连接:三个计数器独立CLK0:计数信号(入)GATE0:门控信号(入)OUT0:输出信号(出)与CPU连接:D0D7:数据线.56

23、8253/8254内部结构数据总线缓冲器读/写逻辑控制字寄存器0号计数器1号计数器2号计数器内部数据总线D0D7CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2/RD/WRA0A1/CS左与左与CPUCPU连接连接右与外设连接右与外设连接/IOR/IOWA0A1/2A0共24根引脚578253/8254寄存器读写/CS/RD/WR A1A0 操作01000计数初值写入计数器001001计数初值写入计数器101010计数初值写入计数器201011控制字写入控制寄存器00100读计数器0当前计数值00101读计数器1当前计数值00110读计数器2当前计数值00111无

24、操作011xx无操作1xxxx禁止588253/8254工作方式输出波形不同,启动计数的触发方式不同,GATE作用不同,初值自动重装功能不同方式0 方式1方式2方式3方式4 方式5功能波形 0,0,11,0,11,1,1,0,11,1,1,1,启动软硬软软软硬初值自动重装改初值立即GATE下周期 下周期 立即GATEGATE0暂停停停暂停启,重启重启重启启,重启1继续继续波形图参见教材波形图参见教材.598253/8254控制字D7D6D5D4D3 D2 D1D0SC1 SC0 RL1 RL0 M2 M1 M0 BCD计数器选择00=CH001=CH110=CH211=8254读出读写控制00

25、=锁存01=低字节10=高字节11=先低后高工作方式000=方式0001=方式1x10=方式2x11=方式3100=方式4101=方式5数制1=BCD0=二进制60计数值的读出:两种方法(1)(1)直接读出:低、高字节切分两次读,直接读出:低、高字节切分两次读,计数器未停则有可能读错计数器未停则有可能读错(2)(2)锁存读出:先用锁存读出:先用RL1,RL0=00RL1,RL0=00锁存,再读出锁存,再读出02,0001,FF01,FE8253/8254初始化编程及计数读出初始化编程:三个计数独立1、写控制字;2、写计数初值。618253/8254应用PC机中:40H43H,CLK02=1.1

26、9MHZ,二进制CH0:方式3,55ms,实时时钟CH1:方式2,15.1us,DRAM刷新CH2:方式3,900HZ,扬声器,由PB0、PB1控制CLK0CLK1CLK2GATE0GATE1GATE2OUT0OUT1OUT2Fclk+5VPB08259IR0DRAM刷新电路扬声器PB1MOV 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,A

27、HOUT 42H,AL62(1)6种工作方式的波形验证 软件启动、硬件启动 初值(分频比)3、2、1、5、0、4(2)参考:书P1828253CLK0CLK1CLK2GATE0GATE1GATE2OUT0OUT1OUT21MHZ+5VCS8253Y0示波器8253/8254实验63中断系统(1)1、中断概念的引入:CPU与外设同时工作输入设备输入接口现行程序 中断服务子程序启动CPU中断请求数据中断响应数据2、中断定义:是一个硬件、软件配合的过程是一个硬件、软件配合的过程3、中断源:时钟、外设、故障、调试。调试。内部内部/外部外部4、中断系统:CPUCPU中处理中断功能的硬件电路中处理中断功能

28、的硬件电路 基本功能:屏蔽开放、判优先级、中断嵌套、进入返回64中断系统(2)5、CPU响应中断的三个条件:无总线请求(DMA)CPU允许中断(IF=1)现行指令执行完6、CPU响应中断后自动完成三项任务:关闭中断 保护关键现场:断点、FLAGS 获得中断服务子程序入口地址,转入7、中断子程序中要处理六件事:保护现场 开中断开中断 中断服务 关中断关中断 恢复现场 开中断返回8、中断源的识别:软件方法 硬件方法9、优先级的确定 解决:同时、嵌套 软件方法 硬件方法:编码比较 菊花链排队65中断向量表1、中断向量:中断子程序入口地址 偏移地址、段基址,共4 个字节2、中断向量表:在0000000

29、3FFH中,共256个中断源,中断类型码(n)0FFH3、中断向量表原理:类型码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,46H66中断分类1、CPU中断 0:除法错 1:单步中断 2 2:NMINMI 3:断点中断 4:溢出中断2、软件中断 (1)BIOS中断:05H,10H1FH (2)

30、DOS中断:DOS专用:22H、23H、24H、28H3FH 用户可用:20H、21H、25H、25H、27H 用户可开发:60H66H DOS保留:42H45H、4BH5FH、68H6FH、72H74H 77H7FH共共256256个中断源个中断源软件中断软件中断硬件中断:硬件中断:INTRINTR、NMINMI678259引脚图68可编程中断控制器8259(1)1、8259内部结构和引脚中断服务寄存器ISR优先权判别电路PR中断请求寄存器IRR中断屏蔽寄存器IMR控制逻辑数据总线缓冲读/写逻辑级连/缓冲D7D0/RD/WRA0/CSCAS0CAS1CAS2/SP/EN/INTAINTIR0

31、IR1IR2IR3IR4IR5IR6IR7共28根引脚69可编程中断控制器8259(2)工作原理IR0IR7引脚上来请求存入IRR;IMR控制是否送到PR;PR选中优先级最高的中断源并从INT引脚向CPU发请求。CPU若响应,从/INTA向8259发两个负脉冲作为应答;8259收到/INTA第一个负脉冲时,将ISR中与被选中的中断源 对应的位置1,同时将IRR中对应位清0;8259收到/INTA第二个负脉冲时,从数据总线把被选中中断源 的类型码送给CPU;CPU根据类型码从中断向量表查到中断子程序的入口地址,从而跳转到中断服务子程序;中断服务子程序结束前,中断服务子程序结束前,CPUCPU通知

32、通知82598259中断服务结束,中断服务结束,8259 8259将将ISRISR中对应位清中对应位清0 0,从而可再接受其它中断。,从而可再接受其它中断。注意:注意:82598259与与CPUCPU配合,软件与硬件配合配合,软件与硬件配合70可编程中断控制器8259(3)2、工作方式中断触发方式:上升沿触发、高电平触发中断屏蔽方式:一般屏蔽方式、特殊屏蔽方式优先级方式:一般完全嵌套方式 特殊完全嵌套方式 优先级循环方式:一般、自动、特殊中断结束方式:自动EOI、一般EOI、特殊EOI总线连接方式:缓冲方式、非缓冲方式71可编程中断控制器8259(4)3、8259的编程(1)使用端口两个:A0

33、=0,偶端口、A0=1,奇端口 PC机中:20H 21H(2)共有7 个命令字 初始化命令字:ICW1ICW4 ICW1写入偶端口,其余按顺序写入奇端口 操作命令字:OCW1OCW3 OCW1写入奇端口,OCW2、3写入偶端口 写入偶端口的写入偶端口的ICW1ICW1、OCW2OCW2、OCW3OCW3用特征位区别用特征位区别 读奇端口为为读奇端口为为OCW1OCW1,读偶端口为,读偶端口为IRRIRR、ISRISR或有效中断源或有效中断源(3)PC(3)PC 机中设置的工作方式不能更改机中设置的工作方式不能更改!72可编程中断控制器8259(5)ICW1:D7D6D5D4D3D2D1D000

34、01LTIM0SNGL IC4LTIM:中断触发方式,1=高电平触发 0=上升沿触发 SNGL:单片或级连,1=单片 0=级连,要写ICW3IC4:1=要写ICW4 0=不写ICW4D4为特征位,写入ICW1后自动对8259初始化73可编程中断控制器8259(6)ICW2:中断类型码D7D6D5D4D3D2D1D0T7T6T5T4T3000T7T3:中断类型码,低3位为IR7IR0的编号ICW3:主片/从片D7D6D5D4D3D2D1D0S7S6S5S4S3S2S1S000000ID2ID1ID0主片从片Si=1,对应IRi上接有从片,Si=0,对应IRi上未接从片ID20:本从片接至主片的I

35、Ri的编号74可编程中断控制器8259(7)ICW4:D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOI1SFNM=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对应位清075可编程中断控制器8259(8)OCW1:中断屏蔽字D7D6D5D4D3D2D1D0M7 M6 M5M4M3M2M1M0Mi:对

36、IRi的屏蔽位,1=屏蔽,0=允许OCW3:特殊屏蔽和读出命令 D4、D3为特征位D7D6D5D4D3D2D1D00ESMM SMM01PRR RISESMM,SMM:11=设置特殊屏蔽方式,10=撤消RR,RIS:读寄存器命令,10=读IRR,11=读ISRP=1:查询命令,读入的D7=1表示有请求,D2D0为编号读偶端口76可编程中断控制器8259(9)OCW2:中断结束和优先级循环字D7D6D5D4D3D2D1D0RSLEOI00L2L1L0R=1:优先级循环;R=0:优先级固定EOI=1:中断结束命令SL=1:对由L2L0指定的IRi 操作0 0 1 一般EOI,ISR中最高有效位清0

37、0 1 1 特殊EOI,L2L0指定的ISRi清01 0 1 一般EOI且优先级循环,服务后降为最低1 1 1 特殊EOI且按L2L0优先级循环1 0 0 设置优先级自动循环0 0 0 清除优先级自动循环1 1 0 按L2L0编码循环0 1 0 无意义中断结束EOI且循环优先级循环77PC机中的中断源使用主8259:IR0:时钟IR1:键盘IR2:从片IR3:辅串行口IR4:主串行口IR5:并行口2IR6:软盘IR7:并行口1端口号:20H、21H类型码:08H0FH从8259:IR8:时钟IR9:用户中断IR10:保留IR11:保留IR12:保留IR13:协处理器IR14:硬盘IR15:保留

38、端口号:A0H、A1H类型码:70H77H788259实验(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硬件原理:正脉冲接到IR7BUF 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

39、AL,21H AND AL,7FH 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主程序798259实验(2)主程序流程图置中断向量置数据段置计数初值开屏蔽CNT1=CNT2?CNT1CNT2显示CNT1=0?有按键?屏蔽保护DS,AX结束YY

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

41、清0空?其它操作从BUF读数据指针加1显示低4位显示高4 位显示空格ESC?恢复中断向量关中断开中断结束主程序流程图NNYY0.FPTR1读出PTR2写入环形:环形:INC BXINC BX AND BX,0FH AND BX,0FH空:空:PTR1=PTR2 PTR1=PTR2 满:满:PTR2+1=PTR1PTR2+1=PTR182键盘中断(3)中断服务子程序流程图保护BX,AX发EOI命令读入扫描码置数据段恢复DS中断返回保护DS复位键盘断码?存入缓冲区指针加1满?恢复AX,BXYYNN断码不存入缓冲区断码不存入缓冲区数据段段地址数据段段地址DSDS保护问题保护问题实验内容:1、列出字母

42、和数字键 对应的扫描码2、修改主程序,将字母键大、小写各显示一次,其它按键 不显示。83可编程并行接口芯片8255(1)1、内部结构及引脚数据总线缓冲器读/写控制逻辑A组控制B组控制A组A口A组C口上B组B口B组C口下D7D0/RD/WRA0A1RESET/CSPA7PA0PB7PB0PC7PC4PC3PC0共40根引脚848255(2)2、控制字与编程(1)方式控制字D7D6D5D4D3 D2 D1D0方式字标志1=有效A口方式00=方式001=方式11x=方式2A口1=输入0=输出C口上1=输入0=输出B口方式0=方式01=方式1B口1=输入0=输出C口下1=输入0=输出858255(3)

43、(2)、C口位控字D7XXXD3 D2 D1D0位控字标志0=有效位选择000=PC0001=PC1111=PC71=置位0=复位注意:方式控制字注意:方式控制字C C口位控字都是写入控制口口位控字都是写入控制口A1 A00 0 A口0 1 B口10 C口1 1 控制口868255(4)3、工作方式方式0:基本输入/输出,PA、PB、PC;无条件方式方式1:选通输入/输出,PA、PB 条件方式、中断方式方式2:双向输入/输出,PA 条件方式、中断方式(1)方式0 输入时序/RD输入/CS,A1,A0D7D0最短最长有效878255(5)(1)方式0 输出时序/WRD7D0/CS,A1,A0输出

44、最短最长有效888255(6)(2)方式1 输入时序/STBIBFINTR/RD输入联络信号PC3PC4PC5INTEA(PC4)PC6,7PA07/STBAIBFAINTRAPC0PC2PC1INTEB(PC2)PB07/STBBIBFBINTRB898255(7)(2)方式1 输出时序联络信号PC3PC6PC7INTEA(PC6)PC4,5PA07/ACKA/OBFAINTRAPC0PC2PC1INTEB(PC2)PB07/ACKBOBFBINTRB/WR/OBFINTR/ACK输出908255(8)(3)A口方式2:方式1输入输出的组合。(4)从C口读状态PC7PC6PC5PC4PC3P

45、C2PC1PC0方式1输入I/OI/OIBFAINTEAINTRAINTEBIBFBINTRB方式1输出OBFAINTEAI/OI/OINTRAINTEBOBFBINTRB方式2OBFAINTEA1IBFAINTEA2INTRAI/OI/OI/O(5)C口联络线功能PC7PC6PC5PC4PC3PC2PC1PC0方式1输入I/OI/OIBFA/STBAINTRA/STBBIBFBINTRB方式1输出/OBFA/ACKAI/OI/OINTRA/ACKB/OBFBINTRB方式2/OBFA/ACKAIBFA/STBAINTRAI/OI/OI/O918255(9)4、8255的应用PC机中:60H6

46、3H,方式0 PA口:输入,键盘扫描码 PB口:输出,控制,PB7、PB6控制键盘 PB1、PB0控制扬声器 PC口:输入,系统配置开关5、实验 (1)方式1输出,中断方式,要求改为查询方式 /ACKA接单负脉冲,INTRA接PC总线的IRQ7 (2)方式1输入,可用查询或中断方式 /STBB接单负脉冲,INTRB接PC总线的IRQ7 PA口输出接LED,PB口输入接开关928255(10)8255L0RL1RL2RL3RL4RL5RL6RL7RK0K1K2K3K4K5K6K7PA0PA7PB0PB7/CSY1需连线/ACKA(PC6)INTRA(PC3)负脉冲IRQ7负脉冲IRQ7/STBB

47、(PC2)INTRB(PC0)实验硬件原理图功能要求:(1)输出:LED由右向左移动显示(2)输入:开关设置值当ASCII 在屏幕上显示端口号:端口号:28828F28828F938255(11)关中断置中断向量开屏蔽8255允许中断置数据段主程序流程图数据段:DATA1 DB?0000,0001置初值置8255方式开中断有按键?屏蔽结束NY保护DS,AX,DX发EOI命令DATA1输出置数据段恢复DX,AX,DS中断返回中断服务子程序流程图A00DDATA1左移注意:注意:1 1、输入、输入/输出设置输出设置 要与引脚连接一致要与引脚连接一致2 2、查询方式要读、查询方式要读INTRINTR

48、 不读不读IBFIBF或或OBFOBF94串行通信(1)1、串行通信类型:异步、同步0D0 D1 D2 D3 D4 D5 D6 D7P1起始位58位数据位(奇偶校验位)停止位(1)异步(2)同步:单同步、双同步、外同步同步字符数据1 23 n校验字符1校验字符2同步字符1 同步字符1 数据1 2 n 校验字符1 校验字符2数据1234 n校验字符1校验字符2发收95串行通信(2)2、串行数据传输方式 单工 半双工 全双工3、异步通信协议发送器接收器发/收发/接发/收发/接(1)数据帧格式:起始位、数据位、(校验位)、停止位(2)通信速率:波特率,位/秒=波特一对一、一对多、多对多一对一、一对多

49、、多对多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-485RS-48597可编程同步/异步收发器8251(1)1、内部结构及引脚数据总线缓冲器读/写控制逻辑/RD/WRC/DC

50、LKRESET/CSD7D0MODEM控制电路发送控制电路接收控制电路发送 并串缓冲器 转换接收 串并缓冲器 转换/DSR/DTR/CTS/RTSTXRDYTXE/TXCRXRDYSYNDET/RXCTXDRXDUSARTUART共28根引脚988251(2)2、命令字和初始化编程(1)方式选择字D7D6D5D4D3D2D1D0波特率因子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:同步控制 D

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁