📄 md166bv1.lst
字号:
A51 MACRO ASSEMBLER MD166BV1 05/27/2004 16:38:38 PAGE 1
MACRO ASSEMBLER A51 V7.01
OBJECT MODULE PLACED IN MD166BV1.OBJ
ASSEMBLER INVOKED BY: C:\KEIL\C51\BIN\A51.EXE MD166BV1.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;//-------------------------------------------------------------------------
2 ;// Copyright (c) Johnson Electric Industry Mfty. Ltd.
3 ;// Filename : Md166bv1.ASM
4 ;// Language : ASM for AT89C52
5 ;// Revision : 1.0
6 ;// Initial Date : 19/05/2004
7 ;// Last Modify : 20/05/2004
8 ;// System clock : 24.00MHZ
9 ;// Description :
10 ;//
11 ;//-------------------------------------------------------------------------
12 ; NAME md166B
13 ; PUBLIC ?C_START
14 ;$include (D:\works\md166B\md166B.inc)
15 ;$include (D:\dyh\md166B.inc)
+1 16
+1 17 ;NAME INPUT_PORT
+1 18 ;INPUT PORTS
+1 19 ;INPORT0 EQU 01H
+1 20 ;INPORT1 EQU 02H
+1 21 ;INPORT2 EQU 04H
+1 22 ;INPORT3 EQU 08H
+1 23 ;INPORT4 EQU 10H
+1 24 ;INPORT5 EQU 20H
+1 25 ;INPORT6 EQU 40H
+1 26 ;INPORT7 EQU 80H
00B3 +1 27 OE BIT P3.3
00B4 +1 28 OST BIT P3.4
00B5 +1 29 INR BIT P3.5
00B7 +1 30 OOE BIT P3.7
+1 31 ;OUTPUT PORTS
0087 +1 32 OPORT0 BIT P0.7
0086 +1 33 OPORT1 BIT P0.6
0085 +1 34 OPORT2 BIT P0.5
0084 +1 35 OPORT3 BIT P0.4
0083 +1 36 SDI BIT P0.3
0082 +1 37 CLK BIT P0.2
0080 +1 38 XCW BIT P0.0
0093 +1 39 YCW BIT P1.3
0081 +1 40 XCCW BIT P0.1
0092 +1 41 YCCW BIT P1.2
0091 +1 42 XFREE BIT P1.1
0090 +1 43 YFREE BIT P1.0
+1 44 ;INPUT PORTS
0020 +1 45 INPORT0 DATA 20H ;SK19--SK20
0021 +1 46 INPORT1 DATA 21H ;SK21--SK22
0022 +1 47 INPORT2 DATA 22H ;SK23--SK24 ;BCD
0023 +1 48 INPORT3 DATA 23H ;SK25--SK26 ;BCD
0024 +1 49 INPORT4 DATA 24H ;SK15--SK16
0025 +1 50 INPORT5 DATA 25H ;SK11--SK12
0026 +1 51 INPORT6 DATA 26H ;SK17--SK18
0027 +1 52 INPORT7 DATA 27H ;SK13--SK14
+1 53
0000 +1 54 STARTL BIT INPORT0.0 ;SK19.5--3
0001 +1 55 STARTR BIT INPORT0.1 ;SK19.6--4
0002 +1 56 CLAMP_BD BIT INPORT0.2 ;SK19.11--9
0003 +1 57 CLAMP_FD BIT INPORT0.3 ;SK19.12--10
0004 +1 58 BD_END BIT INPORT0.4 ;SK20.5--3
A51 MACRO ASSEMBLER MD166BV1 05/27/2004 16:38:38 PAGE 2
0005 +1 59 FD_END BIT INPORT0.5 ;SK20.6--4
+1 60 ;;;
0008 +1 61 MOTOR_BD BIT INPORT1.0 ;SK21.5--1--3
0009 +1 62 MOTOR_MD BIT INPORT1.1 ;SK21.6--2--4
000A +1 63 MOTOR_FD BIT INPORT1.2 ;SK21.11--7--9
+1 64 ;;;
000D +1 65 EXECUTE BIT INPORT1.5 ;SK22.6--4
000E +1 66 MANUAL BIT INPORT1.6 ;SK22.11--9
000F +1 67 AUTO BIT INPORT1.7 ;SK22.12--9
+1 68 ;OUTPUT PORTS
0028 +1 69 OUTPORT0 DATA 28H ;SK8
0029 +1 70 OUTPORT1 DATA 29H ;SK9
002A +1 71 OUTPORT2 DATA 2AH ;SK7
002B +1 72 OUTPORT3 DATA 2BH ;SK10
+1 73
0044 +1 74 SUCK BIT OUTPORT0.4 ;SK8.9--10
0045 +1 75 CLAMP BIT OUTPORT0.5 ;SK8.11--12
0046 +1 76 SC_03 BIT OUTPORT0.6 ;SK8.13--14
0047 +1 77 OUTLAMP BIT OUTPORT0.7 ;SK8.15--16
+1 78
0048 +1 79 BUZZER BIT OUTPORT1.0 ;SK9.1--2
0049 +1 80 NUM_CT BIT OUTPORT1.1 ;SK9.3--4
+1 81 ;----------------------------------
+1 82 WAIT MACRO X
+1 83 ; LOCAL WAIT1
+1 84 MOV A,tick_clock
+1 85 ADD A,#X
+1 86 CJNE A,tick_clock,$
+1 87 ; MOV wait_ms,#X
+1 88 ;WAIT1: NOP
+1 89 ; NOP
+1 90 ; DJNZ wait_ms,WAIT1
+1 91 ENDM
92
93 ;--------------------------------------------------------------------------
94 C_START SEGMENT CODE
95 TIME0INT SEGMENT CODE
96 TIME1INT SEGMENT CODE
97 VAR0 SEGMENT DATA
98 VAR1 SEGMENT DATA
99 VAR2 SEGMENT DATA
100 VAR3 SEGMENT DATA
101 BVAR SEGMENT BIT
102 STACK SEGMENT IDATA
---- 103 RSEG VAR0
0000 104 switch_dly: DS 01
0001 105 auto_end: DS 01
0002 106 task_p: DS 01
0003 107 manual_p: DS 01
0004 108 manual_code: DS 01
0005 109 wait_ms: DS 01
0006 110 NUM_BUF: DS 01
---- 111 RSEG VAR1
0000 112 T0_TH: DS 01
0001 113 T0_TL: DS 01
0002 114 _T0_TH: DS 01
0003 115 _T0_TL: DS 01
0004 116 STEP_MODEL: DS 01 ;00-STOP;01-ACCELERATE;02-HIGHSPEED;03-DECELERATE
117 ;STEP_SPEED: DS 01 ;ADJUST rotate speed
118 ;STEP_H_SPEED: DS 01
119 ;STEP_INDEX: DS 01
0005 120 STEP_L_COUNTER: DS 01 ;ADJUST LOW ROTATE SPEED
0006 121 WORK_COUNTER0: DS 01 ;WORKING TIMER
0007 122 WORK_COUNTER1: DS 01 ;WORKING TIMER
0008 123 WAIT_COUNTER0: DS 01 ;WAITING TIMER
0009 124 WAIT_COUNTER1: DS 01 ;WAITING TIMER
A51 MACRO ASSEMBLER MD166BV1 05/27/2004 16:38:38 PAGE 3
---- 125 RSEG VAR2
0000 126 MSB_PERIOD: DS 01 ;
0001 127 LSB_PERIOD: DS 01 ;
0002 128 IN_PTR: DS 01
0003 129 OUT_PTR: DS 01
0004 130 INP_BUF: DS 08
000C 131 SEL_BYTE: DS 01
---- 132 RSEG VAR3
0000 133 TICK_CLOCK: DS 01
0001 134 TICK: DS 01
---- 135 DSEG AT 20H
0020 136 IN_PORT: DS 8H
0028 137 OUT_PORT: DS 4H
---- 138 RSEG BVAR
0000 139 STEP_M_FLAG: DBIT 1 ;0-OFF;1-ON
0001 140 STEP_DIRECT: DBIT 1 ;0-PLUS;1-MINUS
0002 141 STEP_A_FLAG: DBIT 1 ;0-ORIGIN STATUS
0003 142 STEP_L_FLAG: DBIT 1 ;1-LOW SPEED STATUS
0004 143 T0_HL_FLAG: DBIT 1 ;HIGH
---- 144 RSEG STACK
0000 145 DS 10H ; 16 Bytes Stack
---- 146 CSEG AT 00H
0000 020000 F 147 LJMP MAIN
---- 148 CSEG AT 0BH
000B 020000 F 149 LJMP T0_INT
---- 150 CSEG AT 1BH
001B 020000 F 151 LJMP T1_INT
152 ;-------------------------------------------------------
---- 153 RSEG C_START
0000 787F 154 MAIN: MOV R0,#07FH
0002 E4 155 CLR A
0003 F6 156 IDATALOOP: MOV @R0,A
0004 D8FD 157 DJNZ R0,IDATALOOP
0006 758100 F 158 MOV SP,#STACK-01H
0009 D247 159 SETB OUTLAMP
000B 120000 F 160 CALL _SYSTEM_INIT
000E 120000 F 161 CALL _STEP_INIT
0011 120000 F 162 CALL _MACH_INIT
0014 C247 163 CLR OUTLAMP
164 WAIT 100
001D D280 173 SETB XCW
001F D293 174 SETB YCW
0021 C281 175 CLR XCCW
0023 C292 176 CLR YCCW
0025 177 MAIN_LOOP:; MOV C,CLAMP_BD ;;;//
178 ; JNC ADAN1
179 ; MOV A,OUTPORT2
180 ; RR A
181 ; MOV OUTPORT2,A
0025 182 ADAN2: ; MOV C,CLAMP_BD
183 ; JC ADAN2
184 ; ADAN1:
185 ; MOV C,CLAMP_FD
186 ; JNC ADAN3
0025 187 ADAN4: ; MOV C,CLAMP_FD
188 ; JC ADAN4
189 ; MOV A,OUTPORT3
190 ; ADD A,ACC
191 ; JNZ ADAN5
192 ; MOV A,#01
193 ; ADAN5:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -