MSP430f149驱动LCD1602

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/************************************************

*MSP430f1602写的1602液晶显示程序*

* 2012-08-24 19:11 *

*硬件连接:P2 数据口P6.3--RS P6.4--RW P6.5--E *

************************************************/

#include"msp430x14x.h"#include"msp430x14x.h"

#define uint unsigned int

#define rw(x) P3OUT=(P3OUT&(~BIT6))|(x?BIT6:0);

unsigned char table0[]="diansai 2010-7";

unsigned char table1[]="liudaquan";

//**************延时***********************************

void delay(uint z)

{

uint t,y;

for(t=z;t>0;t--)

for(y=110;y>0;y--);

}

//*******写命令*****************************************

void write_com(unsigned char com)

{

P3OUT&=~BIT5;//作为RS选择端低电平有效

rw(0);

P4OUT=com;

delay(5);

P3OUT|=BIT7;

//delay(5);

P3OUT&=~BIT7;

}

//*******写数据*************************************************** void write_data(unsigned char date)

{

P3OUT|=BIT5;//作为RS选择端高电平有效劳

rw(0);

P4OUT=date;

delay(5);

P3OUT|=BIT7;//作为E选择端=1;

// delay(5);

P3OUT&=~BIT7;

}

//********初始化******************************************

void init()

{

P3DIR=0xff;//P3输出作控制口

P3SEL=0;

P3OUT=0x00;

P3OUT&=~BIT7;//E

P3OUT&=~BIT5;//RS

P4DIR=0XFF;//P4输出作数据口

P4SEL=0;

P4OUT=0X00;

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

write_com(0x0c);//开显示,不显光标

write_com(0x06);//数据地址指针

write_com(0x01);//清屏

_BIS_SR(GIE);//两个开总中断的方法随便用哪一个

// _EINT();

}

//************显示函数2********************

display2(unsigned char x,unsigned char *p)

{

unsigned char y=0; //y要给其初值0否则出乱码

write_com(x);

while(p[y]!=0x00)

{

write_data(p[y]);

y++;

delay(5);

}

}

//***************主函数**************************************************** void main()

{

WDTCTL=WDTPW+WDTHOLD; //关看门狗

init();

display2(0x80+0x01,table0); display2(0x80+0x40+0x03,table1); }

相关文档
最新文档