📄 ra8835c.h
字号:
#define wr PORTC.3
#define rd PORTC.4
#define cs PORTC.5
#define a0 PORTC.6
#define rst PORTC.7
//#define busy PORC.4
#define DATAIN DDRA=0
#define DATAOUT DDRA=0XFF
#define data_ora PORTA
#define lcd_control PORTC
/* ----- Definitions concerning LCD internal memory ------ */
#define addr_w 0x0000 //文本显示区首地址
#define addr_t 0x04b0 //图形显示区首地址
flash unsigned char systab[8]={0x30,0x87,0x0f,0x27,0x3a,0xef,0x28,0x00};
flash unsigned char scrtab[10]={0x00,0x00,0xf0,0xb0,0x04,0xf0,0x30,0x2a,0xb0,0x4f};
/* -----------------------------------------------------------
void chk_busy (void) //忙检测
{
a0=0;
wr=1;
rd=0;
while(busy==1)
;
rd=1;
}
*/
void wr_comm (unsigned char comm) //写命令
{
// chk_busy ();
a0=1;
rd=1;
data_ora=comm;
wr=0;
// delay(2);
wr=1;
}
void wr_data (unsigned char dat) //写数据
{
// chk_busy ();
a0=0;
rd=1;
data_ora=dat;
wr=0;
// delay(2);
wr=1;
}
unsigned char rd_data (unsigned char dat) //读数据
{
a0=1;
wr=1;
rd=0;
;
dat=data_ora;
rd=1;
return dat;
}
void wr_xd (unsigned int dat) //写一个16进制数据
{
unsigned char datl,dath;
datl=dat;
dath=dat>>8;
wr_data (datl); //送低八位
wr_data (dath); //送高八位
}
//........显示点阵..........
void lcd_lattice(unsigned char dat1,unsigned char dat2)
{
unsigned char i,j,k;
//wr_comm(0x4c); //光标自动移动方向--向右
wr_comm(0x46);
wr_xd(0x04b0);
wr_comm(0x42);
for(i=0;i<60;i++)
{
for(j=0;j<80;j++)
{
wr_data(dat1);
};
for(k=0;k<80;k++)
{
wr_data(dat2);
};
};
}
/*--------------显示字符------------------*/
void disp_eng(unsigned char flash *eng)
{
unsigned char i,j;
wr_comm(0x46);
wr_xd(0x00);
//wr_xd(0x0000);
wr_comm(0x42);
for(i=0;i<7;i++)
for(j=0;j<40;j++)
wr_data(eng[40*i+j]);
for(i=0;i<96;i++)
{
wr_data(0x20+i);
};
for(i=0;i<24;i++)
{
wr_data(0xa0+i);
};
}
/*--------------显示字符------------------*/
void disp_eng1(flash unsigned char *eng,unsigned char addr,unsigned char num)
{
//uchar i,j;
wr_comm(0x46);
wr_xd(0x00+addr);
//wr_xd(0x0000);
wr_comm(0x42);
wr_data(eng[num]);
}
//..........显示中文...............
void disp_character(unsigned char x,unsigned char y,unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2,flash unsigned char *chn)
{ //在x,y处显示大小x1,y1的字,显示x2行,每行y2个字
unsigned char i,j,k,l; //x为字节数,y为点行数
for(i=0;i<x2;i++)
for(j=0;j<y2;j++)
for(k=0;k<y1;k++)
for(l=0;l<x1;l++)
{
wr_comm(0x46);
wr_xd(0x04b0+x+40*y+l+k*40+j*x1+i*y1*40);
wr_comm(0x42);
wr_data(*chn);
++chn;
};
}
//............显示图形..........
void disp_photo(unsigned char x,unsigned char y,unsigned char x1,unsigned char y1,flash unsigned char *pho)
{
unsigned char i,j; //在x,y处显示大小x1,y1的图形
wr_comm(0x46);
wr_xd(0x04b0+x+40*y);
wr_comm(0x42);
for(i=0;i<y1;i++)
for(j=0;j<x1;j++)
{
wr_data(*pho);
++pho;
};
}
//.......清屏............
void lcd_clear(void)
{
unsigned int i,j;
wr_comm(0x46); //显示光标地址
//wr_xd(0x0000);
wr_data(0x00);
wr_data(0x00);
wr_comm(0x42);
for(i=0;i<135;i++)
for(j=0;j<80;j++)
wr_data(0x00);
}
//.......初始化...........
void init_lcd (void)
{
unsigned char i;
rst=1;
cs=0;
wr_comm(0x40); //WRITE SYSTEMSET 指令和参数
for(i=0;i<8;i++)
wr_data(systab[i]);
wr_comm(0x44); //WRITE SCROLL 指令和参数
for(i=0;i<10;i++)
wr_data(scrtab[i]);
wr_comm(0x5a); //显示画面水平移动量:00--07点
wr_data(0x00);
wr_comm(0x5b); //显示属性:DM1(DM2)=0,文本方式;DM1(DM2)=1,图形方式;OV=1,三重合成;OV=0,两重合成
wr_data(0x08);
wr_comm(0x5d);
wr_data(0x07);
wr_data(0x8f);
wr_comm(0x4c); //光标自动移动方向--向右
wr_comm(0x59); //DISP ON
wr_data(0x56);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -