8253定时器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五 8253计数器/定时器
一.实验目的
1、掌握计数器/定时器8253的基本工作原理和编程应用方法;
2、了解掌握8253的计数器/定时器典型应用方法。
二.实验环境
1.硬件环境
微型计算机(Intel x86系列CPU)一台,清华科教仪器厂TPC-2003A微机接口实验装置一台;
数字记忆示波器一台.
2.软件环境
(1) Windows XP操作系统,编辑、汇编、链接和调试程序;
(2) PC2003A集成开发环境软件一套及实验装置电子版资料
三.基本实验
1.基本实验内容和要求
(1) 8253计数器
参考图5.1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
图5。1 8253方式0计数参考线路图
(2) 8253定时器
按图5.2连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。
图 5.2 8253级联与方式3
2.编程提示
(1) 8253控制寄存器地址 283H ;假定译码器地址选为280H
计数器0地址 280H
计数器1地址 281H
CLK0连接时钟 1MHZ
(2)参考流程图(见图5.3、5.4): 开 始读计数器值显示计数值
有键按下吗?开 始
送计数器初值N
Y 结 束
结 束
设计数器0为工作方式0向计数器0送初值1000
先送低字节后送高字节
向计数器1送初值1000
先送低字节后送高字节
设计数器0为
工作方式3
设计数器1为
工作方式3
图5.3 图 5.4
(3) 参考程序1: (程序名:E8253_1.ASM )
ioport equ 0C400h-0280h
io8253a equ ioport+283h
io8253b equ ioport+280h
code segment
assume cs:code
main Proc far
start: mov al,14h ;设置8253通道0为工作方式2,二进制计数
mov dx,io8253a
dx,al
out
mov dx,io8253b ;送计数初值为0FH
mov
al,0fh
dx,al
out
ZZZ: in al,dx ;读计数初值
call disp ;调显示子程序
push dx
mov ah,06h
dl,0ffh
mov
int
21h
dx
pop
ZZZ
jz
mov ah,4ch ;退出
21h
int
main endp
disp proc near ;显示子程序
dx
push
and al,0fh ;首先取低四位
dl,al
mov
cmp dl,9 ;判断是否<=9
jle num ;若是则为'0'-'9',ASCII码加30H
add dl,7 ;否则为'A'-'F',ASCII码加37H num: add dl,30h
mov ah,02h ;显示
int
21h
mov dl,0dh ;加回车符
21h
int
mov dl,0ah ;加换行符
21h
int
dx
pop
ret ;子程序返回
disp endp
code ends
end start
(4) 参考程序2:(程序名:E8253_2.ASM)
ioport equ
0d400h-0280h
io8253a equ ioport+280h
io8253b equ ioport+281h
io8253c equ ioport+283h
code segment
assume cs:code
main proc far
start:mov dx,io8253c ;向8253写控制字
mov al,36h ;使0通道为工作方式3
dx,al
out
mov ax,1000 ;写入循环计数初值1000
dx,io8253a
mov
out dx,al ;先写入低字节
al,ah
mov
out dx,al ;后写入高字节
dx,io8253c
mov
mov al,76h ;设8253通道1工作方式2
dx,al
out
mov ax,1000 ;写入循环计数初值1000
mov
dx,io8253b
out dx,al ;先写低字节
al,ah
mov
out dx,al ;后写高字节
mov ah,4ch ;程序退出
int
21h
main endp
code ends
start
end
四.选作与探索
1. 图5.2系统中最大定时时间为多长,如果需要获得20秒的精确定时该如何处理? 结合实验四(2)内容,用基本实验(2)定时器产生1秒定时中断,编程精确控制指示灯定时亮闪, 1秒亮,n秒灭,使n=1秒、5秒和10秒, 总结利用1秒基本中断获得精确软件定时的方法;
输出指示也可用于继电器控制(参考程序JDQ.ASM)
2. 用基本实验(2)定时器产生1秒定时中断和8段数码管,编制程序获得精确的10秒倒计数显示器。3. 使用PC微机内8253驱动声音接口
IBM-PC机扬声器发声驱动系统如图5.5所示。由机内的8255I/O接口的PB0控制8253通道2的定时计数;
PB1来控制扬声器的接通和断开,以此来发声。8255PB口地址为61H;8253通道2口地址为42H,控制