MSP430单片机控制1602液晶显示

来源:本站
导读:目前正在解读《MSP430单片机控制1602液晶显示》的相关信息,《MSP430单片机控制1602液晶显示》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《MSP430单片机控制1602液晶显示》的详细说明。
简介:MSP430单片机控制1602液晶显示

MSP430单片机控制1602液晶显示

字符型 LCD1602 通常有 14 条引脚线或 16 条引脚线的 LCD , 多出来的 2 条线是背光电

源线 VCC(15 脚 ) 和地线 GND(16 脚 ) , 其控制原理与 14 脚的 LCD 完全一样 , 引脚定义如下表

所示:

MSP430单片机控制1602液晶显示

在这里要特别注意了:MSP430端口输出电压是3.3v的,不是5v的,所以2和15脚要另找5伏电压接上,否则虽然能显示但不清楚而且会出现乱码。

2脚相当于清晰度调节,一般接地就可以,但最好接上可变电阻调节一下。

下面是端口连接:

MSP430单片机控制1602液晶显示

不多解释了,接上线就行了,下面是C语言程序:

#include <msp430x14x.h>

/*

必要操作:正确连接1602

*/

#define uint unsigned int //定义常用数据类型替代码

#define uchar unsigned char

#define dat P2OUT //定义LCD1602的数据口为P2

#define CLR_RS P1OUT&=~BIT0; //置零P1.0位,也就是置零RS

#define SET_RS P1OUT|=BIT0; //置壹P1.0位,也就是置壹RS

#define CLR_RW P1OUT&=~BIT1; //置零P1.1位,也就是置零RW

#define SET_RW P1OUT|=BIT1; //置壹P1.1位,也就是置壹RW

#define CLR_EN P1OUT&=~BIT2; //置零P1.2位,也就是置零EN

#define SET_EN P1OUT|=BIT2; //置壹P1.2位,也就是置壹EN

uchar busy; //1602判忙标志

void delay_1ms(void); //延时程序

void delay_1s(void); //延时程序

void display(void); //显示程序

void busy_1602(void); //液晶查忙程序

void shj_1602(uchar a); //液晶写数据程序

void init_1602(void); //液晶初始化

void zhl_1602(uchar a); //液晶写指令程序

void main(void) //主程序开始

{

WDTCTL=WDTPW+WDTHOLD;

P1DIR=0xff;

P2DIR=0xff;

while(1)

{

display(); //在大循环内调用显示函数,一直显示

}

}

void delay_1ms(void) //延时程序

{

uchar i,j;

for(i=0;i<10;i++)

for(j=0;j<20;j++);

}

void delay_1s(void) //延时程序

{

int i,j;

for(i=0;i<10;i++)

for(j=0;j<1000;j++);

}

void display(void) //液晶显示程序

{

uchar i; //定义计数值

uchar table0[16]={"What do you want"}; //定义LCD1602显示2行的字符

uchar table1[16]={"I want you now.."};

init_1602(); //初始化1602

zhl_1602(0x80); //写指令

for(i=0;i<16;i++) //发送数据第一行

{

shj_1602(table0[i]);

}

zhl_1602(0xc0);

for(i=0;i<16;i++) //发送数据第二行

{

shj_1602(table1[i]);

}

}

void busy_1602(void) //查询忙碌标志信号程序

{

do

{

CLR_EN;

SET_RW;

CLR_RS;

SET_EN;

busy=dat;

CLR_EN;

delay_1ms();

}

while(busy&&0x10==1);

}

void zhl_1602(uchar a) //写指令到LCM程序

{

busy_1602();

CLR_EN;

CLR_RW;

CLR_RS;

SET_EN;

dat=a;

CLR_EN;

}

void shj_1602(uchar a) //写数据到LCM程序

{

busy_1602();

CLR_EN;

CLR_RW;

SET_RS;

SET_EN;

dat=a;

CLR_EN;

}

void init_1602(void) //启动LCM程序

{

zhl_1602(0x38);

zhl_1602(0x0c);

zhl_1602(0x06);

}

提醒:《MSP430单片机控制1602液晶显示》最后刷新时间 2024-03-14 01:21:30,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《MSP430单片机控制1602液晶显示》该内容的真实性请自行鉴别。