📄 main.lst
字号:
文件:MAIN.c 盛群编译器版本 2.86 页次1
; 16: {
; 19: uint8 wr_data[10] = {0x12,0x20,0x28,0xfe,0x16,0x45,0x98,0x73,0x55,0x01};
19 0000 L2 .SECTION INPAGE'CODE'
19 0000 l_2:
19 0000 0086 MOV [06h],A
19 0001 _2:
19 0001 0912 RET A,18
19 0002 0920 RET A,32
19 0003 0928 RET A,40
19 0004 09FE RET A,254
19 0005 0916 RET A,22
19 0006 0945 RET A,69
19 0007 0998 RET A,152
19 0008 0973 RET A,115
19 0009 0955 RET A,85
19 000A 0901 RET A,1
19 000B __acsr EQU [023H]
19 000B __adcr EQU [022H]
19 000B __adrh EQU [021H]
19 000B __adrl EQU [020H]
19 000B __pwm EQU [01aH]
19 000B __pdc EQU [019H]
19 000B __pd EQU [018H]
19 000B __pbc EQU [015H]
19 000B __pb EQU [014H]
19 000B __pac EQU [013H]
19 000B __pa EQU [012H]
19 000B __tmrc EQU [0eH]
19 000B __tmr EQU [0dH]
19 000B __intc EQU [0bH]
19 000B __status EQU [0aH]
19 000B __tblh EQU [08H]
19 000B __tblp EQU [07H]
19 000B __pcl EQU [06H]
19 000B __acc EQU [05H]
19 000B __mp EQU [01H]
19 000B __iar EQU [00H]
19 0000 @MAIN .SECTION 'CODE'
19 0000 _main PROC
19 0000 begin:
19 0000 0F0A MOV A,10
19 0001 0080 E MOV RH,A
19 0002 0F00 R MOV A,OFFSET CR5
19 0003 0081 MOV [01H],A
19 0004 0F01 MOV A,1
19 0005 0B00 R ADD A,OFFSET l_2
19 0006 0080 E MOV T2,A
19 0007 ASB32:
19 0007 0700 E MOV A,T2
19 0008 2000 R CALL l_2
19 0009 0080 MOV [00H],A
19 000A 1481 INC [01H]
19 000B 1480 E INC T2
19 000C 1780 E SDZ RH
19 000D 2800 R JMP ASB32
文件:MAIN.C 盛群编译器版本 2.86 页次2
文件:MAIN.c 盛群编译器版本 2.86 页次2
; 20: addr = 0x20;
20 000E 0F20 MOV A,020h
20 000F 0080 R MOV CR4,A
; 21: Init();
21 0010 2000 E CALL _Init
21 0011 2800 R JMP L4
21 0012 L3:
; 24: I2C_Write_N(10,addr,wr_data);
24 0012 0F0A MOV A,0ah
24 0013 0080 E MOV I2C_Write_N0,A
24 0014 0700 R MOV A,CR4
24 0015 0080 E MOV I2C_Write_N1,A
24 0016 0F00 R MOV A,OFFSET CR5
24 0017 0080 E MOV I2C_Write_N2,A
24 0018 2000 E CALL _I2C_Write_N
; 25: for(i=0; i<10; i++)
25 0019 1F00 R CLR CR1
25 001A 2800 R JMP L9
25 001B L6:
; 27: rd_data[i] = 0x00;
27 001B 0700 R MOV A,CR1
27 001C 0B00 R ADD A,OFFSET CR3
27 001D 0080 R MOV b0_1,A
27 001E 0700 R MOV A,b0_1
27 001F 0081 MOV [01H],A
27 0020 0F00 MOV A,00h
27 0021 0080 MOV [00H],A
27 0022 L7:
; 25: for(i=0; i<10; i++)
25 0022 1480 R INC CR1
25 0023 L9:
25 0023 0700 R MOV A,CR1
25 0024 0A0A SUB A,0ah
25 0025 380A SNZ [0ah].0
25 0026 2800 R JMP L6
; 29: I2C_Read_N(10,addr,rd_data);
29 0027 0F0A MOV A,0ah
29 0028 0080 E MOV I2C_Read_N0,A
29 0029 0700 R MOV A,CR4
29 002A 0080 E MOV I2C_Read_N1,A
29 002B 0F00 R MOV A,OFFSET CR3
29 002C 0080 E MOV I2C_Read_N2,A
29 002D 2000 E CALL _I2C_Read_N
; 33: for(i=0; i<10; i++)
33 002E 1F00 R CLR CR1
33 002F 2800 R JMP L13
33 0030 L10:
; 35: I2C_Start();
35 0030 2000 E CALL _I2C_Start
; 36: I2C_Write_Byte(0xa0); /*写控制字*/
文件:MAIN.c 盛群编译器版本 2.86 页次3
36 0031 0FA0 MOV A,0a0h
36 0032 0080 E MOV I2C_Write_Byte0,A
文件:MAIN.C 盛群编译器版本 2.86 页次3
36 0033 2000 E CALL _I2C_Write_Byte
; 37: ack = I2C_Ack(); /*ACK*/
37 0034 2000 E CALL _I2C_Ack
37 0035 0080 R MOV b0_1,A
37 0036 0700 R MOV A,b0_1
37 0037 1F00 R CLR b0_1
37 0038 1085 SZ [05H]
37 0039 3000 R SET b0_1.0
37 003A 3400 R CLR CR2
37 003B 1080 R SZ b0_1
37 003C 3000 R SET CR2
; 38: if(!ack)
38 003D 3C00 R SZ CR2
38 003E 2800 R JMP L14
; 40: I2C_Write_Byte(addr+i); /*写地址*/
40 003F 0700 R MOV A,CR4
40 0040 0300 R ADD A,CR1
40 0041 0080 R MOV b0_1,A
40 0042 0700 R MOV A,b0_1
40 0043 0080 E MOV I2C_Write_Byte0,A
40 0044 2000 E CALL _I2C_Write_Byte
; 41: ack = I2C_Ack(); /*ACK*/
41 0045 2000 E CALL _I2C_Ack
41 0046 0080 R MOV b0_1,A
41 0047 0700 R MOV A,b0_1
41 0048 1F00 R CLR b0_1
41 0049 1085 SZ [05H]
41 004A 3000 R SET b0_1.0
41 004B 3400 R CLR CR2
41 004C 1080 R SZ b0_1
41 004D 3000 R SET CR2
; 42: if(!ack)
42 004E 3C00 R SZ CR2
42 004F 2800 R JMP L16
; 44: I2C_Write_Byte(wr_data[i]); /*写数据*/
44 0050 0700 R MOV A,CR1
44 0051 0B00 R ADD A,OFFSET CR5
44 0052 0080 R MOV b0_1,A
44 0053 0700 R MOV A,b0_1
44 0054 0081 MOV [01H],A
44 0055 0700 MOV A,[00H]
44 0056 0080 R MOV b0_1,A
44 0057 0700 R MOV A,b0_1
44 0058 0080 E MOV I2C_Write_Byte0,A
44 0059 2000 E CALL _I2C_Write_Byte
; 45: ack = I2C_Ack(); /*ACK*/
45 005A 2000 E CALL _I2C_Ack
45 005B 0080 R MOV b0_1,A
45 005C 0700 R MOV A,b0_1
文件:MAIN.c 盛群编译器版本 2.86 页次4
45 005D 1F00 R CLR b0_1
45 005E 1085 SZ [05H]
45 005F 3000 R SET b0_1.0
45 0060 3400 R CLR CR2
45 0061 1080 R SZ b0_1
45 0062 3000 R SET CR2
; 46: I2C_Stop();
46 0063 2000 E CALL _I2C_Stop
46 0064 L16:
文件:MAIN.C 盛群编译器版本 2.86 页次4
46 0064 L14:
46 0064 L11:
; 33: for(i=0; i<10; i++)
33 0064 1480 R INC CR1
33 0065 L13:
33 0065 0700 R MOV A,CR1
33 0066 0A0A SUB A,0ah
33 0067 380A SNZ [0ah].0
33 0068 2800 R JMP L10
; 52: for(i=0; i<10; i++)
52 0069 1F00 R CLR CR1
52 006A 2800 R JMP L21
52 006B L18:
; 54: rd_data[i] = 0x00;
54 006B 0700 R MOV A,CR1
54 006C 0B00 R ADD A,OFFSET CR3
54 006D 0080 R MOV b0_1,A
54 006E 0700 R MOV A,b0_1
54 006F 0081 MOV [01H],A
54 0070 0F00 MOV A,00h
54 0071 0080 MOV [00H],A
54 0072 L19:
; 52: for(i=0; i<10; i++)
52 0072 1480 R INC CR1
52 0073 L21:
52 0073 0700 R MOV A,CR1
52 0074 0A0A SUB A,0ah
52 0075 380A SNZ [0ah].0
52 0076 2800 R JMP L18
; 58: for(i=0; i<10; i++)
58 0077 1F00 R CLR CR1
58 0078 2800 R JMP L25
58 0079 L22:
; 60: I2C_Start();
60 0079 2000 E CALL _I2C_Start
; 61: I2C_Write_Byte(0xa0); /*写控制字*/
61 007A 0FA0 MOV A,0a0h
61 007B 0080 E MOV I2C_Write_Byte0,A
61 007C 2000 E CALL _I2C_Write_Byte
; 62: ack = I2C_Ack(); /*ACK*/
文件:MAIN.c 盛群编译器版本 2.86 页次5
62 007D 2000 E CALL _I2C_Ack
62 007E 0080 R MOV b0_1,A
62 007F 0700 R MOV A,b0_1
62 0080 1F00 R CLR b0_1
62 0081 1085 SZ [05H]
62 0082 3000 R SET b0_1.0
62 0083 3400 R CLR CR2
62 0084 1080 R SZ b0_1
62 0085 3000 R SET CR2
; 63: if(!ack)
63 0086 3C00 R SZ CR2
63 0087 2800 R JMP L26
文件:MAIN.C 盛群编译器版本 2.86 页次5
; 65: I2C_Write_Byte(addr+i); /*写地址*/
65 0088 0700 R MOV A,CR4
65 0089 0300 R ADD A,CR1
65 008A 0080 R MOV b0_1,A
65 008B 0700 R MOV A,b0_1
65 008C 0080 E MOV I2C_Write_Byte0,A
65 008D 2000 E CALL _I2C_Write_Byte
; 66: ack = I2C_Ack(); /*ACK*/
66 008E 2000 E CALL _I2C_Ack
66 008F 0080 R MOV b0_1,A
66 0090 0700 R MOV A,b0_1
66 0091 1F00 R CLR b0_1
66 0092 1085 SZ [05H]
66 0093 3000 R SET b0_1.0
66 0094 3400 R CLR CR2
66 0095 1080 R SZ b0_1
66 0096 3000 R SET CR2
; 67: if(!ack)
67 0097 3C00 R SZ CR2
67 0098 2800 R JMP L28
; 69: I2C_Start();
69 0099 2000 E CALL _I2C_Start
; 70: I2C_Write_Byte(0xa1); /*写控制字读取当前地址数据*/
70 009A 0FA1 MOV A,0a1h
70 009B 0080 E MOV I2C_Write_Byte0,A
70 009C 2000 E CALL _I2C_Write_Byte
; 71: ack = I2C_Ack(); /*ACK*/
71 009D 2000 E CALL _I2C_Ack
71 009E 0080 R MOV b0_1,A
71 009F 0700 R MOV A,b0_1
71 00A0 1F00 R CLR b0_1
71 00A1 1085 SZ [05H]
71 00A2 3000 R SET b0_1.0
71 00A3 3400 R CLR CR2
71 00A4 1080 R SZ b0_1
71 00A5 3000 R SET CR2
; 72: if(!ack)
72 00A6 3C00 R SZ CR2
文件:MAIN.c 盛群编译器版本 2.86 页次6
72 00A7 2800 R JMP L30
; 74: rd_data[i] = I2C_Read_Byte();
74 00A8 2000 E CALL _I2C_Read_Byte
74 00A9 0080 R MOV b0_1,A
74 00AA 0700 R MOV A,CR1
74 00AB 0B00 R ADD A,OFFSET CR3
74 00AC 0080 R MOV b1_1,A
74 00AD 0700 R MOV A,b1_1
74 00AE 0081 MOV [01H],A
74 00AF 0700 R MOV A,b0_1
74 00B0 0080 MOV [00H],A
; 75: I2C_Stop();
75 00B1 2000 E CALL _I2C_Stop
75 00B2 L30:
75 00B2 L28:
75 00B2 L26:
75 00B2 L23:
; 58: for(i=0; i<10; i++)
文件:MAIN.C 盛群编译器版本 2.86 页次6
58 00B2 1480 R INC CR1
58 00B3 L25:
58 00B3 0700 R MOV A,CR1
58 00B4 0A0A SUB A,0ah
58 00B5 380A SNZ [0ah].0
58 00B6 2800 R JMP L22
58 00B7 L4:
; 22: while(1)
22 00B7 2800 R JMP L3
22 00B8 L1:
; 81: }
81 00B8 2800 R JMP $
81 0000 00 LOCAL b0_1 DB ?
81 0001 00 LOCAL b1_1 DB ?
; 17: uint8 i,rd_data[10],addr;
17 0002 00 LOCAL CR1 DB ? ; i
; 18: bit ack;
18 0003 00 LOCAL CR2 DBIT ; ack
; 17: uint8 i,rd_data[10],addr;
17 0004 000A[ LOCAL CR3 DB 10 DUP (?) ; rd_data
00
]
17 000E 00 LOCAL CR4 DB ? ; addr
; 19: uint8 wr_data[10] = {0x12,0x20,0x28,0xfe,0x16,0x45,0x98,0x73,0x55,0x01};
19 000F 000A[ LOCAL CR5 DB 10 DUP (?) ; wr_data
00
]
19 00B9 _main ENDP
19 00B9 EXTERN I2C_Write_Byte0:BYTE
19 00B9 EXTERN I2C_Read_N2:BYTE
19 00B9 EXTERN I2C_Read_N1:BYTE
文件:MAIN.c 盛群编译器版本 2.86 页次7
19 00B9 EXTERN I2C_Read_N0:BYTE
19 00B9 EXTERN I2C_Write_N2:BYTE
19 00B9 EXTERN I2C_Write_N1:BYTE
19 00B9 EXTERN I2C_Write_N0:BYTE
19 00B9 EXTERN _I2C_Read_N:NEAR
19 00B9 EXTERN _I2C_Write_N:NEAR
19 00B9 EXTERN _I2C_Ack:NEAR
19 00B9 EXTERN _I2C_Read_Byte:NEAR
19 00B9 EXTERN _I2C_Write_Byte:NEAR
19 00B9 EXTERN _I2C_Stop:NEAR
19 00B9 EXTERN _I2C_Start:NEAR
19 00B9 EXTERN _Init:NEAR
; 15: void main(void)
15 0000 STARTSEC .SECTION 'CODE'
15 0000 STARTUP:
15 0000 0003 RET
15 0001 EXTERN RH:BYTE
15 0001 EXTERN T2:BYTE
15 0000 @CODE .SECTION AT 0 'CODE'
15 0000 2800 R JMP begin
文件:MAIN.C 盛群编译器版本 2.86 页次7
15 0001 @DUMMY PROC
15 0001 2000 R CALL _main
15 0002 @DUMMY ENDP
15 0002 ROMBANK 0 @DUMMYNOP
15 0000 @DUMMYNOP .SECTION AT 07ffh 'CODE'
15 0000 0000 nop
0 Errors
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -