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

📄 lcd19264.h

📁 这是运用c51单片机测试电压电流的完整工程项目文件
💻 H
字号:

#ifndef			LCD19264_H
#define			LCD19264_H

#include 		<reg52.H>
#include 		<absacc.h>
#include 		<string.h>
#include 		<intrins.h>
#include 		<math.h>
#include		"mdefine.h"
#include		"Ziku.h"


/*忙判别*/
void lcd_busy(void)
{
	 di=0;rw=1;LCDDataPort=0xff;
	 while (1)
	  {
		en=1;
		if (LCDDataPort<0x80) break;
		en=0;
	  }
	en=0;
}
/*设置xy*/
void set_xy(unsigned char x,unsigned char y)
 {   y=y%192;
	if (y<64)
		{
			cs1=0;
			cs2=1;
			cs3=1;
		}
	else if(y<128)
		{
			cs1=1;
			cs2=0;
			cs3=1;
		}
		   else
		   	{
		   	 cs1=1;
			   cs2=1;
			   cs3=0;
		   	}

	lcd_busy();
	di=0;
	rw=0;

	LCDDataPort=0xb8|x;       //设置页地址
  en=1;
	en=0;

	lcd_busy();
	di=0;
	rw=0;

  y=y%64;
	LCDDataPort=0x40|y;    //设置列地址
  en=1;
	en=0;
	LCDDataPort=0xff;
}
/*写显示数据*/
void lw(unsigned char x,unsigned char y,unsigned char dd)
{
	set_xy(x,y);
	lcd_busy();
	di=1;
	rw=0;

	LCDDataPort=dd;
	en=1;

	en=0;
	LCDDataPort=0xff;
}
/*显示初始化*/
void lcd_init()
{
	unsigned char x,y;
  en=0;
	di=0;
	rw=0;
	cs1=1;
	cs2=1;
	cs3=1;

	cs1=0;     //开左屏显示
  LCDDataPort=0x3f;
	en=1;
  en=0;

	cs1=1;     //开中屏显示
	cs2=0;
	cs3=1;
	en=1;
	LCDDataPort=0x3f;
  en=0;

	cs1=1;     //开右屏显示
	cs2=1;
	cs3=0;
	en=1;
	LCDDataPort=0x3f;
  en=0;

	cs1=0;     //设置左半屏起始行为0行
  cs2=1;
  cs3=1;
	lcd_busy();
	di=0;
	rw=0;
  LCDDataPort=0xc0;
	en=1;
  en=0;

	cs1=1;     //设置中屏起始行为0行
	cs2=0;
	cs3=1;
	lcd_busy();
	di=0;
	rw=0;
  LCDDataPort=0xc0;
	en=1;
  en=0;

	cs1=1;     //设置右半屏起始行为0行
  cs2=1;
  cs3=0;
	lcd_busy();
	di=0;
	rw=0;
  LCDDataPort=0xc0;
	en=1;
  en=0;

	for (x=0;x<8;x++)    //全屏清零
	     {
		    for (y=0;y<192;y++)
		      lw(x,y,0x00);
	     }
}

//显示汉字,fb==1:反白显示,16*16点阵
void dh(unsigned char x,unsigned char y,unsigned char n,unsigned char fb)
{
	unsigned char i,bb,dd;
	for (bb=0;bb<2;bb++)
     {
	     for (i=0;i<16;i++)
	           {
				dd=hz[i+16*bb+n*32];
				if (fb)
					dd=~dd;
				lw(x,y,dd);

			     y=y++;
       		  }
          x=x++;
          y=y-16;
      }
}

//显示字符,fb==1:反白显示,16*8点阵
void df(unsigned char x,unsigned char y,unsigned char n,unsigned char fb)
{
      unsigned char i,bb,dd;
      for (bb=0;bb<2;bb++)
      {
	     for (i=0;i<8;i++)
	           {
				dd=zf[i+8*bb+n*16];
				if (fb)
					dd=~dd;
				lw(x,y,dd);
			     y=y++;
       		  }
          x=x++;
          y=y-8;
      }
}

//8*8点阵显示,fb==1:反白显示
void dxz(uchar x,uchar y,uchar n,uchar fb)
{
      unsigned char i,bb,dd;
       for (bb=0;bb<1;bb++)
      {
	     for (i=0;i<8;i++)
	           {
				dd=xz[i+8*bb+n*8];
				if (fb)
					dd=~dd;
				lw(x,y,dd);
			     y=y++;
       		  }
          x=x++;
          y=y-8;
      }
}


//8*16 电池图形点阵,fb==1:反白显示
void dtx(uchar x,uchar y,uchar n,uchar fb)
{
      unsigned char i,bb,dd;
       for (bb=0;bb<1;bb++)
      {
	     for (i=0;i<16;i++)
	           {
				dd=tu[i+16*bb+n*16];
				if (fb)
					dd=~dd;
				lw(x,y,dd);
			     y=y++;
       		  }
          x=x++;
          y=y-8;
      }
}

#endif

⌨️ 快捷键说明

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