?? 24c01a.lis
字號:
.module _24C01A.c
.area text(rom, con, rel)
0000 .dbfile D:\24C01A/I2C.h
0000 .dbfunc e I2C_Init _I2C_Init fV
.even
0000 _I2C_Init::
0000 .dbline -1
0000 .dbline 85
0000 ;
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ; #include "I2C.h"
0000 ;
0000 ; void delay_1ms(void) //1ms延時函數
0000 ; {
0000 ; unsigned int i;
0000 ; for (i=0;i<1140;i++);
0000 ; }
0000 ;
0000 ; void main()
0000 ; {
0000 ; unsigned char temp1[8]={18,17,16,15,14,13,12,11};
0000 ; unsigned char temp2[8]={0};
0000 ; unsigned char temp3[6]={0};
0000 ; unsigned char i=0,*p;
0000 ;
0000 ; I2C_Init();
0000 ;
0000 ; I2C_Write_(0xa0,0,temp1,8);//一次寫入8個字節
0000 ; delay_1ms();
0000 ; delay_1ms();
0000 ;
0000 ; I2C_Read_(0xa0,0,temp2,8);//一次讀取8個字節
0000 ;
0000 ; for(i=10;i<16;i++) //循環6次,寫入6個字節
0000 ; {
0000 ; I2C_Write(0xa0,i,temp1[i-10]);
0000 ; delay_1ms(); //延時不可缺少
0000 ; //delay_1ms();
0000 ; }
0000 ;
0000 ; p=temp3;
0000 ; for(i=10;i<16;i++) //循環6次,讀取6個字節至temp3
0000 ; {I2C_Read(0xa0,i,p++);
0000 ; //delay_1ms();
0000 ; //delay_1ms();
0000 ; }
0000 ;
0000 ; while(1);
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 ; }
0000 .dbline 86
0000 ; }
0000 8FE0 ldi R24,15
0002 80B9 out 0x0,R24
0004 .dbline -2
0004 L1:
0004 .dbline 0 ; func end
0004 0895 ret
0006 .dbend
0006 .dbfunc e I2C_WaitINT _I2C_WaitINT fc
0006 ; i -> R16,R17
.even
0006 _I2C_WaitINT::
0006 .dbline -1
0006 .dbline 98
0006 ; }
0006 ; }
0006 ; }
0006 ; }
0006 ; }
0006 ; }
0006 ; }
0006 ; }
0006 ; }
0006 ; }
0006 ; }
0006 ; }
0006 .dbline 99
0006 ; }
0006 02E3 ldi R16,50
0008 10E0 ldi R17,0
000A 08C0 xjmp L4
000C L3:
000C .dbline 101
000C .dbline 101
000C C801 movw R24,R16
000E 0197 sbiw R24,1
0010 8C01 movw R16,R24
0012 0030 cpi R16,0
0014 0107 cpc R16,R17
0016 11F4 brne L6
0018 X0:
0018 .dbline 101
0018 0027 clr R16
001A 04C0 xjmp L2
001C L6:
001C .dbline 101
001C L4:
001C .dbline 100
001C ; }
001C 26B6 in R2,0x36
001E 27FE sbrs R2,7
0020 F5CF rjmp L3
0022 .dbline 102
0022 ; }
0022 ; }
0022 01E0 ldi R16,1
0024 .dbline -2
0024 L2:
0024 .dbline 0 ; func end
0024 0895 ret
0026 .dbsym r i 16 i
0026 .dbend
0026 .dbfunc e I2C_SendByte _I2C_SendByte fV
0026 ; x -> R16
.even
0026 _I2C_SendByte::
0026 .dbline -1
0026 .dbline 113
0026 ; }
0026 ; }
0026 ; }
0026 ; }
0026 ; }
0026 ; }
0026 ; }
0026 ; }
0026 ; }
0026 ; }
0026 ; }
0026 .dbline 114
0026 ; }
0026 03B9 out 0x3,R16
0028 .dbline 115
0028 ; }
0028 84E8 ldi R24,132
002A 86BF out 0x36,R24
002C .dbline -2
002C L8:
002C .dbline 0 ; func end
002C 0895 ret
002E .dbsym r x 16 c
002E .dbend
002E .dbfunc e I2C_Start _I2C_Start fc
.even
002E _I2C_Start::
002E .dbline -1
002E .dbline 126
002E ; }
002E ; }
002E ; }
002E ; }
002E ; }
002E ; }
002E ; }
002E ; }
002E ; }
002E ; }
002E ; }
002E .dbline 127
002E ; }
002E 84EA ldi R24,164
0030 86BF out 0x36,R24
0032 .dbline 128
0032 ; }
0032 E9DF xcall _I2C_WaitINT
0034 0023 tst R16
0036 11F4 brne L10
0038 .dbline 128
0038 0027 clr R16
003A 07C0 xjmp L9
003C L10:
003C .dbline 129
003C ; }
003C 81B1 in R24,0x1
003E 887F andi R24,248
0040 8830 cpi R24,8
0042 11F0 breq L12
0044 .dbline 130
0044 ; }
0044 0027 clr R16
0046 01C0 xjmp L9
0048 L12:
0048 .dbline 131
0048 ; }
0048 01E0 ldi R16,1
004A .dbline -2
004A L9:
004A .dbline 0 ; func end
004A 0895 ret
004C .dbend
004C .dbfunc e I2C_Restart _I2C_Restart fc
.even
004C _I2C_Restart::
004C .dbline -1
004C .dbline 142
004C ; }
004C ; }
004C ; }
004C ; }
004C ; }
004C ; }
004C ; }
004C ; }
004C ; }
004C ; }
004C ; }
004C .dbline 143
004C ; }
004C 84EA ldi R24,164
004E 86BF out 0x36,R24
0050 .dbline 144
0050 ; }
0050 DADF xcall _I2C_WaitINT
0052 0023 tst R16
0054 11F4 brne L15
0056 .dbline 144
0056 0027 clr R16
0058 07C0 xjmp L14
005A L15:
005A .dbline 145
005A ; }
005A 81B1 in R24,0x1
005C 887F andi R24,248
005E 8031 cpi R24,16
0060 11F0 breq L17
0062 .dbline 146
0062 ; }
0062 0027 clr R16
0064 01C0 xjmp L14
0066 L17:
0066 .dbline 147
0066 ; }
0066 01E0 ldi R16,1
0068 .dbline -2
0068 L14:
0068 .dbline 0 ; func end
0068 0895 ret
006A .dbend
006A .dbfunc e I2C_SendWrDAdr _I2C_SendWrDAdr fc
006A ; wrDAdr -> R20
.even
006A _I2C_SendWrDAdr::
006A 0E940000 xcall push_gset1
006E 402F mov R20,R16
0070 .dbline -1
0070 .dbline 158
0070 ; }
0070 ; }
0070 ; }
0070 ; }
0070 ; }
0070 ; }
0070 ; }
0070 ; }
0070 ; }
0070 ; }
0070 ; }
0070 .dbline 159
0070 ; }
0070 042F mov R16,R20
0072 D9DF xcall _I2C_SendByte
0074 .dbline 160
0074 ; }
0074 C8DF xcall _I2C_WaitINT
0076 0023 tst R16
0078 11F4 brne L20
007A .dbline 160
007A 0027 clr R16
007C 07C0 xjmp L19
007E L20:
007E .dbline 161
007E ; }
007E 81B1 in R24,0x1
0080 887F andi R24,248
0082 8831 cpi R24,24
0084 11F0 breq L22
0086 .dbline 162
0086 ; }
0086 0027 clr R16
0088 01C0 xjmp L19
008A L22:
008A .dbline 163
008A ; }
008A 01E0 ldi R16,1
008C .dbline -2
008C L19:
008C 0E940000 xcall pop_gset1
0090 .dbline 0 ; func end
0090 0895 ret
0092 .dbsym r wrDAdr 20 c
0092 .dbend
0092 .dbfunc e I2C_SendWrDAdr_ _I2C_SendWrDAdr_ fc
0092 ; wrDAdr -> R20,R21
.even
0092 _I2C_SendWrDAdr_::
0092 0E940000 xcall push_gset1
0096 A801 movw R20,R16
0098 .dbline -1
0098 .dbline 174
0098 ;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -