可编程计时器8253应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机实验报告
班级020083 学号02008333 姓名本次成绩
日期20 10年12 月 2 日星期四时间10:45~12:00 实验地点516
实验四可编程定时器/计数器8253的应用
一、实验目的
掌握8253方式1,2,3的工作原理及使用方法;
掌握8253的硬件计数方法。
二、实验内容
1.以实验仪上的1M Hz时钟信号作为输入,编程8253的T0,T1为分频器(方式3)串联使用,在OUT1引脚输出周期为1秒的方波,OUT1直接接发光二极管L0,以作直观指示;
2. 进一步深化实验1内容,8253的T0,T1、T2联合使用,输出周期1秒,占空比1:4的波形,再观察发光二极管L0的状态。
3. 8253的T0为分频器,OUT0又接到CLK1串联使用,计数器T1输出为中断触发方式,每一秒产生电平变化,将OUT1接到8255的PC0,查询其状态,若1秒定时时间到,则PA口的流水灯移动一位。
4. 8253的T0编程为计数器,以单脉冲电路时钟信号,计数单脉冲按健的按下次数。计数值以下列方法显示(任选其一):
(a)主机屏幕数字显示;
(b)利用数码管显示。
实验内容4的8253连线图
实验提示:
实验内容2:1MHz经过T0的1000分频后成为1KHz的方波信号(方式3);该信号经T1的4000分频(方式2),得到0.25Hz的周期信号,经过反相后,用于触发T2;T3工作在方式1,为单稳态触法器。单稳态(低电平)时间由时钟(也取自OUT0,1KHz)周期和计数值确定。
程序请参考课堂笔记的内容,并作一定的修改。程序初始化完成后,即可开始空循环,并在检测到有按键时退出。运行期间观察L0发光二极管的状态。
实验内容4:该实验内容基本部分连线比较简单。要求将T0初始化为计数方式,且初值为0。建议采用只读
写低8位,BCD码的设置。实验时有00-99种计数已经足够体会该功能了。计数进入主循环,也是检测到按键退出,但要手工按动实验箱上的单脉冲按键,实验才有意义。
在循环中,每次要读取T0的计数值,如果读到的数与上次的不同,就要将新的数字显示出来。读出的BCD 码分高位和低位,分别转化为ASCII码,高位和低位连续存放,并且再尾随一个’$’,就可以用DOS的09h号功能打印到屏幕了。
如果要用数码管显示,就要利用上次实验的成果。请参考上次的实验连线。
实验现象记录(思考题)
1 实验内容1-2中,T0~T2各计数值是多少?如何调整周期和占空比?列出初始化部分的主要代码。
实验一中,T0计数值为1000,工作方式3,T1计数值为1000,工作方式3,T2未使用,CLK信号频率为1MHZ 初始化主要代码:
MOV AL,00100111B
MOV DX,CON8253
OUT DX,AL
MOV AL,10H
MOV DX,T08253
OUT DX,AL
MOV AL,01100111B
MOV DX,CON8253
OUT DX,AL
MOV AL,10H
MOV DX,T18253
OUT DX,AL
实验二中,T0计数值为1000,工作方式3,T1计数值为200,工作方式3,T2计数值为5,工作方式2,CLK 信号频率为1MHZ
初始化主要代码:
MOV AL,00100111B
MOV DX,CON8253
OUT DX,AL
MOV AL,10H
MOV DX,T08253
OUT DX,AL
MOV AL,01100111B
MOV DX,CON8253
OUT DX,AL
MOV AL,02H
MOV DX,T18253
OUT DX,AL
MOV AL,10010100B
MOV DX,CON8253
OUT DX,AL
MOV AL,05H
MOV DX,T28253
通过改变T2的计数值,就可以改变占空比。
调整周期则是通过改变T0,T1,T2三者计数值乘积的大小,实现不同的分频。
2 实验内容4中,为什么我们建议用BCD码设置?如果8253内部用二进制计数,则显示时要注意什么?
因为采用BCD码计数,是十进制计数,这样显示的时候,很方便,只需加上ASCII码,就行了。
采用二进制计数时,则需注意二进制转换为十进制时,会出现要显示字母的情况,需要辨别字母和数字,并分别加不同的ASCII码值,字母为37H,数字为30H,比较麻烦。
附源程序
实验一:
Base EQU 0EC00H - 280H
T08253 EQU Base + 280H
T18253 EQU Base + 281H
T28253 EQU Base + 282H
CON8253 EQU Base + 283H
DATA SEGMENT
MESS DB 'Press any key,return to DOS!',0AH,0DH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET MESS
MOV AH,09H
INT 21H
MOV AL,00100111B
MOV DX,CON8253
OUT DX,AL
MOV AL,10H
MOV DX,T08253
OUT DX,AL
MOV AL,01100111B
MOV DX,CON8253
OUT DX,AL
MOV AL,10H
MOV DX,T18253