📄 avr320240.lis
字号:
0178 ; *******************************************************************************/
0178 ; void WriteCommand( Uchar CommandByte )
0178 ; {
0178 .dbline 277
0178 ; PORTB|=(1<<3); //rs = 1
0178 C39A sbi 0x18,3
017A .dbline 278
017A ; PORTB|=(1<<1); //read = 1
017A C19A sbi 0x18,1
017C .dbline 279
017C ; PORTB|=(1<<0); //write = 1
017C C09A sbi 0x18,0
017E .dbline 280
017E ; PORTA=0xff;
017E 8FEF ldi R24,255
0180 8BBB out 0x1b,R24
0182 .dbline 281
0182 ; PORTA=CommandByte;
0182 0BBB out 0x1b,R16
0184 .dbline 283
0184 ; // Delay(10);
0184 ; PORTB &= ~(1<<2); //cs = 0
0184 C298 cbi 0x18,2
0186 .dbline 285
0186 ; // Delay(10);
0186 ; PORTB &= ~(1<<0); //write = 0
0186 C098 cbi 0x18,0
0188 .dbline 287
0188 ; // Delay(20);
0188 ; PORTB |= (1<<0); //write = 1
0188 C09A sbi 0x18,0
018A .dbline 289
018A ; // Delay(10);
018A ; PORTB |= (1<<2); //cs = 1
018A C29A sbi 0x18,2
018C .dbline -2
018C L24:
018C .dbline 0 ; func end
018C 0895 ret
018E .dbsym r CommandByte 16 c
018E .dbend
018E .dbfunc e WriteData _WriteData fV
018E ; dataW -> R16
.even
018E _WriteData::
018E .dbline -1
018E .dbline 304
018E ; }
018E ;
018E ; /******************************************************************************
018E ; ** 函数名: void WriteData( Uchar dataW )
018E ;
018E ; ** 描述: 向控制器写数据
018E ;
018E ; ** 修改的全局变量:
018E ;
018E ; ** 输入参数:
018E ;
018E ; ** 返回值:
018E ; *******************************************************************************/
018E ; void WriteData( Uchar dataW )
018E ; {
018E .dbline 305
018E ; PORTB &=~(1<<3); //rs = 0
018E C398 cbi 0x18,3
0190 .dbline 306
0190 ; PORTB|=(1<<1); //read = 1
0190 C19A sbi 0x18,1
0192 .dbline 307
0192 ; PORTB|=(1<<0); //write = 1
0192 C09A sbi 0x18,0
0194 .dbline 308
0194 ; PORTA=0xff;
0194 8FEF ldi R24,255
0196 8BBB out 0x1b,R24
0198 .dbline 309
0198 ; PORTA=dataW;
0198 0BBB out 0x1b,R16
019A .dbline 311
019A ; // Delay(10);
019A ; PORTB &= ~(1<<2); //cs = 0
019A C298 cbi 0x18,2
019C .dbline 313
019C ; // Delay(10);
019C ; PORTB &= ~(1<<0); //write = 0
019C C098 cbi 0x18,0
019E .dbline 315
019E ; // Delay(20);
019E ; PORTB |= (1<<0); //write = 1
019E C09A sbi 0x18,0
01A0 .dbline 317
01A0 ; // Delay(10);
01A0 ; PORTB |= (1<<2); //cs = 1
01A0 C29A sbi 0x18,2
01A2 .dbline -2
01A2 L25:
01A2 .dbline 0 ; func end
01A2 0895 ret
01A4 .dbsym r dataW 16 c
01A4 .dbend
01A4 .dbfunc e LcmInition _LcmInition fV
01A4 ; i -> R20
.even
01A4 _LcmInition::
01A4 4A93 st -y,R20
01A6 .dbline -1
01A6 .dbline 332
01A6 ; }
01A6 ;
01A6 ; /******************************************************************************
01A6 ; ** 函数名: void LcmInition( void )
01A6 ;
01A6 ; ** 描述: LCM 控制器初始化
01A6 ;
01A6 ; ** 修改的全局变量:
01A6 ;
01A6 ; ** 输入参数:
01A6 ;
01A6 ; ** 返回值:
01A6 ; *******************************************************************************/
01A6 ; void LcmInition( void )
01A6 ; {
01A6 .dbline 336
01A6 ;
01A6 ; Uchar i;
01A6 ;
01A6 ; WriteCommand( SystemSet );
01A6 00E4 ldi R16,64
01A8 E7DF xcall _WriteCommand
01AA .dbline 337
01AA ; for (i=0;i<8;i++) {
01AA 4427 clr R20
01AC 09C0 xjmp L30
01AE L27:
01AE .dbline 337
01AE .dbline 338
01AE ; WriteData( ParaSysTable8[i] );
01AE 80E0 ldi R24,<_ParaSysTable8
01B0 90E0 ldi R25,>_ParaSysTable8
01B2 E42F mov R30,R20
01B4 FF27 clr R31
01B6 E80F add R30,R24
01B8 F91F adc R31,R25
01BA 0491 lpm R16,Z
01BC E8DF xcall _WriteData
01BE .dbline 339
01BE ; }
01BE L28:
01BE .dbline 337
01BE 4395 inc R20
01C0 L30:
01C0 .dbline 337
01C0 4830 cpi R20,8
01C2 A8F3 brlo L27
01C4 X5:
01C4 .dbline 341
01C4 ;
01C4 ; WriteCommand( Scroll );
01C4 04E4 ldi R16,68
01C6 D8DF xcall _WriteCommand
01C8 .dbline 342
01C8 ; for (i=0;i<10;i++) {
01C8 4427 clr R20
01CA 09C0 xjmp L34
01CC L31:
01CC .dbline 342
01CC .dbline 343
01CC ; WriteData( ParaScrTableA[i] );
01CC 80E0 ldi R24,<_ParaScrTableA
01CE 90E0 ldi R25,>_ParaScrTableA
01D0 E42F mov R30,R20
01D2 FF27 clr R31
01D4 E80F add R30,R24
01D6 F91F adc R31,R25
01D8 0491 lpm R16,Z
01DA D9DF xcall _WriteData
01DC .dbline 344
01DC ; }
01DC L32:
01DC .dbline 342
01DC 4395 inc R20
01DE L34:
01DE .dbline 342
01DE 4A30 cpi R20,10
01E0 A8F3 brlo L31
01E2 X6:
01E2 .dbline 346
01E2 ;
01E2 ; WriteCommand( HdotScr );
01E2 0AE5 ldi R16,90
01E4 C9DF xcall _WriteCommand
01E6 .dbline 347
01E6 ; WriteData( 0 );
01E6 0027 clr R16
01E8 D2DF xcall _WriteData
01EA .dbline 348
01EA ; WriteCommand( Ovlay );
01EA 0BE5 ldi R16,91
01EC C5DF xcall _WriteCommand
01EE .dbline 349
01EE ; WriteData( 4 );
01EE 04E0 ldi R16,4
01F0 CEDF xcall _WriteData
01F2 .dbline 350
01F2 ; WriteCommand( DispOn );
01F2 09E5 ldi R16,89
01F4 C1DF xcall _WriteCommand
01F6 .dbline 351
01F6 ; WriteData( 0x54 );
01F6 04E5 ldi R16,84
01F8 CADF xcall _WriteData
01FA .dbline -2
01FA L26:
01FA .dbline 0 ; func end
01FA 4991 ld R20,y+
01FC 0895 ret
01FE .dbsym r i 20 c
01FE .dbend
01FE .dbfunc e LcmClear _LcmClear fV
01FE ; i1 -> R20,R21
.even
01FE _LcmClear::
01FE 4A93 st -y,R20
0200 5A93 st -y,R21
0202 .dbline -1
0202 .dbline 366
0202 ; }
0202 ;
0202 ; /******************************************************************************
0202 ; ** 函数名: void LcmClear( void )
0202 ;
0202 ; ** 描述: 清屏
0202 ;
0202 ; ** 修改的全局变量:
0202 ;
0202 ; ** 输入参数:
0202 ;
0202 ; ** 返回值:
0202 ; *******************************************************************************/
0202 ; void LcmClear( void )
0202 ; {
0202 .dbline 367
0202 ; Uint i1=32767;
0202 4FEF ldi R20,32767
0204 5FE7 ldi R21,127
0206 .dbline 368
0206 ; WriteCommand( CsrDirR );
0206 0CE4 ldi R16,76
0208 B7DF xcall _WriteCommand
020A .dbline 369
020A ; WriteCommand( CsrW );
020A 06E4 ldi R16,70
020C B5DF xcall _WriteCommand
020E .dbline 370
020E ; WriteData( 0 );
020E 0027 clr R16
0210 BEDF xcall _WriteData
0212 .dbline 371
0212 ; WriteData( 0 );
0212 0027 clr R16
0214 BCDF xcall _WriteData
0216 .dbline 372
0216 ; WriteCommand( mWrite );
0216 02E4 ldi R16,66
0218 AFDF xcall _WriteCommand
021A 02C0 xjmp L37
021C L36:
021C .dbline 373
021C ; while(i1--) {
021C .dbline 375
021C ;
021C ; WriteData( 0x0 );
021C 0027 clr R16
021E B7DF xcall _WriteData
0220 .dbline 376
0220 ; }
0220 L37:
0220 .dbline 373
0220 1A01 movw R2,R20
0222 4150 subi R20,1
0224 5040 sbci R21,0
0226 2220 tst R2
0228 C9F7 brne L36
022A 3320 tst R3
022C B9F7 brne L36
022E X7:
022E .dbline -2
022E L35:
022E .dbline 0 ; func end
022E 5991 ld R21,y+
0230 4991 ld R20,y+
0232 0895 ret
0234 .dbsym r i1 20 i
0234 .dbend
0234 .dbfunc e ShowPicture _ShowPicture fV
0234 ; C_H -> R14
0234 ; C_L -> R22
0234 ; y -> R22,R23
0234 ; x -> R14,R15
0234 ; dot_sum -> R14,R15
0234 ; j -> R10
0234 ; POS -> R20,R21
0234 ; i -> R14
0234 ; address -> y+18
0234 ; Hight -> y+16
0234 ; Width -> R12,R13
0234 ; s_y -> y+12
0234 ; s_x -> y+10
.even
0234 _ShowPicture::
0234 0E940000 xcall push_arg4
0238 0E940000 xcall push_xgsetF0FC
023C CE84 ldd R12,y+14
023E DF84 ldd R13,y+15
0240 .dbline -1
0240 .dbline 396
0240 ; }
0240 ;
0240 ; /******************************************************************************
0240 ; ** 函数名: void ShowPicture(Uint s_x,Uint s_y,Uint Width,Uint Hight,
0240 ; Uchar code *address)
0240 ;
0240 ; ** 描述: 显示一幅图片
0240 ;
0240 ; ** 修改的全局变量:
0240 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -