微机实验8253
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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寄存器中