📄 zichxu.lst
字号:
A51 MACRO ASSEMBLER ZICHXU 03/07/2002 01:01:00 PAGE 1
MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN zichxu.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE zichxu.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 NAME SHIYAN
2 ?PR?MUSIC?SHIYAN SEGMENT CODE
3 ?PR?DELAY?SHIYAN SEGMENT CODE
4 ?PR?INTX0?SHIYAN SEGMENT CODE
5 ?PR?INTX1?SHIYAN SEGMENT CODE
6 ;?PR?_RECEIVE?SHIYAN SEGMENT CODE
7 ?PR?_SEND?SHIYAN SEGMENT CODE
8
9 EXTRN CODE(DISPLAY)
10
11 EXTRN DATA(MUS_NUM)
12 EXTRN DATA(MUS_TH0)
13 EXTRN DATA(MUS_TL0)
14 EXTRN DATA(MUS_TH1)
15 EXTRN DATA(MUS_TL1)
16 EXTRN DATA(DIS_BUF)
17
18 PUBLIC MUSIC
19 PUBLIC DELAY
20 ;PUBLIC _RECEIVE
21 PUBLIC _SEND
22
00CA 23 TR2 BIT 0CAH
00CA 24 RCAP2L EQU 0CAH
00CB 25 RCAP2H EQU 0CBH
00CC 26 TL2 EQU 0CCH
00CA 27 TH2 EQU 0CAH
28
29 ;********************************************************
---- 30 CSEG AT 0003H
0003 020000 F 31 LJMP INTX0
32
---- 33 RSEG ?PR?INTX0?SHIYAN
34
0000 35 INTX0:
0000 C0E0 36 push ACC
0002 EF 37 MOV A,R7
0003 C0E0 38 PUSH ACC
0005 E5D0 39 MOV A,PSW
0007 C0E0 40 PUSH ACC
0009 7F12 41 MOV R7,#18
000B DFFE 42 DJNZ R7,$
000D D2B2 43 SETB P3.2
000F 20B208 44 JB P3.2,INTX0END ;fosc=12MHz,设置波特率为9600
0012 758A9B 45 MOV TL0,#155 ;常数在148---162之间正确,用汇编语言写接收程序正确
0015 758C9B 46 MOV TH0,#155 ;,而C语言写的接收不正确
0018 D28C 47 SETB TR0
001A 48 INTX0END:
001A C2A8 49 CLR EX0
001C D0E0 50 POP ACC
001E F5D0 51 MOV PSW,A
0020 D0E0 52 POP ACC
0022 FF 53 MOV R7,A
0023 D0E0 54 POP ACC
0025 32 55 RETI
56
57 ;********************************************************
---- 58 CSEG AT 0013H
A51 MACRO ASSEMBLER ZICHXU 03/07/2002 01:01:00 PAGE 2
0013 020000 F 59 LJMP INTX1
60
---- 61 RSEG ?PR?INTX1?SHIYAN
62
0000 63 INTX1:
0000 758A90 64 MOV TL0,#90H
0003 D28C 65 SETB TR0
0005 758CFE 66 MOV TH0,#0FEH
0008 C2AA 67 CLR EX1
000A 32 68 RETI
69 ;********************************************************
---- 70 RSEG ?PR?_SEND?SHIYAN
71
0000 72 _SEND:
0000 C2B3 73 CLR P3.3
0002 EF 74 MOV A,R7
0003 7F08 75 MOV R7,#8
0005 76 SENDLP:
0005 7E32 77 MOV R6,#50
0007 DEFE 78 DJNZ R6,$
0009 13 79 RRC A
000A 92B3 80 MOV P3.3,C
000C DFF7 81 DJNZ R7,SENDLP
000E 7E32 82 MOV R6,#50
0010 DEFE 83 DJNZ R6,$
0012 D2B3 84 SETB P3.3
0014 7E32 85 MOV R6,#50
0016 DEFE 86 DJNZ R6,$
0018 22 87 RET
88
89 ;********************************************************
90 ; RSEG ?PR?_RECEIVE?SHIYAN
91
92 ;_RECEIVE:
0019 D2A8 93 SETB EX0
001B 8F99 94 MOV SBUF,R7
001D C28D 95 CLR TF0
001F D2B2 96 SETB P3.2
0021 7F08 97 MOV R7,#8
0023 98 RECEIVELP:
0023 308DFD 99 JNB TF0,$
0026 A2B2 100 MOV C,P3.2
0028 13 101 RRC A
0029 C28D 102 CLR TF0
002B DFF6 103 DJNZ R7,RECEIVELP
002D F500 F 104 MOV DIS_BUF+1,A
002F 308DFD 105 JNB TF0,$
0032 C28C 106 CLR TR0
107
0034 22 108 RET
109
110 ;********************************************************
---- 111 RSEG ?PR?DELAY?SHIYAN
112
0000 113 DELAY: ;显示延时2ms;fosc=12MHz
0000 EE 114 MOV A,R6
0001 C0E0 115 push ACC
0003 EF 116 MOV A,R7
0004 C0E0 117 PUSH ACC
0006 7F04 118 MOV R7,#4
0008 119 DELP1:
0008 7EFA 120 MOV R6,#250
000A DEFE 121 DJNZ R6,$
000C DFFA 122 DJNZ R7,DELP1
000E D0E0 123 POP ACC
0010 FF 124 MOV R7,A
A51 MACRO ASSEMBLER ZICHXU 03/07/2002 01:01:00 PAGE 3
0011 D0E0 125 POP ACC
0013 FE 126 MOV R6,A
0014 22 127 RET
128
129 ;*************************************************************************
130
---- 131 RSEG ?PR?MUSIC?SHIYAN
0000 132 music: ;音乐子程序
0000 E8 133 MOV A,R0
0001 C0E0 134 push ACC
0003 E9 135 MOV A,R1
0004 C0E0 136 push ACC
0006 EB 137 MOV A,R3
0007 C0E0 138 PUSH ACC
0009 750000 F 139 MOV MUS_NUM,#0
000C 750055 F 140 MOV DIS_BUF+6,#55H
000F 141 MUSLP:
000F E500 F 142 MOV A,MUS_NUM
0011 0500 F 143 INC MUS_NUM
0013 900000 F 144 MOV DPTR,#gepu
0016 93 145 MOVC A,@A+DPTR
0017 6040 146 JZ JIESHU
0019 F8 147 MOV R0,A ;R0中为歌谱
001A 54F0 148 ANL A,#0F0H
001C 6028 149 JZ MUNT1
001E C4 150 SWAP A
001F 23 151 RL A
0020 F9 152 MOV R1,A
0021 900000 F 153 MOV DPTR,#timex
0024 93 154 MOVC A,@A+DPTR
0025 F58C 155 MOV TH0,A
0027 F500 F 156 MOV MUS_TH0,A ;C语言中的变量
0029 E9 157 MOV A,R1
002A 04 158 INC A
002B 93 159 MOVC A,@A+DPTR
002C F58A 160 MOV TL0,A
002E F500 F 161 MOV MUS_TL0,A
162
0030 740E 163 MOV A,#14
0032 29 164 ADD A,R1
0033 F9 165 MOV R1,A
0034 93 166 MOVC A,@A+DPTR
0035 F5CA 167 MOV TH2,A
0037 F5CB 168 MOV RCAP2H,A
0039 F500 F 169 MOV MUS_TH1,A
003B E9 170 MOV A,R1
003C 04 171 INC A
003D 93 172 MOVC A,@A+DPTR
003E F5CC 173 MOV TL2,A
0040 F5CA 174 MOV RCAP2L,A
0042 F500 F 175 MOV MUS_TL1,A
176
177 ; SETB TR0
0044 D2CA 178 SETB TR2
0046 179 MUNT1:
0046 E8 180 MOV A,R0
0047 540F 181 ANL A,#0FH
0049 FB 182 MOV R3,A
183
004A E500 F 184 MOV A,DIS_BUF+6 ;C语言中的数组在汇编中的使用方法
004C F4 185 CPL A
004D F500 F 186 MOV DIS_BUF+6,A
004F 187 MLP1:
004F 120000 F 188 LCALL DEL1S
0052 DBFB 189 DJNZ R3, MLP1
190 ; CLR TR0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -