📄 lcdback.lis
字号:
.module lcdBACK.C
.area text(rom, con, rel)
0000 .dbfile E:\MP3程序\Lcd\lcdBACK.C
0000 .dbfunc e lcd_read_cmd _lcd_read_cmd fc
0000 ; temp -> R20
0000 ; cs -> R16
.even
0000 _lcd_read_cmd::
0000 0E940000 xcall push_gset1
0004 .dbline -1
0004 .dbline 7
0004 ; #include <iom64v.h>
0004 ; #include <macros.h>
0004 ; #define uchar unsigned char
0004 ; #include "./lcd.h"
0004 ; /******************************************************************************/
0004 ; uchar lcd_read_cmd(uchar cs)
0004 ; {
0004 .dbline 9
0004 ; uchar temp;
0004 ; LCD_RD;
0004 80916200 lds R24,98
0008 8F7E andi R24,239
000A 80936200 sts 98,R24
000E .dbline 9
000E .dbline 10
000E ; LCD_CMD;
000E 9598 cbi 0x12,5
0010 .dbline 11
0010 402F mov R20,R16
0012 5527 clr R21
0014 4130 cpi R20,1
0016 E0E0 ldi R30,0
0018 5E07 cpc R21,R30
001A 49F0 breq L5
001C 4230 cpi R20,2
001E E0E0 ldi R30,0
0020 5E07 cpc R21,R30
0022 41F0 breq L6
0024 4330 cpi R20,3
0026 E0E0 ldi R30,0
0028 5E07 cpc R21,R30
002A 39F0 breq L7
002C 08C0 xjmp L2
002E X0:
002E .dbline 11
002E ; switch(cs){
002E L5:
002E .dbline 12
002E ; case CS1:temp = *(volatile unsigned char *)LCD_STATUS_CS1;break;
002E 409100EF lds R20,61184
0032 .dbline 12
0032 05C0 xjmp L3
0034 L6:
0034 .dbline 13
0034 ; case CS2:temp = *(volatile unsigned char *)LCD_STATUS_CS2;break;
0034 409100F7 lds R20,63232
0038 .dbline 13
0038 02C0 xjmp L3
003A L7:
003A .dbline 14
003A ; case CS3:temp = *(volatile unsigned char *)LCD_STATUS_CS3;break;
003A 409100FB lds R20,64256
003E .dbline 14
003E L2:
003E L3:
003E .dbline 16
003E ; }
003E ; return temp;
003E 042F mov R16,R20
0040 .dbline -2
0040 L1:
0040 0E940000 xcall pop_gset1
0044 .dbline 0 ; func end
0044 0895 ret
0046 .dbsym r temp 20 c
0046 .dbsym r cs 16 c
0046 .dbend
0046 .dbfunc e lcd_busy _lcd_busy fV
0046 ; cs -> R20
.even
0046 _lcd_busy::
0046 0E940000 xcall push_gset1
004A 402F mov R20,R16
004C .dbline -1
004C .dbline 19
004C ; }
004C ; void lcd_busy(uchar cs)
004C ; {
004C L9:
004C .dbline 20
004C L10:
004C .dbline 20
004C ; while((lcd_read_cmd(cs) & STATUS_BUSY)!= 0);
004C 042F mov R16,R20
004E D8DF xcall _lcd_read_cmd
0050 07FD sbrc R16,7
0052 FCCF rjmp L9
0054 .dbline -2
0054 L8:
0054 0E940000 xcall pop_gset1
0058 .dbline 0 ; func end
0058 0895 ret
005A .dbsym r cs 20 c
005A .dbend
005A .dbfunc e lcd_write_cmd _lcd_write_cmd fV
005A ; cmd -> R20
005A ; cs -> R22
.even
005A _lcd_write_cmd::
005A 0E940000 xcall push_gset2
005E 422F mov R20,R18
0060 602F mov R22,R16
0062 .dbline -1
0062 .dbline 23
0062 ; }
0062 ; void lcd_write_cmd(uchar cs, uchar cmd)
0062 ; {
0062 .dbline 24
0062 ; lcd_busy(cs);
0062 062F mov R16,R22
0064 F0DF xcall _lcd_busy
0066 .dbline 25
0066 ; Print_str("now wreted\r\n");
0066 00E0 ldi R16,<L13
0068 10E0 ldi R17,>L13
006A 0E940000 xcall _Print_str
006E .dbline 26
006E ; LCD_WR;
006E 80916200 lds R24,98
0072 8061 ori R24,16
0074 80936200 sts 98,R24
0078 .dbline 27
0078 ; LCD_CMD;
0078 9598 cbi 0x12,5
007A .dbline 28
007A 7727 clr R23
007C 6130 cpi R22,1
007E E0E0 ldi R30,0
0080 7E07 cpc R23,R30
0082 49F0 breq L17
0084 6230 cpi R22,2
0086 E0E0 ldi R30,0
0088 7E07 cpc R23,R30
008A 41F0 breq L18
008C 6330 cpi R22,3
008E E0E0 ldi R30,0
0090 7E07 cpc R23,R30
0092 39F0 breq L19
0094 08C0 xjmp L14
0096 X1:
0096 .dbline 28
0096 ; switch(cs){
0096 L17:
0096 .dbline 29
0096 ; case CS1:*(volatile unsigned char *)LCD_CMD_CS1 = cmd;break;
0096 409300CF sts 52992,R20
009A .dbline 29
009A 05C0 xjmp L15
009C L18:
009C .dbline 30
009C ; case CS2:*(volatile unsigned char *)LCD_CMD_CS2 = cmd;break;
009C 409300D7 sts 55040,R20
00A0 .dbline 30
00A0 02C0 xjmp L15
00A2 L19:
00A2 .dbline 31
00A2 ; case CS3:*(volatile unsigned char *)LCD_CMD_CS3 = cmd;break;
00A2 409300DB sts 56064,R20
00A6 .dbline 31
00A6 L14:
00A6 L15:
00A6 .dbline -2
00A6 L12:
00A6 0E940000 xcall pop_gset2
00AA .dbline 0 ; func end
00AA 0895 ret
00AC .dbsym r cmd 20 c
00AC .dbsym r cs 22 c
00AC .dbend
00AC .dbfunc e lcd_write_data _lcd_write_data fV
00AC ; data -> R20
00AC ; cs -> R22
.even
00AC _lcd_write_data::
00AC 0E940000 xcall push_gset2
00B0 422F mov R20,R18
00B2 602F mov R22,R16
00B4 .dbline -1
00B4 .dbline 35
00B4 ; }
00B4 ; }
00B4 ; void lcd_write_data(uchar cs,uchar data)
00B4 ; {
00B4 .dbline 36
00B4 ; lcd_busy(cs);
00B4 062F mov R16,R22
00B6 C7DF xcall _lcd_busy
00B8 .dbline 37
00B8 ; LCD_WR;
00B8 80916200 lds R24,98
00BC 8061 ori R24,16
00BE 80936200 sts 98,R24
00C2 .dbline 38
00C2 ; LCD_DATA;
00C2 959A sbi 0x12,5
00C4 .dbline 39
00C4 7727 clr R23
00C6 6130 cpi R22,1
00C8 E0E0 ldi R30,0
00CA 7E07 cpc R23,R30
00CC 49F0 breq L24
00CE 6230 cpi R22,2
00D0 E0E0 ldi R30,0
00D2 7E07 cpc R23,R30
00D4 41F0 breq L25
00D6 6330 cpi R22,3
00D8 E0E0 ldi R30,0
00DA 7E07 cpc R23,R30
00DC 39F0 breq L26
00DE 08C0 xjmp L21
00E0 X2:
00E0 .dbline 39
00E0 ; switch(cs){
00E0 L24:
00E0 .dbline 40
00E0 ; case CS1:*(volatile unsigned char *)LCD_DATA_CS1 = data;break;
00E0 409300CF sts 52992,R20
00E4 .dbline 40
00E4 05C0 xjmp L22
00E6 L25:
00E6 .dbline 41
00E6 ; case CS2:*(volatile unsigned char *)LCD_DATA_CS2 = data;break;
00E6 409300D7 sts 55040,R20
00EA .dbline 41
00EA 02C0 xjmp L22
00EC L26:
00EC .dbline 42
00EC ; case CS3:*(volatile unsigned char *)LCD_DATA_CS3 = data;break;
00EC 409300DB sts 56064,R20
00F0 .dbline 42
00F0 L21:
00F0 L22:
00F0 .dbline -2
00F0 L20:
00F0 0E940000 xcall pop_gset2
00F4 .dbline 0 ; func end
00F4 0895 ret
00F6 .dbsym r data 20 c
00F6 .dbsym r cs 22 c
00F6 .dbend
00F6 .dbfunc e lcd_read_data _lcd_read_data fc
00F6 ; cs -> R20
.even
00F6 _lcd_read_data::
00F6 0E940000 xcall push_gset1
00FA 402F mov R20,R16
00FC .dbline -1
00FC .dbline 46
00FC ; }
00FC ; }
00FC ; uchar lcd_read_data(uchar cs)
00FC ; {
00FC .dbline 47
00FC ; lcd_busy(cs);
00FC 042F mov R16,R20
00FE A3DF xcall _lcd_busy
0100 .dbline 48
0100 ; LCD_RD;
0100 80916200 lds R24,98
0104 8F7E andi R24,239
0106 80936200 sts 98,R24
010A .dbline 48
010A .dbline 49
010A ; LCD_DATA;
010A 959A sbi 0x12,5
010C .dbline 50
010C ; return(*(volatile unsigned char *)0xef00);
010C 009100EF lds R16,61184
0110 .dbline -2
0110 L27:
0110 0E940000 xcall pop_gset1
0114 .dbline 0 ; func end
0114 0895 ret
0116 .dbsym r cs 20 c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -