📄 dj15-3.lst
字号:
A51 MACRO ASSEMBLER DJ15_3 01/08/2007 06:43:11 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN DJ15-3.OBJ
ASSEMBLER INVOKED BY: C:\Keil7.06\C51\BIN\A51.EXE DJ15-3.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;文件名:DJ15-3.ASM
2 ;程序功能:步进电机转速控制
0000 3 MAIN: ; 主程序
0000 110A 4 ACALL Z_M ;调用正转子程序
0002 1118 5 ACALL F_M ;调用反转子程序
0004 7DFA 6 MOV R5,#250 ;将R5赋值250
0006 1126 7 ACALL DELAY ;调延时子程序
0008 80F6 8 JMP MAIN ;跳至MAIN形成循环
9
000A 10 Z_M: ;正转子程序
000A 7814 11 MOV R0, #20 ;重复20次
000C 74CC 12 MOV A, #11001100B ;左移初始值
000E F580 13 LOOP:MOV P0,A ;输出
0010 7D32 14 MOV R5,#50 ;将延时计数器R5赋值50
0012 1126 15 ACALL DELAY ;调用延时子程序延时1秒
0014 23 16 RL A ;左移
0015 D8F7 17 DJNZ R0, LOOP ;判断是否循环20次
0017 22 18 RET ;子程序返回
19
0018 20 F_M: ;反转子程序
0018 79C8 21 MOV R1, #200 ;重复200次
001A 7433 22 MOV A, #00110011B ;右移初始值
001C F580 23 LOOP1: MOV P0, A ; 输出
001E 7D05 24 MOV R5, #5 ;将延时计数器R5赋值5
0020 1126 25 ACALL DELAY ;调用延时子程序延时0.1秒
0022 03 26 RR A ;右移
0023 D9F7 27 DJNZ R1, LOOP1 ;判断是否循环200次
0025 22 28 RET ;子程序返回
29
0026 30 DELAY: ; 延时子程序
0026 7E64 31 DLY1: MOV R6,#100
0028 7F64 32 DLY2: MOV R7,#100
002A DFFE 33 DJNZ R7,$
002C DEFA 34 DJNZ R6, DLY2
002E DDF6 35 DJNZ R5, DLY1
0030 22 36 RET
37 END
A51 MACRO ASSEMBLER DJ15_3 01/08/2007 06:43:11 PAGE 2
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
DELAY. . . . . . . C ADDR 0026H A
DLY1 . . . . . . . C ADDR 0026H A
DLY2 . . . . . . . C ADDR 0028H A
F_M. . . . . . . . C ADDR 0018H A
LOOP . . . . . . . C ADDR 000EH A
LOOP1. . . . . . . C ADDR 001CH A
MAIN . . . . . . . C ADDR 0000H A
P0 . . . . . . . . D ADDR 0080H A
Z_M. . . . . . . . C ADDR 000AH A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -