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

📄 lcd240x128.c

📁 T6963控制的240X128的图形显示器原码,这是我调通并在使用的程序,可供大家参考 Fr
💻 C
📖 第 1 页 / 共 3 页
字号:
  write(1,1,d2);		 //设置自动写方式

  d2=hex_dsc((codedata>>12)&0x000f);
  write(2,0,d2);
  d2=hex_dsc((codedata>>8)&0x000f);
  write(2,0,d2);
  d2=hex_dsc((codedata>>4)&0x000f);
  write(2,0,d2);
  d2=hex_dsc(codedata&0x000f);
  write(2,0,d2);

  d2=0xb2;
  write(1,1,d2);		//结束自动写方式
  
}
//************************************************************************************
//                        汉字的地址           行位置(0-14)  列位置(0-27)
void write_hz(unsigned char code_addr,unsigned char X,unsigned char Y) 
//从指定位置输出一个汉字   1 3
{ //                       2 4

  write_char(code_addr,X,Y);
  write_char(code_addr+2,X,Y+1);
  write_char(code_addr+1,X+1,Y);
  write_char(code_addr+3,X+1,Y+1);
 
}

//                        汉字的地址             汉字的个数       行位置(0-14)  列位置(0-27)
void write_shz(unsigned char code_addr,unsigned char cont,unsigned char X,unsigned char Y)  
//从指定位置输出一串汉字
{
  unsigned char data i;

  for(i=0;i<cont;i++)
    {
      write_hz(code_addr,X,Y+i*2);
      code_addr=code_addr+4;
    }
}
//***************************************************************************************
//        光标开关设置     光标行位置   光标列位置
void cursor_set(bit on,unsigned char X,unsigned char Y)//光标设置
{
  if(on==1)
    {
      d1=Y;
      d2=X;
      com=0x21;
      write_2();

      //X*32+Y=i
      sursor_place=(X*32+Y)+1;//减9,是为了方便在指定位置上显示输入字符
      d2=0x9f;
    }
  else
    {
      d2=0x9c;
    }
  write(1,1,d2);
   
}
//****************************************************************************************
void lcd_ini()  //LCD初始化
{

 lcd_rst(); //LCD复位

 d1=0x03;
 d2=0;
 com=0x22;
 write_2();

 d1=0;
 d2=0;
 com=0x24;
 write_2();

 d1=0;
 d2=0;
 com=0x40;
 write_2(); //文本区首地址 0x0000

 d1=32;
 d2=0;
 com=0x41;
 write_2();   //文本区行宽度 32个字符
 
 d1=0;
 d2=0x08;
 com=0x42;
 write_2(); //图形区首地址 0x0800

 d1=32;
 d2=0;
 com=0x43;
 write_2();   //图形区行宽度 32个字符

 d2=0x80;
 write(1,1,d2);        //使用片内,文本特征显示模式
 //d2=0x84;
 //write(1,1,d2);        //使用片外,文本特征显示模式

 d2=0x9c;
 write(1,1,d2);        //图形,文本均打开,关掉光标

 d2=0xa1;
 write(1,1,d2);        //光标形状为一行

 lcd_clear() ;
 
}
//*****************************************************************************************
/*
void lcd_cls(unsigned char X,unsigned char Y,unsigned int lenths)  //按要求LCD清屏
{  //从X行,Y列位位置开始,清除连续lenths长度的内容
  unsigned int data i;
  unsigned int data addr;
//  unsigned char data d1,d2;

  addr=32*X+Y;
  d1=addr;
  d2=addr>>8;
  com=0x24;
  write_2();//设置显示位置

  d2=0xb0;
  write(1,1,d2);		 //设置自动写方式
  d2=0;
  for(i=lenths-1;i>=0;i--)
    {
	  write(2,0,d2);
    }
  d2=0xb2;
  write(1,1,d2);		//结束自动写方式

}
*/
//********************************************************************
void lcd_clear()  //清除整屏
{
  //unsigned char data d1,d2;
  unsigned int data i;

  d1=0;
  d2=0;
  com=0x24;
  write_2();

  //关显示
  d2=0x90;
  write(1,1,d2);

  d2=0xb0;
  write(1,1,d2);
  for(i=0;i<=0x1fff;i++) //2K的RAM
    {
      d2=0x00;
	  write(2,0,d2);
	}
  d2=0xb2;
  write(1,1,d2);

  //开显示
  d2=0x9c;
  write(1,1,d2);
}
//****************************************************************************
// 加载CGRAM内容
// ccant 8*8点阵个数 ,addr 要加载数据的地址
//一个汉字有4个点阵,
extern void load_cgram(unsigned char ccant,unsigned char *addr)
{
  unsigned int i;

  d1=3;				            
  d2=0;
  com=0x22;
  write_2();		

  d1=0;
  d2=0x1c;
  com=0x24;
  write_2();
  			
  d2=0xb0;
  write(1,1,d2);
  
  i=ccant*8;
  //==================================
  for(;i>0;i--)//加载ccant*8个点阵
    {        
      d2=*addr;
      write(2,0,d2);	
      addr++;        
    }
  //==================================
  d2=0xb2;
  write(1,1,d2);				
}

//****************************************************************************
void write_st_log(unsigned char sadr,unsigned char X,unsigned char Y)  
{


  unsigned int data addr;
//  unsigned char data d1,d2;
  unsigned char data i,j;

  addr=32*X+Y;
  d1=addr;
  d2=addr>>8;
  com=0x24;
  write_2( );//设置显示位置

 for(j=0;j<=4;j++) 
  {
   for(i=0;i<=2;i++) 		   	
    {	  
      d2=sadr+i+j*3;
	  write_char(d2,(X+i),(Y+j));
	}
  }
}
//*************************************************************************************
void disply_powwer_on() //开机画面
{ 
  const st=23;

  //load_user1();
  //12具汉字,一个5X3的图形
  //共 12*4+15=63
  load_cgram(63,&starttable);  

  write_shz(0x80,6,1,9);
  write_shz(0x98,6,4,9);

  write_char(0x36,0,st+0); // V
  write_char(0x45,0,st+1); // e
  write_char(0x52,0,st+2); // r
  write_char(0x1a,0,st+3);// :
  write_char(0x11,0,st+4);// 1
  write_char(0x0e,0,st+5);// .
  write_char(0x10,0,st+6);// 0	  

  write_st_log(0xb0,11,12);
//  write_jens(0x80,11,10); //在最下面中间输出(JENS)图标

}

//**************************************************************************************
//80 84 88 8c 90 94 98 9c a0
//输 入 密 码 重 新 不 正 确
void disply_pass() 
{  //输入密码

  lcd_clear();
  load_cgram(36,&inputpass);

  write_shz(0x80,4,1,1);//

  cursor_set(1,4,10); 

}

void disply_err()
{ //密码不正确,重新输入
  write_shz(0x88,2,1,1);
  write_shz(0x98,3,1,5);
  write_char(0x0c,2,11);// ,
  write_shz(0x90,2,1,12);
  write_shz(0x80,4,1,16);
}

//**************************************************************************************
void disply_run() //非设置正常运行画面
{
// 80 84 88 8c 90 94 98 9c a0 a4 a8 ac b0 b4 b8 ba bc be c0 c2 c4 c6 c8 ca cc ce d0 d2 d4 d6 d8
// 火 车 站 货 名 单 斗 重 量 累 计 取 消 数  0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  T (720)
 
  cursor_set(0,0,0);//光标设置
  lcd_clear();
  load_cgram(104,&hz_table1);//加载汉字时,汉字个数*4,就是要加载的个数

  write_shz(0x80,3,0,20);  //火车站  0,1 行
   
  write_hz(0x8c,3,0) ;//货  3,4 行
  write_hz(0x90,3,6); //名
  write_char(0x1a,4,8);//:

  write_shz(0xa4,2,6,0);//累计 6,7行
  write_shz(0x9c,2,6,4);//重量 
  write_char(0x1a,7,8);//:

  write_shz(0x94,4,9,0); //单斗重量  9,10行
  //write_hz(0xbc,6,6); //重
  write_char(0x1a,10,8);// :


  write_shz(0xac,2,12,0);//取消  12,13行
  write_hz(0x98,12,4);//斗
  write_hz(0xb4,12,6);//数 
  write_char(0x1a,13,8);//:


  
}

//*******************************************************************************
// 80 84 88 8c 90 94 98 9c a0 a4 a8 ac b0 b4 b8 bc c0 c4 c8 cc 
// 系 统 标 定 分 度 值 装 载 机 信 息 校 正 按 索 引 号 选 择 
// d0 d4 d8 dc e0 e4 e8 ec f0 f4 f8 fc
// 设 置 管 理 权 限 密 码 时 间 设 置
void disply_set() 
{

  cursor_set(0,0,0);
  lcd_clear();
  load_cgram(128,&hz_table2);;

⌨️ 快捷键说明

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