📄 co0511.lis
字号:
011C .dbline 330
011C 01E0 ldi R16,1
011E CADF xcall _set_sclk
0120 .dbline 331
0120 AA0C lsl R10
0122 .dbline 332
0122 L49:
0122 .dbline 322
0122 6150 subi R22,1
0124 7040 sbci R23,0
0126 .dbline 322
0126 2224 clr R2
0128 3324 clr R3
012A 2616 cp R2,R22
012C 3706 cpc R3,R23
012E 54F3 brlt L48
0130 .dbline -2
0130 .dbline 333
0130 ; set_sclk(1);
0130 ; s=s<<1;
0130 ; }
0130 ; }
0130 L47:
0130 0E940000 xcall pop_gset3
0134 .dbline 0 ; func end
0134 0895 ret
0136 .dbsym r temp 20 c
0136 .dbsym r i 22 I
0136 .dbsym r s 10 c
0136 .dbsym r dat 20 c
0136 .dbend
0136 .dbfunc e w_com _w_com fV
0136 ; com -> R20
.even
0136 _w_com::
0136 0E940000 xcall push_gset1
013A 402F mov R20,R16
013C .dbline -1
013C .dbline 338
013C ; /*************************************************/
013C ; //写命令,串行模式
013C ; /*************************************************/
013C ; void w_com(unsigned char com)
013C ; {
013C .dbline 339
013C ; set_a0(0);
013C 0027 clr R16
013E B2DF xcall _set_a0
0140 .dbline 340
0140 ; set_cs(0);
0140 0027 clr R16
0142 A0DF xcall _set_cs
0144 .dbline 341
0144 ; data_send(com);
0144 042F mov R16,R20
0146 D6DF xcall _data_send
0148 .dbline -2
0148 .dbline 342
0148 ; }
0148 L54:
0148 0E940000 xcall pop_gset1
014C .dbline 0 ; func end
014C 0895 ret
014E .dbsym r com 20 c
014E .dbend
014E .dbfunc e w_data _w_data fV
014E ; dat -> R20
.even
014E _w_data::
014E 0E940000 xcall push_gset1
0152 402F mov R20,R16
0154 .dbline -1
0154 .dbline 347
0154 ; /*************************************************/
0154 ; //写数据,串行模式
0154 ; /*************************************************/
0154 ; void w_data(unsigned char dat)
0154 ; {
0154 .dbline 348
0154 ; set_a0(1);
0154 01E0 ldi R16,1
0156 A6DF xcall _set_a0
0158 .dbline 349
0158 ; set_cs(0);
0158 0027 clr R16
015A 94DF xcall _set_cs
015C .dbline 350
015C ; data_send(dat);
015C 042F mov R16,R20
015E CADF xcall _data_send
0160 .dbline -2
0160 .dbline 351
0160 ; }
0160 L55:
0160 0E940000 xcall pop_gset1
0164 .dbline 0 ; func end
0164 0895 ret
0166 .dbsym r dat 20 c
0166 .dbend
0166 .dbfunc e clrram _clrram fV
0166 ; page -> R20
0166 ; i -> R22
0166 ; j -> R10
.even
0166 _clrram::
0166 0E940000 xcall push_gset3
016A .dbline -1
016A .dbline 356
016A ; /*************************************************/
016A ; //清DDRAM
016A ; /************************************************/
016A ; void clrram (void)
016A ; { uchar i,j,page;
016A .dbline 357
016A ; page=0xb0;
016A 40EB ldi R20,176
016C .dbline 358
016C ; for(i=0;i<8;i++)
016C 6627 clr R22
016E 10C0 xjmp L60
0170 L57:
0170 .dbline 359
0170 ; {
0170 .dbline 360
0170 ; w_com(page); /*设置页*/
0170 042F mov R16,R20
0172 E1DF xcall _w_com
0174 .dbline 361
0174 ; w_com(0x10); /*设置列号*/
0174 00E1 ldi R16,16
0176 DFDF xcall _w_com
0178 .dbline 362
0178 ; w_com(0x00);
0178 0027 clr R16
017A DDDF xcall _w_com
017C .dbline 363
017C ; for(j=0;j<128;j++)
017C AA24 clr R10
017E 03C0 xjmp L64
0180 L61:
0180 .dbline 364
0180 .dbline 365
0180 0027 clr R16
0182 E5DF xcall _w_data
0184 .dbline 366
0184 L62:
0184 .dbline 363
0184 A394 inc R10
0186 L64:
0186 .dbline 363
0186 8A2D mov R24,R10
0188 8038 cpi R24,128
018A D0F3 brlo L61
018C .dbline 367
018C 4395 inc R20
018E .dbline 368
018E L58:
018E .dbline 358
018E 6395 inc R22
0190 L60:
0190 .dbline 358
0190 6830 cpi R22,8
0192 70F3 brlo L57
0194 .dbline -2
0194 .dbline 369
0194 ; {
0194 ; w_data(0x00);
0194 ; }
0194 ; page++;
0194 ; }
0194 ; }
0194 L56:
0194 0E940000 xcall pop_gset3
0198 .dbline 0 ; func end
0198 0895 ret
019A .dbsym r page 20 c
019A .dbsym r i 22 c
019A .dbsym r j 10 c
019A .dbend
019A .dbfunc e init_lcd _init_lcd fV
019A ; i -> R20
.even
019A _init_lcd::
019A 0E940000 xcall push_gset1
019E .dbline -1
019E .dbline 374
019E ; /************************************************/
019E ; //液晶初始化
019E ; /************************************************/
019E ; void init_lcd (void)
019E ; {
019E .dbline 375
019E ; uchar i=0;
019E 4427 clr R20
01A0 .dbline 376
01A0 ; set_res(0);
01A0 0027 clr R16
01A2 78DF xcall _set_res
01A4 .dbline 377
01A4 ; delay_nms(100);
01A4 04E6 ldi R16,100
01A6 10E0 ldi R17,0
01A8 46DF xcall _delay_nms
01AA .dbline 378
01AA ; set_res(1);
01AA 01E0 ldi R16,1
01AC 73DF xcall _set_res
01AE .dbline 379
01AE ; delay_nms(100); /*复位液晶*/
01AE 04E6 ldi R16,100
01B0 10E0 ldi R17,0
01B2 41DF xcall _delay_nms
01B4 .dbline 380
01B4 ; w_com(0xae); /*Display ON/OFF 0xae:OFF 0xaf:ON*/
01B4 0EEA ldi R16,174
01B6 BFDF xcall _w_com
01B8 .dbline 381
01B8 ; w_com(0xa2); /*LCD bias set 0xa2:1/9 0xa3:1/7*/
01B8 02EA ldi R16,162
01BA BDDF xcall _w_com
01BC .dbline 382
01BC ; w_com(0xa0); /*ADC select 0xa0:0-127 0xa1:127-0*/
01BC 00EA ldi R16,160
01BE BBDF xcall _w_com
01C0 .dbline 383
01C0 ; w_com(0xc8);
01C0 08EC ldi R16,200
01C2 B9DF xcall _w_com
01C4 .dbline 384
01C4 ; w_com(0xa6); /*Display 0xa6:normal 0xa7:reverse*/
01C4 06EA ldi R16,166
01C6 B7DF xcall _w_com
01C8 .dbline 385
01C8 ; w_com(0x2a); /* V0 Voltage Regulator Internal Resistor Ration Set*/
01C8 0AE2 ldi R16,42
01CA B5DF xcall _w_com
01CC .dbline 386
01CC ; w_com(0x81); /*Electronic Volume*/
01CC 01E8 ldi R16,129
01CE B3DF xcall _w_com
01D0 .dbline 387
01D0 ; w_com(0x2a);
01D0 0AE2 ldi R16,42
01D2 B1DF xcall _w_com
01D4 .dbline 388
01D4 ; w_com(0x2f); /*power control*/
01D4 0FE2 ldi R16,47
01D6 AFDF xcall _w_com
01D8 .dbline 389
01D8 ; delay_nms(100);
01D8 04E6 ldi R16,100
01DA 10E0 ldi R17,0
01DC 2CDF xcall _delay_nms
01DE .dbline -2
01DE .dbline 390
01DE ; }
01DE L65:
01DE 0E940000 xcall pop_gset1
01E2 .dbline 0 ; func end
01E2 0895 ret
01E4 .dbsym r i 20 c
01E4 .dbend
01E4 .dbfunc e img_disp _img_disp fV
01E4 ; page -> R20
01E4 ; i -> R22
01E4 ; j -> R12
01E4 ; point -> R10,R11
.even
01E4 _img_disp::
01E4 0E940000 xcall push_gset4
01E8 5801 movw R10,R16
01EA .dbline -1
01EA .dbline 395
01EA ; /**********************************************/
01EA ; //图形显示
01EA ; /*********************************************/
01EA ; void img_disp(const uchar *point)
01EA ; { uchar i,j,page;
01EA .dbline 396
01EA ; page=0xb7;
01EA 47EB ldi R20,183
01EC .dbline 397
01EC ; w_com(0xaf);
01EC 0FEA ldi R16,175
01EE A3DF xcall _w_com
01F0 .dbline 398
01F0 ; for(i=0;i<8;i++)
01F0 6627 clr R22
01F2 15C0 xjmp L70
01F4 L67:
01F4 .dbline 399
01F4 ; {
01F4 .dbline 400
01F4 ; w_com(page); /*设置页*/
01F4 042F mov R16,R20
01F6 9FDF xcall _w_com
01F8 .dbline 401
01F8 ; w_com(0x10); /*设置列号*/
01F8 00E1 ldi R16,16
01FA 9DDF xcall _w_com
01FC .dbline 402
01FC ; w_com(0x10);
01FC 00E1 ldi R16,16
01FE 9BDF xcall _w_com
0200 .dbline 403
0200 ; for(j=0;j<128;j++)
0200 CC24 clr R12
0202 08C0 xjmp L74
0204 L71:
0204 .dbline 404
0204 .dbline 405
0204 1501 movw R2,R10
0206 C101 movw R24,R2
0208 0196 adiw R24,1
020A 5C01 movw R10,R24
020C F101 movw R30,R2
020E 0491 lpm R16,Z
0210 9EDF xcall _w_data
0212
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -