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

📄 lcd24064.h

📁 很完整的CAN总线项目应用例子
💻 H
📖 第 1 页 / 共 4 页
字号:
//{0xFF,0xFF,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xFF,0xFF,
//0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xFF,0xFF};
/*uchar code line3[]= 
{0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};*/

uchar code dian_4[]= 
{0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,
 0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,0x01,0x02,0x01,0x02,0x00,0xFE,0x00,0x00};/*"电",0*/
uchar code ya_4[]= 
{0x00,0x00,0x3F,0xFE,0x20,0x00,0x20,0x80,0x20,0x80,0x20,0x88,0x2F,0xFC,0x20,0x80,
 0x20,0xA0,0x20,0x90,0x20,0x98,0x40,0x90,0x40,0x80,0xBF,0xFE,0x00,0x00,0x00,0x00};/*"压",1*/
uchar code liu_4[]= 
{0x20,0x80,0x10,0x40,0x17,0xFE,0x00,0x40,0x80,0x80,0x49,0x10,0x4B,0xF8,0x10,0x08,
 0x12,0x50,0x12,0x50,0xE2,0x50,0x22,0x50,0x24,0x52,0x24,0x52,0x28,0x4E,0x20,0x00};/*"流",2*/
//uchar code pin_4[]= 
//{0x08,0x00,0x08,0xFE,0x4E,0x20,0x48,0x40,0x48,0xFC,0xFE,0x84,0x00,0xA4,0x08,0xA4,
// 0x4A,0xA4,0x4A,0xA4,0x84,0xA4,0x08,0x50,0x10,0x48,0x20,0x86,0xC3,0x02,0x00,0x00};/*"频",3*/
//uchar code lv_4[]= 
//{0x02,0x00,0x01,0x00,0x7F,0xFE,0x41,0x00,0x22,0x28,0x17,0xD0,0x04,0x80,0x11,0x10,
// 0x22,0x48,0x47,0xC4,0x01,0x20,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00};/*"率",4*/
uchar code bo_4[]= 
{0x20,0x40,0x10,0x40,0x10,0x40,0x07,0xFE,0x84,0x44,0x54,0x40,0x54,0x40,0x17,0xF8,
 0x25,0x08,0x24,0x90,0xE4,0x90,0x24,0x60,0x28,0x60,0x28,0x98,0x31,0x0E,0x26,0x04};/*"波",5*/
uchar code xing_4[]= 
{0x00,0x04,0x7F,0x86,0x12,0x0C,0x12,0x10,0x12,0x20,0x12,0x08,0xFF,0xCC,0x12,0x18,
 0x12,0x20,0x12,0x44,0x12,0x86,0x12,0x0C,0x22,0x10,0x22,0x20,0x42,0x40,0x80,0x80};/*"形",6*/
uchar code biao[]= 
{0x01,0x00,0x01,0x00,0x3F,0xFC,0x01,0x00,0x1F,0xF8,0x01,0x00,0x7F,0xFE,0x03,0x00,
 0x06,0x88,0x0C,0x8C,0x38,0x50,0xC8,0x20,0x09,0x10,0x0A,0x0E,0x0C,0x04,0x08,0x00};/*"表",0*/
/************************************************************************
      				    初始化界面
************************************************************************/
void manu_init(uchar k)
{	  
 	//showword(wang,0x20+k,0);
  	//showword(luo, 0x30+k,0);
  	showword(shi, 0x40+k,0);  
  	showword(yan, 0x50+k,0); 
  	showword(jian, 0x60+k,0);  
  	showword(ce_2,0x70+k,0); 
  	showword(xi, 0x80+k,0); 
  	showword(tong,  0x90+k,0); 
  	//showword(tong,0xa0+k,0); 
}


/***********************************************************
                  LCM初始化函数
************************************************************/
void LcmInit( void )
{
     LcmWriteCommandWith2Par(0x00,0x00,0x40);                 //设置文本显示区首地址
     LcmWriteCommandWith2Par(LcmLengthDots/8,0x00,0x41);      //设置文本显示区宽度
     LcmWriteCommandWith2Par(0x00,0x08,0x42);                 //设置图形显示区首地址0x0800
     LcmWriteCommandWith2Par(LcmLengthDots/8,0x00,0x43);      //设置图形显示区宽度
     LcmWriteCommand(0xA0);                                   //设置光标形状 (8x8方块 0XA7) (横线 0xa0)
	 LcmWriteCommand(0x9f);                                   //显示开关设置////////////////////
     LcmWriteCommand(0x81);                                   //显示方式设置 文本xor图形(异或)
     LcmWriteCommand(0x9C);                                   //显示开关设置 文本开,图形开,光标闪烁关
}

/***********************************************************
                 数据,指令读写判别 
       判状态位STA1,STA0,读写命令和数据时需为11			   
************************************************************/
void CheckRWCD(void)
{
     while((LcmCmdPort&0x03)!=0x03);      //低电平忙
}
/***********************************************************
              数据自动写判别
       	    判状态位STA3,忙则等待
************************************************************/
void CheckAutoWrite(void)
{
     while((LcmCmdPort&0x08)!=0x08);      //低电平忙
}

/***********************************************************
                一个数据子写入函数
				待写入数据: uData
************************************************************/
void LcmWriteData(uchar uData)                        
{
     LcmDataPort = uData;
}

/***********************************************************
                一个数据读出函数
				读出数据存放在: uData
************************************************************/
uchar LcmReadData( void )
{
     uchar uData;
     uData = LcmDataPort;
     return uData;
}
/***********************************************************
                无参数指令写入函数
				写入指令: Command
************************************************************/
void LcmWriteCommand(uchar Command)                  
{
     CheckRWCD();                        //检测指令读写状态
     LcmCmdPort = Command;
}

/***********************************************************
                单参数指令写入函数
	     写入参数: Parameter	写入指令: Command
************************************************************/
void LcmWriteCommandWith1Par(uchar Parameter,uchar Command)
{
     CheckRWCD();                        //检测指令读写状态
     LcmDataPort = Parameter;
     CheckRWCD();                        //每次读写均要检测指令读写状态
     LcmCmdPort = Command;
}

/***********************************************************
                  双参数指令写入函数
	  写入参数: Parameter1,Parameter2  写入指令: Command
************************************************************/
void LcmWriteCommandWith2Par(uchar Parameter1,uchar Parameter2,uchar Command)
{
     CheckRWCD();                        //检测指令读写状态
     LcmDataPort = Parameter1;
     CheckRWCD();
     LcmDataPort = Parameter2;
     CheckRWCD();
     LcmCmdPort = Command;
}


/***********************************************************
                     延时函数
************************************************************/
void Delay(uint MS)
{
     uchar us,usn;
     while(MS!=0)                        //12M Crystal
     { 
       usn = 2;
       while(usn!=0)
        {
           us=0xf2;
           while (us!=0){us--;};
           usn--;
        }
       MS--;
     }
}

/***********************************************************
                    清显示存储器函数
				 LcmClear(0x00); --清屏
				 LcmClear(0xff); --全黑检测
************************************************************/
void LcmClear(uchar FillByte)                      //FillByte为填充的代码:0x00或0xff
{
     uint nn = 8192;                                 //此处仅清8K RAM,如果32K RAM都使用,请修改i=32768(后面也要改)
     if(FillByte)                                   //注意如果填充ff时,如果RAM仅使用了8K,那么8192次会写入到文本区
     {                                              //会形成乱码.(24064出厂时候默认将R7断开,即默认使用8KRAM)
       nn -= 2*1024;                                 //所以如果填入ff时候要扣除2K的文本区
       LcmWriteCommandWith2Par(0x00,0x08,0x24);     //填充0xff时候要在图形区
     }
     else
       LcmWriteCommandWith2Par(0x00,0x00,0x24);
     LcmWriteCommand(0xB0);                         //进入自动写
     while(nn--)
     {
       CheckAutoWrite();
       LcmWriteData(FillByte);
     }
     LcmWriteCommand(0xB2);                        //退出自动写
}


/***********************************************************
                  设定显示地址函数
			  坐标参数:x,y   显示方式由 mode 决定
************************************************************/
void LocateXY(uchar x,uchar y,uchar mode)
{
     uint  temp;
     temp= LcmLengthDots/8*y + x;
     if(mode)                                    //mode=1为Graphic,mode=0为TXT
     {                                           //如果图形模式要加上图形区首地址0x0800
       temp+=0x0800;
     }
     LcmWriteCommandWith2Par(temp&0xff,temp/256,0x24);
}

/************************************字符图形显示程序区********************************/

/***********************************************************
                 显示一个ASCII码函数
************************************************************/
void PutChar(uchar x,uchar y,uchar CharByte)
{
     LocateXY(x,y,TXT);
     LcmWriteCommandWith1Par(CharByte,0xC4);
}


/***********************************************************
                 显示一个字符串函数
************************************************************/
void PutString(uchar x,uchar y,uchar *str)
{

⌨️ 快捷键说明

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