北京科技大学微机原理实验报告

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

相关文档
最新文档