您的位置 首页 知识

msp430单片机操控lcd1602显现C程序

MSP430写的1602液晶显示程序2011826硬件连接P4数据口P37—EP36—RWP35—-RSincludemsp430x14xhdefineuintu

//MSP430写的1602液晶显现程序2011/8/26//硬件衔接

//P4 数据口 P3.7—E P3.6—RW P3.5—-RS
#include”msp430x14x.h”
#define uint unsigned int
#define rw(x) P3OUT=(P3OUT&(~BIT6))|(x?BIT6:0);

unsigned char table0[]=”hankouxueyuan”;
unsigned char table1[]=”dianzisheji”;

//**************延时***********************************
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);
P3OUT|=BIT7;
delay(10);
P4OUT=com;
//P4OUT=com;
//P3OUT|=BIT7;
delay(15);
P3OUT&=~BIT7;
}

//*******写数据***************************************************
void write_data(unsigned char date)
{
P3OUT|=BIT5;//作为RS挑选端高电平有用劳
rw(0);
P3OUT|=BIT7;
delay(10);
P4OUT=date;
//delay(15);
//P4OUT=date;
//P3OUT|=BIT7;作为E挑选端=1;
delay(15);
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(15);
}
}

//***************主函数****************************************************
void main()
{
WDTCTL=WDTPW+WDTHOLD; //关看门狗
init();
while(1)
{
display2(0x80+0x01,table0);
display2(0x80+0x40+0x01,table1);
}
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/259886.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部