汇编实验报告 - 图文  下载本文

续的、周期精确的,也可以是不均匀的、断续的、周期不定的。 无论8253工作于何种方式,当计数器减1到0时,在OUT引脚上必定有电平或脉冲输出,OUT引脚输出的信号可以是方波、电平或脉冲等,由工作方式决定。 8253每个计数器都可以选择6种工作方式之一进行工作。在控制字中进行设定。 二进制方式计数的最小值是0001H,最大值为0000H,即216=65536

二-十进制(BCD码)计数的最小值是0001H,最大值为0000H,即104=10000

五、实验目的:

回顾8259中断控制器芯片的使用方法 掌握8253可编程计数/定时器芯片的原理

结合使用8253、8259芯片,联合设计实现时钟中断计时实验

六、实验内容:(介绍自己所选的实验内容)

1.利用8253的多个通道产生周期为1s的方波信号(方式3),该信号作为8259芯片的中断源,用边沿触发方式产生中断(单级中断),在七段数码管上显示发生中断的次数,构成一个“秒表”(显示范围为0-9)。

七、实验器材(设备、元器件): Dias实验箱及仿真软件

八、实验步骤:(编辑调试的过程)

步骤1:链接电路图

步骤2:主程序、中断程序功能的设计

步骤3:8253、8259芯片控制字,初始化顺序 步骤4:时序控制

九、实验数据及结果分析:(实验运行结果介绍或者截图,对不同的结果进行分析)

图为实现中断秒表计数器。

部分程序源代码: CODE SEGMENT

ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3400H H8: JMP P8259 ZXK EQU 0FFDCH

ZWK EQU 0FFDDH

LED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H BUF DB ?,?,?,?,?,? COUNT DB 0 TIME DB 0

Port0 EQU 0FFE0H Port1 EQU 0FFE1H Port8253_0 EQU 0FFE0H Port8253_1 EQU 0FFE1H Port8253_2 EQU 0FFE2H Port8253_3 EQU 0FFE3H P8259: CLI

CALL WP ;初始化显示“00” ;设置中断服务

MOV AX,OFFSET INT8259 MOV BX,003CH MOV [BX],AX MOV BX,003EH MOV AX,0000H MOV [BX],AX ;初始化

CALL SETTING8253

CALL SETTING8259 mov si,0000h STI

CON8: CALL DIS JMP CON8

;------------------INIT8259------------------ INT8259: CLI

XOR COUNT,1 JZ X59 XX59:

MOV AL,20H MOV DX,Port0 OUT DX,AL POP CX

MOV CX,OFFSET CON8 PUSH CX STI IRET

X59: INC TIME

CMP TIME,0AH;10

JZ RESET

X59DIS:MOV CL,TIME MOV BUF,CL CALL DIS JMP XX59

RESET: MOV TIME,0;TIME=0 JMP X59DIS

;================设置8259============== SETTING8259: MOV AL,13H

MOV DX,Port0 OUT DX,AL MOV AL,08H MOV DX,Port1 OUT DX,AL MOV AL,09H OUT DX,AL

MOV AL,7FH ;IRQ7 OUT DX,AL RET

;-------------数码管初始显示 00xxxx-------------- WP: MOV BUF,00H MOV BUF+1,10H MOV BUF+2,10H MOV BUF+3,10H MOV BUF+4,10H MOV BUF+5,10H RET

;-------------数码管显示------------------- DIS: MOV CL,20H

MOV BX,OFFSET BUF DIS1: MOV AL,[BX] PUSH BX

MOV BX,OFFSET LED XLAT POP BX

MOV DX,ZXK OUT DX,AL MOV AL,CL MOV DX,ZWK OUT DX,AL PUSH CX

MOV CX,0100H DELAY: LOOP $

POP CX

CMP CL,01H JZ EXIT INC BX SHR CL,1 JMP DIS1 EXIT: MOV AL,00H MOV DX,ZWK OUT DX,AL RET

;===========设置8253============ SETTING8253:

MOV DX,Port8253_3

MOV AL, 036H;控制字,10 计数器2,11 先写低8位,在写高8位,011 方式3,1 二进制计数

MOV DX,Port8253_0 MOV AL,00;低8位 OUT DX, AL;

MOV AL,96H;高8位 OUT DX,AL; RET

;-------------------------- CODE ENDS END H8

十、实验结论:(联系理论知识进行说明)

成功实现了要求实验内容中使用8253和8259中断控制器实现了LED秒表计数的方法。

十一、总结及心得体会:

通过本次实验我成功学习并掌握了简单的8253和8259中断控制的编译方法以及它的调试方法。

十二、对本实验过程及方法、手段的改进建议:

可以让我们尝试更多的8253汇编程序设计方法。

报告评分:

指导教师签字: