⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ra8835c.h

📁 二次灭菌机控制程序
💻 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 + -