📄 alarm.lst
字号:
A51 MACRO ASSEMBLER ALARM 09/12/2007 23:33:37 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN alarm.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE alarm.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
0030 1 ledbuf equ 30h
0034 2 segadd equ 34h
0022 3 bitadd equ 22h
00B3 4 beep equ p3.3
0000 5 segbit equ 00h
0001 6 shift equ 01h
0002 7 run equ 02h
0003 8 alarm equ 03h
0025 9 ct equ 25h
0000 10 org 0000h
0000 0189 11 jmp init
12
0003 13 org 0003h
0003 8064 14 JMP ET0IN
15
000B 16 ORG 000BH
000B 8018 17 jmp t0int
0023 18 org 0023h
0023 410E 19 jmp serve
0025 C0D0 20 t0int: push psw
0027 C0E0 21 push acc
0029 D2D4 22 setb rs1
002B D2D3 23 setb rs0
002D C28C 24 clr tr0
002F 758CEC 25 mov th0,#0ech
0032 758A78 26 mov tl0,#078h
0035 D28C 27 setb tr0
28 ;inc ct
0037 0534 29 inc segadd
0039 A834 30 mov r0,segadd
003B E6 31 mov a,@r0
003C 75A01F 32 mov p2,#00011111B
003F F580 33 mov p0,a ;送段码
0041 E522 34 mov a,bitadd
0043 A200 35 mov c,segbit
0045 33 36 rlc a
0046 9200 37 mov segbit,c
0048 F522 38 mov bitadd,a ;右移1位
004A 441F 39 ORl a,#00011111b ;屏蔽低5位
004C F5A0 40 mov p2,a
004E E534 41 mov a,segadd
0050 B4320F 42 cjne a,#32h,nx1
0053 75342F 43 mov segadd,#2fh
0056 C28C 44 clr tr0
0058 0525 45 inc ct
005A 758CD8 46 mov th0,#0d8h
005D 758AF0 47 mov tl0,#0f0h
0060 D28C 48 setb tr0
0062 D0E0 49 nx1: pop acc
0064 D0D0 50 pop psw
0066 32 51 reti
0067 00 52 nop
0068 00 53 nop
54
0069 C0D0 55 ET0IN: push psw
006B C0E0 56 push acc
006D C009 57 push 09h
006F D2D3 58 setb rs0
A51 MACRO ASSEMBLER ALARM 09/12/2007 23:33:37 PAGE 2
0071 C2D4 59 clr rs1
0073 C203 60 clr alarm
0075 E590 61 mov a,p1
0077 540F 62 ANL A,#00001111B
0079 FF 63 MOV R7,A
64
007A 3198 65 ok: call datain
007C D009 66 exit: pop 09h
007E D0E0 67 POP acc
0080 D0D0 68 POP psw
0082 00 69 nop
0083 00 70 nop
0084 00 71 nop
0085 32 72 RETI
0086 00 73 nop
0087 00 74 nop
0088 00 75 nop
0089 753080 76 init: MOV 30h,#80h ;8
008C 753180 77 mov 31h,#080h ;8
008F 753280 78 mov 32h,#080h ;8
0092 752292 79 mov bitadd,#10010010b;位码
0095 75342F 80 mov segadd,#2fh ;ledbuf-1
0098 C200 81 clr 00h
009A D28A 82 setb it1 ;
009C D288 83 setb it0 ;下降沿
009E 75817F 84 mov sp,#7fh
00A1 9001F7 85 mov dptr,#ledtab
00A4 758901 86 mov tmod,#01h ;t0方式0
00A7 758CEC 87 MOV TH0,#0ecH
00AA 758A78 88 MOV TL0,#078H
00AD D28C 89 setb tr0
00AF 00 90 nop
00B0 754000 91 mov 40h,#00h
92
00B3 31C2 93 call delay
00B5 31C2 94 call delay
00B7 31C2 95 call delay
00B9 31C2 96 call delay
00BB 75A883 97 mov ie,#83h
00BE E540 98 START: mov a,40h
00C0 7002 99 jnz next ;有报警跳转
00C2 8018 100 jmp wait ;跳到等待状态
00C4 31A7 101 next: call dataout ;队列取数
00C6 31DB 102 call asc2led ;译码
00C8 753088 103 mov ledbuf,#88h ;第一位显示'A'
00CB C2B3 104 clr beep
00CD 20B4FD 105 NTAL: JB P3.4,NTAL
00D0 31C2 106 CALL DELAY
00D2 20B4F8 107 JB P3.4,NTAL
00D5 31C2 108 nt: call delay
00D7 30B4FB 109 jnb p3.4,nt
00DA 80E2 110 jmp start
111
00DC D2B3 112 wait: setb beep ;无报警,显示广告
00DE E525 113 mov a,ct
00E0 B4000B 114 cjne a,#00h,step1
00E3 7530F9 115 MOV 30h,#0f9h ;1
00E6 7531B0 116 mov 31h,#0b0h ;3
00E9 7532F8 117 mov 32h,#0f8h ;7
00EC 80D0 118 jmp start
00EE E525 119 step1: mov a,ct
00F0 B4140B 120 cjne a,#20,step2
00F3 7530B0 121 mov 30h,#0b0h ;3
00F6 7531F8 122 mov 31h,#0f8h ;7
00F9 7532B0 123 mov 32h,#0b0h ;3
00FC 80C0 124 jmp start
A51 MACRO ASSEMBLER ALARM 09/12/2007 23:33:37 PAGE 3
00FE E525 125 step2: mov a,ct
0100 B4280B 126 cjne a,#40,step3
0103 7530F8 127 mov 30h,#0f8h ;7
0106 7531B0 128 mov 31h,#0b0h ;3
0109 753290 129 mov 32h,#90h ;9
010C 80B0 130 jmp start
010E E525 131 step3: mov a,ct
0110 B43C0B 132 cjne a,#60,step4
0113 7530B0 133 mov 30h,#0b0h ;3
0116 753190 134 mov 31h,#90h ;9
0119 7532C0 135 mov 32h,#0c0h ;0
011C 80A0 136 jmp start
011E E525 137 step4: mov a,ct
0120 B4500B 138 cjne a,#80,step5
0123 753090 139 mov 30h,#090h ;9
0126 7531C0 140 mov 31h,#0c0h ;0
0129 7532F8 141 mov 32h,#0f8h ;7
012C 8090 142 jmp start
012E E525 143 step5: mov a,ct
0130 B4640B 144 cjne a,#100,step6
0133 7530C0 145 mov 30h,#0c0h ;0
0136 7531F8 146 mov 31h,#0f8h ;7
0139 7532F8 147 mov 32h,#0f8h ;7
013C 8080 148 jmp start
013E E525 149 step6: mov a,ct
0140 B4780B 150 cjne a,#120,step7
0143 7530F8 151 mov 30h,#0f8h ;7
0146 7531F8 152 mov 31h,#0f8h ;7
0149 753280 153 mov 32h,#080h ;8
014C 01BE 154 jmp start
014E E525 155 step7: mov a,ct
0150 B48C0B 156 cjne a,#140,step8
0153 7530F8 157 mov 30h,#0f8h ;7
0156 753180 158 mov 31h,#080h ;8
0159 7532F9 159 mov 32h,#0f9h ;1
015C 01BE 160 jmp start
015E E525 161 step8: mov a,ct
0160 B4A009 162 cjne a,#160,step9
0163 753080 163 mov 30h,#080h ;8
0166 7531F9 164 mov 31h,#0f9h ;1
0169 7532A4 165 mov 32h,#0a4h ;2
016C E525 166 step9: mov a,ct
016E B4B409 167 cjne a,#180,step10
0171 7530F9 168 mov 30h,#0f9h ;1
0174 7531A4 169 mov 31h,#0a4h ;2
0177 7532FF 170 mov 32h,#0ffh ;-
017A E525 171 step10: mov a,ct
017C B4C809 172 cjne a,#200,step11
017F 7530A4 173 mov 30h,#0a4h ;2
0182 7531FF 174 mov 31h,#0ffh ;-
0185 7532FF 175 mov 32h,#0ffh ;-
0188 E525 176 step11: mov a,ct
018A B4DC09 177 cjne a,#220,step12
018D 7531FF 178 mov 31h,#0ffh ;-
0190 7532FF 179 mov 32h,#0ffh ;-
0193 7530FF 180 mov 30h,#0ffh ;-
0196 01BE 181 step12: jmp start
182
183
184 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;先入先出队列;;;;;;
185 ;数据入
186 ;入口:R7,待入数据
0198 7940 187 DATAIN: MOV R1,#40h
019A E7 188 MOV A,@R1 ;读取成员个数
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -