📄 bjkz.lst
字号:
A51 MACRO ASSEMBLER BJKZ 11/20/2007 12:43:23 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN bjkz.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE bjkz.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;步进电机控制程序
2 ;**************************************************************************
3 ;主程序
0000 4 ORG 000H
0000 7840 5 MOV R0,#40H ;暂存键值
0002 908FFF 6 START: MOV DPTR,#8FFFH ;8279初始化清除命令
0005 74D1 7 MOV A,#0D1H
0007 F0 8 MOVX @DPTR,A
0008 E0 9 WAIT: MOVX A,@DPTR ;等8279清除结束
0009 20E7FC 10 JB ACC.7,WAIT
000C 7400 11 MOV A,#00 ;8279送方式命令
000E F0 12 MOVX @DPTR,A
000F 7434 13 MOV A,#34H ;fosc=12Mhz时钟编程命令
0011 F0 14 MOVX @DPTR,A
0012 908FFF 15 LOOP1: MOV DPTR,#8FFFH ;指向命令 状态口
0015 E0 16 LOOP2: MOVX A,@DPTR ;读8279状态字
0016 540F 17 ANL A,#0FH ;读状态字低字位
0018 60FB 18 JZ LOOP2 ;FIFO中无键时等待键输入
001A 7440 19 MOV A,#40H ;读FIFORAM命令
001C F0 20 MOVX @DPTR,A
001D 908FFE 21 MOV DPTR,#8FFEH ;指向数据口地址
0020 E0 22 MOVX A,@DPTR ;读入键值
0021 F6 23 MOV @R0,A ;暂存键值
0022 B40028 24 LOOP3: CJNE A,#00H,LOOP4 ;是正转键吗?否转LOOP4
0025 759010 25 MOV P1,#10H ;是,则正向输出第一拍
0028 1180 26 ACALL DELAY ;延时
002A 759030 27 MOV P1,#30H ;输出第二拍
002D 1180 28 ACALL DELAY ;延时
002F 759020 29 MOV P1,#20H ;输出第三拍
0032 1180 30 ACALL DELAY ;延时
0034 759060 31 MOV P1,#60H ;输出第四拍
0037 1180 32 ACALL DELAY ;延时
0039 759040 33 MOV P1,#40H ;输出第五拍
003C 1180 34 ACALL DELAY ;延时
003E 7590C0 35 MOV P1,#0C0H ;输出第六拍
0041 1180 36 ACALL DELAY ;延时
0043 759080 37 MOV P1,#80H ;输出第七拍
0046 1180 38 ACALL DELAY ;延时
0048 759090 39 MOV P1,#90H ;输出第八拍
004B 1180 40 ACALL DELAY ;延时
004D E6 41 LOOP4: MOV A,@R0 ;取出键值
004E B40128 42 CJNE A,#01H,LOOP5 ;是反转键吗?否转LOOP5
0051 759090 43 MOV P1,#90H ;反向输出第一拍
0054 1180 44 ACALL DELAY ;延时
0056 759080 45 MOV P1,#80H ;输出第二拍
0059 1180 46 ACALL DELAY ;延时
005B 7590C0 47 MOV P1,#0C0H ;输出第三拍
005E 1180 48 ACALL DELAY ;延时
0060 759040 49 MOV P1,#40H ;输出第四拍
0063 1180 50 ACALL DELAY ;延时
0065 759060 51 MOV P1,#60H ;输出第五拍
0068 1180 52 ACALL DELAY ;延时
006A 759020 53 MOV P1,#20H ;输出第六拍
006D 1180 54 ACALL DELAY ;延时
006F 759030 55 MOV P1,#30H ;输出第七拍
0072 1180 56 ACALL DELAY ;延时
0074 759010 57 MOV P1,#10H ;输出第八拍
0077 1180 58 ACALL DELAY ;延时
A51 MACRO ASSEMBLER BJKZ 11/20/2007 12:43:23 PAGE 2
0079 E6 59 LOOP5: MOV A,@R0 ;取出键值
007A B40398 60 CJNE A,#03H,LOOP2 ;是停止键吗?否转LOOP2
007D 759000 61 MOV P1,#00H ;是则停转
0080 7F20 62 DELAY: MOV R7,#20H ;延时
0082 7EF8 63 D1: MOV R6,#248
0084 DEFE 64 DJNZ R6,$
0086 DFFA 65 DJNZ R7,D1
0088 22 66 RET
67 END
A51 MACRO ASSEMBLER BJKZ 11/20/2007 12:43:23 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
D1 . . . . . . . . C ADDR 0082H A
DELAY. . . . . . . C ADDR 0080H A
LOOP1. . . . . . . C ADDR 0012H A
LOOP2. . . . . . . C ADDR 0015H A
LOOP3. . . . . . . C ADDR 0022H A
LOOP4. . . . . . . C ADDR 004DH A
LOOP5. . . . . . . C ADDR 0079H A
P1 . . . . . . . . D ADDR 0090H A
START. . . . . . . C ADDR 0002H A
WAIT . . . . . . . C ADDR 0008H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -