微机实验8253

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浙江工业大学计算机学院实验报告

实验名称定时/计数器(8253)

一、实验内容与要求

1.1 实验内容

1.计数器方式0实验

将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动开关逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。

2.计数器方式3实验

将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1Hz)。

3. 计数器级联实验

将计数器0设置为方式3(方波),计数器1设置为方式2(分频)。实现计数器0的输出为方波,计数器1的输入是计数器0输出。人机交互界面设计:实现在显示屏幕上提示输入计数器0(方波)的参数和计数器1(分频信号)的参数。

1.2 实验要求

(1)正确完成硬件电路连线;

(2)使用8253定时/计数器芯片,除片选引脚,其他信号都已接好,进行有关结构设计和编程

(3)编写正确汇编程序,完成正确的屏幕以及硬件仪器的显示。

二、实验原理与硬件连线

2.1 实验原理

8253/8254 定时/计数器总体结构如图2.1.1所示,外部引脚定义如图2.1.2所示

图2.1.1 定时/计数器总体结构 图2.1.2 外部引脚定义

2.2 硬件连线

1.实验1硬件连线如图

2.21所示:

图2.2.1 TPC-USB 平台计数器方式0实验连线图

2.实验2

硬件连线如图2.22所示:

U5 8253

+5V

+5V

图2.2.2 TPC-USB平台计数器方式3实验连线

3.实验3硬件连线如图2.23所示:

U5 8253

+5V

+5V

图2.2.3 TPC-USB平台计数器级联实验连线

三、设计思路、步骤和程序流程图

3.1 设计思路

(1)硬件连线:在TPC-USB实验板上,进行三种方式下的8253计数器实验(2)程序设计:通过对实验要求的理解,编写想关的汇编代码

(3)两者结合显示符合实验要求的结果

3.2 实验步骤

3.3 程序流程

(1)计数器方式0实验,流程如图3.3.1:

图3.3.1 TPC-USB平台计数器方式0实验流程图(2)计数器方式3实验,流程如图3.3.2:

图3.3.2 TPC-USB平台计数器方式3实验流程图

(3)计数器级联方式实验,流程如图3.3.3:

图3.3.3 TPC-USB平台计数器级联实验流程图

四、程序清单与执行结果

4.1 程序清单

1.计数器方式0实验

CODE SEGMENT

ASSUME CS:CODE

START:

MOV AL,10H ;计数器0,方式0,写两个字节,二进制计数MOV DX,283H ;把控制寄存器地址放在DX寄存器中

OUT DX,AL ;将AL的值送入DX端口

MOV DX,280H ;把计数器0地址放在DX寄存器中

MOV AL,0FH ;将0FH存入AL寄存器

OUT DX,AL ;将此时AL的值送入DX端口

LP1: IN AL,DX ;从DX端口读入8位,放在AL寄存器中

CALL DISP ;调用DISP

PUSH DX ;将DX内容保存到堆栈段

MOV AH,06H ;将06H存入AH,为了下句调用21中断

MOV DL,0FFH ;将0FFH存入DL

INT 21H ;调用21中断

POP DX ;将DX的内容推出栈段

JZ LP1 ;如果DX的内容是0,就跳转到LP1

MOV AH,4CH ;将4CH存入AH,为了下句调用21中断

INT 21H ;调用21中断

DISP PROC NEAR ;定义一个名为DISP的子程序

PUSH DX ;把DX的内容保存到堆栈段中

AND AL,0FH ;将AL寄存器的内容与0FH进行“与”运算,再把结果存入AL中MOV DL,AL ;将AL的值送入DL寄存器

CMP DL,9 ;比较DL中的值与9的大小

JLE NUM ;如果DL的值小于或等于9时,则跳转到NUM

ADD DL,7 ;将DL的值与7进行相加后,再送入DL中

NUM: ADD DL,30H ;将DL的值与30H进行相加后,再送入DL中

MOV AH,02H ;将02H存入AH

INT 21H ;调用DOS21中断

MOV DL,0DH ;结合“MOV AH,02H”,输出0DH

INT 21H ;调用中断指令

MOV DL,0AH ;结合“MOV AH,02H”,输出0AH

INT 21H ;调用DOS21中断

POP DX ;将DX的内容推出栈段

RET ;子程序在功能完成后返回调用程序继续执行

DISP ENDP ;子程序结束

CODE ENDS ;代码段结束

END START

2.计数器方式3实验

CODE SEGMENT

ASSUME CS:CODE

START:

MOV DX,283H ;把控制寄存器地址放在DX寄存器中

MOV AL,36H ;设置控制字00110110(计数器0,方式3,写两个字节,二进制计数)OUT DX,AL ;将AL的值送入DX端口

MOV AX,1000H ;把1000H这个数赋给AX

MOV DX,280H ;把计数器0地址放在DX寄存器中

OUT DX,AL ;将AL的值送入DX端口

MOV AL,AH ;将AX的高8位存入AL寄存器中

相关文档
最新文档