📄 g d f s.lst
字号:
A51 MACRO ASSEMBLER G_D_F_S 04/28/2007 20:38:09 PAGE 1
MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN G D F S.OBJ
ASSEMBLER INVOKED BY: D:\Program Files\keil\C51\BIN\A51.EXE G D F S.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;****************************************
2 ;编码 发射程序
0000 758130 3 MOV SP,#30H
0003 758900 4 ZXY: MOV TMOD,#00H
0006 758A19 5 MOV TL0,#19H ;8ms p2.0 38K载波
0009 758C19 6 MOV TH0,#19H
000C D2A0 7 SETB P2.0
000E D28C 8 SETB TR0 ;启动定时器0
0010 758920 9 NEXT_01:MOV TMOD,#20H
0013 758BF4 10 MOV TL1,#0F4H ;38K载波
0016 758DF4 11 MOV TH1,#0F4H
0019 D28E 12 SETB TR1 ;启动定时器1
001B 108F02 13 HERE_03:JBC TF1,NEXT_03
001E 80FB 14 SJMP HERE_03
0020 758BF4 15 NEXT_03:MOV TL1,#0F4H
0023 758DF4 16 MOV TH1,#0F4H
0026 B2A0 17 CPL P2.0
0028 308DE5 18 HERE_01:JNB TF0,NEXT_01 ;if T0 count time not over, next
002B C28E 19 CLR TR1 ;TR1 -- T1 运行控制 1---则终止定时
20
002D 020032 21 LJMP KAISHI
22 ;if T0 count time over,then off 38k载波
0030 80E9 23 SJMP HERE_03
24
25
26 ;****************************************
27 ;****************************************
28
0009 29 COUNT DATA 09H ; 计数^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^
0032 750A1E 30 KAISHI: MOV 0AH,#30;发送数据最大个数
31 ; MOV SP,#30H
0035 E4 32 ZHXY: CLR A
0036 F509 33 MOV COUNT,A
0038 7850 34 MOV R0, #50H
35
36
003A 755055 37 START: MOV 50H,#01010101B
38 ;**********************************************
39
40
41
42
003D 7A02 43 MOV R2,#2 ;计数反码正码一共 发射2次
003F E6 44 MAIN: MOV A,@R0
45 ; INC R0
0040 FE 46 MOV R6,A ;暂存数据---------在R7中
47
0041 7D08 48 LOOP:MOV R5,#8 ; 一个数据有8为
0043 C3 49 CLR C
0044 13 50 LOOP1: RRC A
0045 500A 51 JNC BM_0 ;判断是0还是1,为编码准备
0047 020058 52 LJMP BM_1
004A EE 53 LOOP2:MOV A,R6 ;发射数据 反码
004B F4 54 CPL A
55
004C DAF3 56 DJNZ R2, LOOP
004E 02005F 57 LJMP SPEAK
A51 MACRO ASSEMBLER G_D_F_S 04/28/2007 20:38:09 PAGE 2
58 ;*******************************
0051 1200A1 59 BM_0:LCALL BM_bitO ;编码0
0054 DDEE 60 DJNZ R5,LOOP1
0056 80F2 61 JMP LOOP2
62
0058 1200E1 63 BM_1:LCALL BM_bit1 ;编码1
005B DDE7 64 DJNZ R5,LOOP1
005D 80EB 65 JMP LOOP2
66 ;********************************
67
68
69 ;**********发射提示OK ***********
005F 00 70 SPEAK: NOP
71
72 ;*********************************
73
74
75
0060 D0F0 76 ZHXY0: POP B
0062 A8F0 77 MOV R0,B
0064 08 78 INC R0
0065 D50AD2 79 DJNZ 0AH,START
80 ;LJMP START
81 ;**************************
82 ;**************************************************************
83 ;如果一直为低电平就认为发射结束
84 ;**************************************************************
0068 7B03 85 MOV R3,#3
006A 758900 86 ZHXY_216: MOV TMOD,#00H
006D 758A19 87 MOV TL0,#19H ;8ms p2.0 38K载波
0070 758C19 88 MOV TH0,#19H
0073 D2A0 89 SETB P2.0
0075 D28C 90 SETB TR0 ;启动定时器
0077 758920 91 NEXT_010:MOV TMOD,#20H
007A 758BF4 92 MOV TL1,#0F4H ;38K载波
007D 758DF4 93 MOV TH1,#0F4H
0080 D28E 94 SETB TR1 ;启动定时器1
0082 108F02 95 HERE_030:JBC TF1,NEXT_030
0085 80FB 96 SJMP HERE_030
0087 758BF4 97 NEXT_030:MOV TL1,#0F4H
008A 758DF4 98 MOV TH1,#0F4H
008D B2A0 99 CPL P2.0
008F 308DE5 100 HERE_010:JNB TF0,NEXT_010 ;if T0 count time not over, next
0092 C28E 101 CLR TR1 ;TR1 -- T1 运行控制 1---则终止定时
102
0094 020099 103 LJMP BBB
104 ;if T0 count time over,then off 38k载波
0097 80E9 105 SJMP HERE_030
106 ;*******************************************************************
0099 DBCF 107 BBB: DJNZ R3,ZHXY_216
009B 02009E 108 LJMP OVER
009E 020003 109 OVER:LJMP ZXY
110 ;**************************************
111 ;**************************************
112
113
114
115
116
117
118
119
120
121
122
123
A51 MACRO ASSEMBLER G_D_F_S 04/28/2007 20:38:09 PAGE 3
124
125
126
127
128
129
130
131
132
133
134 ; 子程序......
135 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
136
00A1 D2A0 137 BM_bitO:SETB P2.0
00A3 758900 138 MOV TMOD,#00H ;bian ma 0
00A6 758A1C 139 MOV TL0,#1CH ;0.56ms p2.0 高电平
00A9 758CEF 140 MOV TH0,#0EFH
00AC D28C 141 SETB TR0 ;启动定时器0
142
00AE 108D02 143 HERE00: JBC TF0,NEXT_00 ; if TF0 is 1,then next,else wait!!!
00B1 80FB 144 SJMP HERE00
145
00B3 758900 146 NEXT_00:MOV TMOD,#00H
00B6 758A17 147 MOV TL0,#17H ;0.565ms p2.0 38K载波
00B9 758CEF 148 MOV TH0,#0EFH
00BC C2A0 149 CLR P2.0
00BE D28C 150 SETB TR0 ;启动定时器0
151
00C0 758920 152 NEXT01:MOV TMOD,#20H
00C3 758BF4 153 MOV TL1,#0F4H ;38K载波
00C6 758DF4 154 MOV TH1,#0F4H
00C9 D28E 155 SETB TR1 ;启动定时器1
00CB 108F02 156 HERE03:JBC TF1,NEXT03
00CE 80FB 157 SJMP HERE03
00D0 758BF4 158 NEXT03:MOV TL1,#0F4H
00D3 758DF4 159 MOV TH1,#0F4H
00D6 B2A0 160 CPL P2.0
00D8 308DE5 161 HERE01:JNB TF0,NEXT01 ;if T0 count time not over, next
00DB C28E 162 CLR TR1 ;TR1 -- T1 运行控制 1---则终止定时
163
00DD 22 164 RET ;if T0 count time over,then off 38k载波
00DE 80EB 165 SJMP HERE03
166
00E0 22 167 RET
168 ;************************************
00E1 758900 169 BM_bit1:MOV TMOD,#00H ;编码 1
00E4 758A1C 170 MOV TL0,#1CH ;0.56ms high lever
00E7 758CEF 171 MOV TH0,#0EFH
00EA D28C 172 SETB TR0
00EC D2A0 173 SETB P2.0
174
175
00EE 108D02 176 HERE10:JBC TF0,NEXT1
00F1 80FB 177 SJMP HERE10
178
00F3 758900 179 NEXT1:MOV TMOD,#00H ;tipe 00 of T0 1.685ms-----6639
00F6 758A0F 180 MOV TL0,#0FH
00F9 758CCF 181 MOV TH0,#0CFH
00FC D28C 182 SETB TR0
00FE C2A0 183 CLR P2.0
184
185
0100 758920 186 NEXT2:MOV TMOD,#20H
0103 758BF4 187 MOV TL1,#0F4H
0106 758DF4 188 MOV TH1,#0F4H
0109 D28E 189 SETB TR1
A51 MACRO ASSEMBLER G_D_F_S 04/28/2007 20:38:09 PAGE 4
010B 108F02 190 HERE3:JBC TF1,NEXT3
010E 80FB 191 SJMP HERE3
0110 758BF4 192 NEXT3:MOV TL1,#0F4H
0113 758DF4 193 MOV TH1,#0F4H
0116 B2A0 194 CPL P2.0
195
0118 308DE5 196 HERE02:JNB TF0,NEXT2
011B C28E 197 CLR TR1
011D 22 198 RET
011E 80EB 199 SJMP HERE3
200
201
202 ;************************************
203 ;延时程序
0120 204 DELAY2400: ;1.085x ((245x9)+5)=2397.85
0120 7FF5 205 MOV R7,#245
0122 206 DELAY2400_A:
0122 00 207 NOP
0123 00 208 NOP
0124 00 209 NOP
0125 00 210 NOP
0126 00 211 NOP
0127 00 212 NOP
0128 00 213 NOP
0129 DFF7 214 DJNZ R7,DELAY2400_A
215
012B 22 216 RET
217 ;*************************************
218 END
A51 MACRO ASSEMBLER G_D_F_S 04/28/2007 20:38:09 PAGE 5
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
B. . . . . . . . . D ADDR 00F0H A
BBB. . . . . . . . C ADDR 0099H A
BM_0 . . . . . . . C ADDR 0051H A
BM_1 . . . . . . . C ADDR 0058H A
BM_BIT1. . . . . . C ADDR 00E1H A
BM_BITO. . . . . . C ADDR 00A1H A
COUNT. . . . . . . D ADDR 0009H A
DELAY2400. . . . . C ADDR 0120H A
DELAY2400_A. . . . C ADDR 0122H A
HERE00 . . . . . . C ADDR 00AEH A
HERE01 . . . . . . C ADDR 00D8H A
HERE02 . . . . . . C ADDR 0118H A
HERE03 . . . . . . C ADDR 00CBH A
HERE10 . . . . . . C ADDR 00EEH A
HERE3. . . . . . . C ADDR 010BH A
HERE_01. . . . . . C ADDR 0028H A
HERE_010 . . . . . C ADDR 008FH A
HERE_03. . . . . . C ADDR 001BH A
HERE_030 . . . . . C ADDR 0082H A
KAISHI . . . . . . C ADDR 0032H A
LOOP . . . . . . . C ADDR 0041H A
LOOP1. . . . . . . C ADDR 0044H A
LOOP2. . . . . . . C ADDR 004AH A
MAIN . . . . . . . C ADDR 003FH A
NEXT01 . . . . . . C ADDR 00C0H A
NEXT03 . . . . . . C ADDR 00D0H A
NEXT1. . . . . . . C ADDR 00F3H A
NEXT2. . . . . . . C ADDR 0100H A
NEXT3. . . . . . . C ADDR 0110H A
NEXT_00. . . . . . C ADDR 00B3H A
NEXT_01. . . . . . C ADDR 0010H A
NEXT_010 . . . . . C ADDR 0077H A
NEXT_03. . . . . . C ADDR 0020H A
NEXT_030 . . . . . C ADDR 0087H A
OVER . . . . . . . C ADDR 009EH A
P2 . . . . . . . . D ADDR 00A0H A
SP . . . . . . . . D ADDR 0081H A
SPEAK. . . . . . . C ADDR 005FH A
START. . . . . . . C ADDR 003AH A
TF0. . . . . . . . B ADDR 0088H.5 A
TF1. . . . . . . . B ADDR 0088H.7 A
TH0. . . . . . . . D ADDR 008CH A
TH1. . . . . . . . D ADDR 008DH A
TL0. . . . . . . . D ADDR 008AH A
TL1. . . . . . . . D ADDR 008BH A
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
TR1. . . . . . . . B ADDR 0088H.6 A
ZHXY . . . . . . . C ADDR 0035H A
ZHXY0. . . . . . . C ADDR 0060H A
ZHXY_216 . . . . . C ADDR 006AH A
ZXY. . . . . . . . C ADDR 0003H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -