📄 main.s
字号:
.dbline 106
mov R14,R22
.dbline 106
mov R22,R12
.dbline 106
mov R12,R14
.dbline 106
.dbline 106
L79:
.dbline 106
;
.dbline 106
.dbline 108
;
;
lds R2,_csh
lds R3,_csh+1
sbrs R3,7
rjmp L81
.dbline 108
.dbline 109
; sc_cfg(255,0,0,1);
movw R16,R2
rcall _RGBToChar
.dbline 110
; sc_cbk(0,0,255,1);
std y+2,R12
mov R24,R10
subi R24,2
std y+0,R24
mov R18,R12
mov R16,R20
subi R16,252 ; addi 4
rcall _glcdDoFillRect
.dbline 111
; RoundRect(66,1,31,31,4);
mov R24,R12
subi R24,2
std y+2,R24
std y+0,R10
mov R18,R22
subi R18,252 ; addi 4
mov R16,R10
rcall _glcdDoFillRect
.dbline 112
; sc_cfg(0,0,255,1);
dec R10
.dbline 113
; sc_cbk(100,0,208,0);
dec R12
.dbline 114
; RoundRect(99,1,29,31,8);
std y+2,R12
std y+0,R10
mov R18,R12
subi R18,2
mov R16,R10
subi R16,2
rcall _glcdDoFillRect
.dbline 115
;
L81:
.dbline 116
; sc_cfg(0,0,255,0);
lds R2,_cfr
lds R3,_cfr+1
sbrs R3,7
rjmp L83
.dbline 116
.dbline 117
; sc_cbk(0,255,128,1);
movw R16,R2
rcall _RGBToChar
.dbline 118
; RoundRect(1,33,31,31,6);
std y+2,R22
mov R24,R10
subi R24,2
std y+0,R24
mov R18,R22
mov R16,R20
subi R16,254 ; addi 2
rcall _glcdDoFillRect
.dbline 119
;
std y+2,R12
mov R24,R10
subi R24,2
std y+0,R24
mov R18,R12
mov R16,R20
subi R16,254 ; addi 2
rcall _glcdDoFillRect
.dbline 120
; //glcdRectangle(3,8,10,20);
mov R24,R12
subi R24,2
std y+2,R24
std y+0,R10
mov R18,R22
subi R18,254 ; addi 2
mov R16,R10
rcall _glcdDoFillRect
.dbline 121
; sc_cfg(0,255,0,1);
mov R24,R12
subi R24,2
std y+2,R24
std y+0,R20
mov R18,R22
subi R18,254 ; addi 2
mov R16,R20
rcall _glcdDoFillRect
.dbline 122
;
inc R20
.dbline 123
; glcdCircle(48,48,15);
inc R22
.dbline 124
; glcdEllipse(82,48,15,12);
dec R10
.dbline 125
;
dec R12
.dbline 126
; RGB2(0,0,255);
mov R18,R22
mov R16,R20
rcall _glcdSetPixel
.dbline 127
; sc_cfg(0,0,255,1);
mov R18,R22
mov R16,R10
rcall _glcdSetPixel
.dbline 128
; sc_cbk(255,255,0,1);
mov R18,R12
mov R16,R20
rcall _glcdSetPixel
.dbline 129
; sc_csh(0,0,255,1);
mov R18,R12
mov R16,R10
rcall _glcdSetPixel
.dbline 130
; glcdFrame(1,66,31,97);
L83:
.dbline 131
lds R2,_cbk
lds R3,_cbk+1
sbrs R3,7
rjmp L85
.dbline 131
.dbline 132
movw R16,R2
rcall _RGBToChar
.dbline 133
mov R24,R12
subi R24,1
std y+2,R24
std y+0,R20
mov R18,R22
subi R18,255 ; addi 1
mov R16,R20
rcall _glcdDoFillRect
.dbline 134
mov R24,R12
subi R24,1
std y+2,R24
std y+0,R10
mov R18,R22
subi R18,255 ; addi 1
mov R16,R10
rcall _glcdDoFillRect
.dbline 135
std y+2,R12
mov R24,R10
subi R24,1
std y+0,R24
mov R18,R22
mov R16,R20
subi R16,255 ; addi 1
rcall _glcdDoFillRect
.dbline 136
L85:
.dbline -2
.dbline 137
; RGB2(255,0,255);
; glcdLine(99,33,130,64);
; //n6100DrawCircle(64,64,30);
; //glcdn_InitDisplay();
; //
; // SPCR = (1<<MSTR)|(1<<SPE)|(1<<SPR0);
; //backgroundColor=4;
L76:
adiw R28,3
rcall pop_gset5
.dbline 0 ; func end
ret
.dbsym r t 14 c
.dbsym r t 14 c
.dbsym r y2 12 c
.dbsym r x2 10 c
.dbsym r y1 22 c
.dbsym r x1 20 c
.dbend
.dbfunc e glcdLine _glcdLine fV
; t -> R14
; t -> R14
; t -> R14
; t -> R20
; t -> R22
; t -> y+15
; t -> y+14
; t -> y+13
; t -> R20
; t -> R20
; t -> R20
; swap -> y+12
; sx -> y+11
; i -> y+10
; dy -> y+9
; y3 -> y+8
; x3 -> y+7
; sy -> y+6
; dx -> y+5
; e -> y+3
; y2 -> R8
; x2 -> R6
; y1 -> y+28
; x1 -> y+26
.even
_glcdLine::
rcall push_arg4
rcall push_gset5
sbiw R28,16
ldd R6,y+30
ldd R8,y+32
.dbline -1
.dbline 139
; while(1);
; sc_cfg(0,255,255,1);
.dbline 145
; b2=1;
; while(1)
; {
; //while(1);
; //RGB2(255,255,255);
; //glcdn_ClearLcd();
lds R2,_cfg
lds R3,_cfg+1
sbrs R3,7
rjmp L88
.dbline 145
.dbline 146
; // n6100DrawCircle(64,64,backgroundColor);
movw R16,R2
push R6
push R8
rcall _RGBToChar
pop R8
pop R6
.dbline 147
; //RGB2(0,0,255);
ldd R0,y+26
cp R0,R6
brne L92
ldi R22,1
ldi R23,0
rjmp L93
L92:
clr R22
clr R23
L93:
ldd R0,y+28
cp R0,R8
brne L94
ldi R20,1
ldi R21,0
rjmp L95
L94:
clr R20
clr R21
L95:
movw R2,R22
or R2,R20
or R3,R21
tst R2
brne X3
tst R3
breq L90
X3:
.dbline 147
.dbline 148
;
std y+2,R8
std y+0,R6
ldd R18,y+28
ldd R16,y+26
push R6
push R8
rcall _glcdFillRect
pop R8
pop R6
.dbline 149
rjmp L91
L90:
.dbline 149
;
.dbline 153
; glcdCircle(64,64,backgroundColor);
; RoundRect(backgroundColor,backgroundColor,backgroundColor+5,backgroundColor+5,10);
; backgroundColor++;
;
ldd R0,y+26
cp R0,R6
brsh L96
.dbline 153
.dbline 153
mov R2,R6
sub R2,R0
std y+5,R2
.dbline 153
clr R0
inc R0
std y+11,R0
.dbline 153
rjmp L97
L96:
.dbline 154
; if(backgroundColor>64)
.dbline 154
ldd R2,y+26
sub R2,R6
std y+5,R2
.dbline 154
ldi R24,255
std y+11,R24
.dbline 154
L97:
.dbline 155
; {backgroundColor=7;
ldd R0,y+28
cp R0,R8
brsh L98
.dbline 155
.dbline 155
mov R2,R8
sub R2,R0
std y+9,R2
.dbline 155
clr R0
inc R0
std y+6,R0
.dbline 155
rjmp L99
L98:
.dbline 156
; //b2++;
.dbline 156
ldd R2,y+28
sub R2,R8
std y+9,R2
.dbline 156
ldi R24,255
std y+6,R24
.dbline 156
L99:
.dbline 159
; //if(b2>64)b2=5;
; //goto top;
;
ldd R0,y+9
ldd R16,y+5
cp R0,R16
brsh L100
.dbline 159
clr R0
std y+12,R0
rjmp L101
L100:
.dbline 160
; b2=(b2+1)%2;
clr R0
inc R0
std y+12,R0
L101:
.dbline 161
; sc_cbk(255,255,0,b2-1);
ldd R0,y+12
tst R0
breq L102
.dbline 161
.dbline 162
; }
.dbline 162
ldd R20,y+26
.dbline 162
ldd R0,y+28
std y+26,R0
.dbline 162
std y+28,R20
.dbline 162
.dbline 162
.dbline 163
;
.dbline 163
ldd R20,y+5
.dbline 163
ldd R0,y+9
std y+5,R0
.dbline 163
std y+9,R20
.dbline 163
.dbline 163
.dbline 164
; //glcdn_InitDisplay2();
.dbline 164
ldd R20,y+11
.dbline 164
ldd R0,y+6
std y+11,R0
.dbline 164
std y+6,R20
.dbline 164
.dbline 164
.dbline 165
; //glcdn_InitDisplay();
L102:
.dbline 167
; //glcdn_WriteCommand(0x5C);
; //glcdn_WriteData(0x7f);
ldd R2,y+5
clr R3
ldd R4,y+9
clr R5
sub R4,R2
sbc R5,R3
ldd R2,y+9
clr R3
add R4,R2
adc R5,R3
std y+4,R5
std y+3,R4
.dbline 168
; //glcdn_InitDisplay();
ldd R0,y+26
std y+7,R0
.dbline 169
; //init_lcd();
ldd R0,y+28
std y+8,R0
.dbline 170
; //glcdn_Delay(13900);
ldd R6,y+26
.dbline 171
; //glcdn_SetPageArea(GLCD_X_START, GLCD_X_END, GLCD_Y_START, GLCD_Y_END);
ldd R8,y+28
.dbline 174
clr R0
std y+10,R0
rjmp L107
L104:
.dbline 174
; //while(1)
; //glcdn_ClearLcd();
; // {glcdn_WriteCommand(MEM_WRITE);
.dbline 175
; // glcdn_WriteData(RED);
ldd R0,y+26
cp R0,R6
breq L110
ldi R24,1
ldi R25,0
movw R12,R24
rjmp L111
L110:
clr R12
clr R13
L111:
ldd R0,y+28
cp R0,R8
breq L112
ldi R24,1
ldi R25,0
movw R10,R24
rjmp L113
L112:
clr R10
clr R11
L113:
movw R2,R12
and R2,R10
and R3,R11
tst R2
brne X4
tst R3
breq L108
X4:
.dbline 175
.dbline 176
; // glcdn_Delay(80);
ldd R0,y+12
tst R0
breq L114
.dbline 176
.dbline 177
; }
.dbline 177
std y+13,R6
.dbline 177
mov R6,R8
.dbline 177
ldd R8,y+13
.dbline 177
.dbline 177
.dbline 178
;
.dbline 178
ldd R0,y+7
std y+14,R0
.dbline 178
ldd R0,y+8
std y+7,R0
.dbline 178
ldd R0,y+14
std y+8,R0
.dbline 178
.dbline 178
.dbline 179
; }
L114:
.dbline 180
.dbline 180
ldd R0,y+7
cp R0,R6
brsh L116
.dbline 180
.dbline 180
.dbline 180
std y+15,R6
.dbline 180
ldd R6,y+7
.dbline 180
ldd R0,y+15
std y+7,R0
.dbline 180
.dbline 180
L116:
.dbline 180
;
.dbline 180
.dbline 181
.dbline 181
ldd R0,y+8
cp R0,R8
brsh L118
.dbline 181
.dbline 181
.dbline 181
mov R22,R8
.dbline 181
mov R8,R0
.dbline 181
std y+8,R22
.dbline 181
.dbline 181
L118:
.dbline 181
; void sp(unsigned char dd,unsigned char cmd)
.dbline 181
.dbline 182
; {
ldd R0,y+8
std y+2,R0
ldd R0,y+7
std y+0,R0
mov R18,R8
mov R16,R6
push R16
push R18
rcall _glcdDoFillRect
pop R8
pop R6
.dbline 183
; unsigned char i;
ldd R6,y+26
.dbline 184
; //csl;
ldd R8,y+28
.dbline 185
L108:
.dbline 185
;
.dbline 186
; sclkl;
ldd R0,y+26
std y+7,R0
.dbline 187
; if(cmd)
ldd R0,y+28
std y+8,R0
rjmp L121
L120:
.dbline 188
.dbline 189
ldd R0,y+28
ldd R16,y+6
add R0,R16
std y+28,R0
.dbline 190
ldd R2,y+5
clr R3
ldd R0,y+3
ldd R1,y+4
sub R0,R2
sbc R1,R3
std y+4,R1
std y+3,R0
.dbline 191
ldd R2,y+5
clr R3
sub R0,R2
sbc R1,R3
std y+4,R1
std y+3,R0
.dbline 192
L121:
.dbline 188
ldd R24,y+3
ldd R25,y+4
cpi R24,0
ldi R30,0
cpc R25,R30
brge L120
.dbline 193
ldd R0,y+26
ldd R16,y+11
add R0,R16
std y+26,R0
.dbline 194
ldd R2,y+9
clr R3
ldd R0,y+3
ldd R1,y+4
add R0,R2
adc R1,R3
std y+4,R1
std y+3,R0
.dbline 195
ldd R2,y+9
clr R3
add R0,R2
adc R1,R3
std y+4,R1
std y+3,R0
.dbline 196
L105:
.dbline 174
ldd R0,y+10
inc R0
std y+10,R0
L107:
.dbline 174
ldd R0,y+5
ldd R16,y+10
cp R0,R16
brlo X5
rjmp L104
X5:
.dbline 197
; sdatah;
; else
; sdatal;
; sclkh;
;
; for(i=0;i<8;i++)
; {
; sclkl;
; //NOP();
; if(((dd<<i)&0x80)==0x80)
ldd R0,y+12
tst R0
breq L123
.dbline 197
.dbline 198
; sdatah;
.dbline 198
mov R20,R6
.dbline 198
mov R6,R8
.dbline 198
mov R8,R20
.dbline 198
.dbline 198
.dbline 199
; else
.dbline 199
ldd R14,y+7
.dbline 199
ldd R0,y+8
std y+7,R0
.dbline 199
std y+8,R14
.dbline 199
.dbline 199
.dbline 200
; sdatal;
L123:
.dbline 201
.dbline 201
ldd R0,y+7
cp R0,R6
brsh L125
.dbline 201
.dbline 201
.dbline 201
mov R14,R6
.dbline 201
mov R6,R0
.dbline 201
std y+7,R14
.dbline 201
.dbline 201
L125:
.dbline 201
;
.dbline 201
.dbline 202
.dbline 202
ldd R0,y+8
cp R0,R8
brsh L127
.dbline 202
.dbline 202
.dbline 202
mov R14,R8
.dbline 202
mov R8,R0
.dbline 202
std y+8,R14
.dbline 202
.dbline 202
L127:
.dbline 202
; sclkh;
.dbline 202
.dbline 203
; }
ldd R0,y+8
std y+2,R0
ldd R0,y+7
std y+0,R0
mov R18,R8
mov R16,R6
rcall _glcdDoFillRect
.dbline 204
;
L91:
.dbline 205
L88:
.dbline -2
.dbline 206
; //csh;
; }
L87:
adiw R28,16
rcall pop_gset5
adiw R28,4
.dbline 0 ; func end
ret
.dbsym r t 14 c
.dbsym r t 14 c
.dbsym r t 14 c
.dbsym r t 20 c
.dbsym r t 22 c
.dbsym l t 15 c
.dbsym l t 14 c
.dbsym l t 13 c
.dbsym r t 20 c
.dbsym r t 20 c
.dbsym r t 20 c
.dbsym l swap 12 c
.dbsym l sx 11 c
.dbsym l i 10 c
.dbsym l dy 9 c
.dbsym l y3 8 c
.dbsym l x3 7 c
.dbsym l sy 6 c
.dbsym l dx 5 c
.dbsym l e 3 I
.dbsym r y2 8 c
.dbsym r x2 6 c
.dbsym l y1 28 c
.dbsym l x1 26 c
.dbend
.dbfunc e glcdDoPixelLine _glcdDoPixelLine fV
; fill -> y+15
; y -> R22,R23
; x2 -> R10,R11
; x1 -> R20,R21
.even
_glcdDoPixelLine::
rcall push_gset5
movw R10,R18
movw R20,R16
sbiw R28,3
ldd R22,y+13
ldd R23,y+14
.dbline -1
.dbline 209
;
; void init_lcd(void)
; {
.dbline 211
; int i;
; glcdn_Delay(20000);
lds R2,_glcd_Clip+1
clr R3
cp R22,R2
cpc R23,R3
brlo L134
ldi R24,1
ldi R25,0
movw R14,R24
rjmp L135
L134:
clr R14
clr R15
L135:
lds R2,_glcd_Clip+3
clr R3
cp R2,R22
cpc R3,R23
brlo L136
ldi R24,1
ldi R25,0
movw R12,R24
rjmp L137
L136:
clr R12
clr R13
L137:
movw R2,R14
and R2,R12
and R3,R13
tst R2
brne X6
tst R3
brne X8
rjmp L130
X8:
X6:
.dbline 211
.dbline 212
lds R2,_glcd_Clip
clr R3
cp R20,R2
cpc R21,R3
brsh L138
.dbline 212
.dbline 212
mov R20,R2
clr R21
.dbline 212
rjmp L139
L138:
.dbline 212
; PORTB=0x00;
.dbline 213
lds R2,_glcd_Clip+2
clr R3
cp R2,R20
cpc R3,R21
brsh L140
.dbline 213
.dbline 213
rjmp L129
L140:
.dbline 213
; GLCD_SER_DDR = 0xff;
.dbline 214
; PORTD=0x00;
lds R2,_cfg
lds R3,_cfg+1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -