实验三 可编程定时器/计数器
时间:2025-04-03
时间:2025-04-03
实验三 可编程定时器/计数器
课程名称 微型计算机技术及应用 实验班级 实验名称 实验三 可编程定时器/计数器 指导教师 学生姓名 学生学号
一、 实验目的
掌握8253的基本工作原理和编程方法。
二、 实验设备
1. PC机一台
2. 专用导线若干
3. TPC-H通用微机接口实验系统一台 4. MASM汇编及调试程序
三、 实验原理和内容
1. 按图1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N 0FH),用手
动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平
变化(当输入N+1个脉冲后OUT0变高电平)。 2. 按图2连接电图,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。
实验三 可编程定时器/计数器
图2
注意: 8253控制寄存器地址 283H
计数器0地址 280H 计数器1地址 281H CLK0连接时钟 1MHZ
实验的流程图如下:
开 始
开 始
设计数器0为工作方式0送计数器初值
设计数器0为工作方式3向计数器0送初值1000先送低字节后送高字节
设计数器1为工作方式3
读计数器值显示计数值
有键按下吗?
Y结 束
向计数器1送初值1000先送低字节后送高字节
结 束
四、 程序代码
1. 参考程序1 code segment
assume cs:code
start: mov al,10h ;设置8253计数器0为工作方式0,二进制计数 mov dx,283h
out dx,al
mov dx,280h ;送计数初值为0FH mov al,0fh lll: in al,dx ;读计数器计数值
实验三 可编程定时器/计数器
call disp ;调显示子程序 mov ah,1 ;判断是否有键按下 out dx,al int 16h
je lll ;若没有则转lll mov ah,4ch ;退出
int 21h disp proc near ;显示子程序 push dx
and al,0fh mov dl,al
cmp dl,9 jle num add dl,7 num: add dl,30h
mov ah,02h int 21h
mov dl,0dh int 21h
mov dl,0ah int 21h
pop dx
ret disp endp code ends end
2. 参考程序2
code segment
assume cs:code
start: mov dx,283h mov al,36h out dx,al
mov ax,1000 mov dx,280h
out dx,al mov al,ah
out dx,al mov dx,283h
mov al,76h out dx,al
mov ax,1000 mov dx,281h
out dx,al ;首先取低四位 ;判断是否<=9
;若是则为'0'-'9',ASCII码加30H ;否则为'A'-'F',ASCII码加37H ;显示 ;回车 ;换行 ;子程序返回 ;向8253写控制字
;使0计数器为工作方式3 ;写入计数初值1000 ;先写入低字节 ;后写入高字节 ;设8253计数器1工作方式3
;写入计数初值1000 ;先写低字节
实验三 可编程定时器/计数器
mov al,ah
out dx,al ;后写高字节 mov ah,4ch ;返回DOS int 21h code ends end start
五、 实验现象
1. 连线后打开试验箱电源,运行程序,一次一次地按手动脉冲,屏幕上显示计数递减,
逻辑笔显示低电平,直至递减至0,同时逻辑笔显示高电平,即计数停止产生一个中断。
2. 逻辑笔的高低电平灯交错闪烁,周期为1秒。
六、 心得体会
在这次的实验中,了解了8253的工作方式,掌握了这个芯片和微机接口的硬件连接方法,基本明白这个实验的编程方法。但是,由于实验室中部分导线有问题,导致实验效果不佳,每次连接线路时,都要测试导线能否导通,在一定程序上,降低了实验效率。另外,由于本人不熟悉使用示波器,只能看着别的同学做完这一部分实验后,自己再重新做这一部分实验。