?? read_page.lis
字號(hào):
.module read_page.c
.area text(rom, con, rel)
0000 .dbfile D:\16實(shí)驗(yàn)程序\I2C讀寫24C04\連續(xù)讀\read_page.c
0000 .dbfile D:\16實(shí)驗(yàn)程序\I2C讀寫24C04\連續(xù)讀\i2c.h
0000 .dbfunc e i2c_init _i2c_init fV
.even
0000 _i2c_init::
0000 .dbline -1
0000 .dbline 5
0000 ; //從24c04連續(xù)讀出16個(gè)字節(jié)的程序
0000 ; //讀出數(shù)據(jù)通過led顯示
0000 ; #include<iom16v.h>
0000 ; #define uchar unsigned char
0000 ; #define uint unsigned int
0000 .dbline 6
0000 ; #include"i2c.h"
0000 9798 cbi 0x12,7
0002 .dbline 7
0002 ; uchar aa[16];
0002 81E0 ldi R24,1
0004 80B9 out 0x0,R24
0006 .dbline 8
0006 ;
0006 81B9 out 0x1,R24
0008 .dbline -2
0008 L1:
0008 .dbline 0 ; func end
0008 0895 ret
000A .dbend
000A .dbfunc e i2c_start _i2c_start fV
.even
000A _i2c_start::
000A .dbline -1
000A .dbline 14
000A ; //短延時(shí)函數(shù)
000A ; void s_ms(unsigned int t)
000A ; {
000A ; unsigned int i ;
000A ; for(;t>=1;t--)
000A ; {
000A .dbline 15
000A ; }
000A 84EA ldi R24,164
000C 86BF out 0x36,R24
000E L3:
000E .dbline 16
000E ; }
000E L4:
000E .dbline 16
000E 26B6 in R2,0x36
0010 27FE sbrs R2,7
0012 FDCF rjmp L3
0014 X0:
0014 .dbline -2
0014 L2:
0014 .dbline 0 ; func end
0014 0895 ret
0016 .dbend
0016 .dbfunc e i2c_wrdata _i2c_wrdata fV
0016 ; i2c_data -> R16
.even
0016 _i2c_wrdata::
0016 .dbline -1
0016 .dbline 22
0016 ;
0016 ; //寫一個(gè)字節(jié)
0016 ; main()
0016 ; {
0016 ; uchar i;
0016 ; DDRD=0xff;
0016 .dbline 23
0016 ; PORTD=0XFF;
0016 03B9 out 0x3,R16
0018 .dbline 24
0018 ; i2c_init(); //初始化
0018 84E8 ldi R24,132
001A 86BF out 0x36,R24
001C L7:
001C .dbline 25
001C ; i2c_rese(aa,0x00,16); //讀出16個(gè)字節(jié),起始地址0x00
001C L8:
001C .dbline 25
001C 26B6 in R2,0x36
001E 27FE sbrs R2,7
0020 FDCF rjmp L7
0022 X1:
0022 .dbline -2
0022 L6:
0022 .dbline 0 ; func end
0022 0895 ret
0024 .dbsym r i2c_data 16 c
0024 .dbend
0024 .dbfunc e i2c_redata _i2c_redata fc
0024 ; i2c_data -> R16
.even
0024 _i2c_redata::
0024 .dbline -1
0024 .dbline 31
0024 ; for(i=0;i<16;i++)
0024 ; {
0024 ; PORTD=~aa[i];
0024 ; s_ms(60000);
0024 ; s_ms(60000);
0024 ; s_ms(60000);
0024 .dbline 33
0024 ; s_ms(60000);
0024 ; s_ms(60000);
0024 84E8 ldi R24,132
0026 86BF out 0x36,R24
0028 L11:
0028 .dbline 34
0028 ; s_ms(60000);
0028 L12:
0028 .dbline 34
0028 26B6 in R2,0x36
002A 27FE sbrs R2,7
002C FDCF rjmp L11
002E X2:
002E .dbline 35
002E ; s_ms(60000);
002E 03B1 in R16,0x3
0030 .dbline 36
0030 ; s_ms(60000);
0030 .dbline -2
0030 L10:
0030 .dbline 0 ; func end
0030 0895 ret
0032 .dbsym r i2c_data 16 c
0032 .dbend
0032 .dbfunc e i2c_redataack _i2c_redataack fc
0032 ; i2c_data -> R16
.even
0032 _i2c_redataack::
0032 .dbline -1
0032 .dbline 41
0032 ; s_ms(60000);
0032 ; s_ms(60000);
0032 ; s_ms(60000);
0032 ; s_ms(60000);
0032 ; }
0032 .dbline 43
0032 ; }
0032 84EC ldi R24,196
0034 86BF out 0x36,R24
0036 L15:
0036 .dbline 44
0036 L16:
0036 .dbline 44
0036 26B6 in R2,0x36
0038 27FE sbrs R2,7
003A FDCF rjmp L15
003C X3:
003C .dbline 45
003C 03B1 in R16,0x3
003E .dbline 46
003E .dbline -2
003E L14:
003E .dbline 0 ; func end
003E 0895 ret
0040 .dbsym r i2c_data 16 c
0040 .dbend
0040 .dbfunc e i2c_stop _i2c_stop fV
.even
0040 _i2c_stop::
0040 .dbline -1
0040 .dbline 53
0040 .dbline 54
0040 84E9 ldi R24,148
0042 86BF out 0x36,R24
0044 .dbline -2
0044 L18:
0044 .dbline 0 ; func end
0044 0895 ret
0046 .dbend
0046 .dbfunc e i2c_wrbyte _i2c_wrbyte fV
0046 ; i2c_add -> R12
0046 ; i2c_data -> R10
.even
0046 _i2c_wrbyte::
0046 AA92 st -y,R10
0048 CA92 st -y,R12
004A C22E mov R12,R18
004C A02E mov R10,R16
004E .dbline -1
004E .dbline 59
004E L20:
004E .dbline 61
004E .dbline 62
004E DDDF xcall _i2c_start
0050 .dbline 63
0050 00EA ldi R16,160
0052 E1DF xcall _i2c_wrdata
0054 .dbline 64
0054 L21:
0054 .dbline 65
0054 81B1 in R24,0x1
0056 887F andi R24,248
0058 8831 cpi R24,24
005A C9F7 brne L20
005C X4:
005C .dbline 67
005C 0C2D mov R16,R12
005E DBDF xcall _i2c_wrdata
0060 .dbline 68
0060 0A2D mov R16,R10
0062 D9DF xcall _i2c_wrdata
0064 .dbline 69
0064 EDDF xcall _i2c_stop
0066 .dbline -2
0066 L19:
0066 .dbline 0 ; func end
0066 C990 ld R12,y+
0068 A990 ld R10,y+
006A 0895 ret
006C .dbsym r i2c_add 12 c
006C .dbsym r i2c_data 10 c
006C .dbend
006C .dbfunc e i2c_wrpage _i2c_wrpage fV
006C ; i -> R10
006C ; i2c_nub -> y+4
006C ; i2c_add -> R10
006C ; i2c_data -> R12,R13
.even
006C _i2c_wrpage::
006C 0E940000 xcall push_xgset003C
0070 A22E mov R10,R18
0072 6801 movw R12,R16
0074 .dbline -1
0074 .dbline 77
0074 L24:
0074 .dbline 80
0074 .dbline 81
0074 CADF xcall _i2c_start
0076 .dbline 82
0076 00EA ldi R16,160
0078 CEDF xcall _i2c_wrdata
007A .dbline 83
007A L25:
007A .dbline 84
007A 81B1 in R24,0x1
007C 887F andi R24,248
007E 8831 cpi R24,24
0080 C9F7 brne L24
0082 X5:
0082 .dbline 86
0082 0A2D mov R16,R10
0084 C8DF xcall _i2c_wrdata
0086 .dbline 87
0086 AA24 clr R10
0088 05C0 xjmp L30
008A L27:
008A .dbline 88
008A .dbline 89
008A F601 movw R30,R12
008C 0191 ld R16,Z+
008E 6F01 movw R12,R30
0090 C2DF xcall _i2c_wrdata
0092 .dbline 90
0092 L28:
0092 .dbline 87
0092 A394 inc R10
0094 L30:
0094 .dbline 87
0094 0C80 ldd R0,y+4
0096 A014 cp R10,R0
0098 C0F3 brlo L27
009A X6:
009A .dbline 91
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -