实验十 可编程的计时定时器 8253芯片.docx
《实验十 可编程的计时定时器 8253芯片.docx》由会员分享,可在线阅读,更多相关《实验十 可编程的计时定时器 8253芯片.docx(11页珍藏版)》请在冰豆网上搜索。
实验十可编程的计时定时器8253芯片
实验十8253可编程计数器/定时器芯片
一、实验目的
1、掌握8253的主要性能及其初始化编程。
2、学会根据实验要求设计8253的接口电路。
二、实验技术准备
8253主要功能有:
(1)一片上有三个独立的16位计数器通道。
(2)每个计数器都可以按照二进制或十进制计数。
(3)每个计数器的计数速率可达2MHz。
(4)每个通道有6种工作方式,可由程序设置和改变。
8253内部结构
8253管脚图
注:
实验箱上使用的是8254芯片,8254芯片是8253芯片的增强型,管脚完全相同。
实验箱上的8254芯片电源和数据线均已连接好,实验时连接好读写控制模块信号
芯片即可工作。
8253的端口选择表
CS
RD
WR
A1
A0
寄存器选择和操作
0
1
0
0
0
写入计数器#0
0
1
0
0
1
写入计数器#1
0
1
0
1
0
写入计数器#2
0
1
0
1
1
写入控制寄存器
0
0
1
0
0
读计数器#0
0
0
1
0
1
读计数器#1
0
0
1
1
0
读计数器#2
0
0
1
1
1
无操作(三态)
1
×
×
×
×
禁止(三态)
0
1
1
×
×
无操作(三态)
8253控制字格式
计数值N与输出波形关系
方式
N与输出波形的关系
0
写入计数值N后,经过N+1个CLK脉冲输出变高
1
单拍脉冲的宽度为N个CLK脉冲
2
每N个CLK脉冲,输出一个宽度为CLK周期的脉冲
3
写入N后,输出:
1)1/2N个CLK高电平,1/2N个CLK低电平(N为偶数)2)(N+1)/个CLK高电平,(N-1)/2个CLK低电平(N为奇数)
4
写入N后过N+1个CLK,输出宽度为1个CLK脉冲
5
门控触发后,过N+1个CLK,输出宽度为1个CLK脉冲
门控输入信号的作用
方式
GATE
低或变为低
上升沿
高
0
禁止计数
允许计数
1
1)启动计数
2)下一个CLK脉冲使输出变低
2
1)立即计数
2)立即使输出变高
1)重新装入计数值
2)启动计数
允许计数
3
1)禁止计数
2)立即使输出变高
启动计数
允许计数
4
禁止计数
允许计数
5
启动计数
8253有六种不同的工作方式:
方式0——计数结束产生中断方式
方式1——可编程单次脉冲方式
方式2——分频工作方式
方式3——方波方式
方式4——软件触发选通方式
方式5——硬件触发选通方式
我们要求通过对方式0、方式1的实验,来了解和掌握8253主要性能及其初始化编程。
1、方式0计数器结束中断方式
当选定8253工作于方式0,并对选定的计数器写入控制字时,该计数器的输出端OUT立即变为低电平。
要使计数器能够进行计数,门控信号GATE必须为高。
若CPU利用输出指令向计数器写入计数值时(N=5),写WRn的上升沿把计数值写入计数寄存器。
在WRn上升沿后的下一个时钟脉冲CLK的下降沿时,才把计数值N写入计数寄存器执行单元CE。
在CLK到来时开始减1计数。
总共要经过N+1个CLK脉冲后计数器减为0,这时OUT引脚由低电平变为高电平。
利用由低电平变为高电平正跳变信号向CPU发出中断请求。
方式0波形图
2、方式1可编程单稳态输出方式
当CPU用控制字设定计数器工作于方式1时,计数器的输出OUT立即变为高电平,在CPU装入计数值N后,必须等到GATE由低电平到高电平的跳变,产生一个上升沿后,才能在下一个时钟脉冲CLK的下降沿将N值装入计数器执行单元,同时输出端OUT由高电平向低电平跳变,以后每来一个时钟脉冲,计数器就开始减1操作,当计数器的值减为0时,OUT产生由低到高的正跳变。
这样,在OUT的引脚得到一个负的单脉冲,单脉冲的宽度可以由程序控制,宽度等于时钟脉冲宽度乘以计数器N的值。
方式1波形图
实验内容:
第一题:
8253方式0:
用消抖电路产生的脉冲作为CLK信号,OUT接LED。
程序运行5秒后将计数器的余值显示在屏幕上。
分析计数常数N与CLK的关系(要求在5秒钟内产生LCK脉冲若干次)。
硬件测试:
1、硬件接线完毕检查无误后,点击工具栏中的“工具软件”,选“接口调试工具”。
2、在数据发送框里,选“IO地址”,在“起始地址”栏里先填写8254控制字地址,
在右边输入框内填写控制字,再点击“发送数据”。
(写8254控制字)
3、在数据发送框里,选“IO地址”,在“起始地址”栏里先填写选中计数器地址,
在右边输入框内填写计数值,再点击“发送数据”。
(填写计数器值)
4、在数据接收框里,选“IO地址”,在“起始地址”栏里填写选中计数器地址,按动消抖脉冲按钮一次,
产生一个计数脉冲,再点击“接收数据”,在右边输出框内为填入计数器的值。
5、再按动消抖脉冲按钮一次,产生一个计数脉冲,再点击“接收数据”,在右边输出框内为计数器
(N-1)的值。
第二题:
8253方式1:
计数器1工作在方式1,CLK1和GATE1信号由消抖电路产生,OUT1接LED,验证CLK1、GATE1和OUT1三者关系。
要求:
CLK1、GATE1分别接LED监视,初态LED均灭。
思考题:
在不改动源程序的条件下,如何控制GATE信号的
再次插入,来加宽输出脉冲的宽度。
实验要求:
1、画出正确的逻辑图;
2、写出正确的源程序并加以必要的注释;