📄 ylf240128a.s
字号:
; 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,//black
; 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//online
; 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,//middleline
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,//underline
; 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//leftline
; 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01//rightline
;
; };
;
; const uchar ChCode[][32]={
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*BLANK upper left*/
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*BLANK upper right*/
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*BLANK lower left*/
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*BLANK lower right*/
; //;-- 限 -- ** 宋体, 12 **
; 0x00,0x00,0xFB,0xF8,0x92,0x08,0x93,0xF8,0xA2,0x08,0xA2,0x08,0x93,0xF8,0x8A,0x80,
; 0x8A,0x48,0xAA,0x50,0x92,0x20,0x82,0x20,0x82,0x10,0x82,0x8E,0x83,0x04,0x82,0x00,
; //;-- 输 -- ** 宋体, 12 **
; 0x20,0x40,0x20,0x40,0xFC,0xA0,0x21,0x18,0x43,0xF6,0x54,0x00,0xFC,0x04,0x53,0xD4,
; 0x12,0x54,0x1F,0xD4,0xF2,0x54,0x13,0xD4,0x12,0x54,0x12,0x54,0x13,0x44,0x12,0x8C,
; //;-- 入 -- ** 宋体, 12 **
; 0x0C,0x00,0x06,0x00,0x02,0x00,0x01,0x00,0x03,0x00,0x02,0x80,0x02,0x80,0x04,0x40,
; 0x04,0x20,0x08,0x20,0x08,0x10,0x10,0x08,0x20,0x0E,0x40,0x04,0x80,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x06,0x00,0x0A,0x00,/*ARROW upper left*/
; 0x14,0x00,0x28,0x00,0x5F,0xFE,0x80,0x02,/*ARROW upper right*/
; 0x5F,0xFE,0x28,0x00,0x14,0x00,0x0A,0x00,/*ARROW lower left*/
; 0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*ARROW lower right*/
; 0xFF,0xFF,0x80,0x01,0x80,0x01,0x80,0x03,/*HOOK upper left*/
; 0x80,0x05,0x80,0x09,0x80,0x11,0xA0,0x21,/*HOOK upper right*/
; 0x90,0x41,0x88,0x81,0x85,0x01,0x82,0x01,/*HOOK lower left*/
; 0x80,0x01,0x80,0x01,0x80,0x01,0xFF,0xFF,/*HOOK lower right*/
; 0xFF,0xFF,0x80,0x01,0x80,0x01,0x90,0x09,/*FORK upper left*/
; 0x88,0x11,0x84,0x21,0x82,0x41,0x81,0x81,/*FORK upper right*/
; 0x81,0x81,0x82,0x41,0x84,0x21,0x88,0x11,/*FORK lower left*/
; 0x90,0x09,0x80,0x01,0x80,0x01,0xFF,0xFF, /*FORK lower right*/
; //;-- 一 -- ** 宋体, 12 **
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x7F,0xFE,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; //;-- 二 -- ** 宋体, 12 **
; 0x00,0x00,0x00,0x10,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x7F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,
; //;-- 三 -- ** 宋体, 12 **
; 0x00,0x00,0x00,0x00,0x7F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF8,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFE,0x00,0x00,0x00,0x00,
; //;-- 四 -- ** 宋体, 12 **
; 0x00,0x00,0x7F,0xFC,0x44,0x84,0x44,0x84,0x44,0x84,0x44,0x84,0x44,0x84,0x44,0x84,
; 0x48,0x84,0x48,0x7C,0x50,0x04,0x60,0x04,0x40,0x04,0x7F,0xFC,0x40,0x04,0x00,0x00,
; //;-- 五 -- ** 宋体, 12 **
; 0x00,0x00,0x7F,0xF8,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x20,0x3F,0xF0,
; 0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x24,0xFF,0xFE,0x00,0x00,0x00,0x00,
; //;-- 监 -- ** 宋体, 12 **
; 0x04,0x80,0x24,0xC0,0x24,0x80,0x24,0xFE,0x25,0x40,0x26,0x20,0x24,0x30,0x04,0x10,
; 0x00,0x00,0x3F,0xF8,0x24,0x88,0x24,0x88,0x24,0x88,0x24,0x88,0xFF,0xFE,0x00,0x00,
; //;-- 控 -- ** 宋体, 12 **
; 0x10,0x00,0x10,0x20,0x10,0x10,0xFD,0xFE,0x11,0x04,0x10,0x50,0x14,0x8C,0x19,0x04,
; 0x30,0x00,0xD1,0xFC,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x53,0xFE,0x20,0x00,
; //;-- 画 -- ** 宋体, 12 **
; 0x00,0x00,0xFF,0xFE,0x00,0x00,0x0F,0xE0,0x49,0x24,0x49,0x24,0x4F,0xE4,0x49,0x24,
; 0x49,0x24,0x49,0x24,0x4F,0xE4,0x48,0x24,0x40,0x04,0x7F,0xFC,0x40,0x04,0x00,0x00,
; //;-- 面 -- ** 宋体, 12 **
; 0x00,0x00,0x7F,0xFE,0x02,0x00,0x04,0x00,0x3F,0xFC,0x24,0x44,0x24,0x44,0x27,0xC4,
; 0x24,0x44,0x24,0x44,0x27,0xC4,0x24,0x44,0x24,0x44,0x3F,0xFC,0x20,0x04,0x00,0x00,
; //;-- 参 -- ** 宋体, 12 **
; 0x04,0x00,0x0C,0x20,0x11,0xF0,0x3F,0x10,0x02,0x00,0xFF,0xFC,0x04,0x40,0x09,0x20,
; 0x32,0x18,0xCC,0x6E,0x31,0x84,0x06,0x18,0x18,0x60,0x03,0x80,0x7C,0x00,0x00,0x00,
; //;-- 数 -- ** 宋体, 12 **
; 0x08,0x20,0x49,0x30,0x2A,0x20,0x1C,0x20,0xFF,0x7E,0x1C,0x44,0x2B,0x44,0x48,0xC4,
; 0x08,0x28,0xFF,0x28,0x12,0x10,0x34,0x10,0x0C,0x28,0x32,0x4E,0xC0,0x84,0x00,0x00,
; //;-- 设 -- ** 宋体, 12 **
; 0x40,0x00,0x21,0xF0,0x31,0x10,0x21,0x10,0x01,0x10,0x01,0x10,0xE2,0x0E,0x25,0xF8,
; 0x21,0x08,0x21,0x08,0x20,0x90,0x20,0x90,0x28,0x60,0x30,0x90,0x23,0x0E,0x0C,0x04,
; //;-- 置 -- ** 宋体, 12 **
; 0x3F,0xF8,0x24,0x48,0x24,0x48,0x3F,0xF8,0x01,0x00,0x7F,0xFC,0x02,0x00,0x1F,0xF0,
; 0x10,0x10,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,0xFF,0xFE,
; //;-- 信 -- ** 宋体, 12 **
; 0x08,0x80,0x0C,0x60,0x18,0x40,0x17,0xFE,0x30,0x00,0x33,0xF8,0x50,0x00,0x93,0xF8,
; 0x10,0x00,0x13,0xF8,0x12,0x08,0x12,0x08,0x12,0x08,0x13,0xF8,0x12,0x08,0x00,0x00,
; //;-- 号 -- ** 宋体, 12 **
; 0x1F,0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0xF0,0x00,0x00,0xFF,0xFE,0x08,0x00,
; 0x08,0x00,0x1F,0xF0,0x08,0x10,0x00,0x10,0x00,0x10,0x01,0x10,0x00,0xA0,0x00,0x40,
; //;-- 测 -- ** 宋体, 12 **
; 0x40,0x02,0x27,0xC2,0x24,0x42,0x84,0x52,0x45,0x52,0x55,0x52,0x15,0x52,0x25,0x52,
; 0x25,0x52,0x25,0x52,0xC5,0x52,0x41,0x02,0x42,0x82,0x42,0x42,0x44,0x4A,0x48,0x04,
; //;-- 试 -- ** 宋体, 12 **
; 0x00,0x20,0x40,0x28,0x20,0x24,0x30,0x24,0x27,0xFE,0x00,0x20,0xE0,0x20,0x27,0xE0,
; 0x21,0x20,0x21,0x10,0x21,0x10,0x21,0x0A,0x29,0xCA,0x36,0x06,0x20,0x02,0x00,0x00,
; //;-- 花 -- ** 宋体, 12 **
; 0x04,0x40,0x04,0x40,0xFF,0xFE,0x04,0x40,0x08,0x00,0x0C,0x80,0x08,0x90,0x18,0x98,
; 0x28,0xA0,0x48,0xC0,0x09,0x80,0x0A,0x84,0x08,0x84,0x08,0x86,0x08,0x7C,0x08,0x00,
; //;-- 样 -- ** 宋体, 12 **
; 0x11,0x08,0x10,0x88,0x10,0x90,0xFD,0xFE,0x10,0x20,0x30,0x20,0x39,0xFC,0x54,0x20,
; 0x50,0x20,0x90,0x20,0x13,0xFE,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,
; //;-- 编 -- ** 宋体, 12 **
; 0x10,0x80,0x18,0x40,0x23,0xFC,0x22,0x04,0x4A,0x04,0xFB,0xFC,0x12,0x00,0x23,0xFC,
; 0x7B,0x54,0x03,0x54,0x05,0xFC,0x35,0x54,0xC5,0x54,0x09,0x54,0x11,0x0C,0x00,0x00,
; //;-- 制 -- ** 宋体, 12 **
; 0x24,0x04,0x34,0x04,0x24,0x24,0x3F,0xA4,0x44,0x24,0x04,0x24,0x7F,0xA4,0x04,0x24,
; 0x3F,0xA4,0x24,0xA4,0x24,0xA4,0x24,0xA4,0x24,0x84,0x27,0x84,0x05,0x14,0x04,0x08,
; //;-- 权 -- ** 宋体, 12 **
; 0x10,0x00,0x10,0x00,0x11,0xFC,0xFE,0x84,0x10,0x88,0x30,0x88,0x38,0x88,0x34,0x48,
; 0x54,0x50,0x50,0x50,0x90,0x20,0x10,0x20,0x10,0x50,0x11,0x8E,0x16,0x04,0x10,0x00
;
; };
;
; #pragma data: eeprom
; #pragma data: data
;
; /******************************************************************
; ******************************************************************
; Function Area
; *******************************************************************
; */
; void delay_us(uint n)
; {
.dbline 234
; uint i=0;
clr R20
clr R21
.dbline 235
; for(i=0;i<n;i++)
xjmp L5
L2:
.dbline 236
nop
L3:
.dbline 235
subi R20,255 ; offset = 1
sbci R21,255
L5:
.dbline 235
cp R20,R16
cpc R21,R17
brlo L2
.dbline -2
L1:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym r n 16 i
.dbend
.dbfunc e delay_1ms _delay_1ms fV
; i -> R16,R17
.even
_delay_1ms::
.dbline -1
.dbline 240
; NOP();
; }
;
; void delay_1ms(void)
; {
.dbline 242
ldi R16,1
ldi R17,0
xjmp L10
L7:
.dbline 242
L8:
.dbline 242
subi R16,255 ; offset = 1
sbci R17,255
L10:
.dbline 242
; uint i;
; for(i=1;i<(uint)(xtal*143-2);i++);
cpi R16,118
ldi R30,4
cpc R17,R30
brlo L7
.dbline -2
L6:
.dbline 0 ; func end
ret
.dbsym r i 16 i
.dbend
.dbfunc e delay _delay fV
; i -> R20,R21
; n -> R22,R23
.even
_delay::
xcall push_gset2
movw R22,R16
.dbline -1
.dbline 246
; }
;
; void delay(uint n)
; {
.dbline 247
; uint i=0;
clr R20
clr R21
.dbline 248
; for(i=0;i<n;i++)
xjmp L15
L12:
.dbline 249
xcall _delay_1ms
L13:
.dbline 248
subi R20,255 ; offset = 1
sbci R21,255
L15:
.dbline 248
cp R20,R22
cpc R21,R23
brlo L12
.dbline -2
L11:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym r n 22 i
.dbend
.dbfunc e McuInit _McuInit fV
.even
_McuInit::
.dbline -1
.dbline 253
; delay_1ms();
; }
;
; void McuInit(void)
; {
.dbline 254
; MCUCR=0x00;
clr R2
out 0x35,R2
.dbline 255
; DDRA =0xFF;
ldi R24,255
out 0x1a,R24
.dbline 256
; PORTA=0xFF;
out 0x1b,R24
.dbline 257
; DDRB =0xFF;
out 0x17,R24
.dbline 258
; PORTB=0xFF;
out 0x18,R24
.dbline 259
; DDRC =0xFF;
out 0x14,R24
.dbline 260
; PORTC=0xFF;
out 0x15,R24
.dbline 261
; DDRD =0xFF;
out 0x11,R24
.dbline 262
; PORTD=0xFF;
out 0x12,R24
.dbline -2
L16:
.dbline 0 ; func end
ret
.dbend
.dbfunc e ReadSta _ReadSta fc
; data -> R16
.even
_ReadSta::
.dbline -1
.dbline 266
; }
;
; uchar ReadSta(void)
; {
.dbline 269
; uchar data;
; // NOP();NOP();NOP();
; WR_SET;
sbi 0x1b,3
.dbline 270
; CD_SET;
sbi 0x15,0
.dbline 271
; NOP();NOP();NOP();
nop
.dbline 271
nop
.dbline 271
nop
.dbline 272
; RD_CLR;
cbi 0x1b,2
.dbline 273
; NOP();NOP();NOP();
nop
.dbline 273
nop
.dbline 273
nop
.dbline 274
; IN_DIR;
sbi 0x1b,0
.dbline 275
; DDRB=0x00;
clr R2
out 0x17,R2
.dbline 276
; NOP();NOP();NOP();
nop
.dbline 276
nop
.dbline 276
nop
.dbline 277
; data=PINB;
in R16,0x16
.dbline 278
; RD_SET;
sbi 0x1b,2
.dbline 279
; CD_CLR;
cbi 0x15,0
.dbline 280
; NOP();NOP();NOP();
nop
.dbline 280
nop
.dbline 280
nop
.dbline 281
; return data;
.dbline -2
L17:
.dbline 0 ; func end
ret
.dbsym r data 16 c
.dbend
.dbfunc e WriteCmd _WriteCmd fV
; command -> R20
.even
_WriteCmd::
xcall push_gset1
mov R20,R16
.dbline -1
.dbline 285
; }
;
; void WriteCmd(uchar command)
; {
L19:
.dbline 286
L20:
.dbline 286
; while ( (ReadSta()&0x03) !=0x03);
xcall _ReadSta
mov R24,R16
andi R24,3
cpi R24,3
brne L19
.dbline 287
; RD_SET;
sbi 0x1b,2
.dbline 288
; CD_SET;
sbi 0x15,0
.dbline 289
; OUT_DIR;
cbi 0x1b,0
.dbline 290
; DDRB=0xFF;
ldi R24,255
out 0x17,R24
.dbline 291
; PORTB=command;
out 0x18,R20
.dbline 293
; // NOP();NOP();NOP();
; WR_CLR;
cbi 0x1b,3
.dbline 294
; NOP();NOP();NOP();
nop
.dbline 294
nop
.dbline 294
nop
.dbline 295
; WR_SET;
sbi 0x1b,3
.dbline 296
; CD_CLR;
cbi 0x15,0
.dbline -2
L18:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r command 20 c
.dbend
.dbfunc e WriteData _WriteData fV
; data -> R20
.even
_WriteData::
xcall push_gset1
mov R20,R16
.dbline -1
.dbline 301
;
; }
;
; void WriteData(uchar data)
; {
L23:
.dbline 302
L24:
.dbline 302
; while ( (ReadSta()&0x03) !=0x03);
xcall _ReadSta
mov R24,R16
andi R24,3
cpi R24,3
brne L23
.dbline 303
; RD_SET;
sbi 0x1b,2
.dbline 304
; CD_CLR;
cbi 0x15,0
.dbline 305
; OUT_DIR;
cbi 0x1b,0
.dbline 306
; DDRB=0xFF;
ldi R24,255
out 0x17,R24
.dbline 307
; PORTB=data;
out 0x18,R20
.dbline 309
; // NOP();NOP();NOP();
; WR_CLR;
cbi 0x1b,3
.dbline 310
; NOP();NOP();NOP();
nop
.dbline 310
nop
.dbline 310
nop
.dbline 311
; WR_SET;
sbi 0x1b,3
.dbline -2
L22:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r data 20 c
.dbend
.dbfunc e WrTwoParCmd _WrTwoParCmd fV
; command -> y+4
; par2 -> R20
; par1 -> R22
.even
_WrTwoParCmd::
xcall push_gset2
mov R20,R18
mov R22,R16
.dbline -1
.dbline 314
; }
; void WrTwoParCmd(uchar par1,uchar par2,uchar command)
; {
.dbline 315
; WriteData(par1);
mov R16,R22
xcall _WriteData
.dbline 316
; WriteData(par2);
mov R16,R20
xcall _WriteData
.dbline 317
; WriteCmd(command);
ldd R16,y+4
xcall _WriteCmd
.dbline -2
L26:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym l command 4 c
.dbsym r par2 20 c
.dbsym r par1 22 c
.dbend
.dbfunc e WrOneParCmd _WrOneParCmd fV
; command -> R20
; par -> R22
.even
_WrOneParCmd::
xcall push_gset2
mov R20,R18
mov R22,R16
.dbline -1
.dbline 320
; }
; void WrOneParCmd(uchar par,uchar command)
; {
.dbline 321
; WriteData(par);
mov R16,R22
xcall _WriteData
.dbline 322
; WriteCmd(command);
mov R16,R20
xcall _WriteCmd
.dbline -2
L27:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r command 20 c
.dbsym r par 22 c
.dbend
.dbfunc e ClrRam _ClrRam fV
; i -> R20,R21
; data -> R22,R23
.even
_ClrRam::
xcall push_gset2
movw R22,R16
sbiw R28,1
.dbline -1
.dbline 326
; }
;
; void ClrRam(uint data)
; {
.dbline 329
; uint i;
;
; WrTwoParCmd(0x00,0x00,ADPSET);
ldi R24,36
std y+0,R24
clr R18
clr R16
xcall _WrTwoParCmd
L29:
.dbline 331
L30:
.dbline 331
; // WrTwoParCmd(0x00,0x00,ADPSET);//No Repeat--False Code
; while((ReadSta()&0x08)!=8);
xcall _ReadSta
mov R24,R16
andi R24,8
cpi R24,8
brne L29
.dbline 332
; WriteCmd(AWRON);
ldi R16,176
xcall _WriteCmd
.dbline 333
; for(i=0;i<(LCDCOLUMN*LCDLINE);i++)
clr R20
clr R21
xjmp L35
L32:
.dbline 334
mov R16,R22
xcall _WriteData
L33:
.dbline 333
subi R20,255 ; offset = 1
sbci R21,255
L35:
.dbline 333
cpi R20,224
ldi R30,1
cpc R21,R30
brlo L32
.dbline 335
; WriteData(data);
; WriteCmd(AWROFF);
ldi R16,178
xcall _WriteCmd
.dbline -2
L28:
adiw R28,1
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym r data 22 i
.dbend
.dbfunc e WrCGRAM _WrCGRAM fV
; len -> R20,R21
; j -> R22,R23
; i -> R10,R11
.even
_WrCGRAM::
xcall push_gset3
sbiw R28,1
.dbline -1
.dbline 340
;
; }
;
; void WrCGRAM(void)
; {
.dbline 343
; uint i,j,len;
;
; WrTwoParCmd(0x00,0x00,OFFSET);
ldi R24,34
std y+0,R24
clr R18
clr R16
xcall _WrTwoParCmd
.dbline 344
; WrTwoParCmd(0x00,0x04,ADPSET);
ldi R24,36
std y+0,R24
ldi R18,4
clr R16
xcall _WrTwoParCmd
L37:
.dbline 345
L38:
.dbline 345
; while((ReadSta()&0x08)!=8);
xcall _ReadSta
mov R24,R16
andi R24,8
cpi R24,8
brne L37
.dbline 346
; WriteCmd(AWRON);
ldi R16,176
xcall _WriteCmd
.dbline 347
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -