北京科技大学微机原理实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理及应用实验报告
学院:
班级:
学号:
姓名:
微机实验报告书(Ⅰ)
学号:姓名:班级:
同组名单:实验日期:
实验题目: 8253可编程定时器\计数器
实验目标:掌握8253的基本工作原理和编程方法
实验步骤:
连接电路图
如图虚线连接电路,将计数器0设置为方式0,计数器初值为N(N<=0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
程序框图:
程序清单:
;*************************;
;* 8253方式0计数器实验 *;
;*************************;
IOPORT EQU 0C800H-0280H
IO8253A EQU IOPORT+283H
IO8253B EQU IOPORT+280H
CODE SEGMENT
ASSUME CS:CODE
START: MOV AL,00010000B ;设置8253工作方式 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 ;跳转到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
运行结果:
每输入一个单脉冲,屏幕上的数值减1,从15减到0后(拨动16次后),检测到OUT0输出由低电平变为高电平。
小结(体会与收获):
通过预习和实验,学会了 8253 芯片和微机接口原理和方法,掌握 8253 定时器/计数器的基本工作原理、工作方式和编程原理,熟悉了汇编代码的编写。实验中,连接电路,利用代码控制实验电路,深对了课本理论的理解。
由于是第一次实验,进程比较缓慢,所以仅进行了8253可编程定时器/计数器的一个实验,下次实验会熟练一些。
微机实验报告书(Ⅱ)
学号:姓名:班级:
同组名单:实验日期:
实验题目: 1.8253可编程定时器\计数器
2.8255可编程并行接口(方式0)
3.七段数码管
实验目标:1.掌握8253的基本工作原理和编程方法
2.掌握8255方式0的工作原理及使用方法
3.掌握数码管显示数字的原理
实验步骤:
实验一:
连接电路图
按上图连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。
实验二:
连接电路图
1)实验电路如图,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。
2)编程从8255C口输入数据,再从A口输出。
实验三:
连接电路图
静态显示:按图连接好电路,将8255的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连, 位码驱动输入端S1接+5V(选中),
S0、dp接地(关闭)。编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。
程序框图:
实验一:
实验二:
实验三:
程序清单:
实验一:
;*******************
;* 8253分频 *
;*******************
IOPORT EQU 0C800H-0280H
IO8253A EQU IOPORT+283H
IO8253B EQU IOPORT+280H
IO8253C EQU IOPORT+281H
CODE SEGMENT
ASSUME CS:CODE
START: MOV DX,IO8253A ;向8253写控制字
MOV AL,36H ;工作方式
OUT DX,AL
MOV AX,1000 ;写入循环计数初值1000
MOV DX,IO8253B
OUT DX,AL ;先写入低字节
MOV AL,AH
OUT DX,AL ;后写入高字节
MOV DX,IO8253A
MOV AL,76H ;设工作方式
OUT DX,AL
MOV AX,1000 ;写入循环计数初值1000
MOV DX,IO8253C
OUT DX,AL ;先写低字节
MOV AL,AH
OUT DX,AL ;后写高字节
MOV AH,4CH ;程序退出
INT 21H
CODE ENDS
END START
实验二:
;*************************;
;* 8255A的基本输入输出 *;
;*************************;
IOPORT EQU 0C800H‐280H
IO8255A EQU IOPORT+288H
IO8255B EQU IOPORT+28BH
IO8255C EQU IOPORT+28AH
CODE SEGMENT
ASSUME CS:CODE
START: MOV DX,IO8255B ;对 8255 进行设定,A 输出,C 输入 MOV AL,10001001B
OUT DX,AL
INPUT: MOV DX,IO8255C ;从 C 输入
IN AL,DX
MOV DX,IO8255A ;从 A 输出
OUT DX,AL
MOV DL,0FFH ;判断是否有按键
MOV AH,06H
INT 21H
JZ INPUT ;若无,则继续 C 输入,A 输出
MOV AH,4CH ;否则,返回 DOS
INT 21H
CODE ENDS