首页 新闻 工控搜 论坛 厂商论坛 产品 方案 厂商 人才 文摘 下载 展览
中华工控网首页
  P L C | 变频器与传动 | 传感器 | 现场检测仪表 | 工控软件 | 人机界面 | 运动控制
  D C S | 工业以太网 | 现场总线 | 显示调节仪表 | 数据采集 | 数传测控 | 工业安全
  电 源 | 嵌入式系统 | PC based | 机柜箱体壳体 | 低压电器 | 机器视觉
串口12864液晶初始化代码
深圳市速威迪电子有限公司
收藏本文     查看收藏

/********************************************************************
  The instruction system of ST7665
  P0 : DB0=SID
  P2 : DB3=RST,DB2=CS,DB1=RS,DB0=SCLK
  2005/12/19
********************************************************************/

#include "head.h"
static BYTE contrast=0x30;
BYTE status=0x00;
BYTE Constr[]="ContrastValue:  ";

#define TIMES1 0X0001
#define DELAY delaytime(TIMES1)
#define TIMES2 0X0000
//#define BUSDELAY delaytime(TIMES2)

void delaytime(WORD bytimes)
{
 for(;bytimes>0;bytimes--);
}

void ResetSt7565(void)
{
 P2=0x04; //RST=0,CS=1,RS=0,SCLK=0
 delaytime(0x1000);
 P2=0x0c; //RST=1,CS=1,RS=0,SCLK=0
 delaytime(0x1000);
}

void WriteInst(BYTE byInstruction)
{
 BYTE temp;
 P2=0x08; //RST=1,CS=0,RS=0,SCLK=0
 BUSDELAY;
 for(temp=0;temp<8;temp++)
 {
  if(byInstruction&0x80) P0=0xff; //
  else P0=0x00;
  BUSDELAY;
  P2=0x09;//RST=1,CS=0,RS=0,SCLK=1
  BUSDELAY;
  P2=0x08;//RST=1,CS=0,RS=0,SCLK=0
  byInstruction=byInstruction<<1;
 }
 P2=0x0c;//RST=1,CS=1,RS=0,SCLK=0
}

void WriteData(BYTE byData)
{
 BYTE temp;
 P2=0x0a; //RST=1,CS=0,RS=1,SCLK=0
 BUSDELAY;
 for(temp=0;temp<8;temp++)
 {
  if(byData&0x80) P0=0xff; //
  else P0=0x00;
  BUSDELAY;
  P2=0x0b;//RST=1,CS=0,RS=1,SCLK=1
  BUSDELAY;
  P2=0x0a;//RST=1,CS=0,RS=1,SCLK=0
  byData=byData<<1;
 }
 P2=0x0e;//RST=1,CS=1,RS=1,SCLK=0
}

void DisplayOnOff(BYTE byInst)
{
 DELAY;
 WriteInst((byInst&0x01)|0xae);
}

void InitialDisplayLine(BYTE byInst)
{
 DELAY;
 WriteInst((byInst&0x3f)|0x40);
}

void SetReferenceVoltage(BYTE byInst)
{
 DELAY;
 WriteInst(0x81);
 DELAY;
 WriteInst(byInst);
}

void SetPageAddress(BYTE byInst)
{
 DELAY;
 WriteInst((byInst&0x0f)|0xb0);
}

void SetColumnAddress(BYTE byInst)
{
 DELAY;
 WriteInst(byInst&0x0f);
 DELAY;
 WriteInst(((byInst>>4)&0x0f)|0x10);
}

void AdcSelect(BYTE byInst)
{
 DELAY;
 WriteInst((byInst&0x01)|0xa0);
}

void ReverseDisplayOnOff(BYTE byInst)
{
 DELAY;
 WriteInst((byInst&0x01)|0xa6);
}

void EntireDisplayOnOff(BYTE byInst)
{
 DELAY;
 WriteInst((byInst&0x01)|0xa4);
}

void LcdBiasSelect(BYTE byInst)
{
 DELAY;
 WriteInst((byInst&0x01)|0xa2);
}

void SetModifyRead(void)
{
 DELAY;
 WriteInst(0xe0);
}

void ResetModifyRead(void)
{
 DELAY;
 WriteInst(0xee);
}

void Reset(void)
{
 DELAY;
 WriteInst(0xe2);
}

void ShlSelect(BYTE byInst)
{
 DELAY;
 WriteInst((byInst&0x08)|0xc0);
}

void PowerControl(BYTE byInst)
{
 DELAY;
 WriteInst((byInst&0x07)|0x28);
}

void RegulatorResistorSelect(BYTE byInst)
{
 DELAY;
 WriteInst((byInst&0x07)|0x20);
}

void SetStaticIndicatorMode(BYTE byInst)
{
 DELAY;
 WriteInst((byInst&0x01)|0xac);
}

void SetStaticIndicatorRegister(BYTE byInst)
{
 DELAY;
 WriteInst(byInst);
}

void Init_ST7565(void)
{

// Reset();

 AdcSelect(0x00);  //normal direction
 ShlSelect(0x08);  //reverse direction
 LcdBiasSelect(0x00); //1/9 bias

// PowerControl(0x04); //booster enable,
// delay(1);
// PowerControl(0x06); //booster enable,
// delay(1);
 PowerControl(0x07); //booster enable,
// RegulatorResistorSelect(0x05);
 SetReferenceVoltage(contrast);

 ReverseDisplayOnOff(0x00); //normal display
 EntireDisplayOnOff(0x00); //normal display

 InitialDisplayLine(0x20); //the frist line
 SetPageAddress(0x03);
// SetColumnAddress(0x01);
//   WriteInst(0xb4);
  WriteInst(0x10);
    WriteInst(0x01);    
    DisplayOnOff(0x01);  //Display on
}


 

状 态: 离线

会员简介

会员代号: renjikun
联 系 人: 任继坤
电  话: 0755-83167832
传  真: 0755-83315255
地  址: 深圳市福田区上梅林越华路14号凡恩大厦623
邮  编: 518049
主  页:
 
 
立即发送询问信息在线联系该技术文摘厂商:
用户名: 密码: 免费注册为中华工控网会员
请留下您的有效联系方式,以方便我们及时与您联络

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 不良信息举报
工控网客服热线:0755-86369299
版权所有 中华工控网 Copyright©2022 Gkong.com, All Rights Reserved