📄 avrforili9320.c
字号:
LCD_WR_REG(0x85,0x0000);
LCD_WR_REG(0x90,0x0010);
LCD_WR_REG(0x92,0x0000);
LCD_WR_REG(0x93,0x0003);
LCD_WR_REG(0x95,0x0110);
LCD_WR_REG(0x97,0x0000);
LCD_WR_REG(0x98,0x0000);
//power setting function
LCD_WR_REG(0x10,0x0000);
LCD_WR_REG(0x11,0x0000);
LCD_WR_REG(0x12,0x0000);
LCD_WR_REG(0x13,0x0000);
//_delay_loop_2 (10000);
LCD_WR_REG(0x10,0x17b0);
LCD_WR_REG(0x11,0x0004);
//_delay_loop_2 (10000);
LCD_WR_REG(0x12,0x013e);
//_delay_loop_2 (10000);
LCD_WR_REG(0x13,0x1f00);
LCD_WR_REG(0x29,0x000f);
_delay_loop_2 (0xffff); //非常重要,不能少
LCD_WR_REG(0x20,0x0000);
LCD_WR_REG(0x21,0x0000);
//initializing function 2
LCD_WR_REG(0x30,0x0204);
LCD_WR_REG(0x31,0x0001);
LCD_WR_REG(0x32,0x0000);
LCD_WR_REG(0x35,0x0206);
LCD_WR_REG(0x36,0x0600);
LCD_WR_REG(0x37,0x0500);
LCD_WR_REG(0x38,0x0505);
LCD_WR_REG(0x39,0x0407);
LCD_WR_REG(0x3c,0x0500);
LCD_WR_REG(0x3d,0x0503);
//display on
LCD_WR_REG(0x07,0x0173);
}
void LCD_WR_REG(uchar index,uint val)
{
CS_L;
RS_L;
DATA_L=index;
DATA_H=0;
WR_L;
//nop;
//nop;
WR_H;
RS_H;
DATA_L=(uchar)val;
DATA_H=(uchar)(val>>8);
WR_L;
//nop;
//nop;
WR_H;
CS_H;
}
void LCD_WR_Start()
{
CS_L;
RS_L;
DATA_L = 0x22;
DATA_H = 0x00;
WR_L;
nop;
nop;
WR_H;
RS_H;
}
void LCD_WR_Data(uint val)
{
DATA_L = (uchar)val;
DATA_H = (uchar)(val>>8);
WR_L;
//nop;
//nop;
WR_H;
}
void LCD_WR_End()
{
CS_H;
}
void LCD_test()
{
uint temp,num,cl;
uchar n;
LCD_WR_REG(0x20,0); //0-239
LCD_WR_REG(0x21,0); //0-319
LCD_WR_Start();
for(n=0;n<8;n++)
{
temp=color[n];
for(num=40*240;num>0;num--)
LCD_WR_Data(temp);
}
LCD_WR_End();
/* cl=0x0000;
LCD_WR_REG(0x20,0); //0-239
LCD_WR_REG(0x21,0); //0-319
LCD_WR_Start();
for(num=0;num<1320;num++)
{
for(temp=0;temp<240;temp++)
{
LCD_WR_Data(cl);
}
cl=cl+60;
}
LCD_WR_End();*/
}
void LCD_test2()
{
uint temp,num;
uint n;
LCD_WR_REG(0x20,0); //0-239
LCD_WR_REG(0x21,0); //0-319
LCD_WR_Start();
for(n=0;n<40*240;n++)
{
LCD_WR_Data(0xf800);
}
LCD_WR_End();
LCD_WR_REG(0x20,100); //0-239
LCD_WR_REG(0x21,100); //0-319
LCD_WR_REG(0x50,100); //定义好16*16方形的起始和末尾地址
LCD_WR_REG(0x51,115);
LCD_WR_REG(0x52,100);
LCD_WR_REG(0x53,131);
LCD_WR_Start();
for(n=0;n<32*16;n++)
{
LCD_WR_Data(0xf800);
}
LCD_WR_End();
}
void num_dis(uint startX, uint startY, uchar *pic,uint color,uint bcolor) //96*48
{
uint n,t,k;
uchar x,z,y;
LCD_WR_REG(0x20,startX); //0-239
LCD_WR_REG(0x21,startY); //0-319
LCD_WR_REG(0x50,startX);
LCD_WR_REG(0x51,startX+47);
LCD_WR_REG(0x52,startY);
LCD_WR_REG(0x53,startY+95);
LCD_WR_Start();
for(n=96;n>0;n--)
{
t=n-1;
t=t*6;
for(k=t;k<t+6;k++)
{
y=0x80;
for(z=0;z<8;z++)
{
x=pgm_read_byte(pic+k)&y;
if (x==0)
LCD_WR_Data(bcolor);
else
LCD_WR_Data(color);
y=y/2;
}
}
}
LCD_WR_End();
}
void chr_dis(uint startX, uint startY, uchar *pic,uint color,uint bcolor) //32*16
{
uint n,t,k;
uchar x,z,y;
LCD_WR_REG(0x20,startX); //0-239
LCD_WR_REG(0x21,startY); //0-319
LCD_WR_REG(0x50,startX);
LCD_WR_REG(0x51,startX+15);
LCD_WR_REG(0x52,startY);
LCD_WR_REG(0x53,startY+31);
LCD_WR_Start();
for(n=32;n>0;n--)
{
t=n-1;
t=t*2;
y=0x80;
for(z=0;z<8;z++)
{
x=pgm_read_byte(pic+t)&y;
if (x==0)
LCD_WR_Data(bcolor);
else
LCD_WR_Data(color);
y=y/2;
}
t=t+1;
y=0x80;
for(z=0;z<8;z++)
{
x=pgm_read_byte(pic+t)&y;
if (x==0)
LCD_WR_Data(bcolor);
else
LCD_WR_Data(color);
y=y/2;
}
}
LCD_WR_End();
}
void LCD_DrawPicture(uint startX, uint startY, uint *pic)
{
unsigned int i;
LCD_WR_REG(0x20,startX); //0-239
LCD_WR_REG(0x21,startY); //0-319
LCD_WR_REG(0x50,startX);
LCD_WR_REG(0x51,startX+135);
LCD_WR_REG(0x52,startY);
LCD_WR_REG(0x53,startY+101);
LCD_WR_Start();
for(i=0;i<136*10;i++)
{
LCD_WR_Data(pgm_read_word(pic++));
}
LCD_WR_End();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -