《第八章常用可编程通用接口芯片.ppt》由会员分享,可在线阅读,更多相关《第八章常用可编程通用接口芯片.ppt(95页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第八章第八章 常用可编程通用接口芯片常用可编程通用接口芯片第六章介绍了一些基本的输入输出接口,是不可编程的.随着大规模集成技术的发展,接口电路常被集成在一块硅芯片上.可用编程方式设定其工作方式,以适用于多种功能的要求-可编程接口芯片.PC微机除CPU控制核心外,还有一些大规模可编程接口芯片(外围芯片)的支持:8级中断优先权控制器8259以控制8个外部中断源(如时间基准8253的Ch0,键盘,硬磁盘,软磁盘,打印机).三端口的并行接口8255以控制外部简单接口及DIP配置开关(如磁带机,扬声器).2021/9/211.16位三通道定时/计数器8253以控制时间基准、动态刷新、扬声器发声.四通道D
2、MA控制器8237以控制动态RAM刷新、磁盘数据交换.可编程异步通信接口8250以控制串行通信,完成发送时的并-串转换和接收时的串-并转换及相应的控制功能.2021/9/2128.1 可编程并行接口可编程并行接口8255A8255是最通用的并行I/O接口芯片.可用程序改变功能,通用性强,使用灵活,通过它可直接将CPU总线接向外设.广泛用作各种并行外设的接口.一.8255的结构与接口信号 8255的结构框图P261、图81。因作为外设接口,既要与CPU打交道,又要和外设打交道,内部亦需控制,所以由三部分组成:2021/9/2132021/9/2141.外设接口部分外设接口部分-端口A,端口B,端
3、口C.即三个输入输出通道,用来和外设相连,都是8位双向端口,所以有口线:PA7PA0,PB7PB0,PC7PC0.A、B、C三个口都可以作为输入/输出口.在A、B口作为选通方式操作时,C口作为状态控制信号.C口可分成两个4位口.2.内部控制逻辑电路-A组,B组控制电路.根据CPU的命令控制8255的工作方式.A组控制端口A和端口C的上半部分(PC7PC4).B组控制端口B和端口C的下半部分(PC3PC0).2021/9/2153.CPU接口部分接口部分(1).数据总线缓冲器数据总线缓冲器-它是8位双向三态缓冲器,是与CPU数据总线的接口.8位数据线D7D0.所有数据的输入/输出,CPU发出的命
4、令控制字及输入的外设状态,都是通过该缓冲器传送.2021/9/216(2).读写控制逻辑读写控制逻辑-控制8255内部的各种操作.管理数据,控制字,状态的传送.接收CPU的地址,控制信号以控制各端口的工作状态.所以有6根控制线.A1,A0端口选择:00A口,01B口,10C口,11控制口.CS片选信号-以启动CPU与8255之间的通信.RD读信号-从8255中读数据或状态信号.WR写信号-向8255中写数据或状态信号.RESET复位信号-高电平有效,清除控制寄存器,置A、B、C三个口为输入方式.2021/9/217二、二、8255的工作方式与控制字的工作方式与控制字1、8255有三种工作方式有
5、三种工作方式,方式由方式选择控制字来选择:(1)、方式0基本输入输出方式(基本IO)。A、B、C三口均可工作于方式0。(2)、方式1选通输入输出方式(选通IO)。A、B二口可工作于方式1;此时C口作控制。(3)、方式2双向数据传送方式。仅有A口可工作于方式2。C口作控制。A口可工作于方式0、1、2三种方式。B口可工作于方式0、1二种方式。C口只能工作于方式0。2021/9/2182、方式选择控制字、方式选择控制字8255的工作方式,是由CPU用一条输出指令把控制字送到8255的控制寄存器来实现的。方式选择选择控制字的格式P262、图82。2021/9/219由控制字可知:A口可工作于方式0、1
6、、2三种方式;B口只有方式0、1二种方式;C口只能工作于方式0,但C口可分成两部分:上半部分随A口,下半部分随B口;A、B口要作为一个整体确定工作方式,C口可分成两个4位口分别确定其工作方式(输入或输出)。如:控制字90H 1 0 0 1 0 0 0 0标志 A口 A口 C口上 B口 B口 C口下 方式0 输入 输出 方式0 输出 输出 2021/9/2110即控制字90H,设定了8255的A口为方式0输入,B口为方式0输出,C口为方式0输出。用下面程序段设定:MOV DX,PORT3 控制口 MOV AL,90H OUT DX,AL2021/9/21113、按位置位复位控制字、按位置位复位控
7、制字指定指定C口的某一位为口的某一位为高电平或低电平,仅有高电平或低电平,仅有C口可按位置位复位。口可按位置位复位。当通道A、B工作在方式1、2时,常用通道C的某些位作为同外设的联络控制线,通道C的8位中的任一位都可用输出指令使其置位复位,从而人为控制联络线。置位复位控制字格式P261、图83:2021/9/21122021/9/2113.一般视无关位D6D5D4000,则通道C的每一位的置位复位控制字如下:PCi位 置位控制字 复位控制字 PC0 01 H 00H PC1 03H 02H PC2 05H 04H PC3 07H 06H PC4 09H 08H PC5 0BH 0AH PC6
8、0DH 0CH PC7 0FH 0EH2021/9/2114如PC3置位:MOV DX,PORT3 ;控制端口 MOV AL,7 OUT DX,AL如PC3复位:MOV DX,PORT3 MOV AL,6 OUT DX,ALC端口的按位置位复位字须跟在方式选择控制字之后,所以,仅使用C口的按位置位复位字时,也应先送一方式控制字。8255的两个控制字是以D7位作为区别标志:D71为方式控制字,D70为置位复位字;所以方式字80H,置位复位字80H。2021/9/2115P263例:8255的C口接8只LED,用置位复位字,使8只LED轮流亮灭。设端口地址为380H383H。硬件如下:与系统总线的
9、连接2021/9/2116 MOV DX,383H MOV AL,80H OUT DX,AL MOV AL,1;PC0置位字AGN:OUT DX,AL;PC0灯亮 MOV AH,11 LOOP ;延时 INT 21H AND AL,0FEH;复位字 INC AL OUT DX,AL ;灯灭 POP AX ADD AL,3 ;指向下一位 JNZ AGN AND AL,0FH ;控制置位 复位字范围 PUSP AX 设方式控制字:C口方式0输出2021/9/2117程序中,送置位字,则灯亮;送复位字,则灯灭。由前一位的复位字到后一位的置位字之差为3,加3则指向下一位。思考:若将LED反接,程序如何
10、修改:送复位字,则灯亮;送置位字,则灯灭。由前一位的置位字到后一位的复位字之差为1,加1则指向下一位。MOV DX,383H ;方式字 ADD AL,01H;指向下一位 MOV AL,80H AND AL,0FH;D7位为0 OUT DX,AL PUSH AX MOV AL,0 ;PC0复位字 MOV AH,11AGN:OUT DX,AL;灯亮 INT 21H LOOP INC AL XOR AL,1 ;置位字 POP AX OUT DX,AL ;灯灭 JNZ AGN2021/9/2118作业:P311、1、2、2021/9/2119三、三种方式的功能及应用、三种方式的功能及应用1、方式、方式
11、0 基本功能基本单向IO方式。A,B,C三个端口都可作8位输入输出端口。C端口可作为两个4位端口(C口上,C口下)。输出有锁存,使用时可理解为273;输入有三态缓冲,使用时可理解为244。此方式下,只要用INOUT指令即可读写;一般用于无条件传送方式。此方式下,也可用于查询方式,A,B口为数据口,C口的某些位作控制和状态信息。但值得注意的是无固定联络线。2021/9/21202021/9/2121244-273程序 8255程序 AG:MOV DX,380H MOV DX,383H IN AL,DX MOV AL,90H NOT AL OUT DX,AL OUT DX,AL NE:MOV DX
12、,380H MOV AH,11 IN AL,DX ;A口输入 INT 21H NOT AL CMP AL,0 INC DX JZ AG OUT DX,AL;B口输出 JZ NE 8255初始化A口方式0输入B口方式0输出2021/9/2122注:凡是244可用8255的A,B,C三个口的方式0输入代替;273可用8255的A,B,C三个口的方式0输出代替。8个开关可表示8个不同的数字或8个不同的字符;LED也可以是7段LED显示器。例:用一片8255实现8个7段LED显示器与64个按键的键盘显示器接口设计。参见P212 显示器设计,段码输出用273,位码输出用273;参见P214 键盘设计,行
13、扫描码输出用273,列读入值用244。因为都采用动态扫描方式显示和扫描键盘,所以显示器的位显和键的行扫描端口可以合并。即用2片273和1片244即可实现。可用8255的3个端口代替。如选用A,B口为方式0输出(代替273),C口方式0输入(代替244)即可。2021/9/2123MOV DX,383HMOV AL,89HOUT DX,AL2021/9/2124由于键盘和显示器做成一个接口电路,所以软件应合并考虑键盘查询和动态显示。2021/9/2125作业:P311.4.5.第四题参见实验教材P149,只画出流程图。2021/9/21262.方式方式1 基本功能是选通IO方式,也是单向IO。端
14、口A,B作为数据口输入或输出,但同时规定C口的某些位作为控制或状态信息,用于联络和中断,提供中断逻辑,其C口各位的功能是固定的,不能由程序设定。(1)、方式1输入将三个端口分为A、B两组;端口A和端口C的PC3PC5为一组,端口B和端口C的PC0PC2为一组,端口C剩余的PC6PC7仍可作为一般IO。2021/9/2127P265、图85 A口方式1输入 B口方式1输入 2021/9/2128控制信号:STB选通信号,低电平有效;这是外设发来的输入信号,前沿(下降沿)把输入装置送来的数据送入输入缓冲器;而后沿(上升沿)使INTR有效。IBF输入缓冲器满信号,高电平有效;这是8255输出给外设的
15、回答信号;外设将数据送入缓冲器后,该信号有效;RD信号的上升沿将数据送数据总线后,又使其复位。INTR中断请求信号,高电平有效;这是8255的输出信号,可用作向CPU申请中断的请求信号,以要求CPU服务;当IBF为高和INTE中断允许为高时,STB为高时(即STB的后沿)使INTR为高;由RD信号清除。2021/9/2129INTE中断允许信号:端口A的INTEA可由用户对PC4的按位置位复位控制字来控制,PC41,允许A口中断;端口B的INTEB可由用户对PC2的按位置位复位控制字来控制,PC21,允许B口中断;2021/9/2130操作时序:(1)外设把数据送给8255后,发STB信号,使
16、IBF有效;(2)STB后沿引发INTR;(3)CPU响应中断;(4)CPU发RD信号,使INTR失效;(5)CPU取走数据,使IBF失效,可输入新的数据。2021/9/2131P266例:用选通方式(中断方式)从A口输入100个8位二进制数IBF。2021/9/21328255的使用步骤:硬件连接将8255和CPU的有关信号连接,又要和 外设连接,此处的外设输入 装置 为8个开关,用发光二极管标志输入缓冲器满的状态,以作为外设回答信号,用去抖动开关作为外设的选通信号。软件中对8255进行初始化,以设定其工作方式。在程序控制下实现数据的输入/输出操作。2021/9/2133BUF DB 100
17、 DUP(?)MOV ES,AX ;设置0段 .MOV DX,38FH ;置控制口地址 MOV AL,0B0H ;A口方式1输入 OUT DX,AL MOV AL,9 PC4置1,允许A口中断 OUT DX,AL MOV AX,SEG IS8255 MOV ES:01C6H,AX 填写向量表 MOV AX,0FFSET IS8255 MOV ES:01C4H,AX2021/9/2134MOV CX,100 ;计100次 MOV BX,0 ;计缓冲偏移地址 MOV DX,38CH ;A口地址 IN AL,0A1H AND AL,0FDH ;修改8259从片屏蔽字OCW1 OUT 0A1H,AL
18、;允许IRQ9中断ROTT:JMP$;等待中断,等STB信号 LOOP ROTT ;中断100次 IN AL,0A1H OR AL,02H ;还原屏蔽字禁止IRQ9中断 OUT 0A1H,AL RET2021/9/2135IS8255:IN AL,DX ;读A囗数据BUF MOV BUFBX,AL ;产生RD,撤消INTR INC BX ;修改缓冲区地址 MOV AL,61H OUT 0A0H,AL 主从8259均结束中断 MOV AL,62H OUT 20H,AL POP AX INC AX INC AX 修改返回地址,跳过JMP$PUSH AX IRET 2021/9/2136作业:P31
19、1.3.2021/9/2137(2)方式1输出将三端口分为A组,B组;端口A和C口的PC3,PC6PC7为一组,端口B和C口的PC0PC2为一组,C口剩余PC4PC5 可作一般I/O.2021/9/2138控制信号:1)OBF(Output Buffer Full)-输出缓冲器满信号,高电平有效,这是8255给外设的一个联络信号.当CPU把数据 写入端口后,该信号有效.表示外设可以把数据取走。WR信号置成有效,由ACK 的有效(下降沿)使其恢复为高.2)ACK(Acknowledge)-外设响应回答信号,低电平有效;该信号的前沿取走数据,使OBF无效,表示数据已由外设取走;后沿使INTR有效.
20、3)INTR-中断请求信号,高电平有效;当输出装置已经接受了CPU输给的数据后,用来向CPU提出新的中断请求,要求再输出数据.当ACK为高(即后沿),INTE为高,OBF为高,使其置高,WR的前沿(下降沿)使其复位.4)INTEA-由PC6的置位/复位控制;INTEB-由PC2的置位/复位控制.2021/9/2139 CPU 响应中断发出WR,使OBF有效.外设取走数据,ACK使OBF无效.ACK的上升沿使INTR有效,再次中断.CPU响应中断,再次WR,使INTR失效,输出一个新数.2021/9/2140P268例.设计接口电路,输入A口8个开关的状态,送B口发光二极管显示对应状态.要求A口
21、为基本输入,B口为选通输出。8个开关接A口,作为输入装置;8个发光二极管接B口,作为输出装置;OBF接一发光二极管,以标示输出缓冲器满,ACK接一去抖动开关,板动开关表示外设发出响应信号.2021/9/2141DA1 DB Wait Interrupt,0AH,0DH,$MOV ES,AX ;置0段 .MOV DX,383H ;控制口地址MOV AL,94H ;方式字1001 X10XOUT DX,AL ;A口方式0输入,B口方式1输出MOV AL,5 ;PC2置位,允许B口中断OUT DX,AL 将中断服务程序入口地址IO8255MOV AX,SEG IO8255 向量表MOV ES:01C
22、6H,AX IRQ9中断中断矢量是71HMOV AX,OFFSET IO8255MOV ES:01C4H,AX2021/9/2142MOV DX,381HOUT DX,AL IN AL,0A1H AND AL,0FDH 修改8259从片的屏蔽字,允许IRQ9中断 OUT 0A1H,AL ROTT:LEA DX,DA1 MOV AH,9 显示等待中断提示“Wait Interrupt”INT 21H MOV DX,380H 读A口,准备好数据 IN AL,DX JMP$;等待中断,即等待ACK,板动开关即可 假输出,使OBF02021/9/2143MOV AH,0BH INT 21H CMP A
23、L,0 JE ROTTIN AL,0A1HOR AL,02H OUT 0A1H,ALRET无键入,侧再次等待中断,改变开关状态,观察输出有键入,侧还原8259屏蔽字,禁止IRQ9中断2021/9/2144IO8255:MOV DX,381H OUT DX,AL 将A口开关状态B口显示 MOV AL,61H OUT 0A0H,AL 主、从8259结束中断 MOV AL,62H OUT 20H,AL POP AX INC AX 修改返回地址,跳过JMP$INC AX PUSH AX IRET2021/9/21452021/9/21463.方式方式2基本功能该方式使外设在单一8位总线上既能发送又能接
24、收数据(双向I/O);工作时可用程序查询方式;也可用中断方式,必须使用联络线。(1)方式2只能用于端口A;因为A口内部有两个锁存器,而B口,C口仅有一个锁存器。(2)占用一个8位的双向A端口作数据口和一个五位的控制口(C口的PC3PC7).(3)输入和输出都是锁存器的。(4)端口C的其他三位PC0PC2可作I/O或作B口的状态控制信号。(5)B口可工作方式0或方式1。2021/9/2147控制信号的作用与意义同方式1,INTE1是输出的中断允许信号由PC6的置位/复位控制(A口方式1输出).INTE2是输入的中断允许信号,由PC4的的置位/复位控制(A口方式1输入)。方式2实际是方式1的输入与
25、方式1的输出的组合,输入/输出请求都是PC3的INTR,四根联络信号都要连接,常用于需相互通信的地方。2021/9/21482021/9/2149四.8255在IBMPC机中的应用8255在PC 机中工作在方式0,控制字99H,即A口,C口为方式0输入,B口为方式0输出。A口两个作用读取键盘扫描码和系统配置状态DIP SW1;B口用于输出控制信号;C口用于输入系统配置状态DIP SW2和其他数据。PC配置可变:如驱动器的个数,显示器的种类,RAM大小等由DIP配置决定。2021/9/2150PC系统板上8255的硬件连接2021/9/2151系统自检正常运转后的初始化:MOV AL,99H;A
26、口、C口方式0输入,B口方式0输出OUT 63H,AL如PB7决定了A口的用途:P272、图810 PB71A口读SW1状态 PB70 A口读键盘扫描码MOV AL,80H;使PB71OUT 61H,ALIN AL,60H;读DIP SW1状态,然后进行计算分析,便可知当前系统的配置状态。2021/9/21558.2 可编程计数器可编程计数器/定时器定时器8253 INTEL系列的计数器/定时器电路为可编程时间间隔定时器Programmable interval timer,简称PIT,或CTC,有8253和改进型8254(主要区别:计数频率高)。2021/9/2156一一.基本功能基本功能定
27、时定时/计数计数 1.有3个独立的16位计数器。2.每个计数器均可按二进制或十进制计数。3.每个通道有6种工作方式,可由程序设置和改变。4.所有输入和输出都与TTL兼容,方便接口。5.计数速率可达2MHZ;8254为6MHZ,82542可达10MHZ。即计数器的输入CLK。2021/9/2157二二.结构与接口信号结构与接口信号P274.图图812。2021/9/2158主要由三个计数器,控制电路和CPU接口电路组成:1.CPU接口数据总线缓冲器,读/写控制逻辑。(1)数据总线缓冲器D7D0,三态、双向、8位总线与CPU的DB连接,CPU用输入/输出指令对8253进行读/写操作信息都是经过DB
28、传送。(2)读写逻辑接受系统传送的5个控制信号,以产生该器件的操作信号。CS片选信号,只有该引脚为低电平时,8253才被CPU选中,否则数据总线处于三态,与系统脱开,不能进行编程,也不能读/写。2021/9/2159 A1A0地址信号,以选择三个计数器和控制字寄存器:00计数器0;01计数器1;10计数器2;11控制寄存器。WR写信号,CPU对8253进行写操作,输出数据和写命令。RD读信号,CPU对8253进行读操作,读入数据到CPU。2021/9/21602.与外设接口三个计数器(又称三个通道)16位的可预置初值减1计数器。CLK时钟脉冲输入。计数器对输入脉冲CLK按二进制或十进制,从预置
29、值开始减1计数,当预置值减到0时,从OUT输出端输出一信号。若CLK是频率精确的时钟脉冲,则通道可作为定时器;若CLK是周期不定的脉冲或只关心脉冲的数量而不关心时间的间隔,则作计数器。OUT计数或定时到输出。无论8253工作于何种方式,当计数器到0时,在OUT引脚上必定有输出信号。2021/9/2161GATE门控输入,该引脚的信号控制计数器输入脉冲。当GATE为高电平时,允许计数器工作;当GATE为低电平,禁止计数器工作。所以GATE信号不仅能启动定时或计数,也可以中止定时或计数。3.控制电路控制字寄存器,寄存CPU送来的控制字,以决定各种计数器的工作方式,有3个控制字寄存器,都是8位,分别
30、对应三个计数器,控制字寄存器只能写入,其值不能读出。2021/9/2162三三.8253的工作方式的工作方式8253的计数器有的计数器有6种工作方式种工作方式:1.方式0计数器结束中断(计完最后一个数时中断)软件触发单拍脉冲。当写入控制字后,计数器的输出端OUT立即变为低电平,且一直保持低电平,直到计数器归0,OUT变为高电平。2021/9/21632.方式1可编程序的单拍脉冲(又称硬件触发单拍脉冲)可编程单稳态。当CPU写入控制字后,输出端变为高电平,等到由外部门控信号GATE启动定时或计数,然后使输出端变为低电平,开始单拍脉冲,直到计数器归0,OUT又变为高电平。2021/9/21643.
31、方式2速率发生器(频率产生器)即脉冲速率发生器。该方式的功能如同N分频器,即输出是输入时钟按照N计数值分频后的一个连续的脉冲。即每N脉冲输出一个脉冲。2021/9/21654.方式3方波发生器(方波速率发生器)写入控制字之后,OUT输出为高电平,整个计数时间间隔中,输出端将有一半时间保持高电平,一半时间保持低电平,即输出周期为N个脉冲的方波。2021/9/2166 5.方式4软件触发选通。方式4被设置后,输出端一直保持为高电平,当计数器归0,输出变为低。注:方式4当置数完成后,计数器立即开始计数 软件能触发选通。2021/9/21676.方式5硬件触发选通 方式5输出初始状态为高电平。在设置计
32、数值后并不是立即计数,而是等到门控脉冲的上升沿出现才开始,即靠硬件能触发选通计数器。当计数到0时,输出变为低一个CLK周期。下次计数要靠门控脉冲再次触发才能进行。注:硬件触发选通利用GATE=1允许计数,GATE=0禁止计数。GATE信号不影响输出OUT。2021/9/21687.8253工作方式小结于下表工作方式小结于下表:方式功 能启 动 条 件重复条件改变计数值GATE0计数完中断软件触发单拍脉冲写入控制字及计数值,且来一个CLK。重写计数值立即有效有影响1硬件触发单拍脉冲外部触发外部触发外部触发有效有影响2频率发生器写入计数值启动,且来一个CLK。自动重写计数到1后有效有影响3方波发生
33、器写入计数值启动。自动重写1。外触发后有效有影响2。计数到0后有效4软件触发选通写入计数值启动且来一个CLK重写计数值立即有效有影响5硬件触发选通外部触发外部触发外部触发后有效有影响*方式3改变计数值,即有两种方法实现:归0后自动重新装入,GATE触发。2021/9/21698.6种工作方式,在应用选用时,主要看OUT信号:2021/9/21709.当定时时间较长,可采用多通道级联,总时间T=t0*t1*t2。2021/9/2171四四.8253的控制字和初始化编程的控制字和初始化编程1.控制字(1)控制字有四个功能:选择计数器;确定计数器数据的读写格式;确定计数器的工作方式;确定计数器计数的
34、数制。2021/9/2172(2)控制字格式()控制字格式(P277、图、图815)D7 D6 D5 D4 D3D2D1 D0计数器的选择 数据读/写格式工作方式数制00选计数器000寄存器锁存命令000方式00二进制1十进制(BCD)01选计数器101只读写低8位(高8位为0)001方式110选计数器210只读写高8位(低8位为0)10方式211方式311非法选择11先读写低8位,后读写高8位100方式4101方式52021/9/2173P275、图813、计数器内部结构 跟随减1计数器变化,当写入一个控制字的D5D400时,则将当前值锁存,减1计数器继续工作,当CPU读取后,自动解除锁存,
35、又跟随减1计数器。所以,CPU随时可读取计数器状态,而不影响计数。保存写入的初值,由第一个CLK脉冲将其装入减1计数器在CLK作用下作减1计数,直到0,输出OUT2021/9/21742.初始化编程初始化编程要使用8253,必须先进行初始化编程,编程内容为:先写入通道的控制字,然后写入通道计数值即计数初值。注意:控制字和计数值是通过两个不同的端口地址写入的。控制字都是写入控制寄存器的端口地址,而计数值写入各计数器的端口地址。如:计数器1,方式1,二进制计数,计数值为5080,端口地址388H38BH,初始化程序段:MOV DX,38BH MOV AX,5080MOV AL,72H OUT DX
36、,ALOUT DX,AL MOV AL,AHMOV DX,389H OUT DX,AL控制字设计数初值2021/9/2175如:CPU读取当前计数初值,必须先锁存,锁存有两种方法:利用GATE信号暂停计数。向8253写锁存命令,如读取计数器1的16位计数值,存入CX中的程序段:MOV DX,38BHMOV AL,40H ;01 00 000 0计数器1的锁存命令OUT DX,ALMOV DX,389HIN AL,DXMOV CL,ALIN AL,DXMOV CH,AL2021/9/2176五五.8253的应用的应用例例1:设计方波发生器设计方波发生器(方式(方式3)硬件连接,既要和硬件连接,既
37、要和CPU接口,又要和接口,又要和外设接口,在此用信外设接口,在此用信号源,无抖动开关,号源,无抖动开关,示波器模拟外设。使示波器模拟外设。使用通道口用通道口0。2021/9/2177MOV DX,383HMOV AL,36HOUT DX,AL设控制字:设控制字:0 0 1 1 011 0Ch0 先低 方式3 二进 后高 计数MOV DX,380HMOV AL,0OUT DX,ALOUT DX,AL设计数初值为设计数初值为0000H,即最大计,即最大计数数65536运行程序在运行程序在OUT0有方波输出;改变有方波输出;改变CLK0的信号源的信号源的频率或计数值,可改变输出波形的频率;拨动开关
38、,的频率或计数值,可改变输出波形的频率;拨动开关,可观察可观察GATE01允许计数,允许计数,GATE0=0禁止计数。禁止计数。方式方式3在写计数值后就自动开始计数。在写计数值后就自动开始计数。2021/9/2178若要求输入CLK为2MHZ,输出OUT为4KHZ,使用计数器1,如何修改程序:MOV DX,383HMOV AL,76HOUT DX,ALMOV DX,381HMOV AL,0F4HOUT DX,ALMOV AL,01HOUT DX,AL2021/9/2179若三个通道级联,输入CLK为2MHZ,各通道均取最大计数初值,则各通道定时脉宽:Ch0的OUT0定时脉宽:0.5 s 655
39、3632768sCh1的OUT1定时脉宽:32768s*65536=2147.4sCh2的OUT2定时脉宽:(2147.4s*65536)/60/60=39092.2h2021/9/2180若要求得到ms、s、h三种定时脉宽,各通道的计数值为多少:Ch0的计数值=1000s0.5s =2000Ch1的计数值 =(1s*106)/1000s=1000Ch2的计数值=(1h*60*60)/1s=36002021/9/2181例2:设计外部计数器,共计10个脉冲。方式0硬件设计,与CPU连接都是6种线。GATE1允许计数,计数脉冲从CLK端输入。程序可用查询方式,也可用中断方式。2021/9/218
40、2查询方式查询计数器是否归0即可。DA1 DB “Wait Load“,0AH,0DH,DA2 DB “Please Input“,0AH,0DH,$DA2 DB “Program Terminated Normally”,0AH,0DH,$MOV DX,383HMOV AL,11HOUT DX,AL控制字,选8253计数器0方式0,BCD计数,只写底8位,高八位自动填0。MOV DX,380HMOV AL,10HOUT DX,AL设计数初值10BCD2021/9/2183 MOV DX,OFFSET DA1 MOV AH,9 INT 21H显示显示“WHAT LOAD”,即等,即等下一个下一
41、个“CLK”方式方式0,1,2,4,5都要都要求等待一个求等待一个CLK将计数值装将计数值装入减入减1计数器。因为计数器。因为CPU写写计数值计数值WR信号,是将计数信号,是将计数值写入计数初值寄存器,在值写入计数初值寄存器,在WR信号的下一个信号的下一个CLK才能才能将计数值由计数初值寄存器将计数值由计数初值寄存器装入减装入减1计数器,才能开始计数器,才能开始计数;所以,此处等待一个计数;所以,此处等待一个CLK脉冲装入计数器初值。脉冲装入计数器初值。MOV DX,380H LOAD:IN AL,DX CMP AL,10H JNE LOAD2021/9/2184MOV DX,OFFSET D
42、A2MOV AH,9INT 21H显示“PLEASE INPUT”,提示板动开关 MOV DX,380H CONT:IN AL,DX CMP AL,0 JNZ CONT 查询10个CLK脉冲完否?即扳动10次开关。与中断的区别。MOV DX,OFFSET DA3MOV AH,9INT 21HRET显示“PROGRAM TERMINATED NORMALLY”2021/9/2185中断方式中断方式将将OUT0接到接到IRQ9,因为方式因为方式0启动后保持启动后保持为底,计数归为底,计数归0输出变为高,所以方式输出变为高,所以方式0的的OUT信号可直信号可直接作为中断请求信号,而其他方式的输出不同
43、。接作为中断请求信号,而其他方式的输出不同。MOV ES,AXMOV DX,383HMOV AL,11HOUT DX,AL 控制字MOV DX,380HMOV AL,10HOUT DX,AL计数值102021/9/2186MOV DX,OFFSET DA1MOV AH,9INT 21H显示提示LOAD:MOV DX,380H IN AL,DX CMP AL,10H JNE LOAD 等待CLK装入计数值至减1计数器。2021/9/2187MOV AX,SEG IS8253MOV ES:01C6H,AXMOV AX,OFFSET IS8253MOV ES:01C4H,AX设置向量表IN AL,0
44、A1HAND AL,0FDHOUT 0A1H,AL修改8259从片的屏蔽字,允许IRQ9中断。2021/9/2188LEA DA,DA2MOV AH,9INT 21HJMP$显示输入提示MOV DX,OFFSET DA3MOV AH,9INT 21HRET显示结束提示等待中断,即等待计数器归0,与查询的区别2021/9/2189IS8253:MOV AL,61H OUT 0A0H,AL MOV AL,62H OUT 20H,AL主从8259结束中断。IN AL,0A1H OR AL,02H OUT 0A1H,AL还原屏蔽字,禁止IRQ9中断。POP AXINC AXINC AXPUSH AXI
45、RET修改返回地址。2021/9/2190例例3:8253在在IBM PC中应用。中应用。8253在在PC中的硬件连接中的硬件连接P279、图、图816。2021/9/2191三个计数器的CLK=1.19MHZ,来自系统总线PCLK=2.38MHZ,两分频后的输出。GATE0,GATE1接5V,计数器0、1总是允许计数;GATE2由8255的PB0控制,计数器2是否计数,由8255的B0决定。计数器0工作在方式3(方波产生器),OUT0输出作为中断请求接到8259的IRQ0,输出频率为18.2Hz,即约每55ms中断一次,作为时基信号。计数值*TCLK=TOUT 计数值=1.19*106/18
46、.2=21665536 其初始化程序段:MOV AL,36H OUT 43H,AL MOV AL,0 OUT 40H,AL OUT 40H,AL计数器0方式3计数初值0000H2021/9/2192计数器1工作在方式2,OUT1经D触发器作为8237DMA的服务请求信号DRQ0,输出的时间间隔为15us的脉冲,即输出速率为66.3KHz,用于定时启动动态RAM刷新。计数初值1.19*1061510617.8518其初始化程序段:MOV AL,54H OUT 43H,AL MOV AL,18 OUT 41H,AL计数器计数器1方式方式2,仅写低八位,仅写低八位计数值计数值182021/9/219
47、3计数器2工作在方式3,产生近似1KHz方波输出,经电流驱动与泸波后作为音频信号送扬声器,GATE2由8255的PB0控制,OUT输出经8255 PB1控制产生长音3秒,短音0.5秒。计数值 1.19*106/103=1190实际中取1331即533H即为896Hz2021/9/2194其初始化程序:MOV AL,0B6HOUT 43H,AL MOV AX,1331OUT 42H,ALMOV AL,AHOUT 42H,AL设控制字设控制字_计数器计数器2方式方式3,先送底位先送底位,后送高位后送高位设计数值设计数值1331,即产即产生生896Hz的方波的方波作业:P311.11.(设CLK为500KHz)2021/9/2195