?? lcd.s
字號:
.module lcd.c
.area lit(rom, con, rel)
_font6x8::
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,47
.byte 0,0
.byte 0,0
.byte 7,0
.byte 7,0
.byte 0,20
.byte 127,20
.byte 127,20
.byte 0,36
.byte 42,127
.byte 42,18
.byte 0,'b
.byte 'd,8
.byte 19,35
.byte 0,54
.byte 'I,'U
.byte 34,'P
.byte 0,0
.byte 5,3
.byte 0,0
.byte 0,0
.byte 28,34
.byte 'A,0
.byte 0,0
.byte 'A,34
.byte 28,0
.byte 0,20
.byte 8,62
.byte 8,20
.byte 0,8
.byte 8,62
.byte 8,8
.byte 0,0
.byte 0,160
.byte 96,0
.byte 0,8
.byte 8,8
.byte 8,8
.byte 0,0
.byte 96,96
.byte 0,0
.byte 0,32
.byte 16,8
.byte 4,2
.byte 0,62
.byte 'Q,'I
.byte 'E,62
.byte 0,0
.byte 'B,127
.byte 64,0
.byte 0,'B
.byte 'a,'Q
.byte 'I,'F
.byte 0,33
.byte 'A,'E
.byte 'K,49
.byte 0,24
.byte 20,18
.byte 127,16
.byte 0,39
.byte 'E,'E
.byte 'E,57
.byte 0,60
.byte 'J,'I
.byte 'I,48
.byte 0,1
.byte 'q,9
.byte 5,3
.byte 0,54
.byte 'I,'I
.byte 'I,54
.byte 0,6
.byte 'I,'I
.byte 41,30
.byte 0,0
.byte 54,54
.byte 0,0
.byte 0,0
.byte 'V,54
.byte 0,0
.byte 0,8
.byte 20,34
.byte 'A,0
.byte 0,20
.byte 20,20
.byte 20,20
.byte 0,0
.byte 'A,34
.byte 20,8
.byte 0,2
.byte 1,'Q
.byte 9,6
.byte 0,50
.byte 'I,'Y
.byte 'Q,62
.byte 0,124
.byte 18,17
.byte 18,124
.byte 0,127
.byte 'I,'I
.byte 'I,54
.byte 0,62
.byte 'A,'A
.byte 'A,34
.byte 0,127
.byte 'A,'A
.byte 34,28
.byte 0,127
.byte 'I,'I
.byte 'I,'A
.byte 0,127
.byte 9,9
.byte 9,1
.byte 0,62
.byte 'A,'I
.byte 'I,'z
.byte 0,127
.byte 8,8
.byte 8,127
.byte 0,0
.byte 'A,127
.byte 'A,0
.byte 0,32
.byte 64,'A
.byte 63,1
.byte 0,127
.byte 8,20
.byte 34,'A
.byte 0,127
.byte 64,64
.byte 64,64
.byte 0,127
.byte 2,12
.byte 2,127
.byte 0,127
.byte 4,8
.byte 16,127
.byte 0,62
.byte 'A,'A
.byte 'A,62
.byte 0,127
.byte 9,9
.byte 9,6
.byte 0,62
.byte 'A,'Q
.byte 33,94
.byte 0,127
.byte 9,25
.byte 41,'F
.byte 0,'F
.byte 'I,'I
.byte 'I,49
.byte 0,1
.byte 1,127
.byte 1,1
.byte 0,63
.byte 64,64
.byte 64,63
.byte 0,31
.byte 32,64
.byte 32,31
.byte 0,63
.byte 64,56
.byte 64,63
.byte 0,'c
.byte 20,8
.byte 20,'c
.byte 0,7
.byte 8,'p
.byte 8,7
.byte 0,'a
.byte 'Q,'I
.byte 'E,'C
.byte 0,0
.byte 127,'A
.byte 'A,0
.byte 0,'U
.byte 42,'U
.byte 42,'U
.byte 0,0
.byte 'A,'A
.byte 127,0
.byte 0,4
.byte 2,1
.byte 2,4
.byte 0,64
.byte 64,64
.byte 64,64
.byte 0,0
.byte 1,2
.byte 4,0
.byte 0,32
.byte 'T,'T
.byte 'T,'x
.byte 0,127
.byte 'H,'D
.byte 'D,56
.byte 0,56
.byte 'D,'D
.byte 'D,32
.byte 0,56
.byte 'D,'D
.byte 'H,127
.byte 0,56
.byte 'T,'T
.byte 'T,24
.byte 0,8
.byte 126,9
.byte 1,2
.byte 0,24
.byte 164,164
.byte 164,124
.byte 0,127
.byte 8,4
.byte 4,'x
.byte 0,0
.byte 'D,125
.byte 64,0
.byte 0,64
.byte 128,132
.byte 125,0
.byte 0,127
.byte 16,40
.byte 'D,0
.byte 0,0
.byte 'A,127
.byte 64,0
.byte 0,124
.byte 4,24
.byte 4,'x
.byte 0,124
.byte 8,4
.byte 4,'x
.byte 0,56
.byte 'D,'D
.byte 'D,56
.byte 0,252
.byte 36,36
.byte 36,24
.byte 0,24
.byte 36,36
.byte 24,252
.byte 0,124
.byte 8,4
.byte 4,8
.byte 0,'H
.byte 'T,'T
.byte 'T,32
.byte 0,4
.byte 63,'D
.byte 64,32
.byte 0,60
.byte 64,64
.byte 32,124
.byte 0,28
.byte 32,64
.byte 32,28
.byte 0,60
.byte 64,48
.byte 64,60
.byte 0,'D
.byte 40,16
.byte 40,'D
.byte 0,28
.byte 160,160
.byte 160,124
.byte 0,'D
.byte 'd,'T
.byte 'L,'D
.byte 20,20
.byte 20,20
.byte 20,20
.dbfile E:\V3U~1\sd\M64-SD卡MP3程序/6x8.h
.dbsym e font6x8 _font6x8 A[552:92:6]kc
_china_char::
.byte 10,146
.byte 'b,158
.byte 2,24
.byte 135,'t
.byte 132,20
.byte 12,0
.byte 2,1
.byte 0,4
.byte 5,2
.byte 1,0
.byte 1,2
.byte 4,0
.byte 8,249
.byte 2,0
.byte 254,'B
.byte 'A,254
.byte 2,130
.byte 254,0
.byte 6,1
.byte 2,2
.byte 4,4
.byte 4,5
.byte 4,4
.byte 4,0
.byte 16,18
.byte 20,248
.byte 16,31
.byte 240,24
.byte 20,18
.byte 16,0
.byte 4,4
.byte 2,1
.byte 0,0
.byte 3,4
.byte 4,4
.byte 7,0
.byte 252,0
.byte 255,0
.byte 16,204
.byte 'G,204
.byte 'T,'D
.byte 196,0
.byte 1,0
.byte 7,0
.byte 0,7
.byte 2,3
.byte 2,2
.byte 7,0
.byte 0,252
.byte 148,148
.byte 148,255
.byte 148,148
.byte 148,254
.byte 4,0
.byte 0,1
.byte 0,0
.byte 0,3
.byte 4,4
.byte 4,4
.byte 6,0
.byte 32,33
.byte 33,33
.byte 33,249
.byte 41,37
.byte 35,49
.byte 32,0
.byte 0,0
.byte 0,4
.byte 4,7
.byte 0,0
.byte 0,0
.byte 0,0
.byte 32,34
.byte 34,254
.byte 34,34
.byte 34,254
.byte 34,35
.byte 34,0
.byte 4,4
.byte 2,1
.byte 0,0
.byte 0,7
.byte 0,0
.byte 0,0
.byte 8,14
.byte 136,'x
.byte 47,232
.byte 40,169
.byte 'j,8
.byte 8,0
.byte 4,2
.byte 5,4
.byte 2,2
.byte 1,2
.byte 2,4
.byte 4,0
.byte 0,255
.byte 'I,49
.byte 'M,129
.byte 'I,49
.byte 205,1
.byte 255,0
.byte 0,7
.byte 0,0
.byte 0,0
.byte 0,0
.byte 4,4
.byte 7,0
.byte 16,241
.byte 18,16
.byte 8,244
.byte 131,'B
.byte 36,8
.byte 16,0
.byte 0,7
.byte 2,1
.byte 0,7
.byte 4,4
.byte 4,7
.byte 0,0
.byte 8,8
.byte 255,8
.byte 16,18
.byte 146,'r
.byte 18,18
.byte 16,0
.byte 2,2
.byte 1,1
.byte 4,6
.byte 5,4
.byte 4,5
.byte 6,0
.byte 0,56
.byte 252,252
.byte 56,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 6,6
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.dbfile E:\V3U~1\sd\M64-SD卡MP3程序/chinese.h
.dbsym e china_char _china_char A[288:12:24]kc
.area text(rom, con, rel)
.dbfile E:\V3U~1\sd\M64-SD卡MP3程序/chinese.h
.dbfile E:\V3U~1\sd\M64-SD卡MP3程序\lcd.c
.dbfunc e LCD_write_byte _LCD_write_byte fV
; command -> R18
; data -> R16
.even
_LCD_write_byte::
.dbline -1
.dbline 16
; #include <iom64v.h>
; #include <macros.h>
; #include "lcd.h"
; #include "delay.h"
; #include "6x8.h"
; #include "chinese.h"
;
; /*-----------------------------------------------------------------------
; LCD_write_byte: 使用SPI接口寫數據到LCD
; 輸入參數:data:寫入的數據;
; command :寫數據/命令選擇;
; 編寫日期:2004-8-10
; 最后修改日期:2006-10-23
; -----------------------------------------------------------------------*/
; void LCD_write_byte(unsigned char data, unsigned char command)
; {
.dbline 17
; SCE_L ; // 使能LCD
lds R24,98
andi R24,251
sts 98,R24
.dbline 18
; if (command == 0)
tst R18
brne L2
.dbline 19
; DC_L ; // 傳送命令
lds R24,98
andi R24,254
sts 98,R24
xjmp L3
L2:
.dbline 21
; else
; DC_H ; // 傳送數據
lds R24,98
ori R24,1
sts 98,R24
L3:
.dbline 22
; SPDR = data; // 傳送數據到SPI寄存器
out 0xf,R16
L4:
.dbline 24
L5:
.dbline 23
; while ((SPSR & 0x80) == 0)
sbis 0xe,7
rjmp L4
.dbline 25
; ; // 等待數據傳送完畢
; SCE_H ; // 關閉LCD
lds R24,98
ori R24,4
sts 98,R24
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbsym r command 18 c
.dbsym r data 16 c
.dbend
.dbfunc e LCD_Init _LCD_Init fV
.even
_LCD_Init::
.dbline -1
.dbline 34
; }
;
; /*---------------------------------------
; LCD_init: 3310LCD初始化
; 編寫日期:2004-8-10
; 最后修改日期:2006-10-23
; ----------------------------*/
; void LCD_Init(void)
; {
.dbline 35
; LCD_RES_DDR|=LCD_RES_BIT ;
lds R24,97
ori R24,8
sts 97,R24
.dbline 36
; LCD_SCE_DDR|=LCD_SCE_BIT ;
lds R24,97
ori R24,4
sts 97,R24
.dbline 39
; //LCD_SDIN_DDR|=LCD_SDIN_BIT ;
; //LCD_SCLK_DDR|=LCD_SCLK_BIT ;
; LCD_DC_DDR|=LCD_DC_BIT ;
lds R24,97
ori R24,1
sts 97,R24
.dbline 41
;
; RES_L; // 產生一個讓LCD復位的低電平脈沖
lds R24,98
andi R24,247
sts 98,R24
.dbline 42
; delay_nus(100);
ldi R16,100
ldi R17,0
xcall _delay_nus
.dbline 43
; RES_H ;
lds R24,98
ori R24,8
sts 98,R24
.dbline 44
; SCE_L ; // 關閉LCD
lds R24,98
andi R24,251
sts 98,R24
.dbline 45
; delay_nus(100);
ldi R16,100
ldi R17,0
xcall _delay_nus
.dbline 46
; SCE_H; // 使能LCD
lds R24,98
ori R24,4
sts 98,R24
.dbline 47
; delay_us();
xcall _delay_us
.dbline 48
; LCD_write_byte(0x21, 0);// 使用擴展命令設置LCD模式
clr R18
ldi R16,33
xcall _LCD_write_byte
.dbline 49
; LCD_write_byte(0xc8, 0);// 設置偏置電壓
clr R18
ldi R16,200
xcall _LCD_write_byte
.dbline 50
; LCD_write_byte(0x06, 0);// 溫度校正
clr R18
ldi R16,6
xcall _LCD_write_byte
.dbline 51
; LCD_write_byte(0x13, 0);// 1:48
clr R18
ldi R16,19
xcall _LCD_write_byte
.dbline 52
; LCD_write_byte(0x20, 0);// 使用基本命令
clr R18
ldi R16,32
xcall _LCD_write_byte
.dbline 53
; LCD_clear(); // 清屏
xcall _LCD_clear
.dbline 54
; LCD_write_byte(0x0c, 0);// 設定顯示模式,正常顯示
clr R18
ldi R16,12
xcall _LCD_write_byte
.dbline 55
; SCE_L ; // 關閉LCD
lds R24,98
andi R24,251
sts 98,R24
.dbline -2
L7:
.dbline 0 ; func end
ret
.dbend
.dbfunc e LCD_clear _LCD_clear fV
; i -> R20,R21
.even
_LCD_clear::
xcall push_gset1
.dbline -1
.dbline 64
; }
;
; /*-----------------------------------------------------------------------
; LCD_clear: LCD清屏函數
; 編寫日期:2004-8-10
; 最后修改日期:2006-10-23
; -----------------------------------------------------------------------*/
; void LCD_clear(void)
; {
.dbline 66
; unsigned int i;
; LCD_write_byte(0x0c, 0);
clr R18
ldi R16,12
xcall _LCD_write_byte
.dbline 67
; LCD_write_byte(0x80, 0);
clr R18
ldi R16,128
xcall _LCD_write_byte
.dbline 68
; for (i=0; i<504; i++)
clr R20
clr R21
xjmp L12
L9:
.dbline 69
ldi R18,1
clr R16
xcall _LCD_write_byte
L10:
.dbline 68
subi R20,255 ; offset = 1
sbci R21,255
L12:
.dbline 68
cpi R20,248
ldi R30,1
cpc R21,R30
brlo L9
.dbline -2
L8:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbend
.dbfunc e LCD_set_XY _LCD_set_XY fV
; Y -> R22
; X -> R20
.even
_LCD_set_XY::
xcall push_gset2
mov R22,R18
mov R20,R16
.dbline -1
.dbline 80
; LCD_write_byte(0, 1);
; }
;
; /*-----------------------------------------------------------------------
; LCD_set_XY: 設置LCD坐標函數
; 輸入參數:X:0-83
; Y:0-5
; 編寫日期:2004-8-10
; 最后修改日期:2006-10-23
; -----------------------------------------------------------------------*/
; void LCD_set_XY(unsigned char X, unsigned char Y)
; {
.dbline 81
; LCD_write_byte(0x40 | Y, 0);// column
clr R18
mov R16,R22
ori R16,64
xcall _LCD_write_byte
.dbline 82
; LCD_write_byte(0x80 | X, 0);// row
clr R18
mov R16,R20
ori R16,128
xcall _LCD_write_byte
.dbline -2
L13:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r Y 22 c
.dbsym r X 20 c
.dbend
.dbfunc e LCD_write_char _LCD_write_char fV
; line -> R20
; c -> R22
.even
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -