📄 yj12864.lis
字号:
01E2 E9F7 brne L49
01E4 .dbline 227
01E4 ; LCD12864_sendbyte(iCmd,LCDb_EXTCMD1); //扩充指令集,并关闭绘图显示
01E4 24E3 ldi R18,52
01E6 0027 clr R16
01E8 7FDF xcall _LCD12864_sendbyte
01EA .dbline 229
01EA ; //写入并显示上半屏幕
01EA ; for(i=0;i<32;i++) //行地址计数
01EA 4427 clr R20
01EC 2DC0 xjmp L55
01EE L52:
01EE .dbline 230
01EE ; {
01EE .dbline 231
01EE ; for(j=0;j<8;j++) //列地址计数
01EE AA24 clr R10
01F0 27C0 xjmp L59
01F2 L56:
01F2 .dbline 232
01F2 .dbline 233
01F2 242F mov R18,R20
01F4 2068 ori R18,128
01F6 0027 clr R16
01F8 77DF xcall _LCD12864_sendbyte
01FA .dbline 234
01FA 0AE0 ldi R16,10
01FC 10E0 ldi R17,0
01FE 00DF xcall _Delayus
0200 .dbline 235
0200 2A2D mov R18,R10
0202 2068 ori R18,128
0204 0027 clr R16
0206 70DF xcall _LCD12864_sendbyte
0208 .dbline 236
0208 0AE0 ldi R16,10
020A 10E0 ldi R17,0
020C F9DE xcall _Delayus
020E .dbline 237
020E 1B01 movw R2,R22
0210 6F5F subi R22,255 ; offset = 1
0212 7F4F sbci R23,255
0214 F101 movw R30,R2
0216 EC0D add R30,R12
0218 FD1D adc R31,R13
021A 2491 lpm R18,Z
021C 01E0 ldi R16,1
021E 64DF xcall _LCD12864_sendbyte
0220 .dbline 238
0220 0AE0 ldi R16,10
0222 10E0 ldi R17,0
0224 EDDE xcall _Delayus
0226 .dbline 239
0226 1B01 movw R2,R22
0228 6F5F subi R22,255 ; offset = 1
022A 7F4F sbci R23,255
022C F101 movw R30,R2
022E EC0D add R30,R12
0230 FD1D adc R31,R13
0232 2491 lpm R18,Z
0234 01E0 ldi R16,1
0236 58DF xcall _LCD12864_sendbyte
0238 .dbline 240
0238 0AE0 ldi R16,10
023A 10E0 ldi R17,0
023C E1DE xcall _Delayus
023E .dbline 241
023E L57:
023E .dbline 231
023E A394 inc R10
0240 L59:
0240 .dbline 231
0240 8A2D mov R24,R10
0242 8830 cpi R24,8
0244 B0F2 brlo L56
0246 .dbline 242
0246 L53:
0246 .dbline 229
0246 4395 inc R20
0248 L55:
0248 .dbline 229
0248 4032 cpi R20,32
024A 08F4 brsh X1
024C D0CF xjmp L52
024E X1:
024E .dbline 244
024E ; {
024E ; LCD12864_sendbyte(iCmd,0x80|i);//输入行地址
024E ; Delayus(10);
024E ; LCD12864_sendbyte(iCmd,0x80|j);//输入列地址
024E ; Delayus(10);
024E ; LCD12864_sendbyte(iDat,ptGDRAM[x++]); //输入高位字节数据
024E ; Delayus(10);
024E ; LCD12864_sendbyte(iDat,ptGDRAM[x++]); //输入低位字节数据
024E ; Delayus(10);
024E ; }
024E ; }
024E ; //写入并显示下半屏幕
024E ; for(i=0;i<32;i++)
024E 4427 clr R20
0250 2EC0 xjmp L63
0252 L60:
0252 .dbline 245
0252 ; {
0252 .dbline 246
0252 ; for(j=8;j<16;j++)
0252 88E0 ldi R24,8
0254 A82E mov R10,R24
0256 27C0 xjmp L67
0258 L64:
0258 .dbline 247
0258 .dbline 248
0258 242F mov R18,R20
025A 2068 ori R18,128
025C 0027 clr R16
025E 44DF xcall _LCD12864_sendbyte
0260 .dbline 249
0260 0AE0 ldi R16,10
0262 10E0 ldi R17,0
0264 CDDE xcall _Delayus
0266 .dbline 250
0266 2A2D mov R18,R10
0268 2068 ori R18,128
026A 0027 clr R16
026C 3DDF xcall _LCD12864_sendbyte
026E .dbline 251
026E 0AE0 ldi R16,10
0270 10E0 ldi R17,0
0272 C6DE xcall _Delayus
0274 .dbline 252
0274 1B01 movw R2,R22
0276 6F5F subi R22,255 ; offset = 1
0278 7F4F sbci R23,255
027A F101 movw R30,R2
027C EC0D add R30,R12
027E FD1D adc R31,R13
0280 2491 lpm R18,Z
0282 01E0 ldi R16,1
0284 31DF xcall _LCD12864_sendbyte
0286 .dbline 253
0286 0AE0 ldi R16,10
0288 10E0 ldi R17,0
028A BADE xcall _Delayus
028C .dbline 254
028C 1B01 movw R2,R22
028E 6F5F subi R22,255 ; offset = 1
0290 7F4F sbci R23,255
0292 F101 movw R30,R2
0294 EC0D add R30,R12
0296 FD1D adc R31,R13
0298 2491 lpm R18,Z
029A 01E0 ldi R16,1
029C 25DF xcall _LCD12864_sendbyte
029E .dbline 255
029E 0AE0 ldi R16,10
02A0 10E0 ldi R17,0
02A2 AEDE xcall _Delayus
02A4 .dbline 256
02A4 L65:
02A4 .dbline 246
02A4 A394 inc R10
02A6 L67:
02A6 .dbline 246
02A6 8A2D mov R24,R10
02A8 8031 cpi R24,16
02AA B0F2 brlo L64
02AC .dbline 257
02AC L61:
02AC .dbline 244
02AC 4395 inc R20
02AE L63:
02AE .dbline 244
02AE 4032 cpi R20,32
02B0 08F4 brsh X2
02B2 CFCF xjmp L60
02B4 X2:
02B4 .dbline 258
02B4 ; {
02B4 ; LCD12864_sendbyte(iCmd,0x80|i);//输入行地址
02B4 ; Delayus(10);
02B4 ; LCD12864_sendbyte(iCmd,0x80|j);//输入列地址
02B4 ; Delayus(10);
02B4 ; LCD12864_sendbyte(iDat,ptGDRAM[x++]); //输入高位字节数据
02B4 ; Delayus(10);
02B4 ; LCD12864_sendbyte(iDat,ptGDRAM[x++]); //输入低位字节数据
02B4 ; Delayus(10);
02B4 ; }
02B4 ; }
02B4 ; Delayus(10);
02B4 0AE0 ldi R16,10
02B6 10E0 ldi R17,0
02B8 A3DE xcall _Delayus
02BA .dbline 259
02BA ; LCD12864_sendbyte(iCmd,LCDb_EXTCMD2); //打开绘图显示
02BA 26E3 ldi R18,54
02BC 0027 clr R16
02BE 14DF xcall _LCD12864_sendbyte
02C0 .dbline 260
02C0 ; LCD12864_sendbyte(iCmd,LCDb_BASCMD); //还原回基本指令集模式
02C0 20E3 ldi R18,48
02C2 0027 clr R16
02C4 11DF xcall _LCD12864_sendbyte
02C6 .dbline -2
02C6 .dbline 261
02C6 ; }
02C6 L48:
02C6 0E940000 xcall pop_gset4
02CA .dbline 0 ; func end
02CA 0895 ret
02CC .dbsym r i 20 c
02CC .dbsym r x 22 i
02CC .dbsym r j 10 c
02CC .dbsym r ptGDRAM 12 pc
02CC .dbend
02CC .dbfunc e main _main fV
02CC ; i -> <dead>
.even
02CC _main::
02CC .dbline -1
02CC .dbline 270
02CC ;
02CC ; /*******************************************
02CC ; 函数名称: main
02CC ; 功 能: 12864液晶驱动主程序
02CC ; 参 数: 无
02CC ; 返回值 : 无
02CC ; /********************************************/
02CC ; void main(void)
02CC ; {
02CC .dbline 272
02CC ; uchar i;
02CC ; Board_init( ); //初始化开发板
02CC C7DE xcall _Board_init
02CE .dbline 273
02CE ; LCD12864_initial(); //初始化12864液晶
02CE 6BDF xcall _LCD12864_initial
02D0 26C0 xjmp L70
02D2 L69:
02D2 .dbline 276
02D2 ;
02D2 ; while(1)
02D2 ; {
02D2 .dbline 277
02D2 ; LCD12864_clear();
02D2 2DDF xcall _LCD12864_clear
02D4 L72:
02D4 .dbline 278
02D4 L73:
02D4 .dbline 278
02D4 32DF xcall _LCD12864_readBF
02D6 0023 tst R16
02D8 E9F7 brne L72
02DA .dbline 279
02DA 2227 clr R18
02DC 01E0 ldi R16,1
02DE 3BDF xcall _LCD12864_gotoXY
02E0 .dbline 280
02E0 00E0 ldi R16,<L75
02E2 10E0 ldi R17,>L75
02E4 14DF xcall _LCD12864_sendstr
02E6 .dbline 281
02E6 22E0 ldi R18,2
02E8 02E0 ldi R16,2
02EA 35DF xcall _LCD12864_gotoXY
02EC .dbline 282
02EC 00E0 ldi R16,<L76
02EE 10E0 ldi R17,>L76
02F0 0EDF xcall _LCD12864_sendstr
02F2 .dbline 283
02F2 2227 clr R18
02F4 03E0 ldi R16,3
02F6 2FDF xcall _LCD12864_gotoXY
02F8 .dbline 284
02F8 00E0 ldi R16,<L77
02FA 10E0 ldi R17,>L77
02FC 08DF xcall _LCD12864_sendstr
02FE .dbline 285
02FE 21E0 ldi R18,1
0300 04E0 ldi R16,4
0302 29DF xcall _LCD12864_gotoXY
0304 .dbline 286
0304 00E0 ldi R16,<L78
0306 10E0 ldi R17,>L78
0308 02DF xcall _LCD12864_sendstr
030A .dbline 287
030A 00ED ldi R16,2000
030C 17E0 ldi R17,7
030E 90DE xcall _Delayms
0310 .dbline 289
0310 0EDF xcall _LCD12864_clear
0312 .dbline 290
0312 00E0 ldi R16,<_GDRAM
0314 10E0 ldi R17,>_GDRAM
0316 5EDF xcall _LCD12864_opGDRAM
0318 .dbline 291
0318 00ED ldi R16,2000
031A 17E0 ldi R17,7
031C 89DE xcall _Delayms
031E .dbline 292
031E L70:
031E .dbline 275
031E D9CF xjmp L69
0320 X3:
0320 .dbline -2
0320 .dbline 293
0320 ; while(LCD12864_readBF());
0320 ; LCD12864_gotoXY(1,0); //第1行,第1列显示
032
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -