📄 lcd.lis
字号:
.module LCD.C
.area data(ram, con, rel)
0000 _date::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .blkb 10
.area idata
0001 00000000000000000000 .byte 0,0,0,0,0,0,0,0,0,0
.area data(ram, con, rel)
000B .dbfile D:\new_sd\LCD\LCD.C
000B .dbsym e date _date A[11:11]c
.area lit(rom, con, rel)
0000 _data_hi::
0000 00E0 .byte 0,224
0002 1008 .byte 16,8
0004 0810 .byte 8,16
0006 E000 .byte 224,0
0008 000F .byte 0,15
000A 1020 .byte 16,32
000C 2010 .byte 32,16
000E 0F00 .byte 15,0
0010 0010 .byte 0,16
0012 10F8 .byte 16,248
0014 0000 .byte 0,0
0016 0000 .byte 0,0
0018 0020 .byte 0,32
001A 203F .byte 32,63
001C 2020 .byte 32,32
001E 0000 .byte 0,0
0020 0070 .byte 0,'p
0022 0808 .byte 8,8
0024 0888 .byte 8,136
0026 7000 .byte 'p,0
0028 0030 .byte 0,48
002A 2824 .byte 40,36
002C 2221 .byte 34,33
002E 3000 .byte 48,0
0030 0030 .byte 0,48
0032 0888 .byte 8,136
0034 8848 .byte 136,'H
0036 3000 .byte 48,0
0038 0018 .byte 0,24
003A 2020 .byte 32,32
003C 2011 .byte 32,17
003E 0E00 .byte 14,0
0040 0000 .byte 0,0
0042 C020 .byte 192,32
0044 10F8 .byte 16,248
0046 0000 .byte 0,0
0048 0007 .byte 0,7
004A 0424 .byte 4,36
004C 243F .byte 36,63
004E 2400 .byte 36,0
0050 00F8 .byte 0,248
0052 0888 .byte 8,136
0054 8808 .byte 136,8
0056 0800 .byte 8,0
0058 0019 .byte 0,25
005A 2120 .byte 33,32
005C 2011 .byte 32,17
005E 0E00 .byte 14,0
0060 00E0 .byte 0,224
0062 1088 .byte 16,136
0064 8818 .byte 136,24
0066 0000 .byte 0,0
0068 000F .byte 0,15
006A 1120 .byte 17,32
006C 2011 .byte 32,17
006E 0E00 .byte 14,0
0070 0038 .byte 0,56
0072 0808 .byte 8,8
0074 C838 .byte 200,56
0076 0800 .byte 8,0
0078 0000 .byte 0,0
007A 003F .byte 0,63
007C 0000 .byte 0,0
007E 0000 .byte 0,0
0080 0070 .byte 0,'p
0082 8808 .byte 136,8
0084 0888 .byte 8,136
0086 7000 .byte 'p,0
0088 001C .byte 0,28
008A 2221 .byte 34,33
008C 2122 .byte 33,34
008E 1C00 .byte 28,0
0090 00E0 .byte 0,224
0092 1008 .byte 16,8
0094 0810 .byte 8,16
0096 E000 .byte 224,0
0098 0000 .byte 0,0
009A 3122 .byte 49,34
009C 2211 .byte 34,17
009E 0F00 .byte 15,0
00A0 0000 .byte 0,0
00A2 0000 .byte 0,0
00A4 0000 .byte 0,0
00A6 0000 .byte 0,0
00A8 0030 .byte 0,48
00AA 3000 .byte 48,0
00AC 0000 .byte 0,0
00AE 0000 .byte 0,0
00B0 0878 .byte 8,'x
00B2 8800 .byte 136,0
00B4 00C8 .byte 0,200
00B6 3808 .byte 56,8
00B8 0000 .byte 0,0
00BA 0738 .byte 7,56
00BC 0E01 .byte 14,1
00BE 0000 .byte 0,0
00C0 0000 .byte 0,0
00C2 0000 .byte 0,0
00C4 0000 .byte 0,0
00C6 0000 .byte 0,0
00C8 0000 .byte 0,0
00CA 0000 .byte 0,0
00CC 0000 .byte 0,0
00CE 0000 .byte 0,0
00D0 0000 .byte 0,0
00D2 0000 .byte 0,0
00D4 0000 .byte 0,0
00D6 0000 .byte 0,0
00D8 0001 .byte 0,1
00DA 0101 .byte 1,1
00DC 0101 .byte 1,1
00DE 0101 .byte 1,1
00E0 .dbsym e data_hi _data_hi A[224:224]kc
.area text(rom, con, rel)
0000 .dbfile D:\new_sd\LCD\LCD.C
0000 .dbfunc e delayms _delayms fV
0000 ; i -> y+4
0000 ; j -> y+0
0000 ; m -> y+12
.even
0000 _delayms::
0000 0E940000 xcall push_arg4
0004 0E940000 xcall push_gset2
0008 2897 sbiw R28,8
000A .dbline -1
000A .dbline 64
000A ;
000A ; //作者:张文2008.08.07
000A ; //液晶显示问题的说明
000A ; //液晶显示的时候用到LCD_SHOW()就可以了,不过开SPCR = 0x50 使用后关SPCR = 0x54;
000A ; //液晶的尺寸是256*192的.
000A ; //void LCDSHOW(UINT8 page,UINT8 m,UINT8 n,UINT8 date)
000A ; //page 为0 2 4 8 10对应的是行
000A ; //m 对应的是 0x10 -- 0x17 每一行对应的数据的开始地址
000A ; //n 对应的是 两个字节的数据中的一个 一个汉字是32*32 //n==0的时候显示前半个数据.n=8对应的是后半个数据
000A ; //data 对应的是显示的数据,在显示的时候用的是查表的方法。
000A ; #include <iom64v.h>
000A ; #include <macros.h>
000A ;
000A ; #include"lcd.h"
000A ; #define LCD_control PORTD
000A ; #define LCD_CS 6
000A ; #define LCD_RST 5
000A ; #define LCD_RS 4
000A ;
000A ; //-------------------------------------------------------------------------------
000A ; unsigned char date[11]={0};
000A ; //-------------------------------------------------------------------------------
000A ; //十进制数
000A ; //-------------------------------------------------------------------------------
000A ; const unsigned char data_hi[224]= { //0123456789.
000A ; 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
000A ; 0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00, //0
000A ; 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,
000A ; 0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, //1
000A ; 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,
000A ; 0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00, //2
000A ; 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,
000A ; 0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00, //3
000A ; 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,
000A ; 0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00, //4
000A ; 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,
000A ; 0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00, //5
000A ; 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,
000A ; 0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00, //6
000A ; 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,
000A ; 0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00, //7
000A ; 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,
000A ; 0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00, //8
000A ; 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
000A ; 0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00, //9
000A ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
000A ; 0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00, //. 10
000A ; 0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,
000A ; 0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00, //v 11
000A ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
000A ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //12
000A ;
000A ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //"-" //13
000A ; 0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
000A ;
000A ;
000A ;
000A ; };
000A ; //-------------------------------------------------------------------------------
000A ; // Delay Routine
000A ; //延时程序
000A ; //-------------------------------------------------------------------------------
000A ; void delayms(UINT32 m)
000A ; {
000A .dbline 67
000A ; UINT32 j;
000A ; UINT32 i;
000A ; NOP();
000A 0000 nop
000C .dbline 68
000C ; for(i=0; i<m; i++)
000C 40E0 ldi R20,0
000E 50E0 ldi R21,0
0010 60E0 ldi R22,0
0012 70E0 ldi R23,0
0014 FE01 movw R30,R28
0016 4483 std z+4,R20
0018 5583 std z+5,R21
001A 6683 std z+6,R22
001C 7783 std z+7,R23
001E 3DC0 xjmp L5
0020 L2:
0020 .dbline 69
0020 ; for(j=0; j<109; j++)
0020 40E0 ldi R20,0
0022 50E0 ldi R21,0
0024 60E0 ldi R22,0
0026 70E0 ldi R23,0
0028 FE01 movw R30,R28
002A 4083 std z+0,R20
002C 5183 std z+1,R21
002E 6283 std z+2,R22
0030 7383 std z+3,R23
0032 13C0 xjmp L9
0034 L6:
0034 .dbline 70
0034 0000 nop
0036 L7:
0036 .dbline 69
0036 41E0 ldi R20,1
0038 50E0 ldi R21,0
003A 60E0 ldi R22,0
003C 70E0 ldi R23,0
003E FE01 movw R30,R28
0040 2080 ldd R2,z+0
0042 3180 ldd R3,z+1
0044 4280 ldd R4,z+2
0046 5380 ldd R5,z+3
0048 240E add R2,R20
004A 351E adc R3,R21
004C 461E adc R4,R22
004E 571E adc R5,R23
0050 FE01 movw R30,R28
0052 2082 std z+0,R2
0054 3182 std z+1,R3
0056 4282 std z+2,R4
0058 5382 std z+3,R5
005A L9:
005A .dbline 69
005A 4DE6 ldi R20,109
005C 50E0 ldi R21,0
005E 60E0 ldi R22,0
0060 70E0 ldi R23,0
0062 FE01 movw R30,R28
0064 2080 ldd R2,z+0
0066 3180 ldd R3,z+1
0068 4280 ldd R4,z+2
006A 5380 ldd R5,z+3
006C 2416 cp R2,R20
006E 3506 cpc R3,R21
0070 4606 cpc R4,R22
0072 5706 cpc R5,R23
0074 F8F2 brlo L6
0076 L3:
0076 .dbline 68
0076 41E0 ldi R20,1
0078 50E0 ldi R21,0
007A 60E0 ldi R22,0
007C 70E0 ldi R23,0
007E FE01 movw R30,R28
0080 2480 ldd R2,z+4
0082 3580 ldd R3,z+5
0084 4680 ldd R4,z+6
0086 5780 ldd R5,z+7
0088 240E add R2,R20
008A 351E adc R3,R21
008C 461E adc R4,R22
008E 571E adc R5,R23
0090 FE01 movw R30,R28
0092 2482 std z+4,R2
0094 3582 std z+5,R3
0096 4682 std z+6,R4
0098 5782 std z+7,R5
009A L5:
009A .dbline 68
009A FE01 movw R30,R28
009C 2484 ldd R2,z+12
009E 3584 ldd R3,z+13
00A0 4684 ldd R4,z+14
00A2 5784 ldd R5,z+15
00A4 FE01 movw R30,R28
00A6 6480 ldd R6,z+4
00A8 7580 ldd R7,z+5
00AA 8680 ldd R8,z+6
00AC 9780 ldd R9,z+7
00AE 6214 cp R6,R2
00B0 7304 cpc R7,R3
00B2 8404 cpc R8,R4
00B4 9504 cpc R9,R5
00B6 08F4 brsh X0
00B8 B3CF xjmp L2
00BA X0:
00BA .dbline -2
00BA L1:
00BA 2896 adiw R28,8
00BC 0E940000 xcall pop_gset2
00C0 2496 adiw R28,4
00C2 .dbline 0 ; func end
00C2 0895 ret
00C4 .dbsym l i 4 l
00C4 .dbsym l j 0 l
00C4 .dbsym l m 12 l
00C4 .dbend
00C4 .dbfunc e SdCmd _SdCmd fV
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -