?? ra8803.c
字號:
//====================================================================================
// 捌祘Α籔Waveform籔Initial
//====================================================================================
#include <hnk51.h>
#include <lcd_command.h>
#include <testchip.h>
void lcd_cmdwrite (unsigned char cmdx , unsigned char cmdy)
{
lcd_CMD=cmdx;
lcd_CS=0;
lcd_RD=1;
lcd_RS=0;
lcd_WR=0;
lcd_WR=1;
lcd_RS=1;
lcd_CS=1;
lcd_CMD=cmdy;
lcd_CS=0;
lcd_RD=1;
lcd_RS=0;
lcd_WR=0;
lcd_WR=1;
lcd_RS=1;
lcd_CS=1;
}
void lcd_datawrite(unsigned char datax)
{
lcd_DATA=datax;
lcd_CS=0;
lcd_RD=1;
lcd_RS=1;
lcd_WR=0;
lcd_WR=1;
lcd_RS=0;
lcd_CS=1;
}
unsigned lcd_cmdread(unsigned char cmdx)
{
unsigned char address_cmd;
lcd_CMD=cmdx;
lcd_CS=0;
lcd_RD=1;
lcd_RS=0;
lcd_WR=0;
lcd_WR=1;
lcd_RS=1;
lcd_CS=1;
lcd_DATA=0xff;
lcd_CS=0;
lcd_WR=1;
lcd_RS=0;
lcd_RD=0;
address_cmd=lcd_DATA;
lcd_RD=1;
lcd_RS=1;
lcd_CS=1;
return(address_cmd);
}
unsigned lcd_dataread(void)
{
unsigned char address_data;
lcd_DATA=0xff;
lcd_CS=0;
lcd_WR=1;
lcd_RS=1;
lcd_RD=0;
address_data=lcd_DATA;
lcd_RD=1;
lcd_RS=0;
lcd_CS=1;
return(address_data);
}
void lcd_Initial(void)
{
lcd_cmdwrite(0x00,0xcd); //WLCR
lcd_cmdwrite(0x01,0x02); //MISC
lcd_cmdwrite(0x02,0x10); //APSR
lcd_cmdwrite(0x03,0x80); //ADSR
lcd_cmdwrite(0x10,0x6b); //WCCR
lcd_cmdwrite(0x12,0xb3); //MAMR
lcd_cmdwrite(0x20,0x27); //AWRR
lcd_cmdwrite(0x30,0xef); //AWBR
lcd_cmdwrite(0x40,0x00); //AWLR
lcd_cmdwrite(0x50,0x00); //AWTR
lcd_cmdwrite(0x21,0x27); //DWRR
lcd_cmdwrite(0x31,0xef); //DWBR
lcd_cmdwrite(0x41,0x00); //DWLR
lcd_cmdwrite(0x51,0x00); //DWTR
lcd_cmdwrite(0x60,0x00); //CPXR
lcd_cmdwrite(0x61,0x00); //BGSG
lcd_cmdwrite(0x70,0x00); //CPYR
lcd_cmdwrite(0x71,0x00); //BGCM
lcd_cmdwrite(0x72,0xef); //EDCM
// lcd_cmdwrite(0x80,0x33); //BTMR
// lcd_cmdwrite(0x81,0x00); //FRCA
// lcd_cmdwrite(0x91,0x00); //FRCB
lcd_cmdwrite(0x90,0x09); //SCCR
// lcd_cmdwrite(0xa0,0x00); //INTR
// lcd_cmdwrite(0xa1,0x00); //KSCR
// lcd_cmdwrite(0xa2,0x00); //KSDR
// lcd_cmdwrite(0xa3,0x00); //KSER
// lcd_cmdwrite(0xb0,0x1d); //INTX
// lcd_cmdwrite(0xb1,0x3f); //INTY
lcd_cmdwrite(0xc0,0xc8); //TPCR
lcd_cmdwrite(0xc1,0x3a); //TPSR
lcd_cmdwrite(0xc8,0x80); //TPXR
lcd_cmdwrite(0xc9,0x80); //TPYR
lcd_cmdwrite(0xca,0x00); //TPZR
lcd_cmdwrite(0xd0,0x0f); //LCCR
lcd_cmdwrite(0xe0,0x00); //PNTR
lcd_cmdwrite(0xf0,0xa0); //FNCR
lcd_cmdwrite(0xf1,0x0f); //FVHT
}
void lcd_reset(void)
{
lcd_RS=0;
lcd_WR=1;
lcd_RD=1;
lcd_CS=1;
lcd_RES = 0;
delay1ms(50);
lcd_RES = 1;
delay1ms(300);
}
void delay1ms(unsigned int count)
{
int i,j;
for(i=0;i<=count;i++)
for(j=0;j<=583;j++);
}
void lcd_on(void)
{
unsigned char datax;
datax =lcd_cmdread(0x00);
datax |= 0x04;
lcd_cmdwrite(0x00,datax);
}
void lcd_off(void)
{
unsigned char datax;
datax =lcd_cmdread(0x00);
datax &=0xfb;
lcd_cmdwrite(0x00,datax);
}
void lcd_clear(void)
{
unsigned char reg;
lcd_cmdwrite(0xe0,0x00);
reg = lcd_cmdread(0xf0);
reg |=0x08;
lcd_cmdwrite(0xf0,reg);
}
void lcd_cursorxy(unsigned int x,unsigned int y)
{
lcd_cmdwrite(0x60,x);
lcd_cmdwrite(0x70,y);
}
void lcd_showbig(unsigned char *text,unsigned int x)
{
while(*text != '\0')
{
lcd_datawrite(*text);
++text;
delay1ms(x);
}
}
//==============================================================================
// Touch Panel
//==============================================================================
unsigned char Touch_check(void)
{
unsigned char tamp,tamp1;
tamp=lcd_cmdread(0xc0);
tamp&=0xfe;
tamp&=0xfd;
tamp&=0xfb;
tamp|=0x08;
lcd_cmdwrite(0xc0,tamp);
delay1ms(2);
tamp1=lcd_cmdread(0xc1);
tamp1=tamp1&0x40;
if(tamp1==0x40)
return 1;
else
return 0;
}
unsigned char get_TouchyH(void)
{
unsigned char y_get,tamp;
tamp=lcd_cmdread(0xc0);
tamp&=0xfb;
lcd_cmdwrite(0xc0,tamp);
tamp&=0xf7;
lcd_cmdwrite(0xc0,tamp);
tamp|=0x01;
lcd_cmdwrite(0xc0,tamp);
tamp|=0x02;
lcd_cmdwrite(0xc0,tamp);
delay1ms(2);
y_get = lcd_cmdread(0xc9);
return y_get;
}
unsigned char get_TouchyL(void)
{
unsigned char y_get,tamp;
tamp=lcd_cmdread(0xc0);
tamp&=0xfb;
lcd_cmdwrite(0xc0,tamp);
tamp&=0xf7;
lcd_cmdwrite(0xc0,tamp);
tamp|=0x01;
lcd_cmdwrite(0xc0,tamp);
tamp|=0x02;
lcd_cmdwrite(0xc0,tamp);
delay1ms(2);
y_get = (lcd_cmdread(0xca) ) & 0x0c;
return y_get;
}
unsigned char get_TouchxH(void)
{
unsigned char x_get,tamp;
tamp=lcd_cmdread(0xc0);
tamp&=0xfe;
lcd_cmdwrite(0xc0,tamp);
tamp&=0xfd;
lcd_cmdwrite(0xc0,tamp);
tamp|=0x04;
lcd_cmdwrite(0xc0,tamp);
tamp|=0x08;
lcd_cmdwrite(0xc0,tamp);
delay1ms(2);
x_get = lcd_cmdread(0xc8);
return x_get;
}
unsigned char get_TouchxL(void)
{
unsigned char x_get,tamp;
tamp=lcd_cmdread(0xc0);
tamp&=0xfe;
lcd_cmdwrite(0xc0,tamp);
tamp&=0xfd;
lcd_cmdwrite(0xc0,tamp);
tamp|=0x04;
lcd_cmdwrite(0xc0,tamp);
tamp|=0x08;
lcd_cmdwrite(0xc0,tamp);
delay1ms(2);
x_get = (lcd_cmdread(0xca)>>4) & 0x0c;
return x_get;
}
void show_data(unsigned char h,unsigned char L)
{
unsigned char bitHH,bitH,bitL,test;
lcd_datawrite(hex(h));
bitH=L;
lcd_datawrite(hex(L>>4));
L=bitH;
lcd_datawrite(hex(L));
}
unsigned char hex(unsigned char r)
{
r &= 0x0f;
if(r < 10)
r += 0x30;
else
r += 0x37;
return r;
}
unsigned char Touch(unsigned char Tx,unsigned char Ty)
{
unsigned char temp;
if((Tx >= 0x00) && (Tx < 0x50))
temp = 1;
else if((Tx >= 0x51) && (Tx < 0x80))
temp = 2;
else if((Tx >= 0x81) && (Tx < 0xc0))
temp = 3;
else if((Tx >= 0xc1) && (Tx < 0xff))
temp = 4;
return temp;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -