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

📄 lcd.lis

📁 自制MP3程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 02B8 2022              .byte 32,34
 02BA 22FE              .byte 34,254
 02BC 2222              .byte 34,34
 02BE 22FE              .byte 34,254
 02C0 2223              .byte 34,35
 02C2 2200              .byte 34,0
 02C4 0404              .byte 4,4
 02C6 0201              .byte 2,1
 02C8 0000              .byte 0,0
 02CA 0007              .byte 0,7
 02CC 0000              .byte 0,0
 02CE 0000              .byte 0,0
 02D0 080E              .byte 8,14
 02D2 8878              .byte 136,'x
 02D4 2FE8              .byte 47,232
 02D6 28A9              .byte 40,169
 02D8 6A08              .byte 'j,8
 02DA 0800              .byte 8,0
 02DC 0402              .byte 4,2
 02DE 0504              .byte 5,4
 02E0 0202              .byte 2,2
 02E2 0102              .byte 1,2
 02E4 0204              .byte 2,4
 02E6 0400              .byte 4,0
 02E8 00FF              .byte 0,255
 02EA 4931              .byte 'I,49
 02EC 4D81              .byte 'M,129
 02EE 4931              .byte 'I,49
 02F0 CD01              .byte 205,1
 02F2 FF00              .byte 255,0
 02F4 0007              .byte 0,7
 02F6 0000              .byte 0,0
 02F8 0000              .byte 0,0
 02FA 0000              .byte 0,0
 02FC 0404              .byte 4,4
 02FE 0700              .byte 7,0
 0300 10F1              .byte 16,241
 0302 1210              .byte 18,16
 0304 08F4              .byte 8,244
 0306 8342              .byte 131,'B
 0308 2408              .byte 36,8
 030A 1000              .byte 16,0
 030C 0007              .byte 0,7
 030E 0201              .byte 2,1
 0310 0007              .byte 0,7
 0312 0404              .byte 4,4
 0314 0407              .byte 4,7
 0316 0000              .byte 0,0
 0318 0808              .byte 8,8
 031A FF08              .byte 255,8
 031C 1012              .byte 16,18
 031E 9272              .byte 146,'r
 0320 1212              .byte 18,18
 0322 1000              .byte 16,0
 0324 0202              .byte 2,2
 0326 0101              .byte 1,1
 0328 0406              .byte 4,6
 032A 0504              .byte 5,4
 032C 0405              .byte 4,5
 032E 0600              .byte 6,0
 0330 0038              .byte 0,56
 0332 FCFC              .byte 252,252
 0334 3800              .byte 56,0
 0336 0000              .byte 0,0
 0338 0000              .byte 0,0
 033A 0000              .byte 0,0
 033C 0000              .byte 0,0
 033E 0606              .byte 6,6
 0340 0000              .byte 0,0
 0342 0000              .byte 0,0
 0344 0000              .byte 0,0
 0346 0000              .byte 0,0
 0348                   .dbfile E:\V3U~1\sd\M64-SD卡MP3程序/chinese.h
 0348                   .dbsym e china_char _china_char A[288:12:24]kc
                        .area text(rom, con, rel)
 0000                   .dbfile E:\V3U~1\sd\M64-SD卡MP3程序/chinese.h
 0000                   .dbfile E:\V3U~1\sd\M64-SD卡MP3程序\lcd.c
 0000                   .dbfunc e LCD_write_byte _LCD_write_byte fV
 0000           ;        command -> R18
 0000           ;           data -> R16
                        .even
 0000           _LCD_write_byte::
 0000                   .dbline -1
 0000                   .dbline 16
 0000           ; #include <iom64v.h>
 0000           ; #include <macros.h>
 0000           ; #include "lcd.h"
 0000           ; #include "delay.h"
 0000           ; #include "6x8.h"
 0000           ; #include "chinese.h"
 0000           ; 
 0000           ; /*-----------------------------------------------------------------------
 0000           ; LCD_write_byte: 使用SPI接口写数据到LCD
 0000           ; 输入参数:data:写入的数据;
 0000           ; command :写数据/命令选择;
 0000           ; 编写日期:2004-8-10 
 0000           ; 最后修改日期:2006-10-23
 0000           ; -----------------------------------------------------------------------*/
 0000           ; void LCD_write_byte(unsigned char data, unsigned char command)
 0000           ; {
 0000                   .dbline 17
 0000           ;   SCE_L ;              // 使能LCD
 0000 80916200          lds R24,98
 0004 8B7F              andi R24,251
 0006 80936200          sts 98,R24
 000A                   .dbline 18
 000A           ;   if (command == 0)
 000A 2223              tst R18
 000C 31F4              brne L2
 000E                   .dbline 19
 000E           ;     DC_L ;             // 传送命令
 000E 80916200          lds R24,98
 0012 8E7F              andi R24,254
 0014 80936200          sts 98,R24
 0018 05C0              xjmp L3
 001A           L2:
 001A                   .dbline 21
 001A           ;   else
 001A           ;     DC_H ;             // 传送数据
 001A 80916200          lds R24,98
 001E 8160              ori R24,1
 0020 80936200          sts 98,R24
 0024           L3:
 0024                   .dbline 22
 0024           ;   SPDR = data;         // 传送数据到SPI寄存器
 0024 0FB9              out 0xf,R16
 0026           L4:
 0026                   .dbline 24
 0026           L5:
 0026                   .dbline 23
 0026           ;   while ((SPSR & 0x80) == 0)
 0026 779B              sbis 0xe,7
 0028 FECF              rjmp L4
 002A                   .dbline 25
 002A           ;     ;                  // 等待数据传送完毕
 002A           ;   SCE_H ;              // 关闭LCD
 002A 80916200          lds R24,98
 002E 8460              ori R24,4
 0030 80936200          sts 98,R24
 0034                   .dbline -2
 0034           L1:
 0034                   .dbline 0 ; func end
 0034 0895              ret
 0036                   .dbsym r command 18 c
 0036                   .dbsym r data 16 c
 0036                   .dbend
 0036                   .dbfunc e LCD_Init _LCD_Init fV
                        .even
 0036           _LCD_Init::
 0036                   .dbline -1
 0036                   .dbline 34
 0036           ; }
 0036           ; 
 0036           ; /*---------------------------------------
 0036           ; LCD_init: 3310LCD初始化
 0036           ; 编写日期:2004-8-10 
 0036           ; 最后修改日期:2006-10-23
 0036           ; ----------------------------*/
 0036           ; void LCD_Init(void)
 0036           ; {
 0036                   .dbline 35
 0036           ;   LCD_RES_DDR|=LCD_RES_BIT ;
 0036 80916100          lds R24,97
 003A 8860              ori R24,8
 003C 80936100          sts 97,R24
 0040                   .dbline 36
 0040           ;   LCD_SCE_DDR|=LCD_SCE_BIT ;
 0040 80916100          lds R24,97
 0044 8460              ori R24,4
 0046 80936100          sts 97,R24
 004A                   .dbline 39
 004A           ;   //LCD_SDIN_DDR|=LCD_SDIN_BIT ;
 004A           ;   //LCD_SCLK_DDR|=LCD_SCLK_BIT ;
 004A           ;   LCD_DC_DDR|=LCD_DC_BIT ;
 004A 80916100          lds R24,97
 004E 8160              ori R24,1
 0050 80936100          sts 97,R24
 0054                   .dbline 41
 0054           ; 
 0054           ;   RES_L;                  // 产生一个让LCD复位的低电平脉冲
 0054 80916200          lds R24,98
 0058 877F              andi R24,247
 005A 80936200          sts 98,R24
 005E                   .dbline 42
 005E           ;   delay_nus(100);
 005E 04E6              ldi R16,100
 0060 10E0              ldi R17,0
 0062 0E940000          xcall _delay_nus
 0066                   .dbline 43
 0066           ;   RES_H ;
 0066 80916200          lds R24,98
 006A 8860              ori R24,8
 006C 80936200          sts 98,R24
 0070                   .dbline 44
 0070           ;   SCE_L ;                 // 关闭LCD
 0070 80916200          lds R24,98
 0074 8B7F              andi R24,251
 0076 80936200          sts 98,R24
 007A                   .dbline 45
 007A           ;   delay_nus(100);
 007A 04E6              ldi R16,100
 007C 10E0              ldi R17,0
 007E 0E940000          xcall _delay_nus
 0082                   .dbline 46
 0082           ;   SCE_H;                  // 使能LCD
 0082 80916200          lds R24,98
 0086 8460              ori R24,4
 0088 80936200          sts 98,R24
 008C                   .dbline 47
 008C           ;   delay_us();
 008C 0E940000          xcall _delay_us
 0090                   .dbline 48
 0090           ;   LCD_write_byte(0x21, 0);// 使用扩展命令设置LCD模式
 0090 2227              clr R18
 0092 01E2              ldi R16,33
 0094 B5DF              xcall _LCD_write_byte
 0096                   .dbline 49
 0096           ;   LCD_write_byte(0xc8, 0);// 设置偏置电压
 0096 2227              clr R18
 0098 08EC              ldi R16,200
 009A B2DF              xcall _LCD_write_byte
 009C                   .dbline 50
 009C           ;   LCD_write_byte(0x06, 0);// 温度校正
 009C 2227              clr R18
 009E 06E0              ldi R16,6
 00A0 AFDF              xcall _LCD_write_byte
 00A2                   .dbline 51
 00A2           ;   LCD_write_byte(0x13, 0);// 1:48
 00A2 2227              clr R18
 00A4 03E1              ldi R16,19
 00A6 ACDF              xcall _LCD_write_byte
 00A8                   .dbline 52
 00A8           ;   LCD_write_byte(0x20, 0);// 使用基本命令
 00A8 2227              clr R18
 00AA 00E2              ldi R16,32
 00AC A9DF              xcall _LCD_write_byte
 00AE                   .dbline 53
 00AE           ;   LCD_clear();            // 清屏
 00AE 09D0              xcall _LCD_clear
 00B0                   .dbline 54
 00B0           ;   LCD_write_byte(0x0c, 0);// 设定显示模式,正常显示
 00B0 2227              clr R18
 00B2 0CE0              ldi R16,12
 00B4 A5DF              xcall _LCD_write_byte
 00B6                   .dbline 55
 00B6           ;   SCE_L ;                 // 关闭LCD
 00B6 80916200          lds R24,98
 00BA 8B7F              andi R24,251
 00BC 80936200          sts 98,R24
 00C0                   .dbline -2
 00C0           L7:
 00C0                   .dbline 0 ; func end
 00C0 0895              ret
 00C2                   .dbend
 00C2                   .dbfunc e LCD_clear _LCD_clear fV
 00C2           ;              i -> R20,R21
                        .even
 00C2           _LCD_clear::
 00C2 0E940000          xcall push_gset1
 00C6                   .dbline -1
 00C6                   .dbline 64
 00C6           ; }
 00C6           ; 
 00C6           ; /*-----------------------------------------------------------------------
 00C6           ; LCD_clear: LCD清屏函数
 00C6           ; 编写日期:2004-8-10 
 00C6           ; 最后修改日期:2006-10-23
 00C6           ; -----------------------------------------------------------------------*/
 00C6           ; void LCD_clear(void)
 00C6           ; {
 00C6                   .dbline 66
 00C6           ;   unsigned int i;
 00C6           ;   LCD_write_byte(0x0c, 0);
 00C6 2227              clr R18
 00C8 0CE0              ldi R16,12
 00CA 9ADF              xcall _LCD_write_byte
 00CC                   .dbline 67
 00CC           ;   LCD_write_byte(0x80, 0);
 00CC 2227              clr R18
 00CE 00E8              ldi R16,128
 00D0 97DF              xcall _LCD_write_byte
 00D2                   .dbline 68
 00D2           ;   for (i=0; i<504; i++)
 00D2 4427              clr R20
 00D4 5527              clr R21
 00D6 05C0              xjmp L12
 00D8           L9:
 00D8                   .dbline 69
 00D8 21E0              ldi R18,1
 00DA 0027              clr R16
 00DC 91DF              xcall _LCD_write_byte
 00DE           L10:
 00DE                   .dbline 68
 00DE 4F5F              subi R20,255  ; offset = 1
 00E0 5F4F              sbci R21,255
 00E2           L12:
 00E2                   .dbline 68
 00E2 483F              cpi R20,248
 00E4 E1E0              ldi R30,1
 00E6 5E07              cpc R21,R30
 00E8 B8F3              brlo L9
 00EA                   .dbline -2
 00EA           L8:
 00EA 0E940000          xcall pop_gset1
 00EE                   .dbline 0 ; func end
 00EE 0895              ret
 00F0                   .dbsym r i 20 i
 00F0                   .dbend
 00F0                   .dbfunc e LCD_set_XY _LCD_set_XY fV
 00F0           ;              Y -> R22
 00F0           ;              X -> R20
                        .even
 00F0           _LCD_set_XY::
 00F0 0E940000          xcall push_gset2
 00F4 622F              mov R22,R18
 00F6 402F              mov R20,R16
 00F8                   .dbline -1
 00F8                   .dbline 80
 00F8           ;     LCD_write_byte(0, 1);
 00F8           ; }
 00F8           ; 
 00F8           ; /*-----------------------------------------------------------------------
 00F8           ; LCD_set_XY: 设置LCD坐标函数
 00F8           ; 输入参数:X:0-83
 00F8           ; Y:0-5
 00F8           ; 编写日期:2004-8-10 
 00F8           ; 最后修改日期:2006-10-23
 00F8           ; -----------------------------------------------------------------------*/
 00F8           ; void LCD_set_XY(unsigned char X, unsigned char Y)
 00F8           ; {
 00F8                   .dbline 81
 00F8           ;   LCD_write_byte(0x40 | Y, 0);// column
 00F8 2227              clr R18
 00FA 062F              mov R16,R22
 00FC 0064              ori R16,64
 00FE 80DF              xcall _LCD_write_byte
 0100                   .dbline 82
 0100           ;   LCD_write_byte(0x80 | X, 0);// row
 0100 2227              clr R18
 0102 042F              mov R16,R20
 0104 0068              ori R16,128
 0106 7CDF              xcall _LCD_write_byte
 0108                   .dbline -2
 0108           L13:
 0108 0E940000          xcall pop_gset2
 010C                   .dbline 0 ; func end
 010C 0895              ret
 010E                   .dbsym r Y 22 c
 010E                   .dbsym r X 20 c
 010E                   .dbend
 010E                   .dbfunc e LCD_write_char _LCD_write_char fV
 010E           ;           line -> R20
 010E           ;              c -> R22
                        .even

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -