⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sz03.lst

📁 51单片机开发入门与典型实例
💻 LST
📖 第 1 页 / 共 3 页
字号:
                     388          
A51 MACRO ASSEMBLER  SZ03                                                                 01/04/2007 21:53:58 PAGE     7

                     389          
                     390     ;************************ 增加倒计时程序部分 *********************
                     391     
                     392     ;---------- 设置倒数时间 ----------
                     393     ;设置倒数时间
01E5                 394      DOWN_ATIME:
01E5 C28C            395        CLR   TR0         ;定时器动作暂停
01E7 753C01          396        MOV  SS_D, #1      ;秒钟变量为1
01EA                 397     S0:
01EA 11D1            398          ACALL  DISP       ;扫描显示
                     399        ;-----------
                     400      ;按K2分钟数增加 
01EC 20A513          401          JB   K2, S12       ;未按下K2继续扫描
01EF 30A5FD          402          JNB  K2, $        ;有按下则等待放开来
                     403      
01F2 053B            404          INC  MM_D           ;分钟数加1
01F4 E53B            405          MOV  A, MM_D
01F6 B43C03          406          CJNE A, #60,S11   ;是否60min到了
01F9 753B00          407          MOV  MM_D,#0        ;分钟变量请除为0
01FC                 408        S11:
01FC 5133            409          ACALL  DOWN_CONV      ;显示倒数的时间
01FE 11D1            410          ACALL  DISP       ;扫描显示
0200 80E8            411          JMP    S0         ;继续对按键扫描
                     412       ;------------
                     413      ;按K3分钟数减少
0202 20A613          414       S12: JB K3, S2        ;未按下K3继续扫描
0205 30A6FD          415          JNB K3, $         ;有按下则等待放开来
                     416     
0208 153B            417         DEC  MM_D            ;分钟数减少1
020A E53B            418         MOV  A,MM_D          
020C B40003          419         CJNE A, #0,S21      ;是否为0?
020F 753B3C          420         MOV  MM_D, #60        ;分钟数赋值为60
0212                 421       S21:
0212 5133            422         ACALL  DOWN_CONV       ;加载倒数时间数据
0214 11D1            423         ACALL  DISP        ;扫描显示
0216 80D2            424         JMP    S0          ;循环执行
                     425       ;------------
0218 20A7CF          426       S2: JB   K4, S0      ;未按下K4继续扫描
021B 30A7FD          427         JNB    K4, $       ;等K4键放开
                     428       ;K4设置完成......
021E 3138            429         ACALL   BZ         ;响4声
0220 3138            430         ACALL   BZ
0222 3138            431         ACALL   BZ
0224 3138            432         ACALL   BZ
                     433         
0226 3145            434         ACALL  LED_BL      ;LED闪动
0228 D28C            435         SETB   TR0         ;启动定时器
                     436         
022A                 437       S3:
022A 5145            438         ACALL DOWN_TIME    ;检查倒计时
022C 5133            439         ACALL DOWN_CONV    ;加载倒数时间数据
022E 11D1            440         ACALL DISP         ;扫描显示
0230 80F8            441         JMP   S3  
                     442         
0232 22              443         RET
                     444        
                     445       ;----------------  加载倒计时时间   -----------------------
                     446      ;显示倒数的分钟数
0233                 447      DOWN_CONV: 
0233 E53B            448         MOV A,  MM_D
0235 75F00A          449         MOV B,#10           ;设置被除数
0238 84              450         DIV AB       ;除法运算,结果A存商数,B存余数
0239 9000C1          451         MOV  DPTR,#TABLE    ;查表转换
023C 93              452         MOVC A,  @A+DPTR
023D F532            453         MOV  BUF+2,  A      ;商数存入BUF+2
023F E5F0            454         MOV  A, B           ;余数暂存入A
A51 MACRO ASSEMBLER  SZ03                                                                 01/04/2007 21:53:58 PAGE     8

0241 93              455         MOVC  A,  @A+DPTR   ;查表转换
0242 F533            456         MOV  BUF+3,  A      ;余数存入BUF+3
0244 22              457         RET
                     458      
                     459      ;---------- 检查倒计时   ------------
                     460     ;检查倒计时
0245                 461      DOWN_TIME:             ;检查是否倒数终止
0245 E536            462         MOV   A,SEC         ;加载现在秒数
0247 853AF0          463         MOV   B,SEC0        ;载入旧秒数
024A B5F001          464         CJNE  A,B,D01       ;是否过了1秒
024D 22              465         RET
                     466      ;----------------------------------- 
024E                 467       D01:
024E 85363A          468         MOV   SEC0,SEC       ;记录旧的秒数 
0251 153C            469         DEC   SS_D           ;秒数减1
0253 E53C            470         MOV   A,SS_D
0255 B4000F          471         CJNE  A,#0, D11      ;秒钟数是否为0
0258 E53B            472         MOV   A,MM_D        
025A B40005          473         CJNE  A,#0,D12       ;分钟数是否为0
                     474         ;秒钟数=0 且 分钟数=0 则倒数终止
025D 31D6            475         ACALL TIME_OUT       ;倒数终了处理程序
025F 011D            476         JMP   LOOP      
0261 22              477         RET  
                     478       ;-----------
0262                 479       D12:
0262 753C3B          480         MOV  SS_D,#59        ;秒钟数=59     
0265 153B            481         DEC  MM_D            ;分钟数减1
                     482      
0267                 483       D11:
0267 5133            484         ACALL DOWN_CONV     ;显示倒计时时间
0269 22              485         RET
                     486      ;------------------------------    
                     487         END 
                             
A51 MACRO ASSEMBLER  SZ03                                                                 01/04/2007 21:53:58 PAGE     9

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

ACC. . . . . . . .  D ADDR   00E0H   A   
ALB. . . . . . . .  B ADDR   0020H.0 A   
B. . . . . . . . .  D ADDR   00F0H   A   
B1 . . . . . . . .  C ADDR   013AH   A   
BK . . . . . . . .  C ADDR   01D5H   A   
BUF. . . . . . . .  N NUMB   0030H   A   
BZ . . . . . . . .  C ADDR   0138H   A   
CONV . . . . . . .  C ADDR   009EH   A   
CONVA. . . . . . .  C ADDR   019CH   A   
D01. . . . . . . .  C ADDR   024EH   A   
D1 . . . . . . . .  C ADDR   0152H   A   
D11. . . . . . . .  C ADDR   0267H   A   
D12. . . . . . . .  C ADDR   0262H   A   
DE1. . . . . . . .  C ADDR   015DH   A   
DEDA . . . . . . .  N NUMB   0037H   A   
DELAY. . . . . . .  C ADDR   0150H   A   
DEX. . . . . . . .  C ADDR   015BH   A   
DISP . . . . . . .  C ADDR   00D1H   A   
DOWN_ATIME . . . .  C ADDR   01E5H   A   
DOWN_CONV. . . . .  C ADDR   0233H   A   
DOWN_TIME. . . . .  C ADDR   0245H   A   
HH . . . . . . . .  N NUMB   0038H   A   
HOUR . . . . . . .  N NUMB   0034H   A   
IE . . . . . . . .  D ADDR   00A8H   A   
INIT . . . . . . .  C ADDR   012BH   A   
INIT_TIMER . . . .  C ADDR   0054H   A   
K1 . . . . . . . .  B ADDR   00A0H.4 A   
K2 . . . . . . . .  B ADDR   00A0H.5 A   
K3 . . . . . . . .  B ADDR   00A0H.6 A   
K4 . . . . . . . .  B ADDR   00A0H.7 A   
L0 . . . . . . . .  C ADDR   00F0H   A   
L1 . . . . . . . .  C ADDR   0108H   A   
L11. . . . . . . .  C ADDR   0102H   A   
L2 . . . . . . . .  C ADDR   011EH   A   
L21. . . . . . . .  C ADDR   0118H   A   
LE1. . . . . . . .  C ADDR   0147H   A   
LED_BL . . . . . .  C ADDR   0145H   A   
LOOP . . . . . . .  C ADDR   001DH   A   
M1 . . . . . . . .  C ADDR   002CH   A   
M2 . . . . . . . .  C ADDR   0035H   A   
M3 . . . . . . . .  C ADDR   003EH   A   
M31. . . . . . . .  C ADDR   004EH   A   
M4 . . . . . . . .  C ADDR   0052H   A   
MAIN . . . . . . .  C ADDR   000DH   A   
MIN. . . . . . . .  N NUMB   0035H   A   
MM . . . . . . . .  N NUMB   0039H   A   
MM_D . . . . . . .  N NUMB   003BH   A   
N0 . . . . . . . .  C ADDR   0163H   A   
N1 . . . . . . . .  C ADDR   017BH   A   
N11. . . . . . . .  C ADDR   0175H   A   
N2 . . . . . . . .  C ADDR   0191H   A   
N21. . . . . . . .  C ADDR   018BH   A   
P0 . . . . . . . .  D ADDR   0080H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
S0 . . . . . . . .  C ADDR   01EAH   A   
S1 . . . . . . . .  C ADDR   00D8H   A   
S11. . . . . . . .  C ADDR   01FCH   A   
S12. . . . . . . .  C ADDR   0202H   A   
A51 MACRO ASSEMBLER  SZ03                                                                 01/04/2007 21:53:58 PAGE    10

S2 . . . . . . . .  C ADDR   0218H   A   
S21. . . . . . . .  C ADDR   0212H   A   
S3 . . . . . . . .  C ADDR   022AH   A   
SEC. . . . . . . .  N NUMB   0036H   A   
SEC0 . . . . . . .  N NUMB   003AH   A   
SET_ATIME. . . . .  C ADDR   0161H   A   
SET_TIME . . . . .  C ADDR   00EBH   A   
SPK. . . . . . . .  B ADDR   00B0H.4 A   
SS_D . . . . . . .  N NUMB   003CH   A   
TABLE. . . . . . .  C ADDR   00C1H   A   
TH0. . . . . . . .  D ADDR   008CH   A   
TI3. . . . . . . .  C ADDR   01C3H   A   
TIME_OUT . . . . .  C ADDR   01D6H   A   
TIME_PRO . . . . .  C ADDR   01BFH   A   
TL0. . . . . . . .  D ADDR   008AH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TO_SRV . . . . . .  C ADDR   0063H   A   
TR0. . . . . . . .  B ADDR   0088H.4 A   
TT1. . . . . . . .  C ADDR   009BH   A   
WLED . . . . . . .  B ADDR   0090H.0 A   
X1 . . . . . . . .  C ADDR   01D6H   A   


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -