📄 26l.lis
字号:
0092 10E0 ldi R17,0
0094 B5DF rcall _delayus
0096 .dbline 78
0096 BA9A sbi 0x17,2
0098 .dbline 78
0098 C29A sbi 0x18,2
009A .dbline 78
009A .dbline 78
009A 01E0 ldi R16,1
009C 10E0 ldi R17,0
009E B0DF rcall _delayus
00A0 .dbline 78
00A0 B89A sbi 0x17,0
00A2 .dbline 78
00A2 C09A sbi 0x18,0
00A4 .dbline 78
00A4 .dbline 78
00A4 01E0 ldi R16,1
00A6 10E0 ldi R17,0
00A8 ABDF rcall _delayus
00AA .dbline -2
00AA L15:
00AA .dbline 0 ; func end
00AA 0895 ret
00AC .dbend
00AC .dbfunc e writex _writex fV
00AC ; i -> R20
00AC ; temp -> R22
00AC ; j -> R20
.even
00AC _writex::
00AC 00D0 rcall push_gset2
00AE 402F mov R20,R16
00B0 .dbline -1
00B0 .dbline 81
00B0 ; }
00B0 ; void writex(uchar j)
00B0 ; {
00B0 .dbline 83
00B0 ; uchar i,temp;
00B0 ; temp=j;
00B0 642F mov R22,R20
00B2 .dbline 84
00B2 4427 clr R20
00B4 16C0 rjmp L20
00B6 L17:
00B6 .dbline 84
00B6 ; for (i=0;i<8;i++){
00B6 .dbline 85
00B6 ; scl0; delayus(1);
00B6 BA9A sbi 0x17,2
00B8 .dbline 85
00B8 C298 cbi 0x18,2
00BA .dbline 85
00BA .dbline 85
00BA 01E0 ldi R16,1
00BC 10E0 ldi R17,0
00BE A0DF rcall _delayus
00C0 .dbline 86
00C0 ; if((temp&0x80)==0){sda0;}
00C0 67FD sbrc R22,7
00C2 03C0 rjmp L21
00C4 .dbline 86
00C4 .dbline 86
00C4 B89A sbi 0x17,0
00C6 .dbline 86
00C6 C098 cbi 0x18,0
00C8 .dbline 86
00C8 .dbline 86
00C8 02C0 rjmp L22
00CA L21:
00CA .dbline 87
00CA ; else{sda1;}
00CA .dbline 87
00CA B89A sbi 0x17,0
00CC .dbline 87
00CC C09A sbi 0x18,0
00CE .dbline 87
00CE .dbline 87
00CE L22:
00CE .dbline 88
00CE 01E0 ldi R16,1
00D0 10E0 ldi R17,0
00D2 96DF rcall _delayus
00D4 .dbline 88
00D4 BA9A sbi 0x17,2
00D6 .dbline 88
00D6 C29A sbi 0x18,2
00D8 .dbline 88
00D8 .dbline 88
00D8 01E0 ldi R16,1
00DA 10E0 ldi R17,0
00DC 91DF rcall _delayus
00DE .dbline 89
00DE 660F lsl R22
00E0 .dbline 90
00E0 L18:
00E0 .dbline 84
00E0 4395 inc R20
00E2 L20:
00E2 .dbline 84
00E2 4830 cpi R20,8
00E4 40F3 brlo L17
00E6 .dbline 91
00E6 ; delayus(1); scl1; delayus(1);
00E6 ; temp=temp<<1;
00E6 ; }
00E6 ; scl0; delayus(1); sda1; delayus(1);
00E6 BA9A sbi 0x17,2
00E8 .dbline 91
00E8 C298 cbi 0x18,2
00EA .dbline 91
00EA .dbline 91
00EA 01E0 ldi R16,1
00EC 10E0 ldi R17,0
00EE 88DF rcall _delayus
00F0 .dbline 91
00F0 B89A sbi 0x17,0
00F2 .dbline 91
00F2 C09A sbi 0x18,0
00F4 .dbline 91
00F4 .dbline 91
00F4 01E0 ldi R16,1
00F6 10E0 ldi R17,0
00F8 83DF rcall _delayus
00FA .dbline -2
00FA L16:
00FA 00D0 rcall pop_gset2
00FC .dbline 0 ; func end
00FC 0895 ret
00FE .dbsym r i 20 c
00FE .dbsym r temp 22 c
00FE .dbsym r j 20 c
00FE .dbend
00FE .dbfunc e readx _readx fc
00FE ; j -> R20
00FE ; i -> R22
00FE ; k -> R10
.even
00FE _readx::
00FE 00D0 rcall push_gset3
0100 .dbline -1
0100 .dbline 95
0100 ; }
0100 ;
0100 ; unsigned char readx(void)
0100 ; {
0100 .dbline 96
0100 ; uchar i,j,k=0;
0100 AA24 clr R10
0102 .dbline 97
0102 ; scl0; delayus(1); sda1;
0102 BA9A sbi 0x17,2
0104 .dbline 97
0104 C298 cbi 0x18,2
0106 .dbline 97
0106 .dbline 97
0106 01E0 ldi R16,1
0108 10E0 ldi R17,0
010A 7ADF rcall _delayus
010C .dbline 97
010C B89A sbi 0x17,0
010E .dbline 97
010E C09A sbi 0x18,0
0110 .dbline 97
0110 .dbline 98
0110 6627 clr R22
0112 16C0 rjmp L27
0114 L24:
0114 .dbline 98
0114 ; for (i=0;i<8;i++){
0114 .dbline 99
0114 ; delayus(1); scl1; delayus(1);
0114 01E0 ldi R16,1
0116 10E0 ldi R17,0
0118 73DF rcall _delayus
011A .dbline 99
011A BA9A sbi 0x17,2
011C .dbline 99
011C C29A sbi 0x18,2
011E .dbline 99
011E .dbline 99
011E 01E0 ldi R16,1
0120 10E0 ldi R17,0
0122 6EDF rcall _delayus
0124 .dbline 100
0124 ; sdawei;
0124 B898 cbi 0x17,0
0126 .dbline 100
0126 C09A sbi 0x18,0
0128 .dbline 100
0128 .dbline 101
0128 ; if ((PINB&0X01)==0){j=0;}
0128 B099 sbic 0x16,0
012A 02C0 rjmp L28
012C .dbline 101
012C .dbline 101
012C 4427 clr R20
012E .dbline 101
012E 01C0 rjmp L29
0130 L28:
0130 .dbline 102
0130 ; else {j=1;}
0130 .dbline 102
0130 41E0 ldi R20,1
0132 .dbline 102
0132 L29:
0132 .dbline 103
0132 2A2C mov R2,R10
0134 220C lsl R2
0136 242A or R2,R20
0138 A22C mov R10,R2
013A .dbline 103
013A BA9A sbi 0x17,2
013C .dbline 103
013C C298 cbi 0x18,2
013E .dbline 103
013E .dbline 104
013E L25:
013E .dbline 98
013E 6395 inc R22
0140 L27:
0140 .dbline 98
0140 6830 cpi R22,8
0142 40F3 brlo L24
0144 .dbline 105
0144 ; k=(k<<1)|j; scl0;
0144 ; }
0144 ; delayus(1); return(k);
0144 01E0 ldi R16,1
0146 10E0 ldi R17,0
0148 5BDF rcall _delayus
014A .dbline 105
014A 0A2D mov R16,R10
014C .dbline -2
014C L23:
014C 00D0 rcall pop_gset3
014E .dbline 0 ; func end
014E 0895 ret
0150 .dbsym r j 20 c
0150 .dbsym r i 22 c
0150 .dbsym r k 10 c
0150 .dbend
0150 .dbfunc e clock _clock fV
0150 ; i -> R20
.even
0150 _clock::
0150 00D0 rcall push_gset1
0152 .dbline -1
0152 .dbline 109
0152 ; }
0152 ;
0152 ; void clock()
0152 ; {
0152 .dbline 110
0152 ; uchar i=0;
0152 4427 clr R20
0154 .dbline 111
0154 ; scl1; delayus(1);
0154 BA9A sbi 0x17,2
0156 .dbline 111
0156 C29A sbi 0x18,2
0158 .dbline 111
0158 .dbline 111
0158 01E0 ldi R16,1
015A 10E0 ldi R17,0
015C 51DF rcall _delayus
015E .dbline 112
015E ; sdawei;
015E B898 cbi 0x17,0
0160 .dbline 112
0160 C09A sbi 0x18,0
0162 .dbline 112
0162 03C0 rjmp L32
0164 L31:
0164 .dbline 113
0164 .dbline 113
0164 4395 inc R20
0166 .dbline 113
0166 B898 cbi 0x17,0
0168 .dbline 113
0168 C09A sbi 0x18,0
016A .dbline 113
016A .dbline 113
016A L32:
016A .dbline 113
016A ; while ((PINB&0X01!=0)&&(i<255)){i++;sdawei;}
016A B09B sbis 0x16,0
016C 02C0 rjmp L34
016E 4F3F cpi R20,255
0170 C8F3 brlo L31
0172 L34:
0172 .dbline 114
0172 ; scl0; delayus(1);
0172 BA9A sbi 0x17,2
0174 .dbline 114
0174 C298 cbi 0x18,2
0176 .dbline 114
0176 .dbline 114
0176 01E0 ldi R16,1
0178 10E0 ldi R17,0
017A 42DF rcall _delayus
017C .dbline -2
017C L30:
017C 00D0 rcall pop_gset1
017E .dbline 0 ; func end
017E 0895 ret
0180 .dbsym r i 20 c
0180 .dbend
0180 .dbfunc e x24c02_read _x24c02_read fc
0180 ; i -> R20
0180 ; address -> R20
.even
0180 _x24c02_read::
0180 00D0 rcall push_gset1
0182 402F mov R20,R16
0184 .dbline -1
0184 .dbline 117
0184 ; }
0184 ; uchar x24c02_read(uchar address)
0184 ; {
0184 .dbline 119
0184 ; uchar i;
0184 ; start(); writex(0xa0);
0184 6EDF rcall _start
0186 .dbline 119
0186 00EA ldi R16,160
0188 91DF rcall _writex
018A .dbline 120
018A ; clock(); writex(address);
018A E2DF rcall _clock
018C .dbline 120
018C 042F mov R16,R20
018E 8EDF rcall _writex
0190 .dbline 121
0190 ; clock(); start();
0190 DFDF rcall _clock
0192 .dbline 121
0192 67DF rcall _start
0194 .dbline 122
0194 ; writex(0xa1); clock();
0194 01EA ldi R16,161
0196 8ADF rcall _writex
0198 .dbline 122
0198 DBDF rcall _clock
019A .dbline 123
019A ; i=readx(); stop();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -