📄 24c01.lis
字号:
.module _24c01.c
.area text(rom, con, rel)
0000 .dbfile F:\yyjapp\yymk\software\24c01.c
0000 .dbfunc e mDelay _mDelay fV
0000 ; ll -> R20,R21
0000 ; i -> R22,R23
0000 ; j -> R16
.even
0000 _mDelay::
0000 0E940000 xcall push_gset2
0004 .dbline -1
0004 .dbline 7
0004 ; #include <f:\yyjapp\yymk\software\main.h>
0004 ; #include <f:\yyjapp\yymk\software\24c01.h>
0004 ; #include <iom128v.h>
0004 ; #include <macros.h> /* hardware write protect*/
0004 ;
0004 ; void mDelay(unsigned char j)
0004 ; {
0004 .dbline 9
0004 ; unsigned int i,ll;
0004 ; for(ll=0;ll<j;ll++)
0004 4427 clr R20
0006 5527 clr R21
0008 0BC0 xjmp L5
000A L2:
000A .dbline 10
000A ; {
000A .dbline 11
000A ; for(i=0;i<125;i--)
000A 6627 clr R22
000C 7727 clr R23
000E 02C0 xjmp L9
0010 L6:
0010 .dbline 12
0010 .dbline 12
0010 .dbline 12
0010 L7:
0010 .dbline 11
0010 6150 subi R22,1
0012 7040 sbci R23,0
0014 L9:
0014 .dbline 11
0014 6D37 cpi R22,125
0016 E0E0 ldi R30,0
0018 7E07 cpc R23,R30
001A D0F3 brlo L6
001C .dbline 13
001C L3:
001C .dbline 9
001C 4F5F subi R20,255 ; offset = 1
001E 5F4F sbci R21,255
0020 L5:
0020 .dbline 9
0020 202E mov R2,R16
0022 3324 clr R3
0024 4215 cp R20,R2
0026 5305 cpc R21,R3
0028 80F3 brlo L2
002A .dbline -2
002A L1:
002A 0E940000 xcall pop_gset2
002E .dbline 0 ; func end
002E 0895 ret
0030 .dbsym r ll 20 i
0030 .dbsym r i 22 i
0030 .dbsym r j 16 c
0030 .dbend
0030 .dbfunc e Start _Start fV
0030 ; i -> R16
.even
0030 _Start::
0030 .dbline -1
0030 .dbline 17
0030 ; {;}
0030 ; }
0030 ; }
0030 ;
0030 ; void Start(void)
0030 ; {
0030 .dbline 19
0030 ; unsigned char i;
0030 ; SET_SDA();
0030 8998 cbi 0x11,1
0032 .dbline 21
0032 0027 clr R16
0034 01C0 xjmp L14
0036 L11:
0036 .dbline 21
0036 L12:
0036 .dbline 21
0036 0395 inc R16
0038 L14:
0038 .dbline 21
0038 ; // SET_SCL();
0038 ; for(i=0;i<10;i++);
0038 0A30 cpi R16,10
003A E8F3 brlo L11
003C .dbline 22
003C ; CLEAR_SDA();
003C 899A sbi 0x11,1
003E .dbline 23
003E 0027 clr R16
0040 01C0 xjmp L18
0042 L15:
0042 .dbline 23
0042 L16:
0042 .dbline 23
0042 0395 inc R16
0044 L18:
0044 .dbline 23
0044 ; for(i=0;i<10;i++);
0044 0A30 cpi R16,10
0046 E8F3 brlo L15
0048 .dbline -2
0048 L10:
0048 .dbline 0 ; func end
0048 0895 ret
004A .dbsym r i 16 c
004A .dbend
004A .dbfunc e Stop _Stop fV
004A ; i -> R16
.even
004A _Stop::
004A .dbline -1
004A .dbline 27
004A ; }
004A ;
004A ; void Stop(void)
004A ; {
004A .dbline 29
004A ; unsigned char i;
004A ; CLEAR_SDA();
004A 899A sbi 0x11,1
004C .dbline 31
004C 0027 clr R16
004E 01C0 xjmp L23
0050 L20:
0050 .dbline 31
0050 L21:
0050 .dbline 31
0050 0395 inc R16
0052 L23:
0052 .dbline 31
0052 ; // SET_SCL();
0052 ; for(i=0;i<10;i++);
0052 0A30 cpi R16,10
0054 E8F3 brlo L20
0056 .dbline 32
0056 ; SET_SDA();
0056 8998 cbi 0x11,1
0058 .dbline 33
0058 0027 clr R16
005A 01C0 xjmp L27
005C L24:
005C .dbline 33
005C L25:
005C .dbline 33
005C 0395 inc R16
005E L27:
005E .dbline 33
005E ; for(i=0;i<10;i++);
005E 0A30 cpi R16,10
0060 E8F3 brlo L24
0062 .dbline -2
0062 L19:
0062 .dbline 0 ; func end
0062 0895 ret
0064 .dbsym r i 16 c
0064 .dbend
0064 .dbfunc e Ack _Ack fV
0064 ; i -> R16
.even
0064 _Ack::
0064 .dbline -1
0064 .dbline 37
0064 ; }
0064 ;
0064 ; void Ack(void) /*answer bit*/
0064 ; {
0064 .dbline 39
0064 ; unsigned char i;
0064 ; CLEAR_SDA();
0064 899A sbi 0x11,1
0066 .dbline 40
0066 0027 clr R16
0068 01C0 xjmp L32
006A L29:
006A .dbline 40
006A L30:
006A .dbline 40
006A 0395 inc R16
006C L32:
006C .dbline 40
006C ; for(i=0;i<10;i++);
006C 0A30 cpi R16,10
006E E8F3 brlo L29
0070 .dbline -2
0070 L28:
0070 .dbline 0 ; func end
0070 0895 ret
0072 .dbsym r i 16 c
0072 .dbend
0072 .dbfunc e NoAck _NoAck fV
0072 ; i -> R16
.even
0072 _NoAck::
0072 .dbline -1
0072 .dbline 46
0072 ; // SET_SCL();
0072 ; // for(i=0;i<10;i++);
0072 ; // CLEAR_SCL();
0072 ; }
0072 ; void NoAck(void) /*backfard answer bit*/
0072 ; {
0072 .dbline 48
0072 ; unsigned char i;
0072 ; SET_SDA();
0072 8998 cbi 0x11,1
0074 .dbline 49
0074 0027 clr R16
0076 01C0 xjmp L37
0078 L34:
0078 .dbline 49
0078 L35:
0078 .dbline 49
0078 0395 inc R16
007A L37:
007A .dbline 49
007A ; for(i=0;i<10;i++);
007A 0A30 cpi R16,10
007C E8F3 brlo L34
007E .dbline -2
007E L33:
007E .dbline 0 ; func end
007E 0895 ret
0080 .dbsym r i 16 c
0080 .dbend
0080 .dbfunc e Send _Send fV
0080 ; j -> R20
0080 ; i -> R22
0080 ; Data -> R16
.even
0080 _Send::
0080 0E940000 xcall push_gset2
0084 .dbline -1
0084 .dbline 56
0084 ; // SET_SCL();
0084 ; // for(i=0;i<10;i++);
0084 ; // CLEAR_SCL();
0084 ; }
0084 ;
0084 ; void Send(unsigned char Data) /*send data sub ,data for send of data*/
0084 ; {
0084 .dbline 59
0084 ; unsigned char j,i; /*bit counter control*/
0084 ; // unsigned char temp; /*middle var control*/
0084 ; for(j=0;j<8;j++)
0084 4427 clr R20
0086 0EC0 xjmp L42
0088 L39:
0088 .dbline 60
0088 ; {
0088 .dbline 62
0088 6627 clr R22
008A 01C0 xjmp L46
008C L43:
008C .dbline 62
008C L44:
008C .dbline 62
008C 6395 inc R22
008E L46:
008E .dbline 62
008E ; // CLEAR_SCL();
008E ; for(i=0;i<10;i++);
008E 6A30 cpi R22,10
0090 E8F3 brlo L43
0092 .dbline 63
0092 ; if((Data&0x80)==0x80)
0092 802F mov R24,R16
0094 8078 andi R24,128
0096 8038 cpi R24,128
0098 11F4 brne L47
009A .dbline 64
009A ; SET_SDA();
009A 8998 cbi 0x11,1
009C 01C0 xjmp L48
009E L47:
009E .dbline 66
009E ; else
009E ; CLEAR_SDA();
009E 899A sbi 0x11,1
00A0 L48:
00A0 .dbline 68
00A0 000F lsl R16
00A2 .dbline 69
00A2 L40:
00A2 .dbline 59
00A2 4395 inc R20
00A4 L42:
00A4 .dbline 59
00A4 4830 cpi R20,8
00A6 80F3 brlo L39
00A8 .dbline -2
00A8 L38:
00A8 0E940000 xcall pop_gset2
00AC .dbline 0 ; func end
00AC 0895 ret
00AE .dbsym r j 20 c
00AE .dbsym r i 22 c
00AE .dbsym r Data 16 c
00AE .dbend
00AE .dbfunc e Read _Read fc
00AE ; j -> R16
00AE ; temp -> R18
00AE ; i -> R20
.even
00AE _Read::
00AE 0E940000 xcall push_gset1
00B2 .dbline -1
00B2 .dbline 74
00B2 ; // SET_SCL();
00B2 ; Data=Data<<1;
00B2 ; }
00B2 ; // CLEAR_SCL();
00B2 ; }
00B2 ;
00B2 ; unsigned char Read(void) /* read a byte of data ,and return this data*/
00B2 ; {
00B2 .dbline 77
00B2 ; unsigned char temp,i;
00B2 ; unsigned char j;
00B2 ; SET_SDA();
00B2 8998 cbi 0x11,1
00B4 .dbline 78
00B4 ; for(j=0;j<8;j++)
00B4 0027 clr R16
00B6 11C0 xjmp L53
00B8 L50:
00B8 .dbline 79
00B8 ; {
00B8 .dbline 80
00B8 ; temp<<=1;
00B8 220F lsl R18
00BA .dbline 82
00BA 4427 clr R20
00BC 01C0 xjmp L57
00BE L54:
00BE .dbline 82
00BE L55:
00BE .dbline 82
00BE 4395 inc R20
00C0 L57:
00C0 .dbline 82
00C0 ; // CLEAR_SCL();
00C0 ; for(i=0;i<10;i++);
00C0 4A30 cpi R20,10
00C2 E8F3 brlo L54
00C4 .dbline 84
00C4 4427 clr R20
00C6 01C0 xjmp L61
00C8 L58:
00C8 .dbline 84
00C8 L59:
00C8 .dbline 84
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -