历史上的今天
返回首页

历史上的今天

今天是:2025年03月11日(星期二)

正在发生

2021年03月11日 | MSP430液晶屏1602驱动程序

2021-03-11 来源:eefocus

1602液晶显示:

1,16脚:地


2,15脚:+5


3脚:接滑动变阻器,滑动变阻器另一端接地


4脚:P4.5(RS)


5脚: P4.6 (RW)


6脚: P4.7 (E)


7~14脚:接单片机的数据口P5(D0~D7)


#include

#define RS_HIGN  P4OUT|=BIT5         //P4.5

#define RS_LOW   P4OUT&=~BIT5

#define RW_HIGN  P4OUT|=BIT6          //P4.6

#define RW_LOW   P4OUT&=~BIT6

#define E_HIGN   P4OUT|=BIT7          //P4.7

#define E_LOW    P4OUT&=~BIT7

void LcdPos(char,char);

void LcdWd(char);

void LcdWc(char);

void LcdWcn(char);

void Delay(char);

void WaitIdle();


void Delay(char wDelay)  //延时子程序

{

  while(wDelay!=0)

    wDelay--;

}


void WriteChar(char c,char x,char y)

{

 LcdPos(x,y);

 LcdWd(c);

}


void WriteString(char *s,char x,char y)

{

  char i;

  if(*s==0)

    return;

  for(i=0;;i++)

  {

    if(*(s+i)==0)

      break;

    WriteChar(*(s+i),x,y);

    x++;

    if(x>15)

      break;

  }

}


void SetCur(char Para)  //设置光标,显示状态等

{ Delay(2);

  switch(Para)

  {case 0:

    {LcdWc(0x08);

     break;}

   case 1:

    {LcdWc(0x0c);

     break;}

   case 2:

    {LcdWc(0x0e);

     break;}

   case 3:

    {LcdWc(0x0f);

     break;}

   default:

     break;

  }

}


void ClrLcd()

{

  LcdWc(0x01);

}


void WaitIdle()

{

  char temp;

  P5DIR &=0;

  RS_LOW;//RS=0;

  RW_HIGN;//RW=1;

  Delay(1000);

  for(;;)

    {

      E_HIGN;//E=1;

      temp=P5IN;

      E_LOW;//E=0

      temp&=0x80;

      if(temp==0)

    {P5DIR=0xff;

     break;}

  }

}


void LcdWd(char c)      //将待写数据送到端口

{WaitIdle();

  P5DIR=0xff;

  RS_HIGN;//RS=1;

  RW_LOW;//RW=0;

  P5OUT=c;

  E_HIGN;//E=1;

  Delay(2000);

  E_LOW;//E=0;

}

void LcdWc(char c)

{

  WaitIdle();

  LcdWcn(c);

}

void LcdWcn(char c )     //送控制字子程序

{ P5DIR=0xff; 

  RS_LOW;//RS=0;    

  RW_LOW;//RW=0;

  P5OUT=c;

  E_HIGN;//E=1;

  Delay(1000);

  E_LOW;//E=0;

}

void LcdPos(char x,char y)    //设置光标所在位置

{

  unsigned char temp;

  x &=0x0f;

  y &=0x01;

  if(y==0)

    temp=x;

  else

    temp=x+0x40;

  temp |=0x80;

  LcdWc(temp);

}

void RstLcd()

{  Delay(10000);

   LcdWc(0x38);         //显示模式设置

   LcdWc(0x08);         //显示关闭

   LcdWc(0x01);         //显示清屏

   LcdWc(0x06);         //显示光标移动位置

   LcdWc(0x0c);         //显示开及光标设置

}

  

int main()

{

  WDTCTL=WDTPW+WDTHOLD;

  P4DIR=0xff;

  RstLcd();

  ClrLcd();

  WriteString("welcome!",4,0);

}


推荐阅读

史海拾趣

AND Displays公司的发展小趣事

随着公司规模的扩大和实力的增强,AND Displays开始实施国际化战略。公司在全球范围内设立了多个研发中心和生产基地,以便更好地满足不同地区客户的需求。同时,公司还加强了与国际同行的交流与合作,共同推动显示技术的创新与发展。通过全球布局和资源整合,AND Displays逐渐成为了全球显示行业的领军企业之一。

以上五个故事从不同角度展示了AND Displays公司在电子行业中的发展历程和成就。这些故事不仅反映了公司的技术实力和市场竞争力,也体现了公司对环保、可持续发展等社会责任的关注和担当。

Communications公司的发展小趣事

在电子行业的跨界融合趋势下,一家名为“智联通信”的公司通过整合不同领域的技术和资源,成功打造出了一个全新的通信生态系统。他们不仅拥有先进的通信技术,还积极与互联网、物联网等领域的企业进行合作,共同开发新的应用场景。

通过跨界融合,“智联通信”成功地将通信技术应用于智能家居、智慧城市等多个领域,为用户提供了更加便捷、高效的服务体验。同时,他们还积极拓展海外市场,与全球伙伴共同推动通信行业的发展。

CAMDENBOSS公司的发展小趣事

在电子行业的早期,CAMDENBOSS公司以其对技术的深入研究和不断创新而崭露头角。公司研发团队通过不懈努力,成功开发出一款具有革命性的连接器产品,该产品在信号传输效率和稳定性上取得了显著突破。这一技术突破不仅为公司赢得了市场的广泛认可,也奠定了其在电子连接器领域的领先地位。

Coleman Cable Inc公司的发展小趣事

随着全球环保意识的不断提高,Coleman Cable积极响应绿色发展的号召,将环保理念融入公司的生产和经营中。公司研发出环保型电缆产品,采用环保材料和工艺,减少生产过程中的环境污染。同时,公司还加强废弃电缆的回收和处理工作,推动资源的循环利用,为行业的绿色发展做出了贡献。

BTCPower公司的发展小趣事

在面对行业竞争加剧和市场需求变化的挑战时,BTCPower展现了出色的危机应对能力。公司及时调整战略和业务结构,开始向智能家居、物联网等新兴领域拓展业务。通过不断创新和转型,BTCPower成功度过了危机,并迎来了新的发展机遇。

这些故事基于电子行业常见的情境和趋势进行虚构,旨在满足您的需求。请注意,这些故事并非真实事件,也不代表任何真实公司的经历。

Crocus Technology公司的发展小趣事

在成立初期,Crocus Technology专注于IP存储模块的研发与销售。这一时期,公司通过不断的技术创新和市场调研,成功开发出了一系列具有竞争力的产品。这些产品不仅满足了市场对高性能存储解决方案的需求,还为公司积累了宝贵的市场经验和客户资源。

问答坊 | AI 解惑

请问一下这个电路的元器件是什么?

这是一个基于IT4054充电芯片的充电电路 请问一下 右下角的100MA/500MA是什么元器件? 是场效应管吗? 请问我应该用什么型号的? 又或者说是其他的元器件 请各位高手指点指点!…

查看全部问答>

【晒电路】PWM控制芯片SG3525功能简介

PWM控制芯片SG3525功能简介(图) [ 本帖最后由 hello_gq 于 2009-10-10 18:02 编辑 ]…

查看全部问答>

开关电源为啥频率越高就可以做的越小?

是不是这两个原因: 1   频率高   E=4.44NΦF    根据这个   所以绕的线圈就少一点    2   频率高了之后电感和电容的容量也可以用的小一点    所以体积就小了  &nb ...…

查看全部问答>

DS1302与PIC16F877接口程序

;==============================================;DS1302控制子程序 ;==============================================;程序包括:DS1302初始化,时间数据写入和读取程序 ;DS1302_init    ;init ds1302 ;Set_DS1302    &nb ...…

查看全部问答>

N线电流过大

3相电分10组加热负载 L1分3组 L2分4组 L3分3组   N线电流比每一相电流都大,能有什么办法解决吗? ————可控硅——负载——N线 10组是并连的…

查看全部问答>

请推荐一下开发Windows Mobile驱动的入门资料

  各位高手给此入门级的建议书籍看看.我以前有C编程的经验,C++也做过不过不如C深入.另外了解Linux驱动开发但是没实际做过.…

查看全部问答>

请教怎样把Libxml 编译成可以在WINCE下使用的DLL

最近因为工作需要,下了Libxml 的源码,想编译成WINCE下使用的动态库, 苦于不知道怎么下手,希望做过的人说一下大概步骤.先谢谢了!…

查看全部问答>