微机原理与接口技术实验报告
实验名称:8253的基本工作原理和编程方法
姓名:
学号:
专业班级:
指导老师:
实验日期:
一:实验目的
掌握8253的基本工作原理和编程方法。
二:实验内容
按下图虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
三:硬件电路
四:源程序
汇编程序
ioport equ 0d400h-0280h
io8253a equ ioport+283h
io8253b equ ioport+280h
code segment
assume cs:code
start: mov al,14h ;设置8253通道0为工作方式2,二进制计数mov dx,io8253a
out dx,al
mov dx,io8253b ;送计数初值为0FH
mov al,0fh
out dx,al
lll: in al,dx ;读计数初值
call disp ;调显示子程序
push dx
mov ah,06h
mov dl,0ffh
int 21h
pop dx
jz lll
mov ah,4ch ;退出
int 21h
disp proc near ;显示子程序
push dx
and al,0fh ;首先取低四位
mov dl,al
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 ;加回车符
int 21h
mov dl,0ah ;加换行符
int 21h
pop dx
ret ;子程序返回
disp endp
code ends
end start
五:实验难点与重点
8253的工作方式有六种,如何理解和运用这六种工作方式是个难点。
8253具有3个独立的计数器,每个计数器必须单独编程进行初始化后才能使用,使用时有时会忘记初始化。
程序流程图:
六:实验感想
由于8253的读/写操作对系统时钟没有特殊的要求,因此它几乎可以应用于任何一种微处理器系统中,可作为可编程的方波频率发生器、分频器、实时时钟、事件计数器或单脉冲发生器等。
在电路的设计中,因为实验箱上提供的脉冲频率太高,不利于观察定时器的输出波形,因此选用8253的定时器1作为分频器,其输出作为脉冲时钟供定时器0选用。
在实验中,首先是电路的连接比较简单,考虑到8253有3个16位的计数器,当其中一个不能用时,可以用另一个代替,程序设计中允许选择计数器,所以在电路的连接上,可以用的两个计数器都连接好了。
除了方式2和方式3外都用了查询方式。
计数器的6种工作方式验证都做完了,从中更深刻地认识8253定时计数器的结构和计数原理。
对于这6种不同的工作方式,可以满足各种软件和硬件定时计数的要求。