📄 co0511.s
字号:
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,
; 0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x01,0x01,0x01,
; 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
; 0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x02,0x02,0x03,0x02,0x03,0x02,0x02,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x20,0xFF,0x00,0x80,0xAB,0xAA,
; 0xAA,0xAA,0xAA,0xAB,0x80,0x00,0x00,0x00,0x01,0x00,0xFD,0x54,0x54,0x56,0x55,0x54,
; 0xFC,0x02,0x01,0x00,0x00,0x02,0x02,0x02,0xFA,0x92,0x92,0x92,0x92,0x92,0x90,0x9F,
; 0x80,0x00,0x00,0x20,0x20,0xBF,0x00,0x7F,0x54,0x54,0xFF,0x54,0x55,0x7F,0x00,0x00,
; 0x00,0x10,0x20,0xFF,0x00,0x80,0xAB,0xAA,0xAA,0xAA,0xAA,0xAB,0x80,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0xC0,0x80,
; 0x80,0x88,0x88,0xC8,0x08,0x0F,0x08,0x48,0x88,0x18,0x88,0x40,0x40,0x40,0x4A,0x4A,
; 0xCF,0x12,0x92,0x00,0x1E,0x12,0x12,0x12,0x1E,0x00,0x00,0x00,0x80,0x43,0x92,0x0E,
; 0x02,0x12,0x0E,0x42,0x86,0x1A,0x82,0x43,0x40,0x40,0x40,0x4F,0x49,0x4E,0x40,0x06,
; 0x05,0x15,0x0D,0xC5,0x04,0x06,0xC0,0x80,0x80,0x80,0x80,0xC0,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x04,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x0C,0x04,0x00,0x00,0x30,0xC0,
; 0xFE,0x80,0x40,0x82,0x92,0x92,0xFE,0x92,0x92,0x82,0x00,0x00,0x80,0x10,0x10,0x90,
; 0x90,0x92,0xBE,0xD0,0x90,0x10,0x90,0x10,0x00,0x00,0x00,0xFE,0x10,0x92,0x62,0x44,
; 0x78,0x40,0x7C,0x42,0x42,0x4E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x04,0x18,0x90,0x74,0x14,0x94,0x75,0x16,0x34,0xD0,0x14,0x18,0x00,0x00,0x04,0x08,
; 0x71,0x11,0x11,0x11,0xFF,0x11,0x11,0x31,0x10,0x00,0x00,0x00,0x08,0x49,0x4A,0x7F,
; 0x8A,0x09,0x24,0x12,0x00,0xFF,0x01,0x01,0x00,0x00,0x08,0x08,0xFF,0x09,0x06,0x10,
; 0xFF,0x10,0x10,0x1F,0x04,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x80,0x80,0x80,0x80,0x90,0xF0,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x10,0x10,
; 0x10,0x10,0x10,0x10,0xF0,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x80,0x00,0x00,0xF0,
; 0x00,0x80,0x80,0x80,0x80,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x10,0x20,0x40,
; 0x80,0x20,0x10,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; };
; /***********************************************************************
; 延时函数
; 系统时钟:8M
; -----------------------------------------------------------------------*/
; void delay_1us(void) //1us延时函数
; {
.dbline 224
; asm("nop");
nop
.dbline -2
.dbline 225
; }
L1:
.dbline 0 ; func end
ret
.dbend
.dbfunc e delay_nus _delay_nus fV
; i -> R20,R21
; n -> R22,R23
.even
_delay_nus::
xcall push_gset2
movw R22,R16
.dbline -1
.dbline 228
;
; void delay_nus(unsigned int n) //N us延时函数
; {
.dbline 229
; unsigned int i=0;
clr R20
clr R21
.dbline 230
; for (i=0;i<n;i++)
xjmp L6
L3:
.dbline 231
xcall _delay_1us
L4:
.dbline 230
subi R20,255 ; offset = 1
sbci R21,255
L6:
.dbline 230
cp R20,R22
cpc R21,R23
brlo L3
.dbline -2
.dbline 232
; delay_1us();
; }
L2:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym r n 22 i
.dbend
.dbfunc e delay_1ms _delay_1ms fV
; i -> R16,R17
.even
_delay_1ms::
.dbline -1
.dbline 235
;
; void delay_1ms(void) //1ms延时函数
; {
.dbline 237
clr R16
clr R17
xjmp L11
L8:
.dbline 237
L9:
.dbline 237
subi R16,255 ; offset = 1
sbci R17,255
L11:
.dbline 237
; unsigned int i;
; for (i=0;i<1140;i++);
cpi R16,116
ldi R30,4
cpc R17,R30
brlo L8
.dbline -2
.dbline 238
; }
L7:
.dbline 0 ; func end
ret
.dbsym r i 16 i
.dbend
.dbfunc e delay_nms _delay_nms fV
; i -> R20,R21
; n -> R22,R23
.even
_delay_nms::
xcall push_gset2
movw R22,R16
.dbline -1
.dbline 241
;
; void delay_nms(unsigned int n) //N ms延时函数
; {
.dbline 242
; unsigned int i=0;
clr R20
clr R21
.dbline 243
; for (i=0;i<n;i++)
xjmp L16
L13:
.dbline 244
xcall _delay_1ms
L14:
.dbline 243
subi R20,255 ; offset = 1
sbci R21,255
L16:
.dbline 243
cp R20,R22
cpc R21,R23
brlo L13
.dbline -2
.dbline 245
; delay_1ms();
; }
L12:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym r n 22 i
.dbend
.dbfunc e set_sclk_195 _set_sclk_195 fV
; i -> R16
.even
_set_sclk_195::
.dbline -1
.dbline 248
; /**********位操作函数*********/
; void set_sclk_195(uchar i)//clk 接PB3
; {
.dbline 249
; if(i)
tst R16
breq L18
.dbline 250
; PORTB|=0x08;
sbi 0x18,3
xjmp L19
L18:
.dbline 252
in R24,0x18
andi R24,247
out 0x18,R24
L19:
.dbline -2
.dbline 253
; else
; PORTB&=0xf7;
; }
L17:
.dbline 0 ; func end
ret
.dbsym r i 16 c
.dbend
.dbfunc e set_conv _set_conv fV
; i -> R16
.even
_set_conv::
.dbline -1
.dbline 255
; void set_conv(uchar i)
; {
.dbline 256
; if(i)
tst R16
breq L21
.dbline 257
; PORTB|=0x10;
sbi 0x18,4
xjmp L22
L21:
.dbline 259
in R24,0x18
andi R24,239
out 0x18,R24
L22:
.dbline -2
.dbline 260
; else
; PORTB&=0xef;
; }
L20:
.dbline 0 ; func end
ret
.dbsym r i 16 c
.dbend
.dbfunc e set_cs_195 _set_cs_195 fV
; i -> R16
.even
_set_cs_195::
.dbline -1
.dbline 262
; void set_cs_195(uchar i)
; {
.dbline 263
; if(i)
tst R16
breq L24
.dbline 264
; PORTB|=0x01;
sbi 0x18,0
xjmp L25
L24:
.dbline 266
in R24,0x18
andi R24,254
out 0x18,R24
L25:
.dbline -2
.dbline 267
; else
; PORTB&=0xfe;
; }
L23:
.dbline 0 ; func end
ret
.dbsym r i 16 c
.dbend
.dbfunc e set_cs _set_cs fV
; i -> R16
.even
_set_cs::
.dbline -1
.dbline 269
; void set_cs(uchar i)
; { if(i)
.dbline 269
tst R16
breq L27
.dbline 270
; PORTA|=0x01;
sbi 0x1b,0
xjmp L28
L27:
.dbline 272
in R24,0x1b
andi R24,254
out 0x1b,R24
L28:
.dbline -2
.dbline 273
; else
; PORTA&=0xfe;
; }
L26:
.dbline 0 ; func end
ret
.dbsym r i 16 c
.dbend
.dbfunc e set_res _set_res fV
; i -> R16
.even
_set_res::
.dbline -1
.dbline 275
; void set_res(uchar i)
; {
.dbline 276
; if(i)
tst R16
breq L30
.dbline 277
; PORTA|=0x02;
sbi 0x1b,1
xjmp L31
L30:
.dbline 279
in R24,0x1b
andi R24,253
out 0x1b,R24
L31:
.dbline -2
.dbline 280
; else
; PORTA&=0xfd;
; }
L29:
.dbline 0 ; func end
ret
.dbsym r i 16 c
.dbend
.dbfunc e set_a0 _set_a0 fV
; i -> R16
.even
_set_a0::
.dbline -1
.dbline 282
; void set_a0(uchar i)
; {
.dbline 283
; if(i)
tst R16
breq L33
.dbline 284
; PORTA|=0x04;
sbi 0x1b,2
xjmp L34
L33:
.dbline 286
in R24,0x1b
andi R24,251
out 0x1b,R24
L34:
.dbline -2
.dbline 287
; else
; PORTA&=0xfb;
; }
L32:
.dbline 0 ; func end
ret
.dbsym r i 16 c
.dbend
.dbfunc e set_sclk _set_sclk fV
; i -> R16
.even
_set_sclk::
.dbline -1
.dbline 289
; void set_sclk(uchar i)
; {
.dbline 290
; if(i)
tst R16
breq L36
.dbline 291
; PORTC|=0x40;
sbi 0x15,6
xjmp L37
L36:
.dbline 293
in R24,0x15
andi R24,191
out 0x15,R24
L37:
.dbline -2
.dbline 294
; else
; PORTC&=0xbf;
; }
L35:
.dbline 0 ; func end
ret
.dbsym r i 16 c
.dbend
.dbfunc e set_si _set_si fV
; i -> R16
.even
_set_si::
.dbline -1
.dbline 296
; void set_si(uchar i)
; {
.dbline 297
; if(i)
tst R16
breq L39
.dbline 298
; PORTC|=0x80;
sbi 0x15,7
xjmp L40
L39:
.dbline 300
in R24,0x15
andi R24,127
out 0x15,R24
L40:
.dbline -2
.dbline 301
; else
; PORTC&=0x7f;
; }
L38:
.dbline 0 ; func end
ret
.dbsym r i 16 c
.dbend
.dbfunc e set_c86 _set_c86 fV
; i -> R16
.even
_set_c86::
.dbline -1
.dbline 303
; void set_c86(uchar i)
; {
.dbline 304
; if(i)
tst R16
breq L42
.dbline 305
; PORTA|=0x20;
sbi 0x1b,5
xjmp L43
L42:
.dbline 307
in R24,0x1b
andi R24,207
out 0x1b,R24
L43:
.dbline -2
.dbline 308
; else
; PORTA&=0xcf;
; }
L41:
.dbline 0 ; func end
ret
.dbsym r i 16 c
.dbend
.dbfunc e set_ps _set_ps fV
; i -> R16
.even
_set_ps::
.dbline -1
.dbline 310
; void set_ps(uchar i)
; {
.dbline 311
; if(i)
tst R16
breq L45
.dbline 312
; PORTA|=0x10;
sbi 0x1b,4
xjmp L46
L45:
.dbline 314
in R24,0x1b
andi R24,239
out 0x1b,R24
L46:
.dbline -2
.dbline 315
; else
; PORTA&=0xef;
; }
L44:
.dbline 0 ; func end
ret
.dbsym r i 16 c
.dbend
.dbfunc e data_send _data_send fV
; temp -> R20
; i -> R22,R23
; s -> R10
; dat -> R20
.even
_data_send::
xcall push_gset3
mov R20,R16
.dbline -1
.dbline 317
; void data_send(unsigned char dat)
; {
.dbline 320
; unsigned char s,temp;
; int i;
; set_sclk(0);
clr R16
xcall _set_sclk
.dbline 321
; s=dat;
mov R10,R20
.dbline 322
; for(i=8;i>0;i--)
ldi R22,8
ldi R23,0
L48:
.dbline 323
; {set_sclk(0);
.dbline 323
clr R16
xcall _set_sclk
.dbline 324
; NOP();
nop
.dbline 325
; NOP();
nop
.dbline 326
; temp=s & 0x80;
mov R20,R10
andi R20,128
.dbline 327
; if(temp)
breq L52
.dbline 328
; {set_si(1);}
.dbline 328
ldi R16,1
xcall _set_si
.dbline 328
xjmp L53
L52:
.dbline 329
; else {set_si(0);}
.dbline 329
clr R16
xcall _set_si
.dbline 329
L53:
.dbline 330
ldi R16,1
xcall _set_sclk
.dbline 331
lsl R10
.dbline 332
L49:
.dbline 322
subi R22,1
sbci R23,0
.dbline 322
clr R2
clr R3
cp R2,R22
cpc R3,R23
brlt L48
.dbline -2
.dbline 333
; set_sclk(1);
; s=s<<1;
; }
; }
L47:
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r temp 20 c
.dbsym r i 22 I
.dbsym r s 10 c
.dbsym r dat 20 c
.dbend
.dbfunc e w_com _w_com fV
; com -> R20
.even
_w_com::
xcall push_gset1
mov R20,R16
.dbline -1
.dbline 338
; /*************************************************/
; //写命令,串行模式
; /*************************************************/
; void w_com(unsigned char com)
; {
.dbline 339
; set_a0(0);
clr R16
xcall _set_a0
.dbline 340
; set_cs(0);
clr R16
xcall _set_cs
.dbline 341
; data_send(com);
mov R16,R20
xcall _data_send
.dbline -2
.dbline 342
; }
L54:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r com 20 c
.dbend
.dbfunc e w_data _w_data fV
; dat -> R20
.even
_w_data::
xcall push_gset1
mov R20,R16
.dbline -1
.dbline 347
; /*************************************************/
; //写数据,串行模式
; /*************************************************/
; void w_data(unsigned char dat)
; {
.dbline 348
; set_a0(1);
ldi R16,1
xcall _set_a0
.dbline 349
; set_cs(0);
clr R16
xcall _set_cs
.dbline 350
; data_send(dat);
mov R16,R20
xcall _data_send
.dbline -2
.dbline 351
; }
L55:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r dat 20 c
.dbend
.dbfunc e clrram _clrram fV
; page -> R20
; i -> R22
; j -> R10
.even
_clrram::
xcall push_gset3
.dbline -1
.dbline 356
; /*************************************************/
; //清DDRAM
; /************************************************/
; void clrram (void)
; { uchar i,j,page;
.dbline 357
; page=0xb0;
ldi R20,176
.dbline 358
; for(i=0;i<8;i++)
clr R22
xjmp L60
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -