⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcdback.lis

📁 mega128+VS1003做的mp3的程序 可以用WINAVR编译
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .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 + -