《通用可编程接口芯》PPT课件.ppt_第1页
《通用可编程接口芯》PPT课件.ppt_第2页
《通用可编程接口芯》PPT课件.ppt_第3页
《通用可编程接口芯》PPT课件.ppt_第4页
《通用可编程接口芯》PPT课件.ppt_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第8 8章章 通用可编程接口芯片通用可编程接口芯片 本章学习目标 了解可编程接口芯片的基本概念 掌握并行接口芯片8255A的编程结构与使用方法 掌握串行接口芯片8251的编程结构与使用方法 掌握定时/计数器芯片8253的编程结构与使用方法 第第8 8章章 通用可编程接口芯片通用可编程接口芯片 8.1 8.1 并行接口芯片并行接口芯片8255A 8255A 8.2 8.2 可编程串行输入可编程串行输入/ /输出接口芯片输出接口芯片8251 8251 8.3 8.3 可编程定时器可编程定时器/ /计数器接口芯片计数器接口芯片8253 8253 8.1 并行接口芯片8255A 8.1.1 8.1.1 内部结构及引脚内部结构及引脚 8.1.2 8255A8.1.2 8255A的工作模式的工作模式 8.1.3 8255A8.1.3 8255A的编程及应用的编程及应用 8.1.1 内部结构及引脚 1. 8255A内部结构 2. 8255的内部结构如图8-1所示。 3. 各部分功能概括如下: 4. (1)数据输入输出端口 5. (2)A组控制器和B组控制器 6. (3)数据缓冲器:双向8位缓冲器,用于传送计算机 和8255A间的控制字、状态字和数据字。 7. (4)读写控制逻辑:接收计算机的读写命令和选择 端口地址,用于控制8255A的读写。 8. 2. 8255A引脚功能 8255A有40条引脚,如图8-2所示。引脚功能如下: D7D0:数据总线,用于传送计算机和8255A间的数据 、命令和状态字。 RESET:复位线,高电平有效。 CS:片选线,低电平有效。 RD:读命令线,低电平有效。 WR:写命令线,低电平有效。 A0、A1:地址线,用于选择A口、B口、C口。 PA7PA0:A端口输入/输出线,双向I/O总线。 PB7PB0:B端口输入/输出线,双向I/O总线。 PC7PC0:C端口输入/输出线,双向I/O总线。 图8-2 8255引脚图 8.1.2 8255A的工作模式 1. 8255A控制字和状态字 2. 8255A通过控制字用来设定8255A有3种工作模式。 控制字有两个,一个是工作方式控制字,用于8255A的初始 化;另一个是C口位控制字,用于C口的位操作。这两个控制 字使用同一口地址,由最高位D7区分,若D7为1,此控制字 为8255A的工作方式控制字;若D7为0,此控制字为8255A的 C口的位控制字。 (1)方式控制字 8255A的方式控制字用来设定8255A三个端口的工作方 式及输入/输出状态。控制字的位定义如下: D7D6D5D4D3D2D1D0 A组B组 D7:控制字标志位。 D7为1,则本控制字为方式控制字;D7为0,则本控制字为C 口控制字。 l D6D3:A组控制位。其中: D5、D6:A组方式选择位,D6D5为00时,A组设定为方式0; D6D5为01,A组设定为方式1;若D6D51,A组设定为方式2。 D4:A口输入输出控制位,D4为0,则PA7PA0用于输出数据;D4 为1,则PA7PA0用于输入数据。 D3:C口高四位输入输出控制位;D3为0,则PC7PC4为输出数据 方式;D3为1,则PC7PC4为输入方式。 lD2D0:B组控制位。其中: D2:方式选择位,D2为0,B组设定为方式0;D2为1,B组设定为 方式1。 D1:B口输入/输出控制位,D1为0,则PB7PB0用于输出数据;D1 为1,则PB7PB0用于输入数据。 D0:C口低四位输入/输出控制位,D0为1,则PC3PC0用于输出 数据;D0为1,则PC3PC0用于输入数据。 (2)C口位控制字 该控制字可以使C口各位单独置位或复位,以实现 特殊的控制功能。控制字格式如图8-4所示。 D7D6D5D4D3D2D1D0 无效位位选择 控制位 D7:控制字的特征位,0有效。 D3D0:用于控制PC7PC0中某一位置位和复位。 D0:置位/复位的控制位。 当D0为0时,控制C口的某位复位;当D0为1时,控制C口的 某位置位。 (3)8255A状态字 8255A设定为方式1和方式2时,读C口便可读得相应状态 字,可以了解8255A的工作状态。 当8255A的A口、B口工作在方式l,则为输入时的状态字 格式如下所示。在这个状态字中,INTEA和INTEB分别 为A组和B组的中断允许触发器状态,其余各位为相应引 脚上的电平信号。 当8255A的A口、B口工作在模式l,则为输出时的状态字 格式如下所示。 8255A在方式2下的状态字格式如下所示。在这个状态字 中,INTEl、INTE2和INTR为8255A的允许中断触发器状 态。其中INTEl和INTE2受C口的置复位控制字决定,其 余各位为同名引脚上的电平信号。D2D0由B组工作方 式决定。 2. 8255A工作方式 (1)方式0 方式0是一种基本的输入/输出工作方式,8255A的A 口、B口和C口均可由程序设定为输入/输出口。其 中输出可被锁存,输入不能锁存。 【例8.1】设8255A的控制字寄存器地址为置9BH,则令A口和C 口高四位工作在方式0输出方式以及B口和C口低四位工作于方 式0输入方式,指令序列如下: MOV AL,83H ;方式控制字83H送AL MOV DX,9BH OUT DX,AL ;83H送控制字寄存器 (2)方式1 方式1是选通输入/输出工作方式,A口和B口 皆可独立地设置成这种工作方式。在方式1下,既 需要数据信号也需要选通联络信号,选通联络信 号与输入/输出数据一起传送,其中A组为数据口 ,可定义为输入或输出方式,以C口的PC5、PC4、 PC3为选通联络线;B组为数据口,可定义为输入 或输出方式,以C口的PC2、PC1、PC0为选通联络线 。当A口工作于方式1输入状态时见图8-3。 图8-3 8255的A口方式1输入方式下状态 C口的相应联络线定义如下: (PC4、PC2)选通输入,低电平有效。由外设输入数据 ,并将数据送到输入锁存器。其中PC4对应A口,PC2对应 B口。 IBF(PC5、PC1)输入缓冲器满,高电平有效。当它为1 时,说明CPU还未读取上次输入的数据,通知外设不应 送新数据。当它为0时,通知外设可送新数据。其中PC5 对应A口,PC1对应B口。 INTR(PC3、PC0)中断请求,高电平有效。当中断允许 位INTR置1时,若输入缓冲器满,则产生一个“高”有效 的中断请求1NTR至CPU,对外设送来的新数据以中断方 式输入。其中PC3对应A口,PC0对应B口。 当A口或B口工作在方式1输出状态时见图8-4 图8-4 8255的A口模式1输出方式下状态 C口的各位定义如下: (PC7、PC1)输出缓冲器满信号,低电平有效。当数据 写入该口的数据寄存器时,即启动该信号,以通知外设 读取端口数据。其中PC7对应A口,PC1对应B口。 (PC6、PC2)外部响应输入信号,低电平有效。当外设 读取端口数据后,回发“低”有效信号作为回答。其中 PC6对应A口,PC2对应B口。 INTR(PC3、PC0)中断请求信号,高电平有效。当中断 允许位INIR置“1”时,若输出缓冲器空(1),则产生 一个“高”有效的中断请求INTR至CPU,于是可在其中断 处理程序中向该口输出新的数据。其中PC3对应A口,PC0 对应B口。 (3)方式2 8255A的另一种工作方式为带选通双向总线IO方式 ,且只有A口可以工作在这一方式下,A口为输入输出 数据端,输入、输出均可锁存,既可以发送数据,也可 以接收数据,握手联络信号和A口在方式1下的输入或输 出时的握手联络信号分别相对应,输入输出时的中断请 求都共用PC3。这是一个“或”逻辑,即PC6置“l”时,输出 缓冲器“空”可引起中断,PC4置“l”时输入缓冲器“满”也 能引起中断。 当A口工作于方式2时,B口可工作在方式0或者方式1 ;C口的高5位为A口的握手联络信号,低3位可用于B口 在方式1时的握手联络信号。由8255A的控制字选择。 方式2状态如图8-5所示。 图8-5 8255模式2方式下状态 其中: INTRA(PC3)中断请求信号,高电平有效。 (PC7)输出缓冲器满信号,低电平有效。 (PC6)外部响应信号,低电平有效。 INTE1:输出缓冲器的中断允许触发器,由PC6置位/复位控 制。 (PC4)选通输入信号,低电平有效。 IBFA(PC5)输入缓冲器满信号,高电平有效。 INTE2:输入缓冲器的中断允许触发器,由PC4置位/复位控 制。 8.1.3 8255A的编程及应用 8255A是计算机外围接口芯片中典型的一种,主要用于接口扩展、外 设扩展应用等。对8255A编程,首先应对8255A进行初始化,即向 8255A写入控制字,规定8255A的工作方式,A口、B口、C口的工作 方式等。然后,如果需要中断,则用控制字将中断允许标志置位。 再以后就可以按相应的要求向8255A送入数据或从8255A读出数据。 【例8.2】要求8255A工作在方式0,A口、B口输入,C口输出。 其硬件电路如图8-6,片选端接译码电路输出(译码端由地址线A7、 A6、A5译码输出),按要求8255A的控制字为92H(D7D0对应的 数据为10010010)。 图8-6 8255基本应用 其工作程序如下: PORTKEQU1FH ;8255A控制口地址 PORTAEQU1CH ;8255A的A口地址 PORTKEQU1DH ;8255A的B口地址 PORTKEQU1EH ;8255A的C口地址 ;初始化8255A MOVAL,92H ;控制字方式0,A、B输入,C输出 MOVDX,PORTK ;控制寄存器地址 OUTDX,AL ;控制字送控制寄存器 ;A口、B口、C口读写 MOXDX,PORTA ;A口地址 IN AL,DX ;从A口读数据 MOXDX,PORTB ;B口地址 IN AL,DX ;从B口读数据 MOXDX,PORTC ;C口地址 MOVAL,DATA OUT DX,AL ;向C口输出数据DATA 【例8.3】要求8255A工作方式1,A口输入,B口输出,PC6、 PC7输出,禁止A口中断。 按要求8255A控制字为0B7H,程序如下: PORTK EQU1FH ;8255A控制口地址 PORTA EQU1CH ;8255A的A口地址 PORTK EQU1DH ;8255A的B口地址 PORTK EQU1EH;8255A的C口地址 ;初始化8255A MOV AL,0B7H ;控制字方式1,A输入,B输出 MOVDX,PORTK ;控制寄存器地址 OUTDX,AL ;控制字送控制寄存器 MOVAL,09H OUTDX,AL MOVAL,04H OUTDX,AL 8.2 可编程串行输入/输出接 口芯片8251 8.2.1 8.2.1 串行通信的基本概念串行通信的基本概念 8.2.2 8.2.2 可编程串行接口芯片可编程串行接口芯片82518251结构结构 8.2.3 82518.2.3 8251的初始化和编程应用的初始化和编程应用 8.2.4 PC8.2.4 PC机串行异步通信接口机串行异步通信接口 8.2 可编程串行输入/输出接口芯片8251 8.2.1 串行通信的基本概念 1. 半双工和全双工 2. 串行通信是一位接一位地顺序通过一条信号线 进行传输的方式。它的通路可以只有一条,此时发送信 息和接收信息不能同时进行,只能采用分时使用线路的 方法,如果在A发送信息时,B只能接收;而当B发送信 息时,则A只能接收。这种串行通信的工作方式称为半 双工通信方式;如果在两个通信站之间有两条通路,则 发送信息和接收信息就可以同时进行。如当A发送信息 ,B接收,B同时也能利用另一条通路发送信息而由A接 收。这种工作方式称为全双工通信方式。 2. 数据传输率 数据传输率是指每秒钟传送的二进制位数通常称为 波特率(Band Rate)。国际上规定了标准波特率系列, 最常用的标准波特率是:110波特、300波特、600波特、 1200波特、l800波特、2400波持、4800波特、9600波特和 19200波特。 时钟频率n波特率 式中的n叫做波特率系数或波特率因子,它的取值可以为1 、16、32或64。 3. 串行通信的方式 串行通信按通信约定的格式分为两种:异步通信方式和同 步通信方式。 (1)同步通信 所谓同步通信是指在约定的数据通信速率下,发送方和接 收方的时钟信号频率和相位始终保持一致(同步),这就 保证了通信双方在发送数据和接收数据时具有完全一致的 定时关系。在有效数据传送之前首先发送一串特殊的字符 进行标识或联络,这串字符称为同步字符或标识符。在传 送过程中,发送端和接收端的每一位数据均保持同步。 (2)异步通信 异步通信是指通信中两个字符之间的时间间隔是不固 定的,而在一个字符内各位的时间间隔是固定的。异步通 信规定字符由起始位(start bit)、数据位(data bit)、奇 偶校验位(parity)和停止位(stop bit)。起始位表示一个 字符的开始,接收方可以用起始位使自已的接收时钟与数 据同步。停上位则表示一个字符的结束。这种用起始位开 始,停止位结束所构成的一串信息称为一帧(frame)。 异步通信在传送一个字符时,由一位低电平的起始位开 始,接着传送数据位,数据位的位数为58位。在传送时 ,按低位在前,高位在后的顺序传送。奇偶校验位用于检 验数据传送的正确性,也可以没有,可由程序来指定。最 后传送的是高电平的停止位,停止位可以是1位、1.5位或2 位,两个字符之间的空闲位要由高电平1来填充。 8.2.2 可编程串行接口芯片 1. 8251的内部结构和引脚功能 8251的内部结构如图8-12所示 主要包括: (1)数据总线缓冲器 (2)发送器 (3)接收器 (4)读写控制电路 (5)调制解调控制电路 2. 8251的编程控制 8251是可编程串行接口,在使用前必须由程序对其工作状态进 行设置(称为初始化),其中包括:同步方式还是异步方式、 传输波特率、字符代码位数、校验方式、停止位位数等。 8251的控制字分为方式控制字和命令控制字。 (1)方式控制字 此控制字决定8251A是工作在同步方式还是异步方式。 控制字格式如下: S2S1EPPENL2L1 B2B1 其中: B2、B1:波特率系数控制位 L2、L1:字符位数控制位 PEN:校验位允许位 S2、S1:停止位位数或同步字符个数控制位 (2)操作命令控制字 是使8251处于发送数据或接收数据状态,通知外设准备接收或 是发送数据。 格式如下: EHIRRTSERSBRKRxEDTR TxEN 8.2.2 可编程串行接口芯片 1. 8251的内部结构和引脚功能 8251的内部结构如图8-12所示 主要包括: (1)数据总线缓冲器 (2)发送器 (3)接收器 (4)读写控制电路 (5)调制解调控制电路 8.2.3 8251的初始化和编程应用 1. 8251的初始化 2. 在传送数据前对8251进行初始化,才能确定 发送方与接收方的通信格式。以及通信的时序,从而 保证准确无误地传送数据。由于三个控制字没有特征 位,且工作方式控制字和操作命令控制字放入同一个 端口,因而要求按一定顺序写入控制字,不能颠倒。 【例8-5】编写一段程序,通过8251采用查询方 式接收数据的程序。要求8251A定义为异步传输 方式,波特率系数为64,采用偶校验,1位停止 位,7位数据位。设8251的数据端口地址为 04A0H,控制/状态寄存器端口地址为04A2H。 程序如下: MOV DX,04A2H MOV AL,7BH ;写工作方式字 OUT DX,AL MOV AL,14H OUT DX,AL ;写操作命令字 LP: IN AL,DX ;读状态控制字 AND AL,02H ;检查RxRDY是否为1 JZ LP MOV DX,04A0H IN AL,DX 2. 8251和CPU的通信方式 (1)查询方式 发送数据的程序在初始化程序之后。 【例8.6】若采用查询方式发送数据,且假定要发送的字节数据放 在TABLE开始的数据区中,且要发送的字节数据放在BX中,则发 送数据的程序段如下所示。 START:MOV DX,3FDH LEA SI,TABLE WAIT: IN AL,DX TEST AL,20H ;检查THR是否空 JZ WAIT ;若为空,则继续等待 PUSH DX MOV DX,3F8H LODSB OUT DX,AL ;否则发送一个字节 POP DX DEC BX JNZ WAIT 同样,在初始化程序后,可以用查询方式实现接收数据。 【例8.7】下面是一个接收数据程序,假设接收后的数据送入 DATA开始的数据存储区中。 RECV: MOV SI,OFFSET DATA MOV DX,3FDH WAIT: IN AL,DX ;读入线路状态寄存器 TEST AL,1EH ;检查是否有任何错误产生 JNZ ERROR ;有,转出错处理 TEST AL,01H ;否则检查数据是否准备好 JZ WAIT ;未准备好,继续等待检测 MOV DX,3F8H IN AL,DX ;否则接收一个字节 AND AL,7FH ;保留低7位 MOV SI,AL ;送数据缓冲区 INC SI MOV DX,3FDH JMP WAIT (2)中断方式 利用中断方式可实现8251和CPU的串行通信。现设想系统以查询方 式发送数据,以中断方式接收数据。波特率系数为16,1位停止位 ,7位数据位,奇校验。 程序如下: MOV DX,04A2H MOV AL,01011010B ;写工作方式控制字 OUT DX,AL MOV AL,14H ;写操作命令控制字 OUT DX,AL 当完成对8251A的初始化后,接收端便可进行其他工作,接收到 一个字符后,便自动执行中断服务程序。 【例8.9】中断服务程序如下: RECIVE:PUSH AX PUSH BX PUSH DX PUSH DS MOV DX,3FDH IN AL,DX MOV AH,AL ;保存接收状态 MOV DX,3F8H IN AL,DX ;读入接收到的数据 AND AL,7FH TEST AH,1EH ;检查有无错误产生 JZ SAVAD MOV AL,? ;出错的数据用?代替 SAVAD: MOV DX,SEG BUFFER MOV DS,DX MOV BX,OFFSET BUFFER MOV BX,AL ;存储数据 MOV AL,20H OUT 20H,AL ;将EOI命令发给中断控制器8259 POP DS POP DX POP BX POP AX STI IRET 8.2.4 PC机串行异步通信接口 1. 串行异步通信适配器 2. 串行异步适配器结构如下: 2. EIA RS-232串行通信总线标准 RS-232是一种串行通信总线标准,1969年由美国电子工业 协会(EIA)从CCITT远程通信标准中导出的一个标准。9针、25 针RS-232标准接口引脚排列如图所示。 25脚引脚号(9脚 ) 符号方向功能 2(3)TXD输出发送数据 3(2)RXD输入接收数据 4(7)RTS输出请求发送 5(8)CTS输入清除发送 6(6)DSR输入数据通信设备准备好 7(5)GND 信号地 8(1)DCD输入数据载波检测 20(4)DTR输出数据终端准备好 22(9)RI输入振铃指示 两台计算机的连接方法如下图所示: 3. BIOS串行异步通信方式接口的功能调用 IBM PC及兼容机提供了一种有较强的硬件依赖性,但却 比较灵活的串行口I/O的方法,即通过INT 14H调用 ROM BIOS串行通信口例行程序。下面给出串行异步 通信接口功能调用的具体情况: (1)初始化串行通信口(AH=0) 入口参数:AL=初始化参数,DX=通信口号 出口参数:AH=通信口状态,AL=调制解调器状态 初始化参数据可以用来设置串行口的波特率、奇偶性、 字长和终止位。8位数据具体含义如下: 设置波特率、 设置校验位 设置终止位 设置字长 D7D6D5D4D3D2D1D0 l 位7、6、5:设置波特率 000=110波特 001=150波特 010=300波特 011=600波特 100=1200波特 101=2400波特 110=4800波特 111=9600波特 l l 位4、3:设置校验位 01=奇校验 11=偶校验 0=无校验 l l 位2:设置终止位 0=1位 1=2位 l l 位1、0:设置字长 10=7位 11=8位 例如指令序列: MOV AH,0 MOV AL,0A3H MOV DX,0 INT 14H 完成的功能是将0号通信口的波特率设置为2400波特,字 长为8位,1位终止位,无奇偶校验位。 (2)向串行通信口写字符(AH=1) 入口参数:AL=所写字符,DX=通信口号 出口参数:写字符成功AH=0,AL=字符 写字符失败(AH)7=1,(AH)06=通信口状态 (3)从串行通信口读字符(AH=2) 入口参数:DX=通信口号 出口参数:读字符成功(AH)7=0,AL=字符 读字符失败(AH)7=1,(AH)06=通信口状态 (4)取串行通信口状态(AH=3) 入口参数:DX=通信口号 出口参数:AH=通信口状态,AL=调制解调器状态 3号功能用来读串行口的当前状态,调用时,只需给出被 查询的串行通信口是COM1或是COM2,调用返回时 ,其状态信息放入AX中,(AL)MODEM状态, (AH)线路状态。 4. BIOS串行异步通信接口的功能调用应用接口 通过前面的介绍,已经知道串行通信的编程方式有I/O指 令方式、DOS功能调用方式和BIOS中断调用方式,在 这里选择BIOS中断调用方式。编程的关键首先确定串 行通信的基本方式。 【例8.11】在下面的程序中设置串行通信的传输参数为: 1200波特、7个数据位,1个奇偶校验位,2个停止位 。两台计算机机可互发数据,即在程序开始首先检测 是否有数据要接收,若没有则检测是否有键按下,若 有数据发送,否则重新检测。 程序清单如下: CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX ;数据段基值装入(通过AX) LEA DX,SHOWMESS ;字符串有效地址装入DX寄存器 MOV AH,09H INT ;DOS显示字符串功能调用 ;初始化串口COM2 ; 串行口初始化为1200波特、数据位 MOV AH,0 MOV DX,1 MOV AL,8EH INT 14H ;初始化COM2口 FORE: MOV H,03H MOV DX,1 INT 14H ;读串口2状态字 TEST AH,01H ;数据准备好? JNZ RECE ;准备好转接收程序 TEST AH,20H ;发送移位寄存空? JZ FORE ;不空转FORE继续检测 MOV AH,1 INT 16H ;否则利用BIOS键盘中断调用,输入字符 JZ FORE ;没有按键,继续 MOV AH,0 INT 16H ;BIOS键盘输入 CMP AL,1BH JZ QUIT ;是否是ESC键, 是退出 MOV AH,1 MOV DX,1 INT 14H ;否则发送字符 CMP AL,0DH JNZ RECE MOV AH,02H MOV DL,0AH INT 21H ;若发送的为回车符,显示换行 MOV DL,0DH INT 21H rece: MOV AH,3 MOV DX,1 INT 14H ;读串口2状态字 TEST AH,01H ;数据准备好? JZ FORE ;数据未准备好转fore继续检测 MOV AH,2 MOV DX,1 INT 14H ;否则读入字符 MOV DL,AL AND DL,7FH MOV AH,02H ;屏蔽校验位 INT 21H ;DOS中断显示字符 JMP FORE ;接收方发送字符 QUIT:MOV AH,4CH ;退出程序,返回DOS INT 21H CODE ENDS ;代码段结束 END START ;程序结束 8.3 可编程定时器/计数器接 口芯片8253 8.3.1 8.3.1 定时的基本概念定时的基本概念 8.3.2 8.3.2 可编程接口芯片可编程接口芯片82538253结构和引脚功能结构和引脚功能 8.3.3 82538.3.3 8253的编程的编程 8.3.4 82538.3.4 8253的工作方式的工作方式 8.3 可编程定时器/计数器接口芯片8253 微型计算机经常要用来对外部事件进行定时控制 或记录外部事件产生次数、即定时或计数控制。如函 数发生器、计算机中的系统日历时钟、DRAM的定时 刷新、定时采样和控制系统等,都要用到定时信号。 定时信号可以利用软件编程或硬件的方法得到。串行 异步适配器结构如下: 8.3.1 定时的基本概念 可编程计数器定时器8253就是用软、硬技术相结合的 方法实现定时和计数控制。其主要有以下特点。 (1)有3个独立的16位计数器,每个计数器均以减法计 数; (2)每个计数器都可按二进制计数或十进制(BCD码) 计数; (3)每个计数器都可由程序设置6种工作方式; (4)每个计数器计数速度可达2MHZ; (5)所有I/O都可与TTL兼容。 1. 内部结构 8253内部包含合3个16位计数器,每个计数器可按二进制 或十进制计数,有6种工作方式,可通过编程选择。 8253采用单一+5V电源供电,NMOS工艺制造,24引 脚DIP封装,其内部结构如图所示。 主要包括: (1)数据总线缓冲器 (2)读/写逻辑电路 (3)控制字寄存器 (4)计数通道 8.3.2 可编程串行接口芯片8253结构和引脚功能 2. 引脚功能 D7D0:8位双向数据线。 CS:片选信号,输入,低电平有效。 RD:读有效信号,输入,低电平有效。 WR:写有效信号,输入,低电平有效。 A1、A0:地址信号线。 CLK0CLK2:每个计数器的时钟信号输入端。 GATE0GATE2:门控信号,用于控制计数器的启动和 停止。 OUT0OUT1:计数器输出信号。 8253内部端口地址和操作 CS RD WR A1A0功能 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 写计数器0 写计数器1 写计数器2 写方式控制字 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 1 1 读计数器0 读计数器1 读计数器2 无效 1. 写控制字 8253在工作之前,必须对它进行编程,以确定每个计数 器的工作方式和对计数器赋计数初值。CPU通过写控 制字指令,将每个计数通道分别初始化,使之工作在 某种工作方式之下。 8253的控制字格式如下: 8.3.3 8253的编程 D7D6D5D4D3D2D1D0 SC1SC0RL1RL0M2M1M0BCD 各位含义如下: l SC1、SC0:计数器选择 00计数器0 01计数器1 10计数器2 11非法 l RL1、RL0:计数长度选择 00将计数器中的数据锁存于缓冲器 01只读/写计数器低8位 10只读/写计数器高8位 11先读/写计数器低8位,再读写计数器高8位 l M2、M1、M0:工作方式选择 000方式0 001方式1 x10方式2 x11方式3 100方式4 101方式5 l BCD:计数制选择 0二进制计数 1BCD计数 2. 写入计数初值 对8253编程时,首先向控制字寄存器写入控制字,以选 择计数器的工作方式然后对相应的计数器输入计数 值。在计数值送到计数值寄存器后,需经一个时钟周 期才能把此计数值送到递减计数器。当控制字D0=0时 ,即二进制计数,初值可在0FFFFH之间选择;当 D0=l时,则为十进制计数,其值可在0一9999十进制之 间选择。 计数初值的选择和定时长短以及时钟频率有关。 【例8.12】在一个系统中,8253的CLK0CLK2的时钟频率 为2MHZ,端口地址为200H203H。要求计数器0工作在 方式0下,十进制计数,定时100s后产生中断请求;计 数器1工作在方式3下,二进制计数,用于产生周期为 10s的对称方波;计数器2工作在方式2下,二进制计数 ,每隔1ms产生一个负脉冲。 根据上述要求和已知条件,可知CLK的时钟周期为0.5s。则 可计算出计数器0的初始值为100s/0.5s=200,计数器1 的计数初始值为10s/0.5s=20,计数器2的计数初始值为 1ms/0.5s=2000。 MOV DX,203H ;控制字地址送DX MOV AL,10110100B ;控制字内容送AL OUT DX,AL ;写控制字 MOV AX,2000 ;计数初始值送AX MOV DX,202H ;计数器2地址202H送DX OUT DX,AL ;写低8位 MOV AH,AL OUT DX,AL ;写高8位 若计数器2工作在十进制计数方式,则应把2000H送AX中。计数器2的初始化程序 段可改为下列指令序列: MOV DX,203H MOV AL,10100101B OUT DX,AL MOV DX,202H MOV AL,20H OUT DX,AL 8253有6种不同的工作方式,在不同的工作方式下,计数 过程的启动方式、OUT端的输出波形都不一样。自动 重复功能和GATE的控制作用以及写入新的计数初值 对计数器的工作过程产生的影响出不一样。下面借助 工波形来分别说明这6种工作方式的计数过程。 8.3.4 8253的工作方式 1. 方式0计数结束,产生中断 2.方式1可重复触发的单稳态触发器 3. 方式2分频器 4. 方式3方波发生器 5. 方式4软件触发的选通信号发生器 6. 方式5硬件触发的选通信号发生器 1. 8253的初始化 对8253的初始化,也可称为对8253的编程。完成初始化 后,8253即开始自动按设置好的工作方式工作。初始 化程序包括两部分,一是写各计数器的控制字,二是 设置计数初始值。 【例8.13】假设8253的计数器0工作在方式5,按二进制计 数,计数初始值为100;计数器1工作在方式1下, BCD码计数,计数初始值为4000;计数器2工作在方 式2,按二进制计数,计数初始值为600。8253占用的 端口地址为200H到203H。以上情况的初始化程序如 下: 8.3.5 8253的应用 MOV DX,203H ;控制寄存器地址送DX MOV AL,00011010B;计数器0,写低字节,方式5,二进制计数 OUT DX,AL ;写控制字寄存器 MOV DX,200H ;计数器0的地址送DX MOV AL,100 ;计数初始值为100 OUT DX,AL ;写入计数初始值 MOV DX,203H ;控制寄存器地址送DX MOV AL,01100011B ;计数器1,写高字节,方式1,十进制计数 OUT DX,AL ;写控制字寄存器 MOV DX,201H ;计数器1的地址送DX MOV AL,40H ;计数初始值为 4000H,只写高8位即可 OUT DX,AL ;写入计数初始值 MOV DX,203H ;控制寄存器地址送DX MOV AL,10110100B ;计数器2,16位初始值,方式1,二进制计数 OUT DX,AL ;写控制字寄存器 MOV DX,202H ;计数器2的地址送DX MOV AX,600 ;计数初始值为600 OUT DX,AL ;先写低8位 MOV AL,AH OUT DX,AL ;再写高8位 2. 8253与系统的连接 IBM PC/XT机使用一片Intel8253作为定时/计数芯片。3个计 数通道分别用于日时钟计时、DRAM刷新定时和控制扬 声器发声。8253和系统的连接如图所示。IBM PCAT使 用与8253兼容的Intel8254,在AT机的连接使用也与XT机 一样。 从连接图可看出,8253共占用4个端口地址,地址范围由高 位地址信号决定,高位地址的译码输出接到片选端,A0 和A1分别接到系统总线的A0和A1地址信号线上,用来寻 址芯片内部的3个计数器及控制字寄存器。系统总线的和 分别接入8253的和,数据总线的低8位连接至8253的数据 线D7D0。PC机中只有A9A0参加I/O地址空间的译码, 所以PC机中可寻址的I/O端口的个数最多为512个。下面 给出XT机中系统板上端口片选生成逻辑,如图所示。 图 IBM PC/XT机中8253和CPU连接图 图 系统板上片选生成逻辑 3. 8253应用实例 【例8.14】现要求利用8253完成以下工作:8253的通道2的 OUT2输出接有一发光二极管,要使发光二极管以闪烁形 式工作,即点亮2s,熄灭2s。8253的通道地址为200H到 203H。画出硬件连接图如图所示。分析题目,编写程序 。 图 例8-14图 分析:根据要求8253的计数器2应输出一个占空比为1:1, 周期为4s的方波。从图中可以知道,计数器1的CLK1输入 的时钟周期为1s,若计数器1工作在定时方式,其最大 的定时时间为1s65536,仅为65.5ms,因此使用一个通 道达不到定时4s的要求,此时,采用计数器级连的方法, 将计数器1的输出作为计数器2的输入。 根据图中连接方式,可知,应将计数器1设置为方式2,完成 对1MHZ频率分频,输出脉冲周欺期为4ms,则计数器1的 初始值为4000。OUT2的输入端为周期4ms的脉冲,要求 输出的波形为方波且周期为4s,所以计数器2的计数初始 值为1000。 程序编写如下: MOV AL,75H OUT 43H,AL ;写计数器1控制字 MOV AL,0B7H OUT 43H,AL ;写计数器2控制字 TIM: MOV AX,4000H OUT 41H,AL ;写计数器1初始值低8位 MOV AL,AH OUT 41H,AL ;写计数器1初始值高8位 MOV AX,1000H OUT 42H,AL ;写计数器2初始值低8位 MOV AL,AH OUT 42H,AL ;写计数器2初始值高8位 THANK YOU VERY MUCH 本章到此结结束, 谢谢谢谢您的光临临! WySuOrhnd9;52=M(I$EYBVxRtjpflc 8.40-L*H!DXzTvQsioeka:63N)J%F#CWySuOqgnd9;51=M(I$EYAUxRtjpflb8.40-K53N)J%F#CWySuOqhnd9;51=M(I$EYAVxRtjpflb 8.40-K63N)J52=M(I$EYBVxRtjpflc 8.40-L*H!DXzTvQsioeka:63N)J%F#CWySuOqgnd9;51=M(I$EYAUxRtjpflb8.40-K53N)J%F#CWySuOqhnd9;51=M(I$EYAVxRtjpflb 8.40-K63N)J%G#CWySuOqhnd9;52=M(I$EYAVxRtjpflc 8.40-K*H!DXzTvPsioek:63N-K53N)J%F#CWySuOqhnd9;51=M(I$EYAUxRtjpflb 8.40-K53N)J

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论