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

📄 lcd.h

📁 基于msp430的一个系统运用系统函数kernel
💻 H
📖 第 1 页 / 共 3 页
字号:
/*--  文字:  循  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x90,0x48,0xE4,0x3B,0x12,0x00,0xFE,0x12,0xD2,0x52,0x7F,0x51,0x51,0xD1,0x10,0x00,
0x00,0x00,0xFF,0x00,0x80,0x60,0x1F,0x00,0x7F,0x49,0x49,0x49,0x49,0x7F,0x00,0x00,

/*--  文字:  环  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x22,0x22,0xFE,0x22,0x22,0x00,0x02,0xC2,0x32,0xFE,0x42,0x82,0x02,0x02,0x00,
0x00,0x04,0x04,0x03,0x12,0x0A,0x04,0x03,0x00,0x00,0xFF,0x00,0x00,0x03,0x0E,0x00,

/*--  文字:  泵  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x21,0x21,0x11,0x11,0x09,0x7D,0x4B,0xC9,0x49,0x49,0x49,0x79,0x01,0x01,0x01,0x00,
0x40,0x41,0x21,0x11,0x0D,0x43,0x80,0x7F,0x02,0x04,0x0A,0x12,0x31,0x61,0x20,0x00,

/*--  文字:  :  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  4  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,



/*--  文字:  开  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x40,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0x00,
0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  /  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  关  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x10,0x10,0x10,0x11,0x1E,0x14,0xF0,0x10,0x18,0x17,0x12,0x18,0x10,0x00,0x00,
0x01,0x81,0x41,0x21,0x11,0x09,0x05,0x03,0x05,0x09,0x31,0x61,0xC1,0x41,0x01,0x00,

};              //数据表 存于 F200-F3FF
#pragma memory = default 

//=====================================================

//**********************************************
#define disp_off   0x3e
#define disp_on    0x3f
#define disp_x     0xb8
#define disp_z     0xc0
#define disp_y     0x40
#define comm       0
#define dat        1
#define data_ora   P4OUT       //MCU P4<------> LCM
//*************************************************
#define   rs      BIT0  
#define   rw      BIT1
#define   e       BIT2
#define   cs1     BIT3
#define   cs2     BIT4
#define   rst     BIT5
#define   bf      BIT7
#define   res     BIT4
//=======================================================
void delay(unsigned int u);
void chk_busy (void);
void init_lcd (void);


/*------------写数据或命令到LCD--------------*/
void wr_lcd (uchar dat_comm,uchar content)
{
  chk_busy ();
  if(dat_comm==dat)
    P5OUT |=rs;
  if(dat_comm==comm)
    P5OUT &=~rs;
   P5OUT &=~rw;
   P4DIR =0xff;
   data_ora=content;
   P5OUT |=e;
   ;
   P5OUT &=~e;
}
/*-----------------检测忙函数-------------------------*/
void chk_busy (void)
{
   P4DIR=0x00;
  P5OUT &=~rs;
  P5OUT |=rw;
  ;
  P5OUT |=e;
  ;
  while((P4IN & bf)||(P4IN & res)==1);
  P5OUT &=~e;
}
/*--------------写点阵------------------*/
void lat_disp (uchar data1,uchar data2)
{
  uchar i,j;
  init_lcd();
  for(j=0;j<8;j++)
  {
    wr_lcd (comm,disp_x+j);
    wr_lcd (comm,disp_z);
    wr_lcd (comm,disp_y);
    for(i=0;i<32;i++)
    {
      wr_lcd (dat,data1);
      wr_lcd (dat,data2);
    }
  }
}

/*——————————清屏(光强的显示)————————*/
void lat_dispL1 (uchar data1,uchar data2)
{
  uchar i,j;
  P5OUT |=cs2;P5OUT &=~cs1;
  for(j=0;j<4;j++)
  {
    wr_lcd (comm,disp_x+j);
    wr_lcd (comm,disp_z);
    wr_lcd (comm,disp_y);
    for(i=0;i<32;i++)
    {
      wr_lcd (dat,data1);
      wr_lcd (dat,data2);
    }
  }
}


/*---指定位置(x,y)显示row_xl行(每行row_yl个)汉字(大小8xl*yl)---*/
void chn_disp (uchar x,uchar y,uchar xl,uchar yl,uchar row_xl,uchar row_yl,const uchar  *chn)
{
  uchar i,j,k,l;
  const uchar *temp;
  wr_lcd (comm,disp_on);
  for(l=0;l<row_xl;l++)
  {
    for(k=0;k<row_yl;k++)
    {
      for(j=0;j<xl;j++)
      {
        wr_lcd (comm,disp_x+x+l*xl+j);
        wr_lcd (comm,disp_z);
        wr_lcd (comm,disp_y+y+k*yl);   //确定显示的位置
        //a=l*xl*yl*row_yl+k*xl*yl+j*yl;
        temp=chn;//intr中间量获取当前地址
	temp+=l*xl*yl*row_yl+k*xl*yl+j*yl;//指针的偏移量
	for(i=0;i<yl;i++)
          //wr_lcd (dat,chn[a+i]);
	wr_lcd(dat,*(temp+i)); //显示当前位置的数据
      }
    }
  }
}

/*------------------初始化-----------------*/
void lcd (void)
{
  P5DIR=0xff;
  P5OUT |=cs1;
  P5OUT |=cs2;
  wr_lcd (comm,disp_off);
  wr_lcd (comm,disp_on);
}


/*---指定位置(x,y)显示row_xl行(每行row_yl个)汉字(大小8xl*yl)---*/
void chn_disps (uchar x,uchar y,uchar m)	 //x为页初始,y为列初始,m为数字变量。
{
  uchar i,j,k,d,b;
  d=m/10;
  b=m%10;
  wr_lcd (comm,disp_on);
 temp=Temper;
    for(k=0;k<2;k++)
    {
      for(j=0;j<2;j++)
      {
        wr_lcd (comm,disp_x+x+j);
        wr_lcd (comm,disp_z);
        wr_lcd (comm,disp_y+y+k*8);
	   if(k==0)
	   {
             for(i=0;i<8;i++){
            
             wr_lcd (dat,a[d*16+j*8+i]);
           }
           }
	    else
		 { 
		   for(i=0;i<8;i++)
                   {
                    
		   wr_lcd (dat,a[b*16+j*8+i]);
                   }
		    
		 } 
    }
  }

}


//----------------- 显示强度 -------------
void chn_dispd(uchar x,uchar y,uchar m)		 // x为页初始,y为列初始, m为0~~64。
{
	 uchar i;

     wr_lcd (comm,disp_x+x);
     wr_lcd (comm,disp_z);
     wr_lcd (comm,disp_y+y);
    temp=light;
	 for(i=0;i<m;i++)
	 wr_lcd (dat,*(temp+i));
}

/*——————显示函数区——————*/
void disp1 (uchar q,uchar x,uchar c)	 //显示数字
{
   
    P5OUT |=cs2;P5OUT &=~cs1;
    chn_disps(q,x,c);
    
 }


void disp2 (uchar t,uchar o,uchar v)	 //显示光强度
{
   lat_dispL1(0x00,0x00)
   P5OUT |=cs2;P5OUT &=~cs1;
    chn_dispd(t,o,v);
    
 }




   
//*********************主程序**************************//
void init_lcd(void)
{   
 WDTCTL=WDTPW+WDTHOLD; 
  p=abc;
  lcd ();
  lat_disp(0x00,0x00);
 
  show_p1();
  show_p2();
  show_p3();

 
void show_pag0(void)
{
  lat_disp(0x00,0x00);
  P5OUT |=cs1;P5OUT &=~cs2;
  chn_disp (0,32,2,16,2,2,sy11);
  P5OUT |=cs2;P5OUT &=~cs1;
  chn_disp (0,0,2,16,2,2,sy21);
  P5OUT |=cs1;P5OUT &=~cs2;
  chn_disp(4,16,2,16,1,3,sy13);
  P5OUT |=cs2;P5OUT &=~cs1;
  chn_disp(4,0,2,16,1,3,sy23);
  P5OUT |=cs1;P5OUT &=~cs2;
  chn_disp(6,16,2,16,1,3,sy14);
  P5OUT |=cs2;P5OUT &=~cs1;
  chn_disp(6,0,2,16,1,4,sy24);
}

void show_pag1(void)
{
  lat_disp(0x00,0x00);
 P5OUT |=cs1;P5OUT &=~cs2;
chn_disp (0,0,2,16,2,4,de11);
P5OUT |=cs2;P5OUT &=~cs1;
chn_disp (0,0,2,16,2,3,de21);
P5OUT |=cs1;P5OUT &=~cs2;
chn_disp(4,0,2,16,2,4,de13);
P5OUT |=cs2;P5OUT &=~cs1;
chn_disp(4,0,2,16,2,3,de23);
 
}

void show_pag21(void)
{
  lat_disp(0x00,0x00);
  P5OUT |=cs1;P5OUT &=~cs2;
  chn_disp (0,0,2,16,2,4,ds11);
  P5OUT |=cs1;P5OUT &=~cs2;
  chn_disp (4,0,2,16,2,4,ds13);
  P5OUT |=cs2;P5OUT &=~cs1;
  chn_disp(0,0,2,16,2,1,ds21);
  P5OUT |=cs2;P5OUT &=~cs1;
  chn_disp(4,0,2,16,2,1,ds23);
  P5OUT |=cs2;P5OUT &=~cs1;
  chn_disp(0,48,2,8,2,2,ds15); 
  P5OUT |=cs2;P5OUT &=~cs1;
  chn_disp(4,40,2,8,2,3,ds16); 

 disp1(0,32,shishu_inner);
 disp1(2,32,shishu_out);
 disp1(4,24,WetI);
 disp1(6,24,WetO);
 
}

void show_pag22(void)
{
   lat_disp(0x00,0x00);
  P5OUT |=cs1;P5OUT &=~cs2;
  chn_disp(0,0,2,16,2,4,ds14);
  P5OUT |=cs1;P5OUT &=~cs2;
   chn_disp(5,0,2,16,1,3,ds17);
   P5OUT |=cs2;P5OUT &=~cs1;
   chn_disp(5,0,2,16,1,2,ds18);

  disp2(0,0,LightI);
  disp2(2,0,lightO);
}

void show_pag3(void)
{
  lat_disp(0x00,0x00);
  P5OUT |=cs1;P5OUT &=~cs2;
   chn_disp(0,0,2,16,1,4,dw51);
   P5OUT |=cs2;P5OUT &=~cs1;
   chn_disp(0,0,2,16,1,4,dw52);

  P5OUT |=cs1;P5OUT &=~cs2;
chn_disp(2,0,2,16,1,4,dw53);
 P5OUT |=cs2;P5OUT &=~cs1;
   chn_disp(2,0,2,16,1,4,dw54);
  P5OUT |=cs1;P5OUT &=~cs2;
   chn_disp(4,0,2,16,1,4,dw55);
   P5OUT |=cs2;P5OUT &=~cs1;
   chn_disp(4,0,2,16,1,4,dw56);
  P5OUT |=cs1;P5OUT &=~cs2;
   chn_disp(6,0,2,16,1,4,dw57);
   P5OUT |=cs2;P5OUT &=~cs1;
  chn_disp(6,0,2,16,1,4,dw58);
}



 
 
 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -