Presentation is loading. Please wait.

Presentation is loading. Please wait.

第6章 基本输入输出接口技术 【本章提要】 【学习目标】

Similar presentations


Presentation on theme: "第6章 基本输入输出接口技术 【本章提要】 【学习目标】"— Presentation transcript:

1 第6章 基本输入输出接口技术 【本章提要】 【学习目标】
第6章 基本输入输出接口技术 【本章提要】 本章首先概述I/O的基本知识,然后讨论输入/输出控制方式,I/O接口的读写技术, 并行通信与串行通信,最后重点讨论常用可编程典型I/O接口芯片及其接口技术。 【学习目标】 了解I/O接口信息、I/O编址方法、I/O组织、I/O控制方式、并行通信及串行通信等输入输出基础知识。 理解基本输入输出接口的操作。 掌握简单I/O接口的读写技术。 熟练掌握常用接口芯片16550/8250、8255和8253的工作原理及其编程应用。 能综合运用接口芯片,构建和分析实际应用系统。

2 第6章 基本输入输出接口技术 本章主要内容: 概 述 输入/输出控制方式 可编程接口芯片 I/O接口读写技术 串行通信接口芯片
第6章 基本输入输出接口技术 本章主要内容: 概 述 输入/输出控制方式 I/O接口读写技术 并行通信与串行通信 可编程接口芯片 串行通信接口芯片 并行通信接口芯片 定时计数接口芯片 1 2 5 3 6 4 7

3 6.1 概述 一、输入/输出与输入/输出接口 1.输入/输出:微处理器与外部设备之间的信息交换即通信。
6.1 概述 一、输入/输出与输入/输出接口 1.输入/输出:微处理器与外部设备之间的信息交换即通信。 2.输入/输出接口:完成微处理器与外部设备数据通信即输入/输出任务的接口。 包括:硬件接口电路和软件接口程序。 2018年11月27日星期二

4 二、I/O接口的功能 2.提供联络信号 3.信号特性匹配(如电平转换) 4.信息格式的转换(如正负逻辑的转换,串并 格式,模数转换)
1. 内部地址译码 2.提供联络信号 3.信号特性匹配(如电平转换) 4.信息格式的转换(如正负逻辑的转换,串并 格式,模数转换) 5.数据缓冲与锁存 6.对外设进行中断管理 7.提供时序控制 2018年11月27日星期二

5 三、CPU与I/O设备间的接口信息 三种:数据信息、状态信息、控制信息 这些信息均通过数据总线传输。 2018年11月27日星期二

6 四、I/O端口的编址方法 1.存储器映射编址 含义: 优点: I/O端口的地址与存储器的地址统一混合编址。
内存与外设地址分布相同。 无需专用的I/O指令。 2018年11月27日星期二

7 2. I/O映射编址 含义 I/O端口与存储器分开独立编址,即I/O端口和存储器都有自己的一套地址空间,而且互不相干。 优点 I/O端口
指令执行速度快。 I/O端口 8086~Core2微机采用I/O映射的编址方法。 I/O端口的地址64K 个8位口地址(0000H-FFFFH)。 2018年11月27日星期二

8 4.基于Pentium~Pentium4的64位I/O组织
2018年11月27日星期二

9 8位I/O组织-基于8088 2018年11月27日星期二

10 16位I/O组织-基于8086~80286 2018年11月27日星期二

11 32位I/O组织-基于80386~80486 2018年11月27日星期二

12 64位I/O组织 -基于Pentium~ Core2
2018年11月27日星期二

13 2.I/O端口的地址分配 1. I/O地址范围 0000H-FFFFH.共64K个8位端口
从8086~Core2 I/O地址采用A15~A0共16条地址线,且与存储器分开编址。 2. 系统板保留的1K个I/O端口 (详见书P.238表6.1) H-03FFH,共1K个8位端口 3. 查看当前系统I/O地址分配 2018年11月27日星期二

14 系统板保留的1K地址 2018年11月27日星期二

15 I/O指令时序 (a) IN指令操作时序 IN AL,P8 或IN AL,DX P8为8位端口地址 (b) OUT 指令操作时序
OUT P8,AL或OUT DX,AL P8为8位端口地址 2018年11月27日星期二

16 直接程序控制方式 中断控制方式 DMA控制方式 I/O处理机控制方式
6.2 输入输出控制方式 直接程序控制方式 中断控制方式 DMA控制方式 I/O处理机控制方式

17 一、直接程序控制方式 1.无条件传送方式 含义:不查询外设状态而直接进行输入输出的一种方式。 特点:简单、经济,但可靠性差。
含义:直接在程序控制下进行微处理器与外设之间的数据传送。 分类:无条件传送方式和条件传送方式两种。 1.无条件传送方式 含义:不查询外设状态而直接进行输入输出的一种方式。 特点:简单、经济,但可靠性差。 2018年11月27日星期二

18 2.条件传送方式 含义:首先查询外设状态,满足条件时才进行数据的传送,因此也叫查询传送方式。 特点:简单、可靠性高,但CPU效率低。 输出
输入 2018年11月27日星期二

19 二、中断控制方式 含义:在满足传输条件时,外设向CPU发请求传输的中断信号,CPU接收请求后进入服务程序,在中断服务程序中进行输入输出操作。
不足:中断控制方式仍需要一系列本与输入输出无关的操作(如压栈保护等),因此对于高速I/O设备效率仍不算快。 2018年11月27日星期二

20 三、DMA控制方式 含义:直接由DMA控制器硬件控制数据传输,传输过程无需CPU干预。 特点:速度快(因为有DMA硬件直接控制),效率高。
2018年11月27日星期二

21 DMA方式与其它方式比较 内存/外设 CPU 外设/内存 内存/外设 外设/内存 DMA控制器 MOV AL,[XX] OUT DX,AL
MOV [XX],AL IN AL,DX 内存/外设 外设/内存 无需CPU指令 DMA控制器 2018年11月27日星期二

22 四、I/O处理机控制方式 尽管DMA方式优点比较突出,但在DMA进行传输之前,对DMA的初始操作、对数据的运算和处理等都需要处理器事先干预。为了让处理器彻底摆脱管理和控制I/O设备的负担,引入了I/O处理机控制方式。这种方式下,由专用I/O协处理器负责I/O操作和处理。 2018年11月27日星期二

23 6.3 I/O接口的读写技术 一、简单输入输出接口 输入采用缓冲器,输出采用锁存器。 1.常用缓冲器: 2018年11月27日星期二

24 简单I/O接口-锁存器 2.常用锁存器 2018年11月27日星期二

25 二、简单I/O接口的读控制 读操作程序: MOV DX,377H IN AL,DX 2018年11月27日星期二

26 2.简单I/O接口的写控制 写操作程序: MOV DX,0DFFFH OUT DX,AL 2018年11月27日星期二

27 3. 16位I/O接口的读操作 读操作程序: MOV DX,2F6H IN AX,DX 2018年11月27日星期二

28 32位I/O接口的写操作 写操作程序: MOV DX,3ECH ;选中3ECH~3EFH4个端口 OUT DX,EAX
2018年11月27日星期二

29 6.4 并行通信与串行通信 6.5 可编程串行通信接口芯片 6.6 可编程并行通信接口芯片 6.7 可编程定时/计数器芯片
常用接口芯片及应用 1 6.4 并行通信与串行通信 6.5 可编程串行通信接口芯片 6.6 可编程并行通信接口芯片 6.7 可编程定时/计数器芯片 2 3 4

30 6.4 并行通信与串行通信 并行通信与并行接口 串行通信与串行接口 串行通信方式及异步通信协议 串行异步通信标准接口

31 一、并行通信与并行接口 1. 并行通信 含义:并行通信是指将一个字节或一个字的各 位同时进行传输的一种通信方式。
1. 并行通信 含义:并行通信是指将一个字节或一个字的各 位同时进行传输的一种通信方式。 要点:传输的各位同时传输(输入或输出)。 特点: (1)传输速度快 (2)传输的信息率高 (3)比串行通信需要更多通信信号线 用途:常用于传输距离短,数据传输速度要求   高的场合。 2018年11月27日星期二

32 2.并行接口 含义:实现并行通信的接口称为并行通信接口。 2018年11月27日星期二

33 二、串行通信与串行接口 1. 串行通信 含义:串行通信是把传输的数据一位一位地顺序传送的一种通信方式。 要点:按位传输,同一时刻仅传送一位。
1. 串行通信 含义:串行通信是把传输的数据一位一位地顺序传送的一种通信方式。 要点:按位传输,同一时刻仅传送一位。 特点: (1)通信线少 (2)成本低 (3)但通信速度慢 用途:适用于长距离数据传输。 2018年11月27日星期二

34 2.串行接口 完成串行通信任务的接口称为串行通信接口,简称串行接口。
功能: (1)输入时,完成串行到并行格式转换 (2)输出时,完成并行到串行格式转换。 2018年11月27日星期二

35 串行通信数据传输方式 有单工方式、半双工方式、全双工方式 2018年11月27日星期二

36 三、串行通信方式 及异步通信协议 串行通信方式 1. 异步通信 2. 异步通信特点 两种:串行异步通信和串行同步通信。
异步通信:指字符与字符之间的传送是完全异步的,随机 的,但一个字符的位与位之间是同步的。 2. 异步通信特点 ① 字符的发送是随机的。 ② 每一个字符传输总以一个起始位为准,然后接收方与发送方保持同步(格式的统一),最后是停止位 ③ 通信双方可随时改变通信协议,即改变数据位、奇偶校验位和停止位长度或数据传输率。 2018年11月27日星期二

37 3.异步通信协议 异步通信协议包括:一是字符的传送格式的规定,二是数据传送速率的要求。
异步通信格式 协议,即改变数据位、奇偶校验位和停止位长度或数据传输率。 2018年11月27日星期二

38 波特率 波特率(Baud Rate):指单位时间传送二进制数的位数,一般以秒为单位。
微机中常见的波特率有110,300,600,1200,2400,4800,9600,19200等。微机最高波特率由硬件决定。 例:已知字符格式中数据为8位,无校验,1位停止位,在1分钟内连续不断传送了 69120个字符,求波特率。 解:一个字符= =10位 每秒传送的字符个数=69120/60=1152个 波特率=位/秒=1152*10=11520bits/S=11.52Kbits/s 2018年11月27日星期二

39 4.同步通信 同步通信 将多个字符连接成一个数据块,数据块前加1或2个同步字符,尾部是校验字符,最后为同步字符。 同步的含义
字符与字符之间时间间隔固定不变,是同步的。 2018年11月27日星期二

40 四、串行异步通信标准接口 串行异步通信的标准接口有RS-232C、RS-449、RS-422、RS-485以及20mA电流环等接口。
一、RS-232C接口(PC使用) 1. 接口逻辑:负逻辑传送 1:-15V~-5V 0:+5V~+15V 允许噪声容限为2V 因此,实际RS-232能够区分的逻辑电平: 1:-15V~-3V 0:+3V~+15V 只有在-3V~+3V时逻辑为不确定 2018年11月27日星期二

41 2. RS-232接口信号及含义 2018年11月27日星期二

42 二、RS-232逻辑电平的转换 为什么要进行逻辑电压的转换? 因为RS-232逻辑电平与UATRT电平不一致
常用单电源供电的232电平转换芯片 MAX232、TLC232、UN232、SP232等为不同厂家的典型单电源供电的232接口芯片,完成电平转换功能。根据UART的电平的不同可分为5V和3.3V。 2018年11月27日星期二

43 RS232电平转换原理 计算机通信是TTL和CMOS逻辑电平,而RS-232规定的电平与之不符,故需电平转换。 2018年11月27日星期二

44 RS232电平转换典型芯片 C1~C5可为0.1uF~4,7uF,具体值参见芯片说明 TIN为TTL输入 RIN为232输入
TOUT为由TTL转换后的232电平输出 ROUT为由RS232转换后的TTL电平输出 2018年11月27日星期二

45 RS-232简单连接示意图 2018年11月27日星期二

46 二、RS-485接口标准 RS232C缺点:受共模干拢影响,通信距离不长。仅20米以内。 RS485主要特点: RS-485逻辑电平:
采用差分传输方式,具有很强的抗共模干扰能力。 可同时连接多个接收器和发送器(32~256个) 通信距离长,可达千米(标准为1.2Km)。 RS-485逻辑电平: 逻辑1:A的电位比B高200mV以上 逻辑0:B的电位比A高200mV以上 2018年11月27日星期二

47 RS-485接口的连接 由于是差分传输,因此RS-485接口采用同名端相连的方法,即所有485芯片的A和A连在一起,B和B连在一起。
DI为数据发送端,RO为数据接收端,RE收发使能 RE=0接收,RE=1发送 终端(两个远端)各接一个匹配电阻(120欧)防止传输反射。 MAX485 2018年11月27日星期二

48 6.5 可编程串行通信接口芯片 16550与8250 一、16550及8250功能 (1) 具有全双工、双缓冲器发送器和接收器。
6.5 可编程串行通信接口芯片 与8250 一、16550及8250功能 (1) 具有全双工、双缓冲器发送器和接收器。 (2) 是串行异步通信接口(UART)。 (3) 波特率:8250=50~9600波特;16550=50~115200波特。 (4) 异步通信格式,可通过编程选择。 (5) 具有自动奇偶校验、溢出和帧出错等检测标志。 (6) 片内具有优先级中断控制逻辑。 (7) 单一+5V,40个引脚的DIP封装形式。 2018年11月27日星期二

49 二、内部结构及工作原理 2018年11月27日星期二

50 1.接收部分 接收移位寄存器将SIN脚的串行数据进行移位输入。
(1) 检测起始位:SIN变低后,连续测试8个RCLK时钟周 期,如果都是低电平,为起始位,否则为干扰信号。 (2) 采样数据位:每隔16个RCLK脉冲对SIN输入的数据位进 行一次采样。直到停止位,完成一个字符的接收。 (3) 去除无关位:接收同步控制电路自动去除起始位、奇 偶校验位和停止位。 (4) 串到并转换:同步控制电路控制接收移位寄存器将串 行数据转换成并行数据送入接收数据缓冲器(THR)中。 (5) 检查正确性:接收同步控制电路对数据的正确性进行检查。 如果在检测字符格式时有错误,则通过线路状态寄存器 设置相应的出错标志。 2018年11月27日星期二

51 2.发送部分 发送部分负责接收CPU送来的并行数据,并通过移位的方法将其变换成串行信号,最后通过发送端SOUT发送出去。
2018年11月27日星期二

52 3. 通信线路控制寄存器 线路控制寄存器(LCR)接收CPU用OUT指令写入的控制命令。控制寄存器的内容可以通过IN指令读出。线路控制寄存器的格式: 2018年11月27日星期二

53 4.通信线路状态寄存器 线路状态寄存器LSR记录串行数据发送和接收的状态,以供CPU查询。线路状态寄存器的格式:
2018年11月27日星期二

54 5. Modem控制寄存器 Modem控制寄存器MCR用于设置16550/8250与通信设备之间联络应答的输出信号,其格式如所示。
2018年11月27日星期二

55 6. Modem状态寄存器 Modem状态寄存器MSR反映8250与通信设备之间应答联络输入信号的当前状态以及这些信号的情况,各位的含义如图所示。 2018年11月27日星期二

56 7.中断允许寄存器IER 反映了接收器和发送器以及Modem是否允许中断的情况,通过设置可以指定其中的某些部件允许中断。它是一个可读可写的寄存器。 2018年11月27日星期二

57 8.中断识别寄存器IIR 中断识别寄存器IIR,可以识别4个中断源引起的中断。接收器线路状态中断、接收数据准备好中断、发送保持寄存器空中断和调制解调器状态中断。 2018年11月27日星期二

58 9. 波特率发生器 16550及8250使用1.8432MHz的基准输入时钟,分频后产生所需的内部基准脉冲,作为接收器和发送器的同步脉冲,以控制接收移位寄存器和发送移位寄存器的移位操作。 发送或接收串行数据时使用的时钟频率是数据传送波特率的16倍 除数值与波特率的关系: 除数= ÷(波特率×16) 2018年11月27日星期二

59 波特率发生器与除数寄存器 根据波特率与除数的关系,可计算出不同波特率对应的除数值,如表所示。 2018年11月27日星期二

60 三、16550/8250引脚信号 几个最重要的信号 RCLK 接收时钟 SIN 串行输入引脚 SOU串行数据输出
A2,A1,A0 内部寄存器选择输入信号 其它信号 2018年11月27日星期二

61 其它引脚 1. 电源及时钟VCC,GND,XTLA1,XTLA2 2. 数据线:D7~D0 3. 片选信号:CS0,CS1和/CS2(输入)
4. 选通信号: 地址输入选通: /ADS 数据输入选通:DISTR和/DISTR(接/IOR) 数据输出选通:DOSTR和/DOSTR(接/IOW) 5. 主复位:MR 6. 接收时钟: =接收波特率的16倍 7. 清除发送: /CTS 8. 数据装置(MODEM)准备好: /DSR 9. 接收线路信号检测: /RLSD(有效时表示Modem检测数据载波 10.振铃指示:/RI 有效表示Modem已经接收到一个电话振铃信号 2018年11月27日星期二

62 其它引脚续 11. 数据终端准备好: /DTR 有效时通知Modem,接口已准备好 12. 请求发送: /RTS有效请求发送数据
13. 用户输出引脚:/OUT1和/OUT2(由Modem控制寄存器决定) 14. 片选信号输出:CSout 片选输入信号CS0=1,CS1=1/CS2=0时,Csout=1(高电平) 15. 驱动器禁止: DDIS,有效时禁止外部总线转换器对系统总线的驱动. 16. 波特率输出: /BAUDout以16倍波特率的时钟输出 17. 中断请求:INTRPT当允许中断时,16550/8250内部发生某种中断时,该引脚为高电平有效,向8259A发中断请求信号. 2018年11月27日星期二

63 四、串行接口的编程及应用 1.串行接口的端口地址分配 2018年11月27日星期二

64 2.串行接口初始化 串行接口初始化的任务: (1)设置波特率 (2)确定通信的具体格式 (3)设置操作方式
(4)设定是否使用中断、是否自测试操作等等。 2018年11月27日星期二

65 设置波特率方法 计算除数值 除数=1843200÷(波特率×16) 写线路控制寄存器,使DLAB=1以访问除数寄存器
先将除数低字节写入低字节寄存器端口 再将除数高字节写入高字节寄存器端口 注意: 线路控制寄存器地址:3FBH(COM1),2FBH(COM2) 除数低字节寄存器: 3F8H(COM1),2F8H(COM2) 除数高字节寄存器: 3F9H(COM1),2F9H(COM2) 2018年11月27日星期二

66 1.设置波特率程序段 假设设置波特率为11520,则初始化程序片段如下: MOV AL,10000000B ;DLAB=1
MOV DX,3FBH ;指向线路控制寄存器端口\ OUT DX,AL ;写入线路控制寄存器 MOV AL,0AH ;置产生11520波特率的除数低字节 MOV DX,3F8H ;除数低字节寄存器口地址 OUT DX,AL ;写入除数低字节 MOV AL,00 ;除数高字节 INC DX ;指向除数高字节寄存器口地址 OUT DX,AL ;写入除数高字节 2018年11月27日星期二

67 2.设置通信数据格式方法 根据要求确定格式 将格式字写入线路控制寄存器,并使DLAB=0以正常工作
例子:假设一帧数据含有8位数据、1位停止位、奇校验,则有关程序如下: MOV AL, B ;通信控制寄存器控制字 MOV DX, 3FBH ;线路控制寄存器口地址 OUT DX, AL ;写入线路控制寄存器 2018年11月27日星期二

68 3.自测工作(自发自收) MOV AL,00010011B ;自发自收 MOV DX,3FCH ;Modem控制寄存器地址
OUT DX, AL ;写入线路控制寄存器 2018年11月27日星期二

69 4.设置中断允许寄存器 仅允许接收中断和发送中断:(COM1) MOV AL, 00000011;仅允许收、发中断 MOV DX, 3F9H
OUT DX, AL ;写入中断允许寄存器 2018年11月27日星期二

70 三、串行通信实例 两台微机利用COM1(串行口1)进行查询通信,只用 三根连接线。 双机通信的要求如下:数据为7位、1位停止位、奇校
验、波特率为19200;双机同时运行该程序,一方键入 的字符在另一方屏幕上显示,当按下小写字母q时, 结束通信回到DOS。 程序见教材P.261(COMMEX.ASM) 2018年11月27日星期二

71 6.6可编程并行接口芯片8255A 8255的内部结构及引脚信号 8255的工作方式 8255的编程

72 一、 8255的内部结构及引脚信号 2018年11月27日星期二

73 引脚信号 (1) 与外设接口信号引脚 PA7~PA0 A口的8个I/O引脚 PB7~PB0 B口的8个I/O引脚
PC7~PC0 C口的8个I/O引脚。 (2) 与系统总线接口信号引脚 D7~D0 数据线 /RD,/WR,/CS RESET 高电平有效,有效时8255内部寄存器清除,同时三个数据端口被自动设为输入端口。 2018年11月27日星期二

74 8255A的端口操作 2018年11月27日星期二

75 基本输入输出方式-方式0 选通输入输出方式-方式1 双向输入输出方式-方式2
二、8255的工作方式 基本输入输出方式-方式0 选通输入输出方式-方式1 双向输入输出方式-方式2

76 基本输入输出方式-方式0 方式0没有规定固定的用于应答式的联络信号线。
在此方式下,三个数据端口A、B和C中的任何一个端口都可由程序设定为8位的输入口或输出口。 C端口的两个半口(高4位和低4位)可独立设为输入或输出端口。 端口输入具有缓冲功能;输出具有锁存功能。 方式0下的各端口输入或输出有24=16种不同的组合。 2018年11月27日星期二

77 选通输入输出方式-方式1 方式1规定固定的用于应答式的联络信号线。
A口和B口可作为输入或输出端口使用,而此时C口的某些位与它们配合,作为控制或通信联络信号, 没有使用的C口某些位还可单独立定义为I/O口用。 方式1下A和B端口的输入和输出具有不同的组态。内部逻辑不同。 下面分别介绍A口输入、B口输出、A口输出和B口输出不同情况下的内部逻辑。 2018年11月27日星期二

78 方式1下的输入组态 A口输入 B口输入 2018年11月27日星期二

79 方式1下的输入工作波形 2018年11月27日星期二

80 方式1下的输出组态 A口输出 B口输出 2018年11月27日星期二

81 方式1下的输出工作波形 2018年11月27日星期二

82 双向输入输出方式-方式2 方式2是双向的数据传输方式,仅限于A口,这时C端口配合其工作。 2018年11月27日星期二

83 三、8255编程 对8255编程首先要写入方式选择控制字,然后再行输入输出操作。
操作时可对端口C进行置/复位操作。 因此:8255有两个控制字是编程的关键所在。 方式选择控制字 端口C置/复位控制字 2018年11月27日星期二

84 方式选择控制字—写入控制口 2018年11月27日星期二

85 例6.3 【例6.3】 编写对8255的初始化程序片段,要求:使A口为方式0输入,B口为方式0输出,C口作为8位的输出口使用。8255控制端口的地址为12BH。 解:对照方式选择控制字格式可得到控制字为: B=90H,初始化程序片段: MOV AL,90H ;方式选择控制字 MOV DX,12BH ;由于端口号>256,用DX间接寻址 OUT DX, AL ;写入控制寄存器 2018年11月27日星期二

86 例6.4 【例6.4】 如果把A口设置为方式0输入,B口设成方式1输出,C口除了与B口方式1输出配合的PC0到PC2外,其PC3设成输入,C上半口(PC7~PC4)设为输出。则对照控制字格式,得其方式选择控制字为: B=95H。 解:假设8255的口地址为60H~63H,并知道8255的A0和A1分别与CPU总线的A0和A1相连,写出对8255的初始化程序片段。 对8255的初始化程序只需要两条指令如下: MOV AL, 95H ;方式选择控制字 OUT 63H,AL ;写入控制寄存器 2018年11月27日星期二

87 端口C置/复位控制字—写入控制口 2018年11月27日星期二

88 例6.5 【例6.5】使A口为方式1输入,且采用中断传送,B口采用方式0输出,其余C口的位作为输出。假设控制端口地址为63H。则程序段为:
解: MOV AL, B ;A口方式1输入,B口方式0输出,其余C口位输出 OUT 63H, AL;方式选择控制字写入控制寄存器 MOV AL, B ;置位/复位控制字,使PC4=1,即使INTE=1允许内部中断 OUT 63H, AL ;置位/复位控制字写入控制寄存器 2018年11月27日星期二

89 三、8255作为打印机接口实例 2018年11月27日星期二

90 打印机接口的时序要求 2018年11月27日星期二

91 打印程序 MOV AL, 0A8H ;方式选择字(C上半口输入PC4) MOV DX, 343H ;控制端口
OUT DX, AL ;方式选择控制字写入控制口 MOV CX, Counter ;打印字符个数装入计数器 MOV BX, OFFSET Pstrings;Counter,Pstrings已定义(P.255) LP1: MOV AL, [BX] MOV DX, 340H OUT DX, AL ;送一个字符到8255的A口 MOV DX, 342H LP2: IN AL, DX ;读取C口状态(准备检查BUSY状态) ANDAL, B ;屏蔽无关位, 取BUSY JZ LP2 ;等待接收新数据 LP3: IN AL, DX ;读取C口状态 AND AL, B ;屏蔽无关位, 取BUSY对应的PC4 JNZ LP3 ;BUSY=1等待,直到不忙 INC BX LOOP LP1

92 三种方法:软件定时、硬件定时、可编程硬件定时 主要内容:
6.7 可编程定时/计数器8253(8254) 三种方法:软件定时、硬件定时、可编程硬件定时 主要内容: 8253/8254的内部结构及引脚信号 8253 /8254的工作方式 8253/8254的编程 8253最高工作频率2.6MHz 8254最高工作频率为10MHz

93 8253/8254主要功能 1.用于计数 当用于计数时,计数装入初始值后,在GATE为高电平的情况下,可以用外部事件作为CLK脉冲对计数值进行减1计数,每来一个脉冲,计数器减1一次,当计数值减到结束时,由OUT端输出一个信号。如果计数未结束,而外部没有触发的脉冲信号,则可以通过读取现行计数器的值来求出计数值。 2.用于定时 当用于定时时,计数器装入初值后,在GATE为高电平情况下,由CLK脉冲触发开始自动计数,当减1计数结束时,在OUT端发送计数结束信号。定时时间长度就是计数初值与CLK时钟周期的积。 由此可见,定时和计数的实际是计数,只是定时是在计数的基础上再乘以时钟周期。 2018年11月27日星期二

94 8253/8254内部结构 2018年11月27日星期二

95 8253端口及其操作 2018年11月27日星期二

96 8253和8254的工作方式 方式0 —— 中断信号发生器 方式1 —— 单稳负脉冲信号发生器 方式2 —— 速率信号发生器
方式2 —— 速率信号发生器 方式3 —— 方波信号发生器 方式4 —— 软件触发的选通信号发生器 方式5 —— 硬件触发的选通信号发生器

97 方式0 中断信号发生器 2018年11月27日星期二

98 方式1 单稳负脉冲信号发生器 2018年11月27日星期二

99 方式2 速率信号发生器 2018年11月27日星期二

100 方式3 方波信号发生器——偶数初值 2018年11月27日星期二

101 方式3 奇数初值 2018年11月27日星期二

102 方式4 软件触发的选通信号发生器 2018年11月27日星期二

103 方式5 硬件触发的选通信号发生器 2018年11月27日星期二

104 8253/8254的编程方法 8253/8254控制字 2018年11月27日星期二

105 8253/8254计数范围 二进制计数:0000H~FFFFH,即0-65535 BCD码计数:0000~9999
2018年11月27日星期二

106 8253/8254初始值计算 假设已知8253相应通道的CLK端接入的时钟频率为fCLK,周期记为TCLK=1/fCLK,要求产生的周期性信号频率为F(周期为T)或定时时间为T(F=1/T),则所需计数初值n为: 在计算时注意时间和频率的单位一致性。 2018年11月27日星期二

107 8253/8254编程示例 已知8254各通道时钟接8MHz信号,端口地址为700H、702H、704H和706H,要求在OUT0产生周期为10us的方波,OUT1产生2KHz的连续脉冲信号,OUT3产生一个最大的负脉冲。 分析: OUT0:初值=10us×8MHz= 方式3 OUT1:初值=8MHz/2KHz= 方式2 OUT2:初值=0,二进制计数 方式1 2018年11月27日星期二

108 示例程序片段 ;CTC0 MOV DX,706H ;控制端口地址 MOV AL,00010110B ;CTC0控制字 OUT DX,AL
MOV DX,700H ;CTC0口地址 MOV AL,80 ;CTC0初值 2018年11月27日星期二

109 ;CTC1 MOV DX,706H ;控制端口地址 MOV AL,01110100B ;CTC1控制字 OUT DX,AL
MOV DX,702H ;CTC1口地址 MOV AX, ;CTC1初值 OUT DX,AL ;先写低字节 MOV AL,AH ;取高字节 OUT DX,AL ;后写高字节 2018年11月27日星期二

110 ;CTC2 MOV DX,706H ;控制端口地址 MOV AL,10110010B ;CTC2控制字 OUT DX,AL
MOV DX,704H ;CTC2口地址 MOV AL,0 ;CTC2初值 OUT DX,AL ;先写低字节 OUT DX,AL ;后写高字节 2018年11月27日星期二

111 8253应用 OUT0:55ms方波 OUT1:15us连续波 OUT2:1KHz方波 8255的B端口地址61H
2018年11月27日星期二

112 应用程序片段 ;CTC0初值=55ms*1.19MHz=65450 MOV AL,00110110B ;CTC0控制字
OUT 43H,AL ;写入控制端口 MOV AX, ;CTC0初值 OUT 40H,AL ;先写低字节 MOV AL, AH OUT 40H,AL ;后写高字节 2018年11月27日星期二

113 ;应用程序CTC1 ;初值=15*1.19=17.85 取 18=12H MOV AL,01010100B ;CTC1控制字
OUT 43H,AL ;写入控制端口 MOV AL,12H ;CTC1初值 OUT 41H,AL ;写初值至CTC1 2018年11月27日星期二

114 ;应用程序CTC2 ;CTC2初值=1.19M/1K=1190 MOV AL,10110110B ;CTC2控制字
OUT 43H,AL ;写入控制口 MOV AX,1190 ;CTC2初值 OUT 42H,AL ;先写低字节 MOV AL, AH ;取高字节 OUT 42H,AL ;后写高字节 IN AL, 61H ;读8255A的B口的值 MOV AH, AL ;暂存AH中 OR AL, B OUT 61H, AL ;输出使扬声器发声 2018年11月27日星期二

115 本章习题 作业: 习题6.10, 6.12, 6.13, 6.14 习题6.15, 6.16, 6.17, 6.19,6.20


Download ppt "第6章 基本输入输出接口技术 【本章提要】 【学习目标】"

Similar presentations


Ads by Google