微机接口技术.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《微机接口技术.ppt》由会员分享,可在线阅读,更多相关《微机接口技术.ppt(115页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 接口 技术
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内