《MSP430单片机控制1602液晶显示.docx》由会员分享,可在线阅读,更多相关《MSP430单片机控制1602液晶显示.docx(3页珍藏版)》请在三一办公上搜索。
1、MSP430单片机控制1602液晶显示MSP430单片机控制1602液晶显示 字符型 LCD1602 通常有 14 条引脚线或 16 条引脚线的 LCD , 多出来的 2 条线是背光电 源线 VCC(15 脚 ) 和地线 GND(16 脚 ) , 其控制原理与 14 脚的 LCD 完全一样 , 引脚定义如下表 所示: 在这里要特别注意了:MSP430端口输出电压是3.3v的,不是5v的,所以2和15脚要另找5伏电压接上,否则虽然能显示但不清楚而且会出现乱码。 2脚相当于清晰度调节,一般接地就可以,但最好接上可变电阻调节一下。 下面是端口连接: 不多解释了,接上线就行了,下面是C语言程序: #i
2、nclude /* 必要操作:正确连接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
3、位,也就是置壹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
4、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;i10;i+) for(j=0;j20;j+); void delay_1s(void) /延时程序 int i,j; for(i=0;i10;i+) for(j=0;j1000;j+); void display(void) /液晶显示程序
5、 uchar i; /定义计数值 uchar table016=What do you want; /定义LCD1602显示2行的字符 uchar table116=I want you now.; init_1602; /初始化1602 zhl_1602(0x80); /写指令 for(i=0;i16;i+) /发送数据第一行 shj_1602(table0i); zhl_1602(0xc0); for(i=0;i16;i+) /发送数据第二行 shj_1602(table1i); void busy_1602(void) /查询忙碌标志信号程序 do CLR_EN; SET_RW; CLR
6、_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);