📄 5-1.lst
字号:
A51 MACRO ASSEMBLER 5-1 09/12/2004 21:30:19 PAGE 1
MACRO ASSEMBLER A51 V1.08
OBJECT MODULE PLACED IN 5-1.OBJ
ASSEMBLER INVOKED BY: C:\MANLEY\PMEDWIN\A51.EXE 5-1.ASM DB
LOC OBJ LINE SOURCE
1 ;---------------------------------------万年历------------------------------------
2 ;5-1.asm
3 ;万年历程序
4 ;---------------------------------------头文件------------------------------------
0000 5 FL_250ms BIT 00H
0001 6 FL_500ms BIT FL_250ms+1
0002 7 Set_Clk_F BIT FL_500ms+1
0003 8 Set_AL4_F BIT Set_Clk_F+1
0004 9 AM_F BIT Set_AL4_F+1
0005 10 FL_3S BIT AM_F+1
0006 11 AL1_F BIT FL_3S+1
0007 12 AL2_F BIT FL_3S+2
0008 13 AL3_F BIT FL_3S+3
0009 14 AL4_F BIT FL_3S+4
000A 15 Set_Over BIT AL4_F+1
000B 16 HA_F BIT Set_Over+1
000C 17 HA_OVER BIT HA_F+1
000D 18 FL_MS_F BIT HA_OVER+1
000E 19 FL_S_F BIT FL_MS_F+1
000F 20 Key_OVER BIT FL_S_F+1
21 ;-----------------------------------------------------------------------------------------
0008 22 Key_Data EQU 08H
0009 23 TimerS EQU Key_Data+1
000A 24 T_30ms EQU TimerS+1
000B 25 T_20MS EQU T_30ms+1
000C 26 T_1S EQU T_20MS+1
000D 27 K1_Data EQU T_1S+1
000E 28 K2_Data EQU K1_Data+1
000F 29 Stat_Work EQU K2_Data+1
0010 30 Stat_Led EQU Stat_Work+1
0011 31 T_1ms EQU Stat_Led+1
0012 32 T_20M EQU T_1ms+1
0012 33 Beep EQU T_20M
0013 34 AL1 EQU Beep+1
0014 35 AL2 EQU Beep+2
0015 36 AL3 EQU Beep+3
0016 37 AL4 EQU Beep+4
0017 38 AL5 EQU Beep+5
0018 39 AL6 EQU Beep+6
0019 40 AL7 EQU Beep+7
001A 41 AL8 EQU Beep+8
001B 42 Ret_Timer EQU AL8+1
43 ;--------------------------------------定义计时单元-----------------------------------
0023 44 SEC EQU 23H ;定义秒单元
0024 45 MIN EQU SEC+1H ;定义分钟单元
0025 46 Hour EQU MIN+1H ;定义小时单元
0026 47 Day EQU Hour+1H ;定义日单元
0027 48 Mon EQU Day+1H ;定义月单元
0028 49 Year EQU Mon+1H ;定义年单元
0029 50 W_Adj EQU Year+1H ;定义
002A 51 Week EQU W_Adj+1H ;定义星期单元
52 ;-----------------------------------8路定时单元------------------------------------
002B 53 AL1_H EQU Week+1H ;1路时单元
002C 54 AL1_M EQU AL1_H+1H ;1路分单元
002D 55 AL2_H EQU AL1_M+1H ;2路时单元
002E 56 AL2_M EQU AL2_H+1H ;2路分单元
002F 57 AL3_H EQU AL2_M+1H ;3路时单元
0030 58 AL3_M EQU AL3_H+1H ;3路分单元
A51 MACRO ASSEMBLER 5-1 09/12/2004 21:30:19 PAGE 2
0031 59 AL4_H EQU AL3_M+1H ;4路时单元
0032 60 AL4_M EQU AL4_H+1H ;4路分单元
0033 61 AL5_H EQU AL4_M+1H ;5路时单元
0034 62 AL5_M EQU AL5_H+1H ;5路分单元
0035 63 AL6_H EQU AL5_M+1H ;6路时单元
0036 64 AL6_M EQU AL6_H+1H ;6路分单元
0037 65 AL7_H EQU AL6_M+1H ;7路时单元
0038 66 AL7_M EQU AL7_H+1H ;7路分单元
0039 67 AL8_H EQU AL7_M+1H ;8路时单元
003A 68 AL8_M EQU AL8_H+1H ;8路分单元
003B 69 Beep_T EQU AL8_M+1
003C 70 Frist EQU Beep_T+1
71 ;----------------------------------------定义显存-------------------------------------
003D 72 Led1 EQU Frist+1
003E 73 Led2 EQU Led1+1
003F 74 Led3 EQU Led2+1
0040 75 Led4 EQU Led3+1
0041 76 Led5 EQU Led4+1
0042 77 SP_Data EQU Led5+1
78 ;-----------------------------------------------------------------------------------------
00B5 79 Led_1 BIT P3.5 ;定义数码显示器的位控端口1
00B4 80 Led_2 BIT P3.4 ;定义数码显示器的位控端口2
00B3 81 Led_3 BIT P3.3 ;定义数码显示器的位控端口3
00B2 82 Led_4 BIT P3.2 ;定义数码显示器的位控端口4
00B1 83 Led_5 BIT P3.1 ;定义数码显示器的位控端口5
00B7 84 Beep_F BIT P3.7
00B0 85 Key_F BIT P3.0
86 ;-----------------------------------------------------------------------------------------
005D 87 T_H_100MS EQU 05DH ;100 ms for 6MHz
007F 88 T_L_100ms EQU 07FH ;C6 for 100ms
0008 89 Timer_NO EQU 8D ;3C90+30D=3CB0H
0032 90 W_Adj_Dat EQU 50D
0006 91 Key_DA EQU 00000110B
92 ;-----------------------------------------------------------------------------------------
0014 93 Blk_Led EQU 20D
0015 94 DOT_Led EQU 21D
0016 95 F_Led EQU 22D
0017 96 N_Led EQU 23D
0018 97 U_Led EQU 24D
0019 98 T_Led EQU 25D
001A 99 B_Led EQU 26D
001B 100 D_Led EQU 27D
101 ;--------------------------------------系统复位程序---------------------------------
0000 102 ORG 0000H
0000 020024 103 LJMP START
104 ;--------------------------------------外中断0入口---------------------------------
0003 105 ORG 0003H
0003 32 106 RETI
107 ;--------------------------------------T0中断入口----------------------------------
000B 108 ORG 000BH
000B 32 109 RETI
110 ;--------------------------------------外中断1入口---------------------------------
0013 111 ORG 0013H
0013 32 112 RETI
113 ;--------------------------------------T1中断入口----------------------------------
001B 114 ORG 001BH
001B 0206A0 115 LJMP T1INT
116 ;--------------------------------------串行口中断入口------------------------------
0023 117 ORG 0023H
0023 32 118 RETI
119 ;--------------------------------------主程序------------------------------------------
0024 12034F 120 START: LCALL Clr_Ram ;清内存
0027 758142 121 MOV SP, #SP_Data ;设置栈区首地址
002A 120051 122 LCALL INT_T0 ;
002D 120084 123 LCALL Timer_INT ;
0030 120311 124 LCALL Timer_20ms ;
A51 MACRO ASSEMBLER 5-1 09/12/2004 21:30:19 PAGE 3
0033 1200BB 125 STAR_BI: LCALL Clock
0036 12014E 126 LCALL Week_Auto
0039 1201A4 127 LCALL AL_Out
003C 120746 128 LCALL Key_Bord
003F 120706 129 LCALL Key_Del
0042 120359 130 LCALL Set_Clk_AL
0045 1201F4 131 LCALL Key_Jmp
0048 1201D2 132 LCALL REBack
004B 12022B 133 LCALL Led_Jmp
004E 020033 134 LJMP STAR_BI
135 ;---------------------------------T1中断初始化程序-----------------------------
0051 D2AB 136 INT_T0: SETB ET1 ;T1开中断
0053 758911 137 MOV TMOD, #00010001B ;T1定时方式1
0056 752932 138 MOV W_Adj, #W_Adj_Dat
0059 D2AF 139 SETB EA
005B 0206B9 140 LJMP Adj_W
005E 782B 141 AL_Led: MOV R0, #AL1_H
0060 E50F 142 MOV A, Stat_Work
0062 14 143 DEC A
0063 23 144 RL A
0064 28 145 ADD A, R0
0065 F8 146 MOV R0, A
0066 E6 147 MOV A, @R0
0067 1202A0 148 LCALL BCD_8
006A F53E 149 MOV Led2, A
006C 7003 150 JNZ AL_1
006E 753E14 151 MOV Led2, #Blk_Led
0071 E5F0 152 AL_1: MOV A, B
0073 240A 153 ADD A, #10D
0075 F53F 154 MOV Led3, A
0077 08 155 INC R0
0078 E6 156 MOV A, @R0
0079 1202A0 157 LCALL BCD_8
007C 240A 158 ADD A, #10D
007E F540 159 MOV Led4, A
0080 85F041 160 MOV Led5, B
0083 161 AL_Led_End:
0083 22 162 RET
163 ;-----------------------------------------------------------------------------------------
0084 750C08 164 Timer_INT:MOV T_1S, #Timer_NO
0087 753B0F 165 MOV Beep_T, #15D
008A 752801 166 MOV Year, #01D
008D 75270B 167 MOV Mon, #011D
0090 752606 168 MOV Day, #06D
0093 75250D 169 MOV Hour, #13D
0096 752400 170 MOV MIN, #00D
0099 752300 171 MOV SEC, #00D
009C 7F10 172 MOV R7,#16
009E 9000AB 173 MOV DPTR, #AL_ASC
00A1 782B 174 MOV R0, #AL1_H
00A3 E4 175 AL_READ:CLR A
00A4 93 176 MOVC A, @A+DPTR
00A5 F6 177 MOV @R0, A
00A6 08 178 INC R0
00A7 A3 179 INC DPTR
00A8 DFF9 180 DJNZ R7, AL_READ
00AA 22 181 RET
182 ;-----------------------------------------------------------------------------------------
00AB 06280632 183 AL_ASC: DB 06D,40D, 06D,50D, 07D,00D, 07D,10D;AM 4_AL
00AF 0700070A
00B3 070F0D28 184 DB 07D,15D, 013D,40D, 13D,45D, 14D,15D;PM 4_AL
00B7 0D2D0E0F
185 ;-----------------------------------------------------------------------------------------
00BB E523 186 Clock: MOV A, SEC
00BD B43C56 187 CJNE A, #60D, Clock_End
00C0 752300 188 MOV SEC, #00H
A51 MACRO ASSEMBLER 5-1 09/12/2004 21:30:19 PAGE 4
00C3 0524 189 INC MIN
00C5 C20C 190 CLR HA_OVER
00C7 E524 191 MOV A, MIN
00C9 B43C4A 192 CJNE A, #60D, Clock_End
00CC 752400 193 MOV MIN, #00H
00CF 0525 194 INC Hour
00D1 E525 195 MOV A, Hour
00D3 B41840 196 CJNE A, #24D, Clock_End
00D6 752500 197 MOV Hour, #00H
00D9 E527 198 MOV A, Mon
00DB 6402 199 XRL A, #02D
00DD 7009 200 JNZ MM_1
00DF 900126 201 MOV DPTR, #Year_D
00E2 E528 202 MOV A, Year
00E4 93 203 MOVC A, @A+DPTR
00E5 0200EF 204 LJMP MM_2
00E8 E527 205 MM_1: MOV A, Mon
00EA 14 206 DEC A
00EB 90011A 207 MOV DPTR, #MOU_12
00EE 93 208 MOVC A, @A+DPTR
00EF F5F0 209 MM_2: MOV B, A
00F1 05F0 210 INC B
00F3 0526 211 INC Day
00F5 E526 212 MOV A, Day
00F7 B5F003 213 CJNE A, B, CLCK_End
00FA 0200FF 214 LJMP CLCK1
00FD 4017 215 CLCK_End:JC Clock_End
00FF 752601 216 CLCK1: MOV Day, #01H
0102 0527 217 INC Mon
0104 E527 218 MOV A, Mon
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -