📄 main.lst
字号:
A51 MACRO ASSEMBLER MAIN 11/17/2007 23:52:30 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 study Ver1.0.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
0095 14 beep equ p1.5 ;Beep pin
0008 15 keys_byte equ 08h
16
17 ;*****************************************************
18 ;主程序
19 ;*****************************************************
20
0000 21 org 0000h
0000 802E 22 jmp start
23
0013 24 org 00013h
0013 01E3 25 jmp keys_int ;键盘中断
26
0030 27 org 0030h
0030 7580FE 28 start: mov p0,#0feh
0033 75900F 29 mov p1,#0fh
0036 75A000 30 mov p2,#0
0039 75B0FF 31 mov p3,#0ffh
32
003C 758170 33 mov sp,#70h ;堆栈地址
003F 787E 34 mov r0,#07eh ;Clear the ram
0041 7902 35 mov r1,#2
0043 E4 36 clr a
0044 F7 37 main_clear0: mov @r1,a
0045 09 38 inc r1
0046 D8FC 39 djnz r0,main_clear0
40
0048 D2AA 41 setb ex1
004A D2AF 42 setb ea
43
004C 7800 44 mov r0,#0 ;方向标志
004E 79FE 45 mov r1,#0feh ;亮点流动
0050 7A19 46 mov r2,#25 ;延时
0052 7B00 47 mov r3,#0 ;花样
0054 7C19 48 mov r4,#25 ;延时
49
0056 31A0 50 move: call time2_5ms
0058 DAFC 51 djnz r2,move
005A AA04 52 mov r2,04h
005C EB 53 mov a,r3
005D B40007 54 cjne a,#0,move_0
0060 E9 55 mov a,r1 ;单亮点往左移
0061 23 56 rl a
0062 F9 57 mov r1,a
0063 F580 58 mov p0,a
A51 MACRO ASSEMBLER MAIN 11/17/2007 23:52:30 PAGE 2
0065 80EF 59 jmp move
0067 B40107 60 move_0: cjne a,#1,move_1
006A E9 61 mov a,r1 ;单亮点往右移
006B 03 62 rr a
006C F9 63 mov r1,a
006D F580 64 mov p0,a
006F 80E5 65 jmp move
0071 B40229 66 move_1: cjne a,#2,move_2
0074 E9 67 mov a,r1 ;双亮点往中移
0075 23 68 rl a
0076 F9 69 mov r1,a
0077 30E00B 70 jnb acc.0,move_10
007A 30E10E 71 jnb acc.1,move_11
007D 30E211 72 jnb acc.2,move_12
0080 30E314 73 jnb acc.3,move_13
0083 80D1 74 jmp move
0085 C2E7 75 move_10: clr acc.7
0087 F580 76 mov p0,a
0089 80CB 77 jmp move
008B C2E6 78 move_11: clr acc.6
008D F580 79 mov p0,a
008F 80C5 80 jmp move
0091 C2E5 81 move_12: clr acc.5
0093 F580 82 mov p0,a
0095 80BF 83 jmp move
0097 C2E4 84 move_13: clr acc.4
0099 F580 85 mov p0,a
009B 80B9 86 jmp move
009D B40316 87 move_2: cjne a,#3,move_3
00A0 E8 88 mov a,r0 ;左右往返移动
00A1 B4000A 89 cjne a,#0,move_20
00A4 E9 90 mov a,r1
00A5 23 91 rl a
00A6 F9 92 mov r1,a
00A7 F580 93 mov p0,a
00A9 30E70C 94 jnb acc.7,move_21
00AC 80A8 95 jmp move
00AE E9 96 move_20: mov a,r1
00AF 03 97 rr a
00B0 F9 98 mov r1,a
00B1 F580 99 mov p0,a
00B3 30E006 100 jnb acc.0,move_22
00B6 809E 101 move_3: jmp move
00B8 78FF 102 move_21: mov r0,#0ffh
00BA 809A 103 jmp move
00BC 7800 104 move_22: mov r0,#0
00BE 8096 105 jmp move
106
107 ;*****************************************************
108 ;相关文件载入
109 ;*****************************************************
110
111 ;*****************************************************
112 ;短鸣一声
113 ;*****************************************************
114
00C0 D295 115 beep1: setb beep
00C2 31B2 116 call time50ms
00C4 C295 117 clr beep
00C6 31B2 118 call time50ms
00C8 22 119 ret
120
121 ;*****************************************************
122 ;长鸣一声
123 ;*****************************************************
124
A51 MACRO ASSEMBLER MAIN 11/17/2007 23:52:30 PAGE 3
00C9 D295 125 beep2: setb beep
00CB 31B2 126 call time50ms
00CD C295 127 clr beep
00CF 31B2 128 call time50ms
00D1 D295 129 setb beep
00D3 31B2 130 call time50ms
00D5 C295 131 clr beep
00D7 31B2 132 call time50ms
00D9 22 133 ret
134
135 ;*****************************************************
136 ;短鸣两声
137 ;*****************************************************
138
00DA D295 139 beep3: setb beep
00DC 31D1 140 call time500ms
00DE C295 141 clr beep
00E0 31D1 142 call time500ms
00E2 22 143 ret
144 ;*****************************************************
145 ;键盘中断处理程序
146 ;*****************************************************
147
00E3 C2AF 148 keys_int: clr ea
00E5 C28B 149 clr ie1
00E7 75A000 150 mov p2,#0
00EA E590 151 mov a,p1
00EC F4 152 cpl a
00ED 540F 153 anl a,#0fh
00EF B40005 154 cjne a,#0,keys_reader
00F2 C28B 155 clr ie1
00F4 D2AF 156 setb ea
00F6 32 157 reti
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -