📄 sen_rec4.lst
字号:
A51 MACRO ASSEMBLER SEN_REC4 DATE 19/08/04 PAGE 1
MS-DOS MACRO ASSEMBLER A51 V4.4
OBJECT MODULE PLACED IN D:\13505B\105B\SEN_REC4.OBJ
ASSEMBLER INVOKED BY: A51 D:\13505B\105B\SEN_REC4.ASM DB SB
LOC OBJ LINE SOURCE
1 ;单片机类别:12分频单片机
2 ;单片机的振荡频率:22.1184MHz
3 ;CARD类型:9600卡
4 ;CARD的振荡频率:3.5795MHz
5 ;CARD的IO管脚:P1.3
6 ;===================================
7
8 ;1ETU需要的nop数:191.554798156167
9 ;1ETU(实际-现在):=-.445201843832933
10 ;0.5ETU(实际-现在):=-2.22260092191647
11 ;===================================
12 public _I_send4
13 public _I_receive4
14 proc segment code
---- 15 rseg proc
00A0 16 SAMIO bit P2.0 ;by cpu_io pin //p2.0
005D 17 Timer00 EQU 93 ;ONEETU=2*Timer00+6
002E 18 Timer01 EQU 46 ;HALFETU=2*Timer01+3
19 ;======================================================
20 ;1ETU: AAA--AAA, BBB-BBB,CCC-CCC
21 ;1.5ETU: DDD--DDD
22 ;======================================================
23 ;======================================================
24 ;c: unsigned char I_Send(unsigned char ch);
25 ; input: ch
26 ; ret: ==0 --OK
27 ; !=0--ERR
28 ;ASM: OCCUPY: R6,R7,A,C
29 ; INPUT : R7
30 ; output:--
31 ; status: r7=0:right
32 ; <>0:error
0000 33 _I_Send4:
0000 EF 34 sb_00: mov a,r7
0001 A2D0 35 mov c,p
0003 7FFF 36 mov r7,#0ffh
0005 7EFF 37 mov r6,#0ffh
0007 20A00B 38 sb_01: jb SAMIO,sb_02 ;
000A DFFB 39 djnz r7,sb_01
000C 7FFF 40 mov r7,#0ffh
000E DEF7 41 djnz r6,sb_01
0010 D2A0 42 setb SAMIO
0012 7F01 43 mov R7,#01H ;timeout=(255*4+1)*255
0014 22 44 ret
0015 45 sb_02:
0015 7E09 46 mov r6,#09h ;1
0017 C2A0 47 clr SAMIO ;1
0019 00 48 NOP ;1-------------TEST BIT1
49 ;------------------------------------------AAA1ETU
001A 7F5D 50 mov r7,#Timer00 ;1
001C DFFE 51 djnz r7,$ ;2*#Timer00
001E 00 52 nop ;1
001F 00 53 nop ;1
54 ;------------------------------------------BBB1ETU
A51 MACRO ASSEMBLER SEN_REC4 DATE 19/08/04 PAGE 2
LOC OBJ LINE SOURCE
0020 13 55 sb_03: rrc a ;1
0021 92A0 56 mov SAMIO,c ;1
0023 00 57 NOP ;1-------------TEST BIT2
58 ;------------------------------------------AAA.1ETU
59 ;------------------------------------------CCC1ETU
0024 7F5D 60 mov r7,#Timer00 ;1
0026 DFFE 61 djnz r7,$ ;2*#Timer00
0028 DEF6 62 djnz r6,sb_03 ;2
63 ;------------------------------------------BBB1ETU
002A 00 64 NOP ;1
002B D2A0 65 setb SAMIO ;1
002D 00 66 NOP ;1-------------TEST BIT3
67 ;------------------------------------------CCC1ETU
002E 7F5D 68 mov r7,#Timer00 ;1
0030 DFFE 69 djnz r7,$ ;2*#Timer00
0032 00 70 nop ;1
0033 00 71 nop ;1
0034 00 72 nop ;1
0035 00 73 nop ;1
0036 00 74 NOP ;1-------------TEST BIT4
75 ;------------------------------------------CCC1ETU
0037 7F5D 76 mov r7,#Timer00 ;1
0039 DFFE 77 djnz r7,$ ;2*#Timer00
003B 00 78 nop ;1
003C 00 79 NOP ;1
003D 7F00 80 mov r7,#00h ;1
003F 00 81 NOP ;1-------------TEST BIT5
82 ;------------------------------------------CCC1ETU
0040 22 83 ret ;1
84 ;======================================================
85 ;======================================================
86 ;c: unsigned char I_Receive(unsigned char *ch);
87 ; input: *ch
88 ; putput: *ch
89 ; ret: ==0 --OK
90 ; !=0--ERR
91 ;ASM: OCCUPY: R6,R7,R5,A,C DPTR
92 ; INPUT : R3--TYPE R2R1--ADDR
93 ; output: R3--TYPE R2R1--ADDR
94 ; status: r7=0:right
95 ; =01:no start bit
96 ; =02:parity bit error
0041 97 _I_Receive4:
0041 7EFF 98 RB_00: mov r6,#0FFh
0043 7FFF 99 mov r7,#0ffh
0045 7D03 100 MOV R5,#03h
0047 30A00B 101 RB_01: jnb SAMIO,RB_02 ;
004A DFFB 102 djnz r7,RB_01 ;
004C 7FFF 103 mov r7,#0ffh
004E DEF7 104 djnz r6,RB_01
0050 DDF5 105 djnz r5,RB_01
0052 7F01 106 mov R7,#01H ;timeout=(4*255+1+2)*255*3
0054 22 107 ret
108 ;------------------------------------------DDD1.5ETU
0055 109 RB_02:
0055 00 110 NOP ;1-------------TEST BIT6
0056 7E08 111 mov r6,#08h ;1
0058 7F5D 112 mov r7,#Timer00 ;1
005A DFFE 113 djnz r7,$ ;#Timer00*2
A51 MACRO ASSEMBLER SEN_REC4 DATE 19/08/04 PAGE 3
LOC OBJ LINE SOURCE
005C 00 114 NOP ;1
005D 00 115 NOP ;1
005E 00 116 NOP ;1
005F 7F2E 117 mov r7,#Timer01 ;1
0061 DFFE 118 djnz r7,$ ;#Timer01*2
0063 00 119 NOP ;1
0064 00 120 nop
0065 00 121 nop
122 ;------------------------------------------AAA1ETU
0066 A2A0 123 RB_03: mov c,SAMIO ;1
124 ;------------------------------------------DDD1.5ETU
125 ;------------------------------------------BBB1ETU
0068 00 126 NOP ;1-------------TEST BIT7
0069 13 127 rrc a ;1
006A 7F5D 128 mov r7,#Timer00 ;1
006C DFFE 129 djnz r7,$ ;#Timer00*2
006E DEF6 130 djnz r6,RB_03 ;2
131 ;------------------------------------------AAA1ETU
0070 A2A0 132 mov c,SAMIO ;1
133 ;------------------------------------------BBB1ETU
134 ;------------------------------------------CCC1ETU
0072 00 135 NOP ;1-------------TEST BIT8
0073 7F5D 136 mov r7,#Timer00 ;1
0075 DFFE 137 djnz r7,$ ;#Timer00*2
0077 00 138 NOP ;1
0078 00 139 NOP ;1
0079 D2A0 140 setb SAMIO ;1
141 ;------------------------------------------CCC1ETU
007B 00 142 NOP ;1-------------TEST BIT9
007C BB0208 143 RB_04: CJNE R3,#02H,RB_05
007F 8A83 144 MOV DPH,R2
0081 8982 145 MOV DPL,R1
0083 F0 146 MOVX @DPTR,A
0084 7F00 147 MOV R7,#00H
0086 22 148 RET
0087 F7 149 RB_05: MOV @R1,A
0088 7F00 150 mov r7,#00h
008A 22 151 ret
152
153 end
;======================================================
;======================================================
A51 MACRO ASSEMBLER SEN_REC4 DATE 19/08/04 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
DPH . . . . D ADDR 0083H A
DPL . . . . D ADDR 0082H A
P . . . . . B ADDR 00D0H.0 A
P2. . . . . D ADDR 00A0H A
PROC. . . . C SEG 0000H REL=UNIT
RB_00 . . . C ADDR 0041H R SEG=PROC
RB_01 . . . C ADDR 0047H R SEG=PROC
RB_02 . . . C ADDR 0055H R SEG=PROC
RB_03 . . . C ADDR 0066H R SEG=PROC
RB_04 . . . C ADDR 007CH R SEG=PROC
RB_05 . . . C ADDR 0087H R SEG=PROC
SAMIO . . . B ADDR 00A0H.0 A
SB_00 . . . C ADDR 0000H R SEG=PROC
SB_01 . . . C ADDR 0007H R SEG=PROC
SB_02 . . . C ADDR 0015H R SEG=PROC
SB_03 . . . C ADDR 0020H R SEG=PROC
TIMER00 . . N NUMB 005DH A
TIMER01 . . N NUMB 002EH A
_I_RECEIVE4 C ADDR 0041H R PUB SEG=PROC
_I_SEND4. . C ADDR 0000H R PUB SEG=PROC
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE, NO ERRORS FOUND
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -