当前位置:文档之家› 可编程计时器8253应用

可编程计时器8253应用

可编程计时器8253应用
可编程计时器8253应用

微机实验报告

班级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

NEXT: MOV AH,0BH

INT 21H

CMP AL,0FFH

JE LAST

JMP NEXT

LAST: MOV AH,4CH

INT 21H

CODE ENDS

END START

实验二:

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,02H

MOV DX,T18253

OUT DX,AL

MOV AL,10010100B

MOV DX,CON8253

OUT DX,AL

MOV DX,T28253

OUT DX,AL

NEXT: MOV AH,0BH

INT 21H

CMP AL,0FFH

JE LAST

JMP NEXT

LAST: MOV AH,4CH

INT 21H

CODE ENDS

END START

实验三:

Base1 EQU 0EC00H - 280H

T08253 EQU Base1 + 280H

T18253 EQU Base1 + 281H

T28253 EQU Base1 + 282H

CON8253 EQU Base1 + 283H

Base2 EQU 0EC00H - 290H

Pa8255 EQU Base2 + 290H

Pc8255 EQU Base2 + 292H

Con8255 EQU Base2 + 293H

DATA SEGMENT

MESS DB 'Press any key,return to DOS!',0AH,0DH,'$' DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

MAIN PROC FAR

START: MOV AX,DATA

MOV DS,AX

LEA DX,MESS

MOV AH,09H

INT 21H

NEXT: MOV AH,0BH

INT 21H

CMP AL,0FFH

JE LAST

MOV AL,27H

MOV DX,CON8253

OUT DX,AL

MOV DX,T08253

OUT DX,AL

MOV AL,67H

MOV DX,CON8253

OUT DX,AL

MOV DX,T18253

MOV AL,10H

OUT DX,AL

MOV DX,Con8255

MOV AL,81H

OUT DX,AL

MOV BL,80H

MOV CL,01H

MOV DX,Pa8255

MOV AL,BL

OUT DX,AL

Y1: MOV DX,Pc8255

IN AL,DX

CMP AL,CL

JE X1

JMP Y1

X1: MOV AL,BL

ROR AL,1

MOV BL,AL

NOT CL

AND CL,01H

JMP NEXT LAST: MOV AH,4CH

INT 21H

MAIN ENDP

CODE ENDS

END START

注:实验三没有成功

实验四:

Base EQU 0EC00H - 280H T08253 EQU Base + 280H T18253 EQU Base + 281H T28253 EQU Base + 282H CON8253 EQU Base + 283H

CODE SEGMENT

ASSUME CS:CODE

START: MOV AL,15H

MOV DX,CON8253

OUT DX,AL

MOV DX,T08253

MOV AL,09H

OUT DX,AL

NEXT: IN AL,DX

CALL DISP

PUSH DX

MOV AH,06H

MOV DL,0FFH

INT 21H

POP DX

JZ NEXT

MOV AH,4CH

INT 21H

DISP PROC NEAR

PUSH DX

AND AL,0FFH

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 START

注:实验四,选择的主机屏幕数字显示

指导教师

(签字)

相关主题
文本预览
相关文档 最新文档