(1)显示子程序模块
采用动态显示方式,即一位一位地轮流点亮(扫描)6 位显示器。
在 8032RAM 存储器中设置六个显示缓冲区单元 7EH-79H,分别存放 6 位显示 器的显示数据(从高到低)。
(2)键盘输入模块
实验系统有 4×8 的键盘结构(见键扫显示原理图)。
键盘的行线通过电阻接+5V,当键盘上没有键闭合时所有的行线和列线都断
开,行线都为高电平。当键盘上某一键闭合时,则该键所对应的行线和列线 都短路。
CPU 逐行逐列地检查键盘的状态,可判断键盘上有无键闭合。CPU 对键盘上 闭合键的键号确定,可根据行线和列线的状态计算求得,也可以根据行线和 列线的状态查表求得。
(3)步进电机控制模块
实现步进电机的转动方式以及转速控制原理:
四相四拍运行方式,即 AB-BC-CD-DA-AB 或 A-B-C-D-A
或者四相八拍方式,即 A-AB-B-BC-C-CD-D-DA-A-AB 实验时控制 P1 口对应位 为“ 1”。通过控制每一拍的间隔来控制电机的转速
内存使用分配表 控制位 步序 工作 状态 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 D 相 C 相 B 相 A 相 0 0 0 0 0 0 1 1 AB 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 BC CD DA 控制 模型 1 2 3 4 03H 06H OCH 09H 键位地址分配: 07H,04H,08H,05H,09H,06H,
0AH,0BH,01H,00H,02H,0FH,
03H,0EH 0CH,0DH,00H,00H,
00H,00H,00H,00H,16H
六.程序清单
ORG 0000H AJMP MAIN ORG 0050H
MAIN:MOV SP,#40H
MOV 79H,#00H MOV 7AH,#00H MOV 7BH,#00H MOV 7CH,#00H MOV 7DH,#00H MOV 7EH,#00H MOV R1,#7EH MAIN1: ACALL KEY
MOV @R1,A
CJNE R1,#78H,KS CJNE A,#16H,AGAINLJMP RUN AGAIN: LJMP MAIN KS: DEC R1
LJMP MAIN1
RUN:MOV A, 7EH
JZ ZHEN JNZ FAN SJMP $
ZHEN: MOV P1,#03H
ACALL DELAY MOV P1,#06H ACALL DELAY MOV P1,#0CH ACALL DELAY MOV P1,#09H ACALL DELAY ANL 79H,#0FH ANL 7AH,#0FH ANL 7BH,#0FH ANL 7CH,#0FH LCALL DIR LCALL DIR MOV R5,79H CJNE R5,#0,Z1 DEC 79H
;主程序部分
;取显示内存缓冲区的第一位 a ;调用按键程序
;获得的值存放到 7E 中 ;是否到 79,不是,转 KS
;按下的不是 exc(给定值 0FFH),是则跳转到 run;跳转到步进电机控制部分
;取(7EH)当前所存 ;跳转到正转 ;跳转到反转 ;正转部分
;调用延时子程序
MOV R5,7AH CJNE R5,#0,Z2 DEC 7AH MOV R5,7BH CJNE R5,#0,Z3 DEC 7BH MOV R5,7CH CJNE R5,#0,Z4 LJMP MAIN
Z1: DEC 79H
LJMP ZHEN Z2: DEC 7AH
LJMP ZHEN Z3: DEC 7BH
LJMP ZHEN Z4: DEC 7CH
LJMP ZHEN
FAN: MOV P1,#09HACALL DELAY MOV P1,#0CH ACALL DELAY MOV P1,#06H ACALL DELAY MOV P1,#03H ACALL DELAY ANL 79H,#0FH ANL 7AH,#0FH ANL 7BH,#0FH ANL 7CH,#0FH LCALL DIR LCALL DIR MOV R5,79H CJNE R5,#0,F1 DEC 79H MOV R5,7AH CJNE R5,#0,F2 DEC 7AH MOV R5,7BH CJNE R5,#0,F3 DEC 7BH MOV R5,7CH CJNE R5,#0,F4
;反转部分