📄 12232.lis
字号:
00BE A19A sbi 0x14,1
00C0 .dbline 89
00C0 ; OUTMI(0XAE);
00C0 0EEA ldi R16,174
00C2 C9DF rcall _OUTMI
00C4 .dbline 90
00C4 ; OUTMI(0XC0);
00C4 00EC ldi R16,192
00C6 C7DF rcall _OUTMI
00C8 .dbline 91
00C8 ; OUTMI(0XA0);
00C8 00EA ldi R16,160
00CA C5DF rcall _OUTMI
00CC .dbline 92
00CC ; OUTMI(0XA4);
00CC 04EA ldi R16,164
00CE C3DF rcall _OUTMI
00D0 .dbline 93
00D0 ; OUTMI(0XA9);
00D0 09EA ldi R16,169
00D2 C1DF rcall _OUTMI
00D4 .dbline 94
00D4 ; OUTMI(0XAF);
00D4 0FEA ldi R16,175
00D6 BFDF rcall _OUTMI
00D8 .dbline 96
00D8 ;
00D8 ; OUTSI(0XAE);
00D8 0EEA ldi R16,174
00DA D9DF rcall _OUTSI
00DC .dbline 97
00DC ; OUTSI(0XC0);
00DC 00EC ldi R16,192
00DE D7DF rcall _OUTSI
00E0 .dbline 98
00E0 ; OUTSI(0XA0);
00E0 00EA ldi R16,160
00E2 D5DF rcall _OUTSI
00E4 .dbline 99
00E4 ; OUTSI(0XA4);
00E4 04EA ldi R16,164
00E6 D3DF rcall _OUTSI
00E8 .dbline 100
00E8 ; OUTSI(0XA9);
00E8 09EA ldi R16,169
00EA D1DF rcall _OUTSI
00EC .dbline 101
00EC ; OUTSI(0XAF);
00EC 0FEA ldi R16,175
00EE CFDF rcall _OUTSI
00F0 .dbline -2
00F0 L23:
00F0 .dbline 0 ; func end
00F0 0895 ret
00F2 .dbend
00F2 .dbfunc e SetPage _SetPage fV
00F2 ; page1 -> R20
00F2 ; page0 -> R22
.even
00F2 _SetPage::
00F2 00D0 rcall push_gset2
00F4 422F mov R20,R18
00F6 602F mov R22,R16
00F8 .dbline -1
00F8 .dbline 106
00F8 ; }
00F8 ;
00F8 ;
00F8 ; void SetPage(uint8 page0,uint8 page1)
00F8 ; {
00F8 .dbline 107
00F8 ; OUTMI(0xB8|page0);
00F8 062F mov R16,R22
00FA 086B ori R16,184
00FC ACDF rcall _OUTMI
00FE .dbline 108
00FE ; OUTSI(0xB8|page1);
00FE 042F mov R16,R20
0100 086B ori R16,184
0102 C5DF rcall _OUTSI
0104 .dbline -2
0104 L24:
0104 00D0 rcall pop_gset2
0106 .dbline 0 ; func end
0106 0895 ret
0108 .dbsym r page1 20 c
0108 .dbsym r page0 22 c
0108 .dbend
0108 .dbfunc e SetAddress _SetAddress fV
0108 ; address1 -> R20
0108 ; address0 -> R22
.even
0108 _SetAddress::
0108 00D0 rcall push_gset2
010A 422F mov R20,R18
010C 602F mov R22,R16
010E .dbline -1
010E .dbline 112
010E ; }
010E ;
010E ; void SetAddress(uint8 address0,uint8 address1)
010E ; {
010E .dbline 113
010E ; OUTMI(address0);
010E 062F mov R16,R22
0110 A2DF rcall _OUTMI
0112 .dbline 114
0112 ; OUTSI(address1);
0112 042F mov R16,R20
0114 BCDF rcall _OUTSI
0116 .dbline -2
0116 L25:
0116 00D0 rcall pop_gset2
0118 .dbline 0 ; func end
0118 0895 ret
011A .dbsym r address1 20 c
011A .dbsym r address0 22 c
011A .dbend
011A .dbfunc e PutCharR _PutCharR fV
011A ; ch -> R20
.even
011A _PutCharR::
011A 00D0 rcall push_gset1
011C 402F mov R20,R16
011E .dbline -1
011E .dbline 118
011E ; }
011E ;
011E ; void PutCharR(uint8 ch)
011E ; {
011E .dbline 119
011E ; OUTSD(ch);
011E 042F mov R16,R20
0120 A8DF rcall _OUTSD
0122 .dbline -2
0122 L26:
0122 00D0 rcall pop_gset1
0124 .dbline 0 ; func end
0124 0895 ret
0126 .dbsym r ch 20 c
0126 .dbend
0126 .dbfunc e PutCharL _PutCharL fV
0126 ; ch -> R20
.even
0126 _PutCharL::
0126 00D0 rcall push_gset1
0128 402F mov R20,R16
012A .dbline -1
012A .dbline 123
012A ; }
012A ;
012A ; void PutCharL(uint8 ch)
012A ; {
012A .dbline 124
012A ; OUTMD(ch);
012A 042F mov R16,R20
012C 86DF rcall _OUTMD
012E .dbline -2
012E L27:
012E 00D0 rcall pop_gset1
0130 .dbline 0 ; func end
0130 0895 ret
0132 .dbsym r ch 20 c
0132 .dbend
0132 .dbfunc e clrscr _clrscr fV
0132 ; page -> R20
0132 ; i -> R22
.even
0132 _clrscr::
0132 00D0 rcall push_gset2
0134 .dbline -1
0134 .dbline 128
0134 ; }
0134 ;
0134 ; void clrscr(void)
0134 ; {
0134 .dbline 131
0134 ; uint8 i;
0134 ; uint8 page;
0134 ; for (page=0;page<4;page++)
0134 4427 clr R20
0136 10C0 rjmp L32
0138 L29:
0138 .dbline 132
0138 ; {
0138 .dbline 133
0138 ; SetPage(page,page);
0138 242F mov R18,R20
013A 042F mov R16,R20
013C DADF rcall _SetPage
013E .dbline 134
013E ; for (i=0;i<61;i++)
013E 6627 clr R22
0140 08C0 rjmp L36
0142 L33:
0142 .dbline 135
0142 .dbline 136
0142 262F mov R18,R22
0144 062F mov R16,R22
0146 E0DF rcall _SetAddress
0148 .dbline 137
0148 0027 clr R16
014A EDDF rcall _PutCharL
014C .dbline 138
014C 0027 clr R16
014E E5DF rcall _PutCharR
0150 .dbline 139
0150 L34:
0150 .dbline 134
0150 6395 inc R22
0152 L36:
0152 .dbline 134
0152 6D33 cpi R22,61
0154 B0F3 brlo L33
0156 .dbline 140
0156 L30:
0156 .dbline 131
0156 4395 inc R20
0158 L32:
0158 .dbline 131
0158 4430 cpi R20,4
015A 70F3 brlo L29
015C .dbline -2
015C L28:
015C 00D0 rcall pop_gset2
015E .dbline 0 ; func end
015E 0895 ret
0160 .dbsym r page 20 c
0160 .dbsym r i 22 c
0160 .dbend
0160 .dbfunc e lcd_init _lcd_init fV
.even
0160 _lcd_init::
0160 .dbline -1
0160 .dbline 143
0160 ; {
0160 ; SetAddress(i,i);
0160 ; PutCharL(0x00);
0160 ; PutCharR(0x00);
0160 ; }
0160 ; }
0160 ; }
0160 ; void lcd_init(void)
0160 ; {
0160 .dbline 144
0160 ; lcdini(); //reset
0160 A4DF rcall _lcdini
0162 .dbline 145
0162 ; clrscr(); //clr
0162 E7DF rcall _clrscr
0164 .dbline 146
0164 ; clrscr();
0164 E6DF rcall _clrscr
0166 .dbline -2
0166 L37:
0166 .dbline 0 ; func end
0166 0895 ret
0168 .dbend
0168 .dbfunc e get_location _get_location fi
0168 ; i -> <dead>
0168 ; temp2 -> R10,R11
0168 ; start -> y+4
0168 ; temp1 -> R12,R13
0168 ; location -> y+0
0168 ; data2 -> R10
0168 ; data1 -> R12
.even
0168 _get_location::
0168 00D0 rcall push_gset4
016A A22E mov R10,R18
016C C02E mov R12,R16
016E 2897 sbiw R28,8
0170 .dbline -1
0170 .dbline 149
0170 ; }
0170 ; uint16 get_location(uint8 data1,uint8 data2)
0170 ; {
0170 .dbline 154
0170 ; uint8 i;
0170 ; uint16 temp1,temp2;
0170 ; uint32 location;
0170 ; uint32 start;
0170 ; data1-=0xa1,data2-=0xa1;
0170 8C2D mov R24,R12
0172 815A subi R24,161
0174 C82E mov R12,R24
0176 8A2D mov R24,R10
0178 815A subi R24,161
017A A82E mov R10,R24
017C .dbline 155
017C ; temp1=data1*94;
017C 8EE5 ldi R24,94
017E 8C9D mul R24,R12
0180 6001 movw R12,R0
0182 .dbline 156
0182 ; location=temp1+data2;
0182 2A2C mov R2,R10
0184 3324 clr R3
0186 2601 movw R4,R12
0188 420C add R4,R2
018A 531C adc R5,R3
018C 1201 movw R2,R4
018E 4424 clr R4
0190 5524 clr R5
0192 FE01 movw R30,R28
0194 2082 std z+0,R2
0196 3182 std z+1,R3
0198 4282 std z+2,R4
019A 5382 std z+3,R5
019C .dbline 157
019C ; location=location<<5;
019C 85E0 ldi R24,5
019E 90E0 ldi R25,0
01A0 FE01 movw R30,R28
01A2 2080 ldd R2,z+0
01A4 3180 ldd R3,z+1
01A6 4280 ldd R4,z+2
01A8 5380 ldd R5,z+3
01AA 8A93 st -y,R24
01AC 8101 movw R16,R2
01AE 9201 movw R18,R4
01B0 00D0 rcall lsl32
01B2 FE01 movw R30,R28
01B4 0083 std z+0,R16
01B6 1183 std z+1,R17
01B8 2283 std z+2,R18
01BA 3383 std z+3,R19
01BC .dbline 158
01BC ; temp1=location>>9;
01BC 89E0 ldi R24,9
01BE 90E0 ldi R25,0
01C0 FE01 movw R30,R28
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -