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

更新时间:2024-01-23 16:52:02 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

微机原理及应用实验报告

学院: 班级: 学号: 姓名:

微机实验报告书(Ⅰ)

学号:姓名:班级: 同组名单:实验日期:

实验题目: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

END START

实验三:

;************************************; ;*键盘输入数据(0-9)控制LED数码管显示*; ;************************************;

DATA SEGMENT

IOPORT EQU 0C800H-280H IO8255A EQU IOPORT+288H IO8255B EQU IOPORT+28BH IO8255C EQU IOPORT+28AH

LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

MESG1 DB 0DH,0AH,'Input a num (0--9),other key is exit:',0DH,0AH,'$' DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX

MOV DX,IO8255B ;使 8255 的A口为输出方式 MOV AX,10000000B OUT DX,AL

SSS: MOV DX,OFFSET MESG1 ;显示提示信息 MOV AH,09H INT 21H

MOV AH,01 ;从键盘接收字符 INT 21H

CMP AL,30H ;是否小于 0 JL EXIT ;若是则退出 CMP AL,39H ;是否大于9 JG EXIT ;若是则退出

SUB AL,30H ;将所得字符的 ASCII 码减 30H MOV BX,OFFSET LED ;BX为数码表的起始地址 XLAT ;求出相应的段码

MOV DX,IO8255A ;从 8255 的A口输出 OUT DX,AL

JMP SSS ;转 SSS EXIT: MOV AH,4CH ;返回 INT 21H CODE ENDS

END START ;

运行结果:

实验一:

8253通道0和通道1均工作在方式3,计数初值均为1000。通道0的时钟输入为1MHz标准脉冲,产生1000Hz的方波;通道1以通道0输出的1000Hz方波脉冲为输入,产生1Hz的方波。用逻辑笔发现,OUT1 输出电平呈规律性高低变化(显示灯闪烁),时间间隔为 1s,说明输出频率为 1Hz,实现计时器功能。 实验二:

当逻辑开关K0~K7中的一个或几个打开时,对应的LED灯就会亮起来,即利用8255A实现了基本的输入输出控制。 实验三:

静态显示:当从键盘输入0~9任一数字时,七段数码管上便 会显示相应的数字,按下其他按键则退出程序。 小结(体会和收获):

通过本次实验,进一步了解了8253可编程定时器/计数器;巩固了可编程并行接口8255的基本知识点,了解了该芯片的应用。通过编程实现,熟悉了8255方式控制字,了解了方式0和基本工作原理。通过这三次实验的学习,对于可编程接口芯片有了更深的认识,掌握了基本的微机接口方法。

在实验过程中要细心,当编译、链接或者运行的时候遇到错误的时候,要仔细检查程序的输入是否正确,很容易输错字母数字。

微机实验报告书(Ⅲ)

学号:姓名:班级: 同组名单:实验日期: 实验题目:步进电机控制实验

实验目标:1.了解步进电机控制的基本原理

2.掌握控制步进电机转动的编程方法

实验步骤:

连接电路图

1) 按图14连接线路,利用8255输出脉冲序列,开关K0~K6控制步进电机转速,K7控制步进电机转向。8255 CS接288H~28FH。PA0~PA3接BA~BD;PC0~PC7接K0~K7。

2) 编程:当K0~K6中某一开关为“1”(向上拨)时步进电机启动。K7向上拨电机正转,向下拨电机反转。 程序框图:

程序清单:

;*******************************; ;* 步进电机 *; ;*******************************; DATA SEGMENT

IOPORT EQU 0E400H-280H

IO8255A EQU IOPORT+288H ;8255A 输出端口 IO8255B EQU IOPORT+ 28BH ;8255B 控制端口 IO8255C EQU IOPORT+ 28AH ;8255C 输入端口 BUF DB 0

MES DB 'K0-K6 ARE SPEED CONTROL',0AH,0DH DB 'K6 IS THE LOWEST SPEED ',0AH,0DH DB 'K0 IS THE HIGHEST SPEED',0AH,0DH

DB 'K7 IS THE DIRECTION CONTROL',0AH,0DH,'$' DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,CS MOV DS,AX

MOV AX,DATA

MOV DS,AX

MOV DX,OFFSET MES MOV AH,09 INT 21H

MOV DX,IO8255B MOV AL, 10001001B

OUT DX,AL ;8255 C输入, A 输出 MOV BUF,33H OUT1: MOV AL,BUF MOV DX,IO8255A OUT DX,AL PUSH DX

MOV AH,06H MOV DL,0FFH INT 21H POP DX JE IN1 MOV AH,4CH INT 21H

IN1: MOV DX,IO8255C

IN AL,DX ;输入开关状态 TEST AL,01H JNZ K0

TEST AL,02H JNZ K1

TEST AL,04H JNZ K2

TEST AL,08H JNZ K3

TEST AL,10H JNZ K4

TEST AL,20H JNZ TEST JNZ STOP: MOV MOV JMP K0: MOV SAM: TEST JZ JMP K1: MOV JMP SAM K2: MOV JMP K3: MOV JMP K4: MOV JMP K5: MOV JMP K6: MOV JMP SAM

ZX0: CALL MOV ROR MOV JMP NX0: CALL MOV ROL MOV JMP DELAY PROC DELAY1: MOV DELAY2: LOOP K5

AL,40H K6

DX,IO8255C AL,0FFH OUT1 BL,40H AL,80H ZX0 NX0 BL,50H

BL,70H

SAM BL,80H SAM

BL,0A0H SAM

BL,0C0H SAM

BL,0FFH DELAY AL,BUF AL,1 BUF,AL OUT1 DELAY AL,BUF AL,1 BUF,AL OUT1 NEAR

CX,0FFFFH DELAY2

DEC BL

JNZ DELAY1 RET DELAY ENDP CODE ENDS

END START

运行结果:

当K0~K6中任意一开关向上拨时步进电机启动,且K1速度最快,K6速度最慢;当K7向上拨电机正转,向下拨电机反转。当键盘中有任意键输入的时候则程序终止。 小结(收获与体会):

实验和理论是相互检验,相互补充和相互促进的,在实际动手动脑运用理论知识的时候,能更深入地领会概念,熟练运用,在此基础上方能进行创新和自由发挥。通过本次实验,我了解了步进电机控制的基本原理,掌握了控制步进电机转动的编程方法。更加深入地了解了微机原理这门课程。

DEC BL

JNZ DELAY1 RET DELAY ENDP CODE ENDS

END START

运行结果:

当K0~K6中任意一开关向上拨时步进电机启动,且K1速度最快,K6速度最慢;当K7向上拨电机正转,向下拨电机反转。当键盘中有任意键输入的时候则程序终止。 小结(收获与体会):

实验和理论是相互检验,相互补充和相互促进的,在实际动手动脑运用理论知识的时候,能更深入地领会概念,熟练运用,在此基础上方能进行创新和自由发挥。通过本次实验,我了解了步进电机控制的基本原理,掌握了控制步进电机转动的编程方法。更加深入地了解了微机原理这门课程。

本文来源:https://www.bwwdw.com/article/386o.html

Top