实验一:
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向上拨电机正转,向下拨电机反转。当键盘中有任意键输入的时候则程序终止。 小结(收获与体会):
实验和理论是相互检验,相互补充和相互促进的,在实际动手动脑运用理论知识的时候,能更深入地领会概念,熟练运用,在此基础上方能进行创新和自由发挥。通过本次实验,我了解了步进电机控制的基本原理,掌握了控制步进电机转动的编程方法。更加深入地了解了微机原理这门课程。