📄 lcd2.lss
字号:
37c: 3d 25 eor r19, r13
37e: 27 3d cpi r18, 0xD7 ; 215
380: 01 3d cpi r16, 0xD1 ; 209
382: 25 27 eor r18, r21
384: 3d 05 cpc r19, r13
...
00000426 <__init>:
426: 11 24 eor r1, r1
428: 1f be out 0x3f, r1 ; 63
42a: cf e5 ldi r28, 0x5F ; 95
42c: d4 e0 ldi r29, 0x04 ; 4
42e: de bf out 0x3e, r29 ; 62
430: cd bf out 0x3d, r28 ; 61
00000432 <__do_copy_data>:
432: 10 e0 ldi r17, 0x00 ; 0
434: a0 e6 ldi r26, 0x60 ; 96
436: b0 e0 ldi r27, 0x00 ; 0
438: e8 e3 ldi r30, 0x38 ; 56
43a: f5 e0 ldi r31, 0x05 ; 5
43c: 02 c0 rjmp .+4 ; 0x442 <.do_copy_data_start>
0000043e <.do_copy_data_loop>:
43e: 05 90 lpm r0, Z+
440: 0d 92 st X+, r0
00000442 <.do_copy_data_start>:
442: a0 36 cpi r26, 0x60 ; 96
444: b1 07 cpc r27, r17
446: d9 f7 brne .-10 ; 0x43e <.do_copy_data_loop>
00000448 <__do_clear_bss>:
448: 10 e0 ldi r17, 0x00 ; 0
44a: a0 e6 ldi r26, 0x60 ; 96
44c: b0 e0 ldi r27, 0x00 ; 0
44e: 01 c0 rjmp .+2 ; 0x452 <.do_clear_bss_start>
00000450 <.do_clear_bss_loop>:
450: 1d 92 st X+, r1
00000452 <.do_clear_bss_start>:
452: a0 36 cpi r26, 0x60 ; 96
454: b1 07 cpc r27, r17
456: e1 f7 brne .-8 ; 0x450 <.do_clear_bss_loop>
458: 46 c0 rjmp .+140 ; 0x4e6 <main>
0000045a <__bad_interrupt>:
45a: d2 cd rjmp .-1116 ; 0x0 <__vectors>
0000045c <s_spi>:
#define clk_l com_out&=~clk
#define clk_h com_out|=clk
void s_spi(uch data){
SPCR|=(1<<SPE);//使能SPI
45c: 6e 9a sbi 0x0d, 6 ; 13
SPDR=data;
45e: 8f b9 out 0x0f, r24 ; 15
while(!(SPSR&(1<<SPIF)));
460: 77 9b sbis 0x0e, 7 ; 14
462: fe cf rjmp .-4 ; 0x460 <__stack+0x1>
464: 08 95 ret
00000466 <w_by>:
/*
uch i;
clk_l;
for(i=8;i!=0;i--)
{
clk_l;
clk_l;
clk_l;
clk_l;
if(data&0x80)sdo_h;else sdo_l;
clk_h;
clk_h;
data<<=1;
}
*/
}
void w_by(uch x){
A0H;
466: ad 9a sbi 0x15, 5 ; 21
s_spi(x);
468: f9 df rcall .-14 ; 0x45c <s_spi>
46a: 08 95 ret
0000046c <w_com>:
}
void w_com(uch x){
A0L;
46c: ad 98 cbi 0x15, 5 ; 21
s_spi(x);
46e: f6 df rcall .-20 ; 0x45c <s_spi>
470: 08 95 ret
00000472 <xyini>:
//CSH;
}
void xyini(uch x,uch y){//坐标设置
472: 1f 93 push r17
474: 18 2f mov r17, r24
476: 86 2f mov r24, r22
uch i;
y&=0xf;
478: 8f 70 andi r24, 0x0F ; 15
w_com(0xb0|y);
47a: 80 6b ori r24, 0xB0 ; 176
47c: f7 df rcall .-18 ; 0x46c <w_com>
i=(x>>4)|0x10;
47e: 81 2f mov r24, r17
480: 82 95 swap r24
482: 8f 70 andi r24, 0x0F ; 15
w_com(i);
484: 80 61 ori r24, 0x10 ; 16
486: f2 df rcall .-28 ; 0x46c <w_com>
i=x&0xf;
488: 1f 70 andi r17, 0x0F ; 15
i++;
w_com(i);
48a: 81 2f mov r24, r17
48c: 8f 5f subi r24, 0xFF ; 255
48e: ee df rcall .-36 ; 0x46c <w_com>
490: 1f 91 pop r17
492: 08 95 ret
00000494 <startline>:
}
void startline(uch x){//起始行设置
x|=0x40;
w_com(x);
494: 80 64 ori r24, 0x40 ; 64
496: ea df rcall .-44 ; 0x46c <w_com>
498: 08 95 ret
0000049a <dis>:
}
void dis(const uch *px){
49a: 0f 93 push r16
49c: 1f 93 push r17
49e: cf 93 push r28
4a0: df 93 push r29
4a2: ec 01 movw r28, r24
uch x,y;
uch i;
for(y=0;y<8;y++){
4a4: 00 e0 ldi r16, 0x00 ; 0
xyini(0,y);
4a6: 60 2f mov r22, r16
4a8: 80 e0 ldi r24, 0x00 ; 0
4aa: e3 df rcall .-58 ; 0x472 <xyini>
for(x=0;x<128;x++){
4ac: 10 e0 ldi r17, 0x00 ; 0
i=pgm_read_byte(px);
4ae: fe 01 movw r30, r28
4b0: 84 91 lpm r24, Z
px++;
4b2: 21 96 adiw r28, 0x01 ; 1
w_by(i);}
4b4: d8 df rcall .-80 ; 0x466 <w_by>
4b6: 1f 5f subi r17, 0xFF ; 255
4b8: 17 ff sbrs r17, 7
4ba: f9 cf rjmp .-14 ; 0x4ae <dis+0x14>
4bc: 0f 5f subi r16, 0xFF ; 255
4be: 08 30 cpi r16, 0x08 ; 8
4c0: 90 f3 brcs .-28 ; 0x4a6 <dis+0xc>
4c2: df 91 pop r29
4c4: cf 91 pop r28
4c6: 1f 91 pop r17
4c8: 0f 91 pop r16
4ca: 08 95 ret
000004cc <ini>:
}
}
void ini(void){ //初始化
PORTC=0xff;DDRC=0xff;
4cc: 8f ef ldi r24, 0xFF ; 255
4ce: 85 bb out 0x15, r24 ; 21
4d0: 84 bb out 0x14, r24 ; 20
DDRB=0xff;
4d2: 87 bb out 0x17, r24 ; 23
DDRB|=(1<<PB3)|(1<<PB5);//设MOSI SCK 为输出
4d4: 87 b3 in r24, 0x17 ; 23
4d6: 88 62 ori r24, 0x28 ; 40
4d8: 87 bb out 0x17, r24 ; 23
SPCR=(1<<MSTR);// |(1<<DORD)|(1<<CPOL)|(1<<CPHA)
4da: 80 e1 ldi r24, 0x10 ; 16
4dc: 8d b9 out 0x0d, r24 ; 13
SPSR=(1<<SPI2X);
4de: 81 e0 ldi r24, 0x01 ; 1
4e0: 8e b9 out 0x0e, r24 ; 14
SPCR|=(1<<SPE);//使能SPI
4e2: 6e 9a sbi 0x0d, 6 ; 13
4e4: 08 95 ret
000004e6 <main>:
}
/*
void dispaly(void){
uch topline,liuid;
uint daly;
//jisuan();//算出各个参数的拆分值
satline(0);
openlcd();
dis_tu(0,0,40,2,logo);
dis_tu(0,2,64,2,set_t);
dis_tu(0,5,64,2,dis_t);
dis_tu(40,0,24,2,gantan);//故障
xyini(0,0);
for(topline=6;topline!=0;topline--)w_by(0x1,1);
dis_tu(70,0,24,2,dian);//漏电
xyini(30,0);
for(topline=16;topline!=0;topline--)w_by(0x1,1);
dis_tu(105,0,23,2,pentou);
xyini(0,4);w_by(0xff,0);
dis_tu(84,2,19,2,t_16);
dis_tu(84,5,19,2,t_16);
dis_tu(64,2,10,2,shu_16[sv_arry[1]]);//设定
dis_tu(74,2,10,2,shu_16[sv_arry[0]]);//
dis_tu(64,5,10,2,shu_16[t_arry[1]]);//温度
dis_tu(74,5,10,2,shu_16[t_arry[0]]);
dis_tu(106,2,16,2,&liu[1]);//流水
for(topline=2;topline<8;topline++)
{
xyini(63,topline);
w_by(0xff,1);}
xyini(0,7);
w_by(0xff,0);
//--------------------------------瞬时
xyini(39,4);
w_by(0xfc,1);
xyini(39,5);
w_by(0xff,1);
xyini(39,6);
w_by(0xff,1);
xyini(61,4);
w_by(0xfc,1);
xyini(61,5);
w_by(0xff,1);
xyini(61,6);
w_by(0xff,1);
xyini(40,6);
//-----------------
wef(sun[2],1);
wef(sun[1],1);
w_by(0xc0,1);
wef(sun[0],1);
wef(10,1);
//-------------------
jindu_dis(7);
//----------------------------------//总累积
xyini(1,7);
w_by(0x80,0);
wef(11,0);
wef(12,0);
for(topline=0;topline<7;topline++){
wef(zonlei_arry[topline],0);
}
w_by(0xc0,0);
wef(zonlei_arry[7],0);
wef(10,0);
for(topline=6;topline!=0;topline--)w_by(0x80,0);
//-------------------------//本次累积
xyini(0,7);
for(topline=6;topline!=0;topline--)w_by(0x80,1);
wef(13,1);
wef(14,1);
wef(15,1);
w_by(0x80,1);
w_by(0x80,1);
w_by(0x80,1);
w_by(0x80,1);
wef(11,1);
wef(12,1);
wef(benlei_arry[3],1);
wef(benlei_arry[2],1);
wef(benlei_arry[1],1);
w_by(0xc0,1);
wef(benlei_arry[0],1);
wef(10,1); w_by(0x80,1);
w_by(0x80,1);
}
*/
int main(void){ //入口
4e6: cf e5 ldi r28, 0x5F ; 95
4e8: d4 e0 ldi r29, 0x04 ; 4
4ea: de bf out 0x3e, r29 ; 62
4ec: cd bf out 0x3d, r28 ; 61
uch i;
RESL;RESL;RESL;RESL;RESL;RESL;RESL;RESL;
4ee: ac 98 cbi 0x15, 4 ; 21
4f0: ac 98 cbi 0x15, 4 ; 21
4f2: ac 98 cbi 0x15, 4 ; 21
4f4: ac 98 cbi 0x15, 4 ; 21
4f6: ac 98 cbi 0x15, 4 ; 21
4f8: ac 98 cbi 0x15, 4 ; 21
4fa: ac 98 cbi 0x15, 4 ; 21
4fc: ac 98 cbi 0x15, 4 ; 21
RESH;
4fe: ac 9a sbi 0x15, 4 ; 21
ini();
500: e5 df rcall .-54 ; 0x4cc <ini>
CSL;
502: ab 98 cbi 0x15, 3 ; 21
w_com(0xaf); //ON DISPLAY
504: 8f ea ldi r24, 0xAF ; 175
506: b2 df rcall .-156 ; 0x46c <w_com>
w_com(0xa0); //左右屏交换
508: 80 ea ldi r24, 0xA0 ; 160
50a: b0 df rcall .-160 ; 0x46c <w_com>
w_com(0xa6); //正反显
50c: 86 ea ldi r24, 0xA6 ; 166
50e: ae df rcall .-164 ; 0x46c <w_com>
w_com(0xa4); //CLEAR
510: 84 ea ldi r24, 0xA4 ; 164
512: ac df rcall .-168 ; 0x46c <w_com>
w_com(0xa3); //1/9BIA
514: 83 ea ldi r24, 0xA3 ; 163
516: aa df rcall .-172 ; 0x46c <w_com>
w_com(0xc8); //正反选择,C0 C8
518: 88 ec ldi r24, 0xC8 ; 200
51a: a8 df rcall .-176 ; 0x46c <w_com>
w_com(0x2f); //POWER CONTROL
51c: 8f e2 ldi r24, 0x2F ; 47
51e: a6 df rcall .-180 ; 0x46c <w_com>
w_com(0x81); //VOLUM MODE SET
520: 81 e8 ldi r24, 0x81 ; 129
522: a4 df rcall .-184 ; 0x46c <w_com>
w_com(0x20); //显示亮度
524: 80 e2 ldi r24, 0x20 ; 32
526: a2 df rcall .-188 ; 0x46c <w_com>
w_com(0xac); //static indicator off
528: 8c ea ldi r24, 0xAC ; 172
52a: a0 df rcall .-192 ; 0x46c <w_com>
startline(32);
52c: 80 e2 ldi r24, 0x20 ; 32
52e: b2 df rcall .-156 ; 0x494 <startline>
dis(logo);
530: 86 e2 ldi r24, 0x26 ; 38
532: 90 e0 ldi r25, 0x00 ; 0
534: b2 df rcall .-156 ; 0x49a <dis>
while(1);
536: ff cf rjmp .-2 ; 0x536 <main+0x50>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -