📄 main.lst
字号:
A51 MACRO ASSEMBLER MAIN 11/17/2007 23:56:46 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN MAIN.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE MAIN.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;*****************************************************
2 ;
3 ; This programme is for mobile setup Ver1.0 beta
4 ; The main control programe
5 ;This programme must be run in 12MHz standard settings
6 ; Designer: cqmcu.com
7 ;
8 ;*****************************************************
9
10 ;*****************************************************
11 ;参数定义
12 ;*****************************************************
13
0008 14 digital_bit equ 08h ;显示位
00C0 15 date_data equ 0c0h ;时钟数据首地址
000D 16 keys_byte equ 0dh ;按键字节
17
18 ;*****************************************************
19 ;主程序
20 ;*****************************************************
21
0000 22 org 0000h
0000 802E 23 sjmp start
24
0013 25 org 0013h
0013 02019C 26 ljmp keys_int
27
0030 28 org 0030h
0030 758000 29 start: mov p0,#0
0033 75900F 30 mov p1,#0fh
0036 75A000 31 mov p2,#0
0039 75B0FF 32 mov p3,#0ffh
33
003C 758170 34 mov sp,#70h ;堆栈地址
003F 78FE 35 mov r0,#0feh ;Clear the ram
0041 7902 36 mov r1,#2
0043 E4 37 clr a
0044 F7 38 main_clear0: mov @r1,a
0045 09 39 inc r1
0046 D8FC 40 djnz r0,main_clear0
41
0048 750976 42 mov 09h,#76h
004B 750A54 43 mov 0ah,#54h
004E 750B32 44 mov 0bh,#32h
0051 750C10 45 mov 0ch,#10h
46
0054 750801 47 mov digital_bit,#1
0057 D2AA 48 setb ex1
0059 D2AF 49 setb ea
005B 120070 50 lcall beep1
005E 1200FB 51 main_wait: lcall digital
0061 E50D 52 mov a,keys_byte
0063 B40002 53 cjne a,#0,keysmanagement
0066 80F6 54 sjmp main_wait
55
0068 1201C6 56 keysmanagement: lcall keys_management
006B 750D00 57 mov keys_byte,#0
006E 80EE 58 sjmp main_wait
A51 MACRO ASSEMBLER MAIN 11/17/2007 23:56:46 PAGE 2
59
60 ;*****************************************************
61 ;子程序文件载入
62 ;*****************************************************
63
0095 64 beep equ p1.5
65
66 ;*****************************************************
67 ;短鸣一声
68 ;*****************************************************
69
0070 751F04 70 beep1: mov 1fh,#04h
0073 D295 71 setb beep
0075 1200FB 72 beep1_1: lcall digital
0078 1200FB 73 lcall digital
007B 1200FB 74 lcall digital
007E 1200FB 75 lcall digital
0081 1200FB 76 lcall digital
0084 1200FB 77 lcall digital
0087 D51FEB 78 djnz 1fh,beep1_1
008A C295 79 clr beep
008C 22 80 ret
81
82 ;*****************************************************
83 ;长鸣一声
84 ;*****************************************************
85
008D 751F1E 86 beep2: mov 1fh,#1eh
0090 D295 87 setb beep
0092 1200FB 88 beep2_1: lcall digital
0095 1200FB 89 lcall digital
0098 1200FB 90 lcall digital
009B 1200FB 91 lcall digital
009E 1200FB 92 lcall digital
00A1 1200FB 93 lcall digital
00A4 D51FEB 94 djnz 1fh,beep2_1
00A7 C295 95 clr beep
00A9 22 96 ret
97
98 ;*****************************************************
99 ;短鸣两声
100 ;*****************************************************
101
00AA 751F04 102 beep3: mov 1fh,#04h
00AD D295 103 setb beep
00AF 1200FB 104 beep3_1: lcall digital
00B2 1200FB 105 lcall digital
00B5 1200FB 106 lcall digital
00B8 1200FB 107 lcall digital
00BB 1200FB 108 lcall digital
00BE 1200FB 109 lcall digital
00C1 D51FEB 110 djnz 1fh,beep3_1
00C4 C295 111 clr beep
00C6 751F04 112 mov 1fh,#04h
00C9 1200FB 113 beep3_2: lcall digital
00CC 1200FB 114 lcall digital
00CF 1200FB 115 lcall digital
00D2 1200FB 116 lcall digital
00D5 1200FB 117 lcall digital
00D8 1200FB 118 lcall digital
00DB D51FEB 119 djnz 1fh,beep3_2
00DE D295 120 setb beep
00E0 751F04 121 mov 1fh,#04h
00E3 1200FB 122 beep3_3: lcall digital
00E6 1200FB 123 lcall digital
00E9 1200FB 124 lcall digital
A51 MACRO ASSEMBLER MAIN 11/17/2007 23:56:46 PAGE 3
00EC 1200FB 125 lcall digital
00EF 1200FB 126 lcall digital
00F2 1200FB 127 lcall digital
00F5 D51FEB 128 djnz 1fh,beep3_3
00F8 C295 129 clr beep
00FA 22 130 ret
131 ;*****************************************************
132
0009 133 digital_byte equ 09h ;显存首址,连续4字节为显存
134
135 ;*****************************************************
136 ;数码管显示
137 ;*****************************************************
138
00FB E508 139 digital: mov a,digital_bit
00FD 20E018 140 jb acc.0,digital_check0
0100 20E11E 141 jb acc.1,digital_check1
0103 20E223 142 jb acc.2,digital_check2
0106 20E32A 143 jb acc.3,digital_check3
0109 20E430 144 jb acc.4,digital_check4
010C 20E538 145 jb acc.5,digital_check5
010F 20E63F 146 jb acc.6,digital_check6
0112 20E748 147 jb acc.7,digital_check7
0115 118D 148 call beep2
0117 22 149 ret
0118 7809 150 digital_check0: mov r0,#digital_byte
011A E6 151 mov a,@r0
011B C4 152 swap a
011C 540F 153 anl a,#0fh
011E 8048 154 jmp digital_display
0120 22 155 ret
0121 7809 156 digital_check1: mov r0,#digital_byte
0123 E6 157 mov a,@r0
0124 540F 158 anl a,#0fh
0126 8040 159 jmp digital_display
0128 22 160 ret
0129 7809 161 digital_check2: mov r0,#digital_byte
012B 08 162 inc r0
012C E6 163 mov a,@r0
012D C4 164 swap a
012E 540F 165 anl a,#0fh
0130 8036 166 jmp digital_display
0132 22 167 ret
0133 7809 168 digital_check3: mov r0,#digital_byte
0135 08 169 inc r0
0136 E6 170 mov a,@r0
0137 540F 171 anl a,#0fh
0139 802D 172 jmp digital_display
013B 22 173 ret
013C 7809 174 digital_check4: mov r0,#digital_byte
013E 08 175 inc r0
013F 08 176 inc r0
0140 E6 177 mov a,@r0
0141 C4 178 swap a
0142 540F 179 anl a,#0fh
0144 8022 180 jmp digital_display
0146 22 181 ret
0147 7809 182 digital_check5: mov r0,#digital_byte
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -