📄 main.lst
字号:
004D 133 T1INTSVC_endif1:
134 BHI T1INTSVC_t, PwmValue, T1INTSVC_else2
0054 D291 139 SETB PWM
0056 8002 140 SJMP T1INTSVC_endif2
0058 141 T1INTSVC_else2:
0058 C291 142 CLR PWM
005A 143 T1INTSVC_endif2:
005A D0D0 144 POP PSW
005C D0E0 145 POP ACC
005E 32 146 RETI
147
148
149 ;*******************************************************************************
150 ;函数:Delay()
151 ;功能:延时0.01~2.56s
152 ;参数:
153 ; t>0时,延时(t*0.01)s
154 ; t=0时,延时2.56s
155 ;说明:
156 ; 晶振频率为11.0592MHz
157 ;*******************************************************************************
158 ; void Delay(unsigned char t)
159 ; t = R7
005F 160 Delay:
005F 758CDC 161 MOV TH0, #0DCH
0062 758A00 162 MOV TL0, #00H
0065 D28C 163 SETB TR0
0067 308DFD 164 JNB TF0, $
006A C28C 165 CLR TR0
006C C28D 166 CLR TF0
006E DFEF 167 DJNZ R7, Delay
0070 22 168 RET
169
170
171 ;*******************************************************************************
172 ;函数:SysInit()
173 ;功能:系统初始化
174 ;*******************************************************************************
0071 175 SysInit:
0071 5389F0 176 ANL TMOD, #0xF0
0074 438901 177 ORL TMOD, #0x01 ;将T0设置成16位定时器
0077 53890F 178 ANL TMOD, #0x0F
007A 438910 179 ORL TMOD, #0X10 ;将T1设置成16为定时器
007D 753004 180 MOV PwmValue, #(PWM_MAX/2) ;设置PWM初值
0080 D291 181 SETB PWM
0082 758DFF 182 MOV TH1, #0xFF
0085 758B00 183 MOV TL1, #0x00
0088 D28E 184 SETB TR1
008A D2AB 185 SETB ET1
008C D2AF 186 SETB EA
008E 22 187 RET
188
189
190 ;*******************************************************************************
191 ;函数:void main()
192 ;功能:主函数
193 ;*******************************************************************************
008F 194 main:
008F 120071 195 LCALL SysInit ;系统初始化
0092 196 main_Loop1:
0092 7F05 197 MOV R7, #5
0094 12005F 198 LCALL Delay ;延时50ms(按键消抖动)
A51 MACRO ASSEMBLER MAIN 10/19/2006 17:37:34 PAGE 4
0097 120027 199 LCALL KeyScan ;扫描键盘
009A 7002 200 JNZ main_case1 ;如果有键按下,退出循环
009C 80F4 201 SJMP main_Loop1 ;按键扫描的循环
009E 202 main_case1:
009E B42B0B 203 CJNE A, #'+', main_case2
204 BHS PwmValue, #(PWM_MAX-1), main_Loop2
00A8 0530 209 INC PwmValue
00AA 8009 210 SJMP main_Loop2
00AC 211 main_case2:
00AC B42D06 212 CJNE A, #'-', main_Loop2
00AF E530 213 MOV A, PwmValue
00B1 6002 214 JZ main_Loop2
00B3 1530 215 DEC PwmValue
00B5 216 main_Loop2:
00B5 7F05 217 MOV R7, #5
00B7 12005F 218 LCALL Delay ;延时50ms
00BA 120027 219 LCALL KeyScan ;按键扫描
00BD 60D3 220 JZ main_Loop1 ;如果按键抬起,退出循环
00BF 80F4 221 SJMP main_Loop2
222
223
224 ;*******************************************************************************
225 ;程序结束
226 ;*******************************************************************************
227 END
A51 MACRO ASSEMBLER MAIN 10/19/2006 17:37:34 PAGE 5
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
DELAY. . . . . . . C ADDR 005FH A
EA . . . . . . . . B ADDR 00A8H.7 A
ET1. . . . . . . . B ADDR 00A8H.3 A
K3 . . . . . . . . B ADDR 00B0H.4 A
K4 . . . . . . . . B ADDR 00B0H.5 A
KEYSCAN. . . . . . C ADDR 0027H A
KEYSCAN_00 . . . . C ADDR 002DH A
KEYSCAN_10 . . . . C ADDR 0032H A
MAIN . . . . . . . C ADDR 008FH A
MAIN_CASE1 . . . . C ADDR 009EH A
MAIN_CASE2 . . . . C ADDR 00ACH A
MAIN_LOOP1 . . . . C ADDR 0092H A
MAIN_LOOP2 . . . . C ADDR 00B5H A
P1 . . . . . . . . D ADDR 0090H A
P3 . . . . . . . . D ADDR 00B0H A
PREMAIN. . . . . . C ADDR 001EH A
PSW. . . . . . . . D ADDR 00D0H A
PWM. . . . . . . . B ADDR 0090H.1 A
PWMVALUE . . . . . D ADDR 0030H A
PWM_MAX. . . . . . N NUMB 0008H A
SP . . . . . . . . D ADDR 0081H A
SYSINIT. . . . . . C ADDR 0071H A
T1INTSVC . . . . . C ADDR 0033H A
T1INTSVC_ELSE2 . . C ADDR 0058H A
T1INTSVC_ENDIF1. . C ADDR 004DH A
T1INTSVC_ENDIF2. . C ADDR 005AH A
T1INTSVC_T . . . . D ADDR 0031H A
TF0. . . . . . . . B ADDR 0088H.5 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
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -