微机原理第08章剖析

上传人:今*** 文档编号:106862574 上传时间:2019-10-16 格式:PPT 页数:36 大小:1.25MB
返回 下载 相关 举报
微机原理第08章剖析_第1页
第1页 / 共36页
微机原理第08章剖析_第2页
第2页 / 共36页
微机原理第08章剖析_第3页
第3页 / 共36页
微机原理第08章剖析_第4页
第4页 / 共36页
微机原理第08章剖析_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《微机原理第08章剖析》由会员分享,可在线阅读,更多相关《微机原理第08章剖析(36页珍藏版)》请在金锄头文库上搜索。

1、第 8 章,第8章:定时计数控制接口,8253的引脚和六种工作方式,8253的编程,8253在IBM PC系列机上的应用,教学重点,第8章:定时器和计数器,定时控制在微机系统中具有极为重要的作用,计数是许多过程控制领域常用的功能 它们都是由数字电路中的计数电路构成 定时器由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔 计数电路如果记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲的个数(进而获知外设的某种状态),常又称为计数器,第8章:定时功能的实现方法,软件延时 利用微处理器执行一个延时程序段实现 不用硬件,但占用CPU时间、定时精度不高,随系统时钟频

2、率改变 不可编程的硬件定时 采用分频器、单稳电路或简易定时电路控制定时时间 定时电路简单、定时时间可以在一定范围改变 可编程的硬件定时 软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路 具有多种工作方式、能够输出多种控制信号,第8章:8.1 8253/8254定时计数器,3个独立的16位计数器通道 每个计数器有6种工作方式 按二进制或十进制(BCD码)计数,8254是8253的改进型,第8章:8.1.1 8253/8254的内部结构和引脚,第8章:1. 计数器,计数初值存于预置寄存器; 在计数过程中, 减法计数器的值不断递减, 而预置寄存器中的预置不变。 输出锁存器用于写入锁存命令

3、时, 锁定当前计数值,第8章:计数器的3个引脚,CLK时钟输入信号 在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1 GATE门控输入信号 控制计数器工作,可分成电平控制和上升沿控制两种类型 OUT计数器输出信号 当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号,第8章:2. 与处理器接口,D0 D7数据线 A0 A1地址线 CS*片选信号 RD*读信号 WR*写信号,第8章:8.1.2 8253/8254的工作方式,8253有6种工作方式,由方式控制字确定 熟悉每种工作方式的特点才能根据实际应用问题,选择正确的工作方式 每种工作方式的过程类似: 设定工

4、作方式 设定计数初值 硬件启动 计数初值进入减1计数器 每输入一个时钟计数器减1的计数过程 计数过程结束,第8章:方式0:计数结束中断, 设 定 工 作 方 式, 设 定 计 数 初 值, 计 数 值 送 入 计 数 器, 计 数 过 程, 计 数 结 束,第8章:方式1:可编程单稳脉冲, 设 定 工 作 方 式, 设 定 计 数 初 值, 硬 件 启 动, 计 数 值 送 入 计 数 器, 计 数 过 程, 计 数 结 束,第8章:方式2:频率发生器(分频器),第8章:方式3:方波发生器,第8章:方式4:软件触发选通信号,第8章:方式5:硬件触发选通信号,第8章:各种工作方式的输出波形,讨论

5、: 计数开始的时刻,第8章:8.1.3 8253/8254的编程,8253加电后的工作方式不确定 8253必须初始化编程,才能正常工作 写入控制字 写入计数初值 读取计数值,第8章:1. 写入方式控制字,00 计数器0 01 计数器1 10 计数器2 11 非法,00 计数器锁存命令 01 只读写低字节 10 只读写高字节 11 先读写低字节 后读写高字节,000 方式0 001 方式1 010 方式2 011 方式3 100 方式4 101 方式5,0 二进制 1 十进制,控制字写入控制字I/O地址(A1A011),示例,第8章:2. 写入计数值,选择二进制时 计数值范围:0000HFFFF

6、H 0000H是最大值,代表65536 选择十进制(BCD码) 计数值范围:00009999 0000代表最大值10000,计数值写入计数器各自的I/O地址,示例,第8章:3. 读取计数值,对8位数据线,读取16位计数值需分两次 计数在不断进行,应该将当前计数值先行锁存,然后读取: 向控制字I/O地址:给8253写入锁存命令 从计数器I/O地址:读取锁存的计数值,读取计数值,要注意读写格式和计数数制,第8章:8.2 8253在IBM PC系列机上的应用,第8章:8.2.1 定时中断和定时刷新,从阅读初始化程序段 看计数器0作为定时中断的作用,将计数器1作为定时刷新 看如何编写初始化程序段,第8

7、章:计数器0:初始化程序,mov al,36h ;36H00 11 011 0B ;计数器0为方式3,采用二进制计数 ;先低后高写入计数值 out 43h,al ;写入方式控制字 mov al,0 ;计数值为0 out 40h,al ;写入低字节计数值 out 40h,al ;写入高字节计数值,第8章:计数器0:定时中断,计数器0:方式3,计数值:65536,输出频率为1.19318MHz6553618.206Hz的方波 门控为常启状态,这个方波信号不断产生 OUT0端接8259A的IRQ0,用作中断请求信号 每秒产生18.206次中断请求,或说每隔55ms(54.925493ms)申请一次中

8、断 DOS系统利用计数器0的这个特点,通过08号中断服务程序实现了日时钟计时功能,第8章:计数器1:定时刷新,需要重复不断提出刷新请求,门控总为高,选择方式2或3,2ms内刷新128次,即15.6s刷新一次,计数初值为18,第8章:计数器1:初始化程序,mov al,54h ;54H01 01 010 0 B ;计数器1为方式2,采用二进制计数 ;只写低8位计数值 out 43h,al ;写入方式控制字 mov al,18 ;计数初值为18 out 41h,al ;写入计数值,第8章: 8.2.2 扬声器控制,计数器2的输出控制扬声器的发声音调 计数器2只能工作在方式3,才能输出一定频率的方波

9、,经滤波后得到近似的正弦波,进而推动扬声器发声 扬声器还受控于并行接口(8255芯片) 必须使PB0和PB1同时为高电平,扬声器才能发出预先设定频率的声音,第8章:发音频率设置子程序,;入口参数AX1.19318106发音频率 speaker proc push ax mov al,0b6h ;b6h10110110b out 43h,al ;写入控制字 pop ax out 42h,al ;写入低8位计数值 mov al,ah out 42h,al ;写入高8位计数值 ret speaker endp,第8章:扬声器开子程序,speakon proc push ax in al,61h ;P

10、B端口的地址为61H or al,03h ;D1D0PB1PB011B,其他位不变 out 61h,al pop ax ret speakon endp,第8章:扬声器关子程序,speakoff proc push ax in al,61h ;PB端口的地址为61H and al,0fch ;D1D0PB1PB000B,其他位不变 out 61h,al pop ax ret speakoff endp,第8章:例题8.1 扬声器声音的控制,;数据段 freq dw 1193180/600 ;代码段 mov ax,freq call speaker ;设置扬声器音调 call speakon ;

11、打开扬声器声音 mov ah,1 ;等待按键 int 21h ;按键后 call speakoff ;关闭扬声器声音,第8章:8.2.3 可编程硬件延时,利用日时钟每隔55ms中断一次不变的特点,可以编写一段不随系统时钟频率变化的固定延时程序 由于日时钟中断的时间单位是55ms,所以无法实现更短时间的延时 这时只有利用实时时钟中断,不过它的最短延时约是1ms(976 s),第8章: 8.3 扩充定时计数器的应用,第8章:例题8.2 外部事件的计数,mov dx,203h ;设置方式控制字 mov al,10h out dx,al mov dx,200h ;设置计数初值 mov al,64h ;

12、计数初值为100 out dx,al,输出:明确向哪个端口输出什么数据 输入:清楚从哪个端口输入什么数据,第8章:第8章教学要求,1. 掌握8253引脚,尤其是CLK、OUT、GATE引脚的功能 2. 掌握8253的六种工作方式、编程和在IBM PC系列机上的应用 习题8(第203页) 8.1 8.3 8.4 8.5 8.6,计数开始的时刻,需要注意: 处理器写入8253的计数初值只是写入了预置寄存器,之后到来的第一个CLK输入脉冲(需先由低电平变高,再由高变低)才将预置寄存器的初值送到减1计数器。 从第二个CLK信号的下降沿,计数器才真正开始减1计数。 出处:教材第193页第17行,实验:

13、计数开始的时刻,实验结果1,感谢山西省太原理工大学常晓明教授提供实验结果,实验结果2,感谢山西省太原理工大学常晓明教授提供实验结果,问题讨论,通过本例,请大家 思考理论(原理)与实践(工程)的关系 体会教学实践环节(上机、实验)的重要性 同时,还请大家注意 大学的常规教学侧重理论(原理)的掌握 大家需要加强实践(实验)、积累实际经验 你还能提供这样的实例吗?,8253/8254的I/O地址,0 1 0 0 0,0 1 0 0 1,0 1 0 1 0,0 1 0 1 1,0 0 1 0 0,0 0 1 0 1,0 0 1 1 0,功 能,对计数器0设置计数初值,A1,A0,对计数器1设置计数初值

14、,对计数器2设置计数初值,设置控制字,从计数器0读出计数值,从计数器1读出计数值,从计数器2读出计数值,8253的控制字编程,;某个8253的计数器0、1、2端口和控制端口地址依次是40H43H ;设置其中计数器0为方式0,采用二进制计数,先低后高写入计数值 mov al,30h ;方式控制字:30H00 11 000 0B out 43h,al ;写入控制端口:43H,8253的计数初值编程,;某个8253的计数器0、1、2端口和控制端口地址依次是40H43H ;设置计数器0采用二进制计数,写入计数初值:1024(400H) mov ax,1024 ;计数初值:1024(400H) ;写入计数器0地址:40H out 40h,al ;写入低字节计数初值 mov al,ah out 40h,al ;写入高字节计数初值,

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

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

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