📄 sed1520.c
字号:
}
//初始化LCD
void LCD_Init()
{
LCDWriteCom1(0xe2);
LCDWriteCom2(0xe2);
LCDWriteCom1(0xa4);
LCDWriteCom2(0xa4);
LCDWriteCom1(0xa9);
LCDWriteCom2(0xa9);
LCDWriteCom1(0xa0);
LCDWriteCom2(0xa0);
LCDWriteCom1(0xc0);
LCDWriteCom2(0xc0);
LCDWriteCom1(0xaf);
LCDWriteCom2(0xaf);
}
void LCDClear()
{
unsigned char i,j;
for(i=0;i<4;i++)
{
LCDWriteCom1(0xb8|i);
LCDWriteCom2(0xb8|i);
LCDWriteCom1(0);
LCDWriteCom2(0);
for(j=0;j<80;j++)
{
LCDWriteDat1(0x0);
LCDWriteDat2(0x0);
}
}
}
//在x,y点显示一个点
void LCDDrawPoint(unsigned char x,unsigned char y )
{
unsigned char dat,temp;
//设置页
temp=(y>>3);
LCDWriteCom1(0xb8|(temp&3));
LCDWriteCom2(0xb8|(temp&3));
if(x<MAXCOL)
{
LCDWriteCom1(x); //设置行
LCDWriteCom1(0xe0); //打开改写模式
dat=LCDReadDat1(); //读数据
// if(COLOR==0)dat=dat&(!(1<<(y%8))); //计算要写数据
dat=dat|(1<<(y%8));
LCDWriteDat1(dat); //写数据
LCDWriteCom1(0xee); //关闭改写模式
}
else
if(x>MAXCOL)
{ LCDWriteCom2(x-MAXCOL); //设置行
LCDWriteCom2(0xe0); //打开改写模式
dat=LCDReadDat2(); //读数据
// if(COLOR==0) dat=dat&(!(1<<(y%8)));//计算要写数据
dat=dat|(1<<(y%8));
LCDWriteDat2(dat); //写数据
LCDWriteCom2(0xee); //关闭改写模式
}
}
void LCDDrawLine(unsigned char col,unsigned char y )
{
char i,y0,ym,page0,page1,temp,dat=0;
y0=y>>3;
page1=y>>3;
ym=y%8;
if(col<=MAXCOL)
{
if(y0!=0)
{
page0=4-y0;
for(i=page0;i<=3;i++)
{
LCDWriteCom1(col);
LCDWriteCom1(0xb8|(i&3)); //设定显示页
LCDWriteDat1(0xff);
}
page1=3-page1;
LCDWriteCom1(col);
LCDWriteCom1(0xb8|(page1&3)); //设定显示页
ym=8-ym;
for(i=ym;i<=7;i++)
{ dat=dat+Square(i);}
LCDWriteDat1(dat);
}
if(y0==0)
{
page1=3-page1;
LCDWriteCom1(col);
LCDWriteCom1(0xb8|(page1&3)); //设定显示页
ym=8-ym;
for(i=ym;i<=7;i++)
{ dat=dat+Square(i);}
LCDWriteDat1(dat);
}
if(y0<=2)
{temp=2-y0;
for(i=0;i<=temp;i++)
{
LCDWriteCom1(col);
LCDWriteCom1(0xb8|(i&3)); //设定显示页
LCDWriteDat1(0x00);
}
}
}
else
{
if(y0!=0)
{
page0=4-y0;
for(i=page0;i<=3;i++)
{
LCDWriteCom2(col-MAXCOL);
LCDWriteCom2(0xb8|(i&3)); //设定显示页
LCDWriteDat2(0xff);
}
page1=3-page1;
LCDWriteCom2(col-MAXCOL);
LCDWriteCom2(0xb8|(page1&3)); //设定显示页
ym=8-ym;
for(i=ym;i<=7;i++)
{ dat=dat+Square(i);}
LCDWriteDat2(dat);
}
if(y0==0)
{
page1=3-page1;
LCDWriteCom2(col-MAXCOL);
LCDWriteCom2(0xb8|(page1&3)); //设定显示页
ym=8-ym;
for(i=ym;i<=7;i++)
{ dat=dat+Square(i);}
LCDWriteDat2(dat);
}
if(y0<=2)
{temp=2-y0;
for(i=0;i<=temp;i++)
{
LCDWriteCom2(col-MAXCOL);
LCDWriteCom2(0xb8|(i&3)); //设定显示页
LCDWriteDat2(0x00);
}
}
}
}
void LCDDrawDatM2(char col, char i, char *pdat)
{
char j;
unsigned char length;
length = 8;
if ((col+length) < MAXCOL)
{
LCDWriteCom1(col);
LCDWriteCom1(0xb8|(i&3)); //设定显示页
for(j=col; j<col+length; j++)
LCDWriteDat1(*(pdat+(j-col)));
return;
}
if (((col+length) >= MAXCOL)&&(col<MAXCOL))
{
LCDWriteCom1(col);
LCDWriteCom1(0xb8|(i&3)); //设定显示页
for(j=col; j<MAXCOL; j++)
LCDWriteDat1(*(pdat+(j-col)));
LCDWriteCom2(0);
LCDWriteCom2(0xb8|(i&3)); //设定显示页
for(j=0; j<MAXCOL; j++)
{
LCDWriteDat2(*(pdat+(MAXCOL-col+j)));
if ((MAXCOL-col+j) >= length)
break;
}
return;
}
else
{
LCDWriteCom2(col-MAXCOL);
LCDWriteCom2(0xb8|(i&3)); //设定显示页
for(j=col-MAXCOL; j<MAXCOL; j++)
{
LCDWriteDat2(*(pdat+(j-col+MAXCOL)));
if ((j-col+MAXCOL) >= length)
break;
}
}
}
void LCDDrawDatM2_Opposition(char col, char i, char *pdat)
{
char j;
unsigned char length;
length = 8;
if ((col+length) < MAXCOL)
{
LCDWriteCom1(col);
LCDWriteCom1(0xb8|(i&3)); //设定显示页
for(j=col; j<col+length; j++)
LCDWriteDat1( 0xff-(*(pdat+(j-col))) );
return;
}
if (((col+length) >= MAXCOL)&&(col<MAXCOL))
{
LCDWriteCom1(col);
LCDWriteCom1(0xb8|(i&3)); //设定显示页
for(j=col; j<MAXCOL; j++)
LCDWriteDat1(0xff-(*(pdat+(j-col))) );
LCDWriteCom2(0);
LCDWriteCom2(0xb8|(i&3)); //设定显示页
for(j=0; j<MAXCOL; j++)
{
LCDWriteDat2(0xff-(*(pdat+(MAXCOL-col+j))) );
if ((MAXCOL-col+j) >= length)
break;
}
return;
}
else
{
LCDWriteCom2(col-MAXCOL);
LCDWriteCom2(0xb8|(i&3)); //设定显示页
for(j=col-MAXCOL; j<MAXCOL; j++)
{
LCDWriteDat2(0xff-(*(pdat+(j-col+MAXCOL))) );
if ((j-col+MAXCOL) >= length)
break;
}
}
}
void LcdTextOut_Opposition(char col, char page, char *string)
{
char charp;
int length;
char scol;
charp = 0;
length = strlen(string);
for (scol=col; scol<120; scol+=8)
{
LCDDrawDatM2_Opposition( scol, page, CharTable+(*(string+charp)*8) );
charp++;
if (charp >= length)
break;
}
}
void LcdTextOut(char col, char page, char *string)
{
char charp;
int length;
char scol;
charp = 0;
length = strlen(string);
for (scol=col; scol<120; scol+=8)
{
LCDDrawDatM2( scol, page, CharTable+(*(string+charp)*8) );
charp++;
if (charp >= length)
break;
}
}
void LCDTextOutChar( char col, char page, unsigned char d )
{
LCDDrawDatM2( col, page, CharTable+d*8 );
}
/*
void LCD_DateShow(int colstart,int colend,int page,unsigned int dat)
{
unsigned char i,j=16;
unsigned int mm;
// LcdTextOut(0,page,"0x");
for(i=colstart;i<=colend;i +=8)
{
mm=dat;
j=j-4;
mm >>= j;
mm &= 0x000f;
if( mm>9 )
LCDTextOutChar( i, page, mm-10+'A' );
else
LCDTextOutChar( i, page, mm+'0' );
}
}
*/
void signal(unsigned int dat)
{
unsigned int mm;
mm=dat;
switch(mm)
{case 1:LcdTextOut(1, 2,"COLOR ");
break;
case 2:LcdTextOut(1, 2,"HDTV1 ");
break;
case 3:LcdTextOut(1, 2,"HDTV2 ");
break;
case 4:LcdTextOut(1, 2,"HDTV3 ");
break;
case 5:LcdTextOut(1, 2,"STEP ");
break;
case 6:LcdTextOut(1, 2,"RED ");
break;
case 7:LcdTextOut(1, 2,"GREEN ");
break;
case 8:LcdTextOut(1, 2,"BLUE ");
break;
}
}
void output(unsigned int dat)
{
unsigned int mm;
mm=dat;
switch(mm)
{case 1:LcdTextOut(1, 3,"NTSC/YC ");
break;
case 2:LcdTextOut(1, 3,"NTSC ");
break;
case 3:LcdTextOut(1, 3,"PAL/YC");
break;
case 4:LcdTextOut(1, 3,"480P ");
break;
case 5:LcdTextOut(1, 3,"720P ");
break;
case 6:LcdTextOut(1, 3,"1080I ");
break;
}
}
void LCDframe()
{
unsigned char i,j;
for(j=0;j<=31;j++)
LCDDrawPoint(61,j);
for(j=0;j<=31;j+=8)
LCDDrawPoint(62,j);
for(i=61;i<=120;i++)
LCDDrawPoint(i,31);
for(i=61;i<=120;i+=3)
LCDDrawPoint(i,30);
}
void LCDScroll_Bar(unsigned int collect_dat,unsigned int chun)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -