




已阅读5页,还剩108页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理与控制技术 卢晓红 1 第三章:存储器及可编程接口器件 2 第三章: 存储器及可编程接口器件 3.1 半导体存储器简介 3.2 可编程并行接口8255A 3.3 可编程定时器/计数器接口8253 3.4 可编程串行接口8251A 3.5 可编程中断控制器接口8259A 3 3.1 半导体存储器简介 n存储器的分类 存储器是计算机用来存储信息的部件。按存取速度和用途可 把存储器分为两大类:内存储器和外存储器。 u把通过系统总线直接与CPU相连、具有一定容量、存取速度快的存 储器称为内存储器,简称内存。 内存是计算机的重要组成部分,CPU可直接对它进行访问,计算机要执 行的程序和要处理的数据等都必须事先调入内存后方可被CPU读取并执 行。 u把通过接口电路与系统相连、存储容量大而速度较慢的存储器称为 外存储器,简称外存,如硬盘、软盘和光盘等。 外存用来存放当前暂不被CPU处理的程序或数据,以及一些需要永久性 保存的信息。 3.1.1 半导体存储器概述 3.1 半导体存储器简介 4 n半导体存储器的分类 从应用角度可将半导体存储器分为两大类 u随机读写存储器RAM (Random Access Memory) RAM是可读、可写的存储器,CPU可以对RAM的内容随机地 读写访问,RAM中的信息断电后即丢失。 u只读存储器ROM (Read Only Memory) ROM的内容只能随机读出而不能写入,断电后信息不会丢失 ,常用来存放不需要改变的信息(如某些系统程序),信息一旦 写入就固定不变了。 3.1 半导体存储器简介 5 根据制造工艺的不同,随机读写存储器RAM主要有双 极型和MOS型两类。 u双极型存储器具有存取速度快、集成度较低、功耗较大、成 本较高等特点,适用于对速度要求较高的高速缓冲存储器; uMOS型存储器具有集成度高、功耗低、价格便宜等特点, 适用于内存储器。 MOS型存储器按信息存放方式又可分为静态RAM (StaticRAM ,简称SRAM) 和动态RAM (Dynamic RAM,简称DRAM)。 SRAM存储电路以双稳态触发器为基础,状态稳定,只要不掉电 ,信息不会丢失。其优点是不需要刷新,控制电路简单,但集成 度较低,适用于不需要大存储容量的计算机系统。DRAM存储单 元以电容为基础,电路简单,集成度高,但也存在问题,即电容 中的电荷由于漏电会逐渐丢失,因此DRAM需要定时刷新,它适 用于大存储容量的计算机系统。 3.1 半导体存储器简介 6 u掩膜式ROM(MROM):用户不可对其编程,其内容已由 厂家设定 好,不能更改。 u可编程ROM (Programmable ROM,简称PROM):用户只 能对其进行一次编程,写入后不能更改。 u可擦除的PROM(Erasable PROM,简称EPROM ),其内 容可用紫外线擦除,用户可对其进行多次编程。 u电擦除的PROM(Electrically Erasable PROM,简 称 EEPROM或E2PROM),能以字节为单位擦除和改写。 只读存储器ROM在使用过程中,只能读出存储的信息而不 能用通常的方法将信息写入存储器。 3.1 半导体存储器简介 7 3.1 半导体存储器简介 8 n半导体存储器的主要技术指标 (1)存储容量 (A) 用字数位数表示,以位为单位。常用来表示存储芯片的容 量,如1K4位,表示该芯片有1K个单元(1K=1024),每个存 储单元的长度为4位。 (B) 用字节数表示容量,以字节为单位,如128B,表示该芯片 有 128个单元,每个存储单元的长度为8位。现代计算机存储容 量很大,常用KB、MB、GB和TB为单位表示存储容量的大小。 其中,1KB210B1024B;1MB220B1024KB;1GB 230Bl024MB;1 TB240B1024 GB。显然,存储容量越 大,所能存储的信息越多,计算机系统的功能便越强。 3.1 半导体存储器简介 9 (2)存取时间 存取时间是指从启动一次存储器操作到完成该操作所经历 的时间。例如,读出时间是指从CPU向存储器发出有效地 址和读命令开始,直到将被选单元的内容读出为止所用的 时间。显然,存取时间越小,存取速度越快。 (3)存储周期 连续启动两次独立的存储器操作(如连续两次读操作)所需 要的最短间隔时间称为存储周期。它是衡量主存储器工作 速度的重要指标。一般情况下,存储周期略大于存取时间。 (4)功耗 功耗反映了存储器耗电的多少,同时也反映了其发热的程 度。 3.1 半导体存储器简介 10 (5)可靠性 可靠性一般指存储器对外界电磁场及温度等变化的抗干扰能 力。存储器的可靠性用平均故障间隔时间MTBF (Mean Time Between Failures)来衡量。MTBF可以理解为两次故障之间 的平均时间间隔。MTBF越长,可靠性越高,存储器正常工 作能力越强。 (6)集成度 集成度指在一块存储芯片内能集成多少个基本存储电路,每 个基本存储电路存放一位二进制信息,所以集成度常用位/片 来表示。 (7)性能/价格比 性能/价格比(简称性价比)是衡量存储器经济性能好坏的综合 指标,它关系到存储器的实用价值。其中性能包括前述的各 项指标,而价格是指存储单元本身和外围电路的总价格。 PA 3.2.1 8255A的引脚与结构 n8255A的引脚 u8255A是可编程的并行输入输出 接口芯片,它具有三个8位并行端 口(A口、B口和C口),具有40个引 脚,双列直插式封装,由+5V供电 (VCC)。8255A PC4 PC0 PC1 PC2 PC3 PB0 PB1 PB2 3 PA2 PA1 PA0 RD CS GND A1 A0 PC7 PC6 PC5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 28 27 26 25 24 23 22 21 40 39 38 37 36 35 34 33 32 31 30 29 D6 D7 VCC PB7 PB6 PB5 PB4 PB3 PA4 PA5 PA6 PA7 WR RESET D0 D1 D2 D3 D4 D5 8255A A口 C口 C口 B口 PA7 PA0 8 PC7 PC4 4 PC3 PC0 4 PB7 PB0 8 A组 B组 D7 D0 WR RD A0 A1 CS RESET 11 3.2 可编程并行接口芯片8255A 12 3.2 可编程并行接口芯片8255A A、B、C三个端口各有8条端口I/O线:PA7PA0, PB7PB0和PC7PC0,共32个引脚,用于8255A与外 设之间的数据(或控制、状态信号)的传送。 D7D0:8位三态数据线,接至系统数据总线。CPU 通过它实现与8255之间数据的读出与写入,控制字的 写入,以及状态字的读出等操作。 A1A0:端口选择信号。A1和A0经片内译码产生四个 有效地址分别对应A、B、C三个独立的数据端口以及 一个公共的控制端口。在实际使用中,A1、A0端接 到系统地址总线的 A1、A0。当A1A0=00,选择端口 A;当A1A0=01,选择端口B;当A1A0=10,选择端口 C;当A1A0=11,选择公共的控制端口; 3.2 可编程并行接口芯片8255A 13 u-CS:片选信号,低电平有效,由 CPU输入,通常由高位地址码( A15A2)译码得到。 -CS有效表示该 8255A被选中。 u读写控制信号-RD和-WR:低电平有 效,由CPU输入,用于决定CPU和 8255A之间信息传送的方向:当- RD=0时,由8255A向CPU传送数据或 状态信息;当-WR=0时,由CPU向 8255A写控制字或数据。 uRESET:复位信号,由CPU输入, 高电平有效,RESET有效时,清除 8255A中所有控制寄存器内容,并将A 、B、C三个端口都置为输入方式。 3.2 可编程并行接口芯片8255A 14 8255A各端口的读写操作控制 CS RD WR A1A0 操作 01000写端口A 01001写端口B 01010写端口C 01011写控制寄存器 00100读端口A 00101读端口B 00110读端口C 00111无操作 3.2 可编程并行接口芯片8255A 15 n8255A的内部结构 B 组 控制部件 数据总线 缓冲器 读/写 控制逻辑 A组 端口A (8) A组 端口C (高4位) B组 端口C (低4位) B组 端口B (8) A 组 控制部件 内部 DB(8) PA7PA0 PC7PC4 PC3PC0 PB7PB0 CS RD A1 A0 RESET D7D0 WR CPU 外设 3.2 可编程并行接口芯片8255A 16 3.2.2 8255A的工作方式与控制字 n8255A的工作方式 u8255A在使用前要先写入一个工作方式控制字,以指定A、B 、C三个端口各自的工作方式。8255A共有三种工作方式: 方式0基本输入输出方式,即无须联络就可以直接进 行8255A与外设之间的数据输入或输出操作。 方式1选通输入输出方式,此时8255A的A口和B口与 外设之间进行输入或输出操作时,需要C口的部分I/O线提 供联络信号。 方式2双向输入输出方式,即同一端口的I/O线既可以 输入也可以输出,只有A口可工作于方式2。 端口A可处于三种工作方式(方式0,方式1,方式2),端口B可 处于两种工作方式(方式0,方式1 ),端口C常常被分成高4位 和低4位两部分,可分别用来传送数据或控制信息。 3.2 可编程并行接口芯片8255A 17 n8255A的控制字(定义工作方式控制字和C口置位/复位控制字) (1) 工作方式选择控制字 u8255A的工作方式可由CPU写一个工作方式选择控制字到 8255A的控制端口实现。可以分别选择端口A、端口B和 端口C上下两部分的工作方式。注意8255A工作方式选择控 制字的最高位D7(特征位)应为1。 3.2 可编程并行接口芯片8255A 例:两片8255A(J1,J2)接口芯片初始化 1)如果要求J1的各个端口处于如下工作方式: 端口A 方式0,输出; 端口B 方式0,输入; 端口C的高四位 输出; 端口C的低四位 输入。 于是,J1的方式选择控制字代码如图所示,方式选择控制字为83H 。 3.2 可编程并行接口芯片8255A 2)要求J2的各个端口处于如下工作方式: 端口A 方式0,输入; 端口B 方式1,输出; 端口C的高四位 输出; 端口C的低四位 配合端口B工作(已由方式1决定),可 任意为1或0,此处设为0. 于是,J2的方式选择控制字应如图所示,即J2的方式选择 控制字为94H。 例:两片8255A(J1,J2)接口芯片初始化 3.2 可编程并行接口芯片8255A 利用下面6条指令就可以为J1,J2这两个8255A的设置方式选择控制 字(它们的控制口地址分别为00E6H和00EEH)。 MOV AL,83H MOV DX,00E6H ;对第1片8255A设置方式选择控制字 OUT DX,AL MOV AL,94H MOV DX,00EEH ;对第2片8255A设置方式选择控制字 OUT DX,AL 例:J1,J2 8255A接口芯片的端口名称,端口地址如表所示。 3.2 可编程并行接口芯片8255A 21 (2) C口置位/复位控制字 u8255A的C口按位置位/复位控制字的最高位D7(特征位)应为0。 无关位 D3D1D5 D0 位操作 D2 PC口位选择 D7 特征位 D6 D4 D7=0标 明是C口 位操作 控制字例如: 使端口C的PC4置 位的控制字为 00001001B(09H) 使PC4复位的控制 字为 00001000B(08H) PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 0 复位 1 置位 当端口A定义为方式1或方式2或将端口B定义为方式1时,要求使用端口C 的某些位作控制用,这时需要一个置位/复位控制字对控制端口C的各位进 行置位/复位操作。 3.2 可编程并行接口芯片8255A 例如: 要求对端口C的PC7位置1,则控制字为00001111B,即 0FH;而端口C的PC3要求置0,则控制字为00000110B, 即06H。 设8255A的控制口地址为00EEH 则下面的程序段可以实现上述要求。 MOV AL,0FH ;对PC7置1的控制字 MOV DX,00EEH MOV DX,AL MOV AL,06H ;对PC3置0的控制字 MOV DX,AL 3.2 可编程并行接口芯片8255A 23 3.2.3 各种工作方式的功能 n方式0基本输入输出方式 u方式0无须联络就可以直接进行8255A与外设之间的数据 输入或输出操作。它适用于无须应答(握手)信号的简单的无 条件输入/输出数据的场合,即输入/输出设备始终处于准 备好状态。 u在此方式下,A口、B口、C口的高4位和低4位可以分别 设置为输入或输出,即8255A的这四个部分都可以工作于 方式0。 输入或输出的定义是相对于8255A芯片而言的。当数 据从外设送往8255A时为输入,反之,数据从8255A 送往外设则为输出。 3.2 可编程并行接口芯片8255A 24 3.2.3 各种工作方式的功能 n方式0基本输入输出方式 100XX0XX 如果三个端口均处于工作方式0,则可由工作方式控制字定义16种 工作方式的组合。此时,CPU与三个端口之间交换数据可以直接由 CPU执行IN或OUT指令来完成。 3.2 可编程并行接口芯片8255A 25 n方式1选通输入输出方式:这种工作方式下,数据输入输 出操作要在选通信号控制下完成 u与方式0相比,它的主要特点是当A口、B口工作于方式1时,C口的某 些I/O线被定义为A口和B口在方式1下工作时所需的联络信号线,这些线 已经定义,不能由用户改变。 3.2 可编程并行接口芯片8255A 8255A中的端口A和B工作在方式1时,可构成8种不同的状态 端口C的低四位总是作控制用,而高四位中总是保持有两位仍然可作数据输入/ 输出用,因此控制字中的D0位可为任意值,由D1,D3,D4位的不同取值构成 八种不同的状态组合方式。(也允许A/B口为方式0,与另一端口的方式1配合 工作) 3.2 可编程并行接口芯片8255A 27 INTR (PC6) 1PC3 n方式2选通双向输入输出方式 u选通双向输入输出方式,即同一端口的I/O线既可以输入 也可以输出,只有A口可工作于方式2。此时C口有5条线 (PC7PC3)被规定为联络信号线。剩下的3条线 (PC2PC0) 可以作为B口工作于方式1时的联络线,也可以独立工作于方 式0。PA7 PA 0 & PC7 PC6 INTE1 (PC4) INTE2 & PC4 PC5 PC2 PC0 OBF ACK STB IBF I/O RD WR D7 1 D6 1 工作方式控制字 D5 D4 D3 D2 1/0 1/0 D1 1/0 D0 1/0 3.2 可编程并行接口芯片8255A 例:编一初始化程序,使8255A的PC5端输出一个负跳变 。如果要求PC5端输出一个负脉冲程序又怎样的?控制口 地址为83H。 MOV AL,0BH; PC5置1-AL MOV DX,83H;控制口地址 OUT DX,AL MOV AL,0AH; PC5置0-AL OUT DX,AL PC5端输出一个负跳变 MOV AL,0BH; PC5置1-AL MOV DX,83H;控制口地址 OUT DX,AL MOV AL,0AH; PC5置0-AL OUT DX,AL MOV AL,0BH MOV DX,AL PC5端输出一个负脉冲 D3D1D5 D0 位操作 D2 PC口位选择 D7 特征位 D6 D4 1 0 1 PC7 n8255A初始化编程 u设8255A的A口工作方式1输出, uB口工作方式1输入,PC4和PC5输入,禁止B口中断。设片 选信号CS由A9A2=10000000确定。试编写程序对8255A 进行初始化。 根据题意,设计接口电路。 控制字 特征位 I/O RD WR 译 码 A2 A9 RD WR PC6 PC2 PC1 PC4, PC5 OBFA ACKA 外设 STBB IBFB PA7 PA 0 D7 D 0 8255A PB7 PB0 A0 A1 INTR A0 A1 INTRA CS D7 1 D6 0 D1 1 D0 工作方式控制字 D5 D4 D3 D2 1 0 1 1 A口 方式1 A口 输出 PC4、PC5输 入 B口 输入 任 意 B口 方式1 29 3.2 可编程并行接口芯片8255A n初始化程序: ;控制字送AL ;8255A控制字寄存器地址送DX ;控制字送8255A的控制寄存器 ;PC6置1,允许A口中断(A出,PC6) ;PC2置0,禁止B口中断(B入 ,PC2) uMOV uMOV uOUT uMOV uOUT uMOV uOUT AL,10101110B DX,10000011B DX,AL AL,00001101B DX,AL AL,00000100B DX,AL 控制字 特征位 D7 1 工作方式控制字 D6 0 D5 1 D3 1 D2 1 D1 1 D0 D4 0 A口 方式1 A口 输出 PC4、PC5输 入 任 意 B口 输入 B口 方式1 3.2 可编程并行接口芯片8255A 30 00:A口;01:B口; 10:C口;11:控制口 3.2 可编程并行接口芯片8255A 31 n利用8255A对按键进行查询输入 u设图中8255A的A口和控制寄存器的地址分别为80H和 83H,试编写8255A的初始化程序。 控制字 特征位 D7 1 D6 0 D5 0 D3 D2 D1 D0 D4 1 A口 方式0 A口 输入 任 意 任 意 任 意 任 意 依题意初始化8255A的A口为方式0、输入: uMOV AL,10010000B uMOV DX,83H uOUT DX,AL 按键状态输入: uMOV DX,80H uIN AL,DX 工作方式控制字 ;控制字送AL ;8255A控制字寄存器地址送DX ;控制字送8255A的控制寄存器 ;8255A端口A地址送DX ;按键状态输入在AL 3.2 可编程并行接口芯片8255A 32 3.3 可编程定时器/计数器芯片8253 33 n实现定时的方法有三种:软件定时、不可编程的 硬件定时和可编程的硬件定时。 u软件定时是通过让机器执行一段没有具体操作目的的程序来实现 的。由于CPU执行每条指令都需要一个确定的时间,因此,只要选 择适当的指令和安排适当的循环次数就很容易实现软件定时,但软 件定时占用CPU资源,降低了CPU的利用率; u不可编程的硬件定时尽管定时电路并不很复杂,但这种定时电路 在硬件连接好以后,定时值和定时范围不能由程序来控制和改变, 使用不灵活; u可编程定时器/计数器是为方便计算机系统的设计和应用而研制的 ,定时值及其范围可以很容易地由软件来控制和改变,能够满足各 种不同的定时和计数要求,因此得到了广泛的应用。 3.3.1 8253的结构与功能 n8253的引脚 u8253是24脚双列直插式芯片,用+5V电源供电。芯片内 有三个相互独立的16位定时/计数器。 8253 1 2 3 4 5 6 7 8 24 23 22 21 20 19 18 17 916 1015 11 12 14 13 CLK 0 OUT0 GATE 0 GND GATE 2 CLK1 GATE 1 OUT 1 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 VCC WR RD CS A 1 A 0 CLK 2 OUT 2 8253 CLK 0 GATE0 OUT0 CLK 1 GATE1 OUT1 CLK 2 GATE2 OUT2 D7D0 WR RD A0 A1 CS #0 #1 #2 34 3.3 可编程定时器/计数器芯片8253 3.3 可编程定时器/计数器芯片8253 35 (1) 数据引脚D7D0:数据线,双向三态,与系统 数据总线连接。 (2) 片选信号 -CS:输入信号,低电平时选中此 片。由CPU输出的地址经地址译码器产生。 (3) 地址线A0,A1:这两根线接到系统地址总线 的A0,A1上,当 -CS为低电平,且8253被选中 时,用它们来选择8253内部的四个寄存器。当 A1A0=00时,选中通道0;当A1A0=01时,选中 通道1;当A1A0=10时,选中通道2;当A1A0=11时 ,选中控制字寄存器。 GATE GATE GATE 数据总线 缓冲器 读/写 逻辑 控制字 寄存器 计数器 0 号 计数器 1 号 计数器 2 号 8 8 8 D7D0 WR RD A0 A1 CS 8 内 部 总 线 8 CLK0 0 OUT0 CLK1 1 OUT1 CLK2 2 OUT2 n8253的内部结构 u8253芯片由数据总线缓冲器、读/写逻辑、控制字寄存 器以及3个独立的16位计数器组成。 3.3 可编程定时器/计数器芯片8253 36 24 CEHCEL (1) 3个独立的16位计数器 u每个计数器具有相同的内部结构 ,都包括一个8位的控制寄存器、 一个16位的计数初值寄存器CR、 一个16位的减1计数器CE和一个 16位的输出锁存寄存器OL。16位 的计数初值寄存器CR和16位的输 出锁存寄存器OL共同占用一个 I/O端口地址,CPU用输出指令向 CR预置计数初值,用输入指令读 回OL中的数值,这两个寄存器都 没有计数功能,只起锁存作用。 16位的减1计数器CE执行计数操 作,其操作方式受控制寄存器控制 ,最基本的操作是:接受计数初值 寄存器的初值,对CLK信号进行 减1计数,把计数结果送输出锁存 寄存器中锁存。 输出锁存寄 存器(OL) OLH 计数器0 控制寄存器 计数初值寄存器(CR) CRH CRL 减1计数 器(CE) OLL 3.3 可编程定时器/计数器芯片8253 37 3.3 可编程定时器/计数器芯片8253 38 (2) 控制寄存器 u控制寄存器用来保存来自CPU的控制字。每个计数器都有一个控 制命令寄存器,用来保存该计数器的控制信息。控制字将决定计数 器的工作方式、计数形式及输出方式,亦决定如何装入计数初值。 8253的3个控制寄存器只占用一个地址号,而靠控制字的最高两位 来确定将控制信息送入哪个计数器的控制寄存器中保存。控制寄存 器只能写入,不能读出。 (3) 数据缓冲器 u数据缓冲器是三态、双向8位缓冲器。它用于8253和系统数据总 线的连接。CPU通过数据缓冲器将控制命令字和计数值写入8253计 数器,或者从8253计数器中读取当前的计数值。 (4) 读/写逻辑 u读/写逻辑的任务是接收来自CPU的控制信号,完成对8253内部 操作的控制。这些控制信号包括读信号-RD、写信号-WR、片选信 号-CS以及用于片内寄存器寻址的地址信号A0和A1。当片选信号有 效,即-CS=0时,读写逻辑才能工作。该控制逻辑根据读/写命令及 送来的地址信息,决定三个计数器和控制寄存器中的哪一个工作, 并控制内部总线上数据传送的方向。 3.3 可编程定时器/计数器芯片8253 39 -CS-RD-WR A1A0 操作 01000 写计数初值到计数器0的CR(计 数初值寄存器 ) 01001 写计数初值到计数器1的CR 01010 写计数初值到计数器2的CR 01011 写控制字 00100 从计数器0的输出锁存寄存器OL 中读出当前计数值 00101 从计数器1的OL中读出当前计数 值 00110 从计数器2的OL中读出当前计数 值 00111 无操作 1 未选中 011 无操作 n8253的读写操作状态操作 3.3 可编程定时器/计数器芯片8253 40 u8253共占用4个I/O地址。当A1A0=00时,为计数器0中的CR(计数初 值寄存器)和OL(输出锁存寄存器)寄存器的共用地址,至于是将计数初值 写入CR,还是从OL中读出当前计数值,则由控制信号-WR和-RD决定 ,这两个信号同时只能有一个有效。当A1A0=01和10时,分别为计数器 1和计数器2的CR和OL的共用地址。当A1A0=11时,是3个计数器内的3 个控制寄存器的共用地址,至于CPU是给哪个计数器送控制字,则由控 制字中的最高两位的编码决定。 u8253计数器在工作之前,用户必须对其进行初始化编程:首先CPU 用输出指令向控制寄存器送控制字,然后再用输出指令向计数初值寄存 器CR预置计数/定时的初值。启动工作后,CR中的初值就送入减1计数 器CE对CLK输入的计数/定时脉冲信号进行减1计数。当CE中的内容减 为0,表示计数/定时到,则OUT端输出信号。输出信号的波形形式由工 作方式决定。 3.3.2 8253的编程 u8253在工作之前,用户首先要为某一计数器(计数器02)写入 控制字以确定其工作方式;写入定时/计数初值;在定时/计数工 作过程中,有时还需要读取某计数器当前的计数值。 n8253的控制字格式:定义各通道的工作方式 3.3 可编程定时器/计数器芯片8253 41 3.3 可编程定时器/计数器芯片8253 42 n8253的读/写操作 (1) 写操作 u写操作是指CPU对8253写入控制字或写入计数初值。 8253在开始工作之前,CPU要对其进行初始化编程(写 入控制字和计数初值) : 对每个计数器,必须先写控制字,后写计数初值 。因为后者的格式是由前者决定的。 写入的计数初值必须符合控制字(D5D4两位)决定 的格式。16位数据应先写低8位,再写高8位。 u当给8253中的多个计数器进行初始化编程时,其顺序 可以任意,但对每个计数器进行初始化时必须遵循规定 原则。 3.3 可编程定时器/计数器芯片8253 43 (2) 读操作 u读操作是指读出某计数器的当前计数值到CPU中 。有两种读取当前计数值的方法: 先使计数器停止计数(在GATE端加低电平或关闭CLK脉 冲):根据送入的控制字中的D5D4位的状态,用一条或两 条输入指令读减1计数器CE的内容。实际上,CPU是通过 输出锁存器OL读出当前计数值的,因为在计数过程中, OL的内容是跟随CE内容变化的。此时由于CE不再计数, 故可稳定地读出OL(即CE)的内容。 在计数的过程中不影响CE的计数而读取计数值:为达 此目的,应先对8253写入一个具有锁存功能的控制字,即 D5D4位应为00,这样就可以将当前的CE内容锁存入OL中 ,然后再用输入指令将OL的内容读到CPU中。当CPU读 取了计数值后,或对计数器重新进行初始化编程后,8253 会自动解除锁存状态,OL中的值又随减1计数器CE值变化 。 3.3 可编程定时器/计数器芯片8253 44 MOVDX,38BH ;给计数器0送控制字 MOV OUT AL,00110111B ; DX,AL ;送计数初值的低8位 ;送计数初值的高8位 MOV MOV OUT MOV OUT DX,388H AL,54H DX,AL AL,23H DX,AL n应用举例 u设8253芯片的端口地址为388H38BH( 计数器0,1,2各 占据1个端口地址;3个控制寄存器只占用一个地 址号)。现要 求计数器0工作在方式3,计数初值为2354H,十进制计数;计 数器1工作在方式2,计数初值为18H,二进制计数。试根据上 述要求编写初始化程序及读取计数器0当前计数值的程序。 计数器0的初始化程序 3.3 可编程定时器/计数器芯片8253 45 MOVDX,38BH ;给计数器1送控制字 MOV OUT AL,01010100B; DX,AL ;计数初值送低8位MOV MOV OUT DX,389H AL,18H DX,AL u计数器1的初始化程序 u计数器0当前计数值读出程序 ;送计数器0当前计数值锁存命令 ;读出当前计数值的低8位 ;读出当前计数值的高8位,计数值保存在CX MOV MOV OUT MOV IN MOV IN MOV DX,38BH AL,00H DX,AL DX,388H AL,DX CL,AL AL,DX CH,AL 写入一个具有锁存功能的控制字,即 D5D4位应为00,这样就可以将当前的 CE内容锁存入OL中,然后再用输入指 令将OL的内容读到CPU中 计数器1工作在方式2,计数初值为18H,二进制计数。 3.3 可编程定时器/计数器芯片8253 46 3.3.3 8253的工作方式 u8253有六种不同的工作方式。在不同的工作方式下,计数过 程的启动方式不同,OUT端的输出波形不同,自动重复功能、 GATE的控制作用以及更新计数初值对计数过程的影响也不完全 相同。同一芯片中的三个计数器,可以分别编程选择不同的工 作方式。 (1) 方式0计数结束中断方式 u这是一种软件启动、不能自动重复的计数方式。 写入方式0的控制字(CW)后,其输出端变低。再写入 计数初值N,在写信号-WR以后经过CLK的一个上升沿 和一个下降沿,初值进入减1计数器CE。计数器减到0 后,OUT成为高电平。此信号通常接至8259A的IR端 作为中断请求信号。 47 写入方式 0的控制 字CW后 ,输出端 变低。 INTR INTR GATE=0,禁止减1操作继续,待GATE 重新有效后,减1操作继续进行 3.3 可编程定时器/计数器芯片8253 48 u在计数过程中,随时可以写入新的计数值初值,计数器使用新的初值 重新开始计数(若新初值是16位,则在送完第一字节后中止现行计数,送 完第二个字节后才重新开始计数),计数值为0时,OUT输出从低到高的 跳变,可用它向CPU发中断请求INTR。 u计数初值一次有效。 u门控信号GATE=1,允许减1操作; GATE=0,禁止减1操作继续,待 GATE重新有效后,减1操作继续进行。 u方式0主要用于单次计数,计数到时,利用OUT信号作为查询信号或 中断请求信号。由于8253内部没有中断控制管理电路,故用OUT作为中 断请求信号时,需要通过中断优先级控制电路(如8259)向CPU申请中断 。 u方式0既可完成计数功能,也可完成定时功能。 3.3 可编程定时器/计数器芯片8253 49 (2) 方式1可编程单脉冲发生器 u一种硬件启动、不能自动重复但通过GATE的正跳变可使 计数过程重新开始的计数方式。 在写入方式1的控制字后OUT成为高电平,在写入计数 初值后,要等GATE信号出现正跳变时才能开始计数。在 下一个CLK脉冲到来后,OUT变低,将计数初值送入CE 并开始减1计数,直到计数器减到0后OUT变为高电平。 50 计数过程一旦启动,GATE变成低电平也不会使计数中止。计数完成后 若GATE再来一个正跳变,计数过程又重复一次。对应GATE的每一个 正跳变,都输出宽度为N*TCLK的负脉冲,因此称这种方式为可编程单 脉冲发生器。 3.3 可编程定时器/计数器芯片8253 51 (3) 方式2分频工作方式/速率波发生器 u写入控制字后,OUT信号变为高电平,若计数初值为N,启动计数 后,以CLK信号的频率进行减1计数,OUT输出高电平保持不变;待 计数值减到“1”和“0”之间时,OUT输出宽度为一个CLK周期的 负脉冲。 u当减到1时,OUT输出一个宽度为一个CLK时钟周期的负脉冲, OUT恢复成高电平后,计数器又重新开始计数。可以看出,OUT输 出信号的频率为CLK信号频率的1/N,即N次分频,故称这种工作方 式为分频工作方式。 方式2需要GATE信号保持高电平。当GATE变为低电平时, 停止计数。GATE由低变高后,CR中的计数初值又重新装入减 1计数器CE中开始计数。 方式2在计数过程中若写入新的计数初值,并不影响当前的计 数过程。在本次计数结束后,才以新的计数初值开始新的分频 工作方式。 3.3 可编程定时器/计数器芯片8253 52 写入控制字后,OUT 信号变为高电平 10 3 34 1 OUT WR CLK GATE CWN4 TOUTN*TCLK (4) 方式3方波发生器 u工作于方式3时,在计数过程中其输出前一半时间为高电平, 后一半时间为低电平。其输出是可以自动重复的周期性方波, 输出的方波周期为N*TCLK。 在写入方式3控制字后,计数器OUT端立即变高。若 GATE信号为高,在写完计数初值N后,开始对CLK信号进 行计数。计数到N/2时,OUT端变低,计完余下的N/2, OUT又变高,如此自动重复,OUT端产生周期为N*TCLK的 方波。 3.3 可编程定时器/计数器芯片8253 53 2 42 3.3 可编程定时器/计数器芯片8253 54 u若计数初值为偶数,则计数的前半周期为N/2,计数的 后半周期为N/2,输出重复周期为N,占空比为1:1的方 波形。若计数初值为奇数,则计数的前半周期为(N+1)/2 ,计数的后半周期为(N1)/2,近似方波。 (5) 方式4软件触发方式 u方式4是一种软件启动、不自动重复的计数方式。 在写入方式4的控制字后,OUT变为高电平。当写入计数 初值后立即开始计数(这就是软件启动)。当计数到0后, OUT输出变为低电平,持续一个CLK脉冲周期后恢复为高 电平,计数器停止计数。故这种方式是一次性的。只有CPU 再次将计数初值写入计数初值寄存器CR后才会启动另一次 计数过程。 21034 OUT WR CLK GATE CW N4 3.3 可编程定时器/计数器芯片8253 55 (6) 方式5硬件触发方式 u方式5是一种硬件启动、自动重复的计数方式。 在写入方式5控制字后,OUT变高,写入计数初值时即 使GATE信号为高电平,计数过程仍不启动,而是要求 GATE信号出现一个正跳变,然后在下一个CLK信号到来 后才开始计数。计数器减到0时,OUT输出负脉冲,宽度 为一个CLK周期,表示定时时间到或计数次数到。 04312 OUT WR CLK GATE CW N4 3.3 可编程定时器/计数器芯片8253 56 3.3 可编程定时器/计数器芯片8253 57 u由于方式5是由GATE的上升沿启动计数,同方式 1一样,计数启动后,即使GATE变成低电平,也不 影响计数过程的进行。但若GATE信号产生了正跳 变,则不论计数是否完成,计数初值将被置入计数 器,重新开始新一轮计数。 u若在计数过程中给计数器写入新的计数初值,此 时只是将计数初值保存到计数初值寄存器CR中,并 不影响当前的计数过程,在GATE产生正跳变时新 的计数初值才被置入减1计数器CE开始计数。 3.3 可编程定时器/计数器芯片8253 58 3.3.4 8253应用举例 u使用8253计数器2产生频率为40kHz的方波 ,设8253的端口地址为0040H0043H,已 知时钟端CLK2输入信号的频率为2MHz。试设 计8253与8086总线的接口电路,并编写产生 方波的程序。 分析:8253端口地址分配:0040H,计数器0;0041H, 计数器1;0042H,计数器2;0043H,控制字寄存器 59 n8253与8086总线的连接 3.3 可编程定时器/计数器芯片8253 地址译码器产生8253的片选 信号;A1,A0产生通道选择 信号,由CPU输入。 RD WR D7D0 A0 A1 译 码 A2 A15 3.3 可编程定时器/计数器芯片8253 60 ;对计数器2送控制字 ;控制字端口地址 ;送计数初值50 ;计数器2端口地址 MOV MOV OUT MOV MOV OUT AL,10010111B DX,0043H DX,AL AL,50 DX,0042H DX,AL u为了使计数器2产生方波,应使其工作于方式3,输入的 2MHz的CLK2时钟信号进行50次分频后可在OUT2端输出频率 为40 kHz的方波,因此,对应的控制字应为10010111B,计 数初值为十进制数50。程序如下: 计数器2;只读/写低字节;方式3产生方波;十进制计数50 分析:8253端口地址分配:0040H,计数器0;0041H,计数 器1;0042H,计数器2;0043H,控制字寄存器 练习 某8086系统中包含一片8253芯片,要求完成如下功能: 1)利用通道0完成对外部事件计数功能,计满50次向CPU发中断请求; 2)利用通道1产生频率为1KHz的方波,其中CLKi端输入2.5MHz的时钟 脉冲。 请写出8253的初始化程序。通道0通道2和控制字的端口号分别为 1FF0H1FF3H 分析: 通道0应定义为工作方式0,完成计数功能,计数初 值为3CH(50); 通道1应定义为工作方式3,1KHz方波,周期为 1ms,2.5MHz,其重复周期为0.4us,所以,计数 初值为2500=09C4H; MOV DX,1FF3H;8253控制端口地址 MOV AL,10H;通道0方式0, OUT DX,AL MOV DX,1FF0H;通道0端口地址 MOV AL,3CH;50次,计数初值 OUT DX,AL MOV DX,1FF3H;8253控制端口地址 MOV AL,76H;通道1方式3, OUT DX,AL MOV DX,1FF1H;通道1端口地址 MOV AX,09C4H;计数初值, OUT DX,AL;先送低字节 MOV AL,AH;再送高字节 OUT DX,AL 00,01,000,0 01,11,011,0 通道0,工作方式0,计数初值为 3CH(50) 通道1,工作方式3,计数初值为 2500=09C4H; 3.4 可编程串行接口芯片8251A 63 3.4.1 串行通信的基本概念 n串行通信与并行通信 0 计 算 机 计 算 机 (或 外 设) 0 1 0 0 1 0 0 1 8T 计 算 机 (或 外 设) 0 1 0 0 计 1 算 0 机 1 0 1 0 0 1 0 0 1 D0 D1 D2 D3 D4 D5 D6 D7 控制(选通) 状态 T串行通信 并行通信 并行通信是把一个字符的各数位用几条线同时进行传输,传输速度快,信息率高, 但用电缆多,常用在传输距离较短(几米至几十米),数据传输率较高的场合。 串行通信是数据一位一位依次传输,每个数据占据一个固定的时间长度。这种方式 用电缆少,但通信速度比较慢。 3.4 可编程串行接口芯片8251A 64 n串行通信中的数据传送模式 u单工(Simplex)通信模式。仅能进行一个方向的数 据传送。如A作为发送器,B能作为接收器。 u半双工(Half Duplex)通信模式。它能够在设备A 和设备B之间交替地进行双向数据传送。即数据可 以在一个时刻从设备A传送到设备B,而另一时刻也 可以从设备B传送到设备A,但不能同时进行。 u全双工(Full Duplex)通信模式。通信设备A或B 均能在发送的同时又能接收数据。即设备A向设备B 发送数据的同时,设备B也可以向设备A发送数据。 3.4 可编程串行接口芯片8251A 65 n比特率与波特率 u比特率是数字信号的传输速率,比特率是指每 秒能传输的二进制代码的比特(bit)数,单位为 bps (bit per second)或kbps(千比特/秒)。 u波特率(Baudrate):调制速率(又称为波形速 率),波特指每秒能传输的符号(也称离散状态)数 。 若每个符号所含信息量等于1比特,则波特率等于比特 率。 在计算机中,一个“符号”的含义为高电平或低电平 ,即符号所含信息量刚好等于1比特。 因此,在计算机 数据传输中常将比特率称为波特率。 n串行通信数据的收发方式-(异步)与(同步)通 信方式 u异步通信方式 3.4 可编程串行接口芯片8251A 异步通信所采用的数据格式是一组不定“位数”数组组成。第一位称 为起始位,宽度为1bit,低电平;接着传送一个8位的数据,其中, 高电平为1,低电平为0;最后是停止位。在两个数据组之间可有空闲 位。 67 3.4 可编程串行接口芯片8251A n串行通信数据的收发方式-异步与同步通信方式 u同步通信方式 同步通信时所使用的数据格式分为:面向字符型和面向比特的两种 (1)面向字符型的数据格式 面向字符型的同步通信数据格式可采用单同步(一个同步字符)、双同步( 两个同步字符)及外同步(无同步字符,通过控制线实现同步)三种数据格 式。信息结束均用两个字节的循环控制码CRC为结束。 SYNC 数据字节1 数据字节2数据字节n CRC1 CRC2 SYNCSYNC数据字节1数据字节n CRC1 CRC2 数据字节1 数据字节2 数据字节2数据字节n CRC1 CRC2 单同步 双同步 外同步 68 3.4 可编程串行接口芯片8251A u同步通信方式 (2)面向比特型的数据格式 根据同步数据链路控制规程(SDLC),面向比特型的数据以帧为单 位传输,每帧由六个部分组成。第一部分是开始标志“7EH”,第 二部分是一 个字节的地址场;第三部分是一个字节的控制场,第四 部分是需要传输的数据;第五部分是两个字节的循环控制码CRC; 最后又是“7EH”作为结束标志。 通常,异步通信速率要比同步通信的低。 3.4 可编程串行接口芯片8251A 例子:串行通信的传输率 例:异步传输过程: 设每个字符对应1个起始位、7个信息位、1个奇偶校验位和 1个停止位,如果波特率为1200bps,那么,每秒钟能传输 的最大字符数为(一个空闲位也没有): 1200/10120个。 3.4 可编程串行接口芯片8251A 70 n信号的调制和解调 u在计算机系统中,主机与外设之间所传送的是用 二进制“0”和“1”表示的数字信号。数字信号的 传送要求占用很宽的频带,且还具有很大的直流分 量,因此数字信号仅适用于在短距离的专用传输线 上传输。 u在进行远距离的数据传输时,一般是利用电话线 作通信线路。由于电话线不具备数字信号所需的频 带宽度,如果数字信号直接用电话线传输,信号将 会出现畸变,致使接收端无法从发生畸变的数字信 号中识别出原来的信息。因此必须采取一些措施, 在发送端把数字信号转换成适于传输的模拟信号, 而在接收端再将模拟信号转换成数字信号。前一种 转换称为调制,后一种转换称为解调。完成调制、 解调功能的设备叫做调制解调器(Modem)。 3.4.3 8251A n8251A的结构及基本功能 3.4 可编程串行接口芯片8251A 发送器 接收器 8251A是通用串行输入/输出接口,它 能将并
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 激光工程师考试真题解读试题及答案
- 育苗考试试题及答案解析
- 进行药剂学考试考点分析及试题及答案
- 非法传销试题及答案解析
- 重要的卫生管理证书考试解读试题及答案
- 郑州口腔面试题及答案
- 激光技术质量控制试题及答案
- 药物临床使用的安全性分析试题及答案
- 文化产业管理证书考试新趋势试题及答案
- 西医临床常见考题对策分析试题及答案
- 2023年郑州黄河护理职业学院单招职业适应性测试笔试题库及答案解析
- 禁食疗法课件
- 5以内的相邻数课件
- 《学习纵向展开议论》课件
- 政府采购业务知识培训课件(PPT33张)
- 大体积混凝土施工质量控制论文
- 客户退货申请单
- 生活垃圾综合处理厂焚烧发电施工组织设计(201页)
- SH3405管道壁厚等级表
- 苯冷却器设计(共24页)
- 名∶聚乙烯(PE)土工膜防渗工程技术规范
评论
0/150
提交评论