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

📄 sz02.lst

📁 51单片机开发入门与典型实例
💻 LST
📖 第 1 页 / 共 2 页
字号:
0124 D28C            228         SETB   TR0         ;启动定时器
0126 22              229         RET 
                     230     
                     231      ;----―喇叭和指示灯等其它子程序 ----――
                     232     
                     233      ;计时单元清零
0127                 234      INIT:              
0127 753700          235         MOV  DEDA,   #0   ;5ms计数值清除为0
012A 753600          236         MOV  SEC,    #0   ;秒钟变量清除为0
012D 753500          237         MOV  MIN,    #0   ;分钟变量清除为0
0130 753400          238         MOV  HOUR,   #0   ;小时变量清除为0
0133 22              239         RET
                     240      ;―――――――――――――
                     241      ;压电喇叭
0134                 242       BZ:                  ;压电喇叭鸣响一声
0134 7EFA            243           MOV   R6, #250
0136 3157            244       B1: ACALL DEX
0138 B2B4            245           CPL   SPK
013A DEFA            246           DJNZ  R6,B1
013C 7D32            247           MOV   R5, #50 ;#10
013E 314C            248           ACALL  DELAY
0140 22              249           RET
                     250      
                     251      ;----------―――
                     252      ;工作指示
0141                 253       LED_BL:             ;工作指示灯闪烁
0141 7C06            254           MOV   R4,#6
0143 B290            255       LE1:CPL   WLED      ;位反向
0145 7D19            256           MOV   R5,#25 ;#5
A51 MACRO ASSEMBLER  SZ02                                                                 01/04/2007 21:16:37 PAGE     5

0147 314C            257           ACALL  DELAY
0149 DCF8            258           DJNZ  R4, LE1   ;延迟50ms
014B 22              259           RET
                     260      ;----------―――
                     261      ;延时子程序
014C                 262       DELAY:               ;;总延迟时间 R5* 2ms
014C 7E0A            263          MOV   R6,#10 ;#50
014E 7F64            264       D1:MOV   R7,#100
0150 DFFE            265          DJNZ  R7,$
0152 DEFA            266          DJNZ  R6,D1
0154 DDF6            267          DJNZ  R5,DELAY
0156 22              268          RET 
                     269      ;----------―――
                     270      ; 压电喇叭短暂延时子程序
0157 7FB4            271      DEX:  MOV   R7,#180   ;短暂延时
0159 00              272       DE1: NOP
015A DFFD            273            DJNZ  R7, DE1
015C 22              274            RET
                     275     
                     276     ;-------―― 增加定时闹铃程序部分 -------――
                     277      ;―――――――― 设置闹铃时间 ―――――――――
                     278      ;设置闹铃时间
015D                 279      SET_ATIME:
015D 3198            280          ACALL  CONVA      ;加载闹铃时间数据
015F                 281       N0:
015F 11CD            282          ACALL  DISP
                     283        ;-----------
0161 20A513          284          JB   K2, N1       ;未按下K2键则继续扫描
0164 30A5FD          285          JNB  K2, $        ;有按下则等待放开来
                     286      ;K2调整小时
0167 0538            287          INC  HH           ;小时数加1
0169 E538            288          MOV  A, HH
016B B41803          289          CJNE A, #24,N11   ;是否24h到了
016E 753800          290          MOV  HH,#0        ;小时请为0
0171                 291        N11:
0171 3198            292          ACALL  CONVA      ;加载闹铃时间数据
0173 11CD            293          ACALL  DISP       ;扫描显示
0175 80E8            294          JMP    N0         ;继续按键扫描
                     295       ;------------
0177 20A613          296       N1: JB K3, N2        ;未按下K3键则继续扫描
017A 30A6FD          297          JNB K3, $         ;有按下则等待放开来
                     298     ;K3调整分钟
017D 0539            299         INC  MM            ;调整分钟数
017F E539            300         MOV  A,MM          ;分钟数加1
0181 B43C03          301         CJNE A, #60,N21    ;是否60min到了
0184 753900          302         MOV  MM, #0        ;分钟数请为0
0187                 303       N21:
0187 3198            304         ACALL  CONVA       ;加载闹铃时间数据
0189 11CD            305         ACALL  DISP        ;扫描显示
018B 80D2            306         JMP    N0          ;继续按键扫描
                     307       ;------------
018D 20A7CF          308       N2: JB   K4, N0      ;未按下K4键则继续扫描
0190 30A7FD          309         JNB    K4, $       ;等K4键放开
                     310       ;K4设置完成......
0193 3141            311         ACALL  LED_BL      ;LED闪动
0195 119A            312         ACALL  CONV        ;加载现在时间数据
0197 22              313         RET
                     314     
                     315     ;―――――――― 加载闹铃时间数据 ―――――――
                     316     
                     317     ;转换 时时:分分 数据
0198                 318     CONVA:
                     319       ;转换小时数据
0198 E538            320          MOV  A,  HH
019A 75F00A          321          MOV  B,  #10
019D 84              322          DIV  AB
A51 MACRO ASSEMBLER  SZ02                                                                 01/04/2007 21:16:37 PAGE     6

                     323       ;-----------
019E 9000BD          324          MOV  DPTR,#TABLE ;查表转换
01A1 93              325          MOVC  A,  @A+DPTR
01A2 F530            326          MOV  BUF,  A
                     327       ;-----------
01A4 E5F0            328          MOV  A, B
01A6 93              329          MOVC  A,  @A+DPTR
01A7 F531            330          MOV  BUF+1,  A
                     331       ;转换分钟数据
01A9 E539            332          MOV  A,  MM
01AB 75F00A          333          MOV  B,  #10
01AE 84              334          DIV  AB
                     335       ;-----------
01AF 9000BD          336          MOV  DPTR,#TABLE ;查表转换
01B2 93              337          MOVC  A,  @A+DPTR
01B3 F532            338          MOV  BUF+2,  A
                     339       ;-----------
01B5 E5F0            340          MOV  A, B
01B7 93              341          MOVC  A,  @A+DPTR
01B8 F533            342          MOV  BUF+3,  A
01BA 22              343          RET
                     344      
                     345      ;―――――――― 检查闹铃时间处理 ――――――――
                     346     
                     347     ;检查是否启动闹铃
01BB                 348      TIME_PRO: 
01BB 200001          349          JB  ALB, TI3
01BE 22              350          RET
                     351     ;――――――――――――――
                     352     
                     353     ;检查闹铃时间是否到了
01BF                 354      TI3:
01BF E534            355          MOV  A, HOUR
01C1 8538F0          356          MOV  B,HH
01C4 B5F00A          357          CJNE A, B, BK      ;检查闹铃小时时间
                     358         ;-----------
01C7 E535            359          MOV  A, MIN
01C9 8539F0          360          MOV  B,MM
01CC B5F002          361          CJNE  A, B, BK     ;检查闹铃分钟时间
                     362         ;-----------
01CF 31D2            363          ACALL  TIME_OUT    ;执行检查闹铃时间到了处理
01D1                 364       BK:
01D1 22              365          RET
                     366     
                     367      ;-------- 执行闹铃时间处理 ――――――――
                     368     
01D2                 369      TIME_OUT:              ;所设置的闹铃数据到了
01D2 3141            370        X1: ACALL LED_BL     ;LED闪动
01D4 3134            371          ACALL  BZ          ;压电喇叭发出哗的一声
                     372         ;按下K4键停止闹铃 
01D6 20A7F9          373          JB    K4, X1       ;等待是否按下K4键
01D9 30A7FD          374          JNB   K4,$         ;若有按下键则等待按键放开来
01DC 3141            375          ACALL  LED_BL      ;LED闪动
01DE C200            376          CLR   ALB          ;清除闹铃位
01E0 22              377          RET
                     378     ;------------------------------
                     379          END 
                             
                             
A51 MACRO ASSEMBLER  SZ02                                                                 01/04/2007 21:16:37 PAGE     7

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   0136H   A   
BK . . . . . . . .  C ADDR   01D1H   A   
BUF. . . . . . . .  N NUMB   0030H   A   
BZ . . . . . . . .  C ADDR   0134H   A   
CONV . . . . . . .  C ADDR   009AH   A   
CONVA. . . . . . .  C ADDR   0198H   A   
D1 . . . . . . . .  C ADDR   014EH   A   
DE1. . . . . . . .  C ADDR   0159H   A   
DEDA . . . . . . .  N NUMB   0037H   A   
DELAY. . . . . . .  C ADDR   014CH   A   
DEX. . . . . . . .  C ADDR   0157H   A   
DISP . . . . . . .  C ADDR   00CDH   A   
HH . . . . . . . .  N NUMB   0038H   A   
HOUR . . . . . . .  N NUMB   0034H   A   
IE . . . . . . . .  D ADDR   00A8H   A   
INIT . . . . . . .  C ADDR   0127H   A   
INIT_TIMER . . . .  C ADDR   0050H   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   00ECH   A   
L1 . . . . . . . .  C ADDR   0104H   A   
L11. . . . . . . .  C ADDR   00FEH   A   
L2 . . . . . . . .  C ADDR   011AH   A   
L21. . . . . . . .  C ADDR   0114H   A   
LE1. . . . . . . .  C ADDR   0143H   A   
LED_BL . . . . . .  C ADDR   0141H   A   
LOOP . . . . . . .  C ADDR   001DH   A   
M1 . . . . . . . .  C ADDR   002CH   A   
M2 . . . . . . . .  C ADDR   0035H   A   
M3 . . . . . . . .  C ADDR   003AH   A   
M31. . . . . . . .  C ADDR   004AH   A   
M4 . . . . . . . .  C ADDR   004EH   A   
MAIN . . . . . . .  C ADDR   000DH   A   
MIN. . . . . . . .  N NUMB   0035H   A   
MM . . . . . . . .  N NUMB   0039H   A   
N0 . . . . . . . .  C ADDR   015FH   A   
N1 . . . . . . . .  C ADDR   0177H   A   
N11. . . . . . . .  C ADDR   0171H   A   
N2 . . . . . . . .  C ADDR   018DH   A   
N21. . . . . . . .  C ADDR   0187H   A   
P0 . . . . . . . .  D ADDR   0080H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
S1 . . . . . . . .  C ADDR   00D4H   A   
SEC. . . . . . . .  N NUMB   0036H   A   
SET_ATIME. . . . .  C ADDR   015DH   A   
SET_TIME . . . . .  C ADDR   00E7H   A   
SPK. . . . . . . .  B ADDR   00B0H.4 A   
TABLE. . . . . . .  C ADDR   00BDH   A   
TH0. . . . . . . .  D ADDR   008CH   A   
TI3. . . . . . . .  C ADDR   01BFH   A   
TIME_OUT . . . . .  C ADDR   01D2H   A   
TIME_PRO . . . . .  C ADDR   01BBH   A   
TL0. . . . . . . .  D ADDR   008AH   A   
A51 MACRO ASSEMBLER  SZ02                                                                 01/04/2007 21:16:37 PAGE     8

TMOD . . . . . . .  D ADDR   0089H   A   
TO_SRV . . . . . .  C ADDR   005FH   A   
TR0. . . . . . . .  B ADDR   0088H.4 A   
TT1. . . . . . . .  C ADDR   0097H   A   
WLED . . . . . . .  B ADDR   0090H.0 A   
X1 . . . . . . . .  C ADDR   01D2H   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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