8253定时器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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,控制

相关文档
最新文档