?? lcdinit.txt
字號:
//===================================
void lcdinit(void)
{
//clr_csport
sysset13700();
scroll13700();
csrform13700();
hdotscr();
ovlay13700();
dispon13700();
//powersav13700();
grayscale();
//set_csport
}
//===================================
//===================================
void sysset13700()
{
send_lcdcommand(0x40); //sys set command
send_lcddata(0x34); //reg[00h]
send_lcddata(0x87); //reg[01h]
send_lcddata(0x07); //reg[02h]
send_lcddata(0x27); //reg[03h]
send_lcddata(0x3f); //reg[04h]
send_lcddata(0xf0); //reg[05h]
send_lcddata(0x28); //reg[06h]
send_lcddata(0x00); //reg[07h]
//send_lcddata(0x00); //reg[08h]
//030H,087H,007H,027H,03FH,0F0H,028H,000H
}
//===================================
void powersav13700()
{
send_lcdcommand(0x53); //power save
//send_lcddata(0xff); //power dis
send_lcddata(0x00); //dummy
send_lcddata(0x00); //dummy
}
//===================================
void dispon13700()
{
send_lcdcommand(0x59); //disp on
send_lcddata(0x55); //reg[0ah] no flash
}
//===================================
void dispoff13700()
{
send_lcdcommand(0x58); //disp off
send_lcddata(0b00); //reg[09h] blank
}
//===================================
void scroll13700()
{
send_lcdcommand(0x44); //scroll
send_lcddata(0x00); //reg[0bh] sad1 reg0
send_lcddata(0x00); //reg[0ch] sad1 reg1
send_lcddata(0xf0); //reg[0dh] sl1
send_lcddata(0x80); //reg[0eh] sad2 reg0
send_lcddata(0x25); //reg[0fh] sad2 reg1
send_lcddata(0xf0); //reg[10h] sl2
send_lcddata(0x00); //reg[11h] sad3 reg0
send_lcddata(0x4b); //reg[12h] sad3 reg1
send_lcddata(0x00); //reg[13h] sl3
send_lcddata(0x00);
//000H,000H,0F0H,080H,025H,0F0H,000H,000H,000H,000H
}
//===================================
void csrform13700()
{
send_lcdcommand(0x5d); //csrform
send_lcddata(0x07); //reg[15h] cursor width
send_lcddata(0x07); //reg[16h] cursor height
}
//===================================
void csrdir13700(uchar dir)
{
switch(dir)
{
case 0:
send_lcdcommand(0x4c); //reg[17h] csrform r
break;
case 1:
send_lcdcommand(0x4d); //reg[17h] csrform l
break;
case 2:
send_lcdcommand(0x4e); //reg[17h] csrform u
break;
case 3:
send_lcdcommand(0x4f); //reg[17h] csrform d
break;
default:
break;
}
}
//===================================
void ovlay13700()
{
send_lcdcommand(0x5b); //ovlay
send_lcddata(0b00011110); //reg[18h]
}
//===================================
void cgramadr(uchar cgramadrl,uchar cgramadrh)
{
send_lcdcommand(0x5c);
send_lcddata(cgramadrl);
send_lcddata(cgramadrh);
}
//===================================
void hdotscr()
{
send_lcdcommand(0x5a); //hdotscr
send_lcddata(0x00); //reg[1bh]
}
//===================================
void csrw(uint xadr,uint yadr)
{
uchar csrwadrl,csrwadrh;
uint tempadr;
tempadr=xadr+yadr*40;
csrwadrl=(uchar) (tempadr&0x00ff);
csrwadrh=(uchar) (tempadr/256);
send_lcdcommand(0x46); //csrw
send_lcddata(csrwadrl); //reg[1ch]
send_lcddata(csrwadrh); //reg[1dh]
//send_lcddata(xadr);
//send_lcddata(yadr);
}
//===================================
void csrr()
{
send_lcdcommand(0x47); //csrr
}
//===================================
void grayscale()
{
send_lcdcommand(0x60); //grayscale
send_lcddata(0x00); //reg[20h]
}
//===================================
uchar rd_lcddata()
{
uchar rddata;
clr_csport
clr_comport //wr dat
set_wrport
clr_rdport
asm(nop);
asm(nop);
rddata=lcddatport;
set_rdport //rd dat
asm(nop);
asm(nop);
set_csport
return(rddata);
}
//===================================
void send_lcdcommand(uchar data)
{
clr_csport
set_comport //wr com
set_rdport
clr_wrport
asm(nop);
asm(nop);
lcddatport=data;
//clr_rdport
asm(nop);
asm(nop);
set_wrport //rd dat
asm(nop);
asm(nop);
set_csport
//clr_wrport
}
//===================================
void send_lcddata(uchar data)
{
clr_csport
clr_comport //wr dat
set_rdport
clr_wrport
asm(nop);
asm(nop);
lcddatport=data;
asm(nop);
asm(nop);
set_wrport //rd dat
asm(nop);
asm(nop);
set_comport
set_csport
//clr_wrport
}
//===================================
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -