汇编语言 与接口技术(第八章)讲义

上传人:今*** 文档编号:107025777 上传时间:2019-10-17 格式:PPT 页数:122 大小:2.43MB
返回 下载 相关 举报
汇编语言 与接口技术(第八章)讲义_第1页
第1页 / 共122页
汇编语言 与接口技术(第八章)讲义_第2页
第2页 / 共122页
汇编语言 与接口技术(第八章)讲义_第3页
第3页 / 共122页
汇编语言 与接口技术(第八章)讲义_第4页
第4页 / 共122页
汇编语言 与接口技术(第八章)讲义_第5页
第5页 / 共122页
点击查看更多>>
资源描述

《汇编语言 与接口技术(第八章)讲义》由会员分享,可在线阅读,更多相关《汇编语言 与接口技术(第八章)讲义(122页珍藏版)》请在金锄头文库上搜索。

1、汇编语言与接口技术,主讲教师 张玉琢,8.2,8.3,可编程并行接口8255A,可编程计数器/定时器8253,串行通信与异步通信控制器8250的应用,第八章 常用可编程接口芯片,8.1,8. 1 可编程计数器/定时器8253,Intel系列的计数器/定时器电路为可编程序间隔定时器PIT(programmable interval timer),型号为8253,改进型为8254。8253具有3个独立的功能完全相同的16位计数器,每个计数器都有6种工作方式,这6种工作方式都可以由其控制字设定,因而能以6种不同的工作方式满足不同的接口要求。CPU还可以随时更改它们的方式和计数值,并读取它们的计数状态

2、。,8253的内部结构:,8.1.1 8253的组成与接口信号, 数据总线缓冲器是三态、双向、8位的缓冲器,用作系统总线和8253的接口,根据CPU的输入或输出指令实现数据传送。数据总线缓冲器具有下面3个基本功能。 (1) CPU向8253所写的控制字写入控制字寄存器。 (2) CPU向某计数器所写的计数初值送到指定的计数器 (3) CPU可读取某个计数器的现行值时,,8.1 8253的组成与接口信号,读/写逻辑接收系统总线的5个输入信号,根据这5个信号产生8253操作的控制信号。 片选信号CS来控制读/写逻辑的工作. 根据A1A0的输入选择3个计数器和控制字寄存器. 通过RD或WR完成指定的

3、读或写操作。,8.1 8253的组成与接口信号,CS、RD、WR、A1和A0组合起来所产生的选择与操作功能:,8.1 8253的组成与接口信号,控制字寄存器存放数据总线缓冲器传送来的控制字。控制字由CPU经过数据总线缓冲器写入 控制字寄存器有3个,都是8位的寄存器,分别对应于3个计数器。 不同的控制字寄存器决定不同计数器的工作方式和所执行的操作。 控制字寄存器只能写入,其值不能读出。,8.1 8253的组成与接口信号,计数器0、计数器1和计数器2是3个独立的计数器,它们的内部结构相同。,8.1 8253的组成与接口信号,计数初值寄存器保存写入计数器的初始值 减1计数器在CLK脉冲和GATE作用

4、下,每来一个CLK就进行递减计数,直至计数值为0,输出OUT信号。 输出寄存器的值跟随减1计数器变化,仅当写入锁存控制字时,减1计数器的当前计数值被锁存(减1计数器可继续计数),CPU读取后,它自动解除锁存状态。在计数过程中,CPU随时可用指令读取任一计数器的当前计数值,这一操作对计数没有影响。,8.1 8253的组成与接口信号,计数器的输入CLK与输出OUT以及门控信号GATE之间的关系,取决于计数器的工作方式。,8253的计数器有6种工作方式:由方式控制字决定 (1)方式0-计数结束中断 (2)方式1-硬件触发单拍脉冲 (3)方式2-频率发生器 (4)方式3-方波发生器 (5)方式4-软件

5、触发选通 (6)方式5-硬件触发选通,8.2 计数器的工作方式及其与输入输出的关系,6种工作方式的输出信号,8.2 计数器的工作方式及其与输入输出的关系, 只有方式0在写入控制字后,out为低,其他5种方式下,out为高。 方式2、4、5的输出波形是相同的,都是宽度为一个CLK周期的负脉冲。但方式2是连续工作,方式4由软件(设置计数值)触发启动,而方式5由门控脉冲触发启动。 方式5与方式1的工作方式基本相同,但输出波形不同,方式1的输出为宽度是N个CLK脉冲的低电平脉冲(计数过程中输出为低),而方式5的输出为宽度是1个CLK脉冲的负脉冲(计数过程中输出为高)。,8.2 计数器的工作方式及其与输

6、入输出的关系,任一种方式,只有写入计数初值后才能开始计数,方式0、2、3和4都是在写入计数值后,计数过程就开始了,而方式1和5需要外部触发启动,才开始计数。 6种方式中,只有方式2和3是连续计数,其他4种方式都是一次计数,要继续计数需要再次编程输入初始值;方式0、4由写入计数值(软件)启动,方式1、5要由外部信号(硬件)启动。,8.2 计数器的工作方式及其与输入输出的关系, 在方式0和方式4中,GATE是电平起作用。计数过程受GATE信号的控制,GATE为高电平计数,低电平停止计数。 在方式1和方式5中,GATE是上升沿起作用。在计数过程中,只要GATE出现由低到高的跳变,计数的初值就被装入减

7、1 计数器,并从初值起继续计数。 在方式2和方式3中,GATE信号的上升沿和电平均起作用。高电平计数,低电平停止计数。上升沿则重新装入计数初值,继续计数。,8.2 计数器的工作方式及其与输入输出的关系,门控信号GATE的作用,方式0,1,4,5的计数值无自动加载功能,要再次输入初始值才开始新的计数方式0、4是立即有效(即新的计数值写入减1计数器),方式1、5是外部触发后有效,方式2、3具有计数器自动加载功能,输出连续的波形。,8.2 计数器的工作方式及其与输入输出的关系,8253的控制字,8.3 8253的控制字和初始化编程,(1)计数器选择(D7、D6)。 控制字的最高两位决定这个控制字是哪

8、一个计数器的控制字。 三个控制字都由同一地址(控制字寄存器地址)写入,因而由控制字的D7、D6两位来指定该控制字是哪个计数器的控制字。,8.1.3 8253的控制字和初始化编程,(2)数据读/写格式(D5、D4)。 CPU向计数器写入初值和读取它们的当前值时,有几种不同的格式。读/写数据时, 令D5D4=01,只读/写低8位,则高8位自动置0; D5D4=10,只读/写高8位,低8位就自动为0; D5D4=11时,就先读/写低8位,后读/写高8位。 D5D4=00,则把计数器当前计数值锁存,以后再读取。,8.1.3 8253的控制字和初始化编程,(3)工作方式(D3、D2、D1)。 8253的

9、每个计数器的6种不同的工作方式,由这3位决定。 (4)数制选择(D0)。 8253的每个计数器有两种计数制:二进制(D0为0)和十进制(D1为1),。在二进制计数时,写入的初值的范围为0000HFFFFH,其中0000H是最大值,代表65536。在十进制计数时,写入的初值的范围为0000H9999H,其中0000H是最大值,代表10000。,8.1.3 8253的控制字和初始化编程,8253必须首先进行初始化编程。 初始化编程的步骤:先写入控制字,再把计数初值写入计数器的。 控制字和计数初值,通过两个不同的端口地址写入的任一计数器的控制字都是写入控制字寄存器的端口地址,由控制字中的D7、D6来

10、确定是哪一个计数器的控制字; 而计数初值是由各个计数器的端口地址写入的。 问题:一片8253具有多少个端口地址?是哪几个端口地址?用什么来区分?,8.1.3 8253的控制字和初始化编程,例如1:用计数器0,工作在方式1,按十进制计数,计数值为5080。若该片8253的端口地址为388H38BH,则初始化程序段为:,MOV DX,38BH ;控制端口地址送到DX MOV AL,33H ;控制字 OUT DX,AL ;对8253的控制字进行设置 MOV DX,388H ;计数器0的端口地址 MOV AL,80H OUT DX,AL ;低8位写入计数器的端口地址 MOV AL,50H OUT DX

11、,AL ;高8位写入计数器的端口地址, 写8253的控制字及计数器,8253任一计数器的计数值,CPU可用指令读取。CPU读到的是执行读取指令瞬间计数器的现行值。但8253的计数器是16位的,所以要分两次读至CPU,因此,若不设法锁存的话,则在读数过程中,计数值可能已变化了。要锁存有两种办法: (1)利用GATE信号使计数过程暂停。 (2)向8253输送一个控制字,令8253的计数值在输出寄存器时锁存。,读8253计数器的值,例如2:读取计数器1的16位计数值,方式,存入CX中,其程序段为:,MOV DX,38BH MOV AL,40H ;计数器1的锁存命令 OUT DX,AL ;以下从计数器

12、1读16位计数值 MOV DX,389H IN AL,DX ;先读低字节 MOV CL,AL IN AL,DX ;再读高字节 MOV CH,AL,8.3 8253的控制字和初始化编程,例8.4 8253在IBM PC XT中的应用。,8.4 8253的应用,IBM PC XT微型计算机中8253的部分线路,由译码电路可知计数器和控制字寄存器的端口地址为40H5FH,BIOS取为计数器040H,计数器141H,计数器242H,控制字寄存器43H。 3个计数器的输入时钟频率均为1.19MHz。 计数器0产生基本时钟 计数器0输出作为18.2Hz方波发生器。用来输出方波作为中断控制器8259的第0号

13、中断信号线(IRQ0)的输入。提供系统计时器的基本时钟,计数器0的计数值为: 1.19M/18.2=65384=216 即写入16位的0,故其控制字为36H。,8.4 8253的应用,对计数器0初始化的程序段如下: MOV AL,36H OUT 43H,AL ;控制字送端口地址36H. MOV AL,0 ;计数值为 OUT 40H,AL ;写入低字节计数值 OUT 40H,AL ;写入高字节计数值,计数器输出间隔为15S的负脉冲。该脉冲的上升沿触发D触发器。触发器Q端输出正电位信号,该信号通过DMA控制器8237的DRQ0引线提出DMA请求,8237则依据这个请求信号对动态RAM进行刷新。计数

14、器1的计数值为: 1.191061510-6 =18 故其控制字为54H。对计数器1的初始化程序段为:,(2.)计数器控制DRAM刷新,MOV AL,54H ; 计数器1为方式2,二进制计数,写低8位 OUT 43H,AL MOV AL,18 OUT 41H,AL,计数器2输出不同频率的方波,经电流驱动器75477放大,推动扬声器发出不同频率的声响。作为机器的报警信号或者伴音信号。计数器2的计数值为可变值。随蜂鸣器声响频率的高低而变,程序设计中让它的取值范围由1到65535,即16位二进制数,故其控制字为B6H。,、计数器控制扬声器,GATE2接并行接口PB0位,即I/O端口地址61H的D0位

15、;同时输出OUT2经过一与门,这个与门受PB1控制,PB1是I/O端口地址61H的D1位;必须使PB0和PB1同时为高电平,扬声器才能发出设定频率的声音。,计数器2的鸣响子程序: beep proc far MOV AL,0B6H ;计数器2为方式3,先低后高写入16位计数值 OUT 43H,AL MOV AX,533H ;设初值为533h,则产生1000Hz分频值。 OUT 42H,AL ;写入低8位计数值 MOV AL,AH OUT 42H,AL ;写入高8位计数值,IN AL,61H ;读取61H端口的原控制信息 MOV AH,AL ;保存AL原来的值 OR AL,3 ;将PB1和PB0

16、修改为1,,OUT 61H,AL ;打开蜂鸣器,控制扬声器发声 SUB CX,CX ;设置等待500ms的常数值 G7: LOOP G7 DEC BL ;等0.5sBL JNZ G7 MOV AL,AH ;恢复61H端口的原来值,让PB1PB0=0 OUT 61H,AL ;关蜂鸣器,控制扬声器闭音 ret beep endp,8. 可编程并行接口8255A,8255是Intel公司生产的具有可编程能力的并行I/O接口芯片。片内有A、B、C三个位数据端口,口和口为两个数据端口,口可作数据端口,也可作控制端口。,8255的内部组成如图所示,8.2.1 8255的组成与接口信号,端口A(Port A)、端口B(Port B)和端口C(Port C)都是8位的输入或输出端口。 端口C被分成高4位和低4

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号