微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > MSP430F2274 LCD1602显示模块

MSP430F2274 LCD1602显示模块

时间:11-13 来源:互联网 点击:
/**********************************************************************************************************

* 功能: 实现LCD1602显示"Welcome to! "字符 *
* 描述: LCD1602三根控制引脚由NPN三极管反向控制,D0~D7直接与MSP430相连接 *
* 禁止 LCD1602读操作.三极管C极接LCD三根控制引接,三极管E极接地,三 *
* 极管B极由口线控制.如此实现 3V 反向控制 5V. *
* *
* LCD1602 *
* ------------------------- MSP430F2274 *
* | Welcome to! | ----------------- *
* | | | XIN|-\ ________ *
* ------------------------- | | | 32.768 |*
* | | | | | | | -|RSTXOUT|-/ *
* V R R E D ~D G | | *
* C S W N 0 7 N | | *
* C D | | *
* | |*
* ----------------- *
**
* 作者: Singel*
* 时间: 2008年10月17日23时45分 *
* 此例在 IAR Embedded Workbench IDE for MSP430 v3.42a 调试通过 . *
*********************************************************************************************************/

#includemsp430x22x4.h>
#define uint unsigned int
#define uchar unsigned char

#define LCDRS BIT5
#define LCDRW BIT6
#define LCDE BIT7
#define LCDRW_out_low P2OUT &=~BIT6 // 置0
#define LCDRW_out_high P2OUT |= BIT6 // 置1
#define LCDRS_out_low P2OUT &=~BIT5
#define LCDRS_out_high P2OUT |= BIT5
#define LCDE_out_low P2OUT &=~BIT7
#define LCDE_out_high P2OUT |= BIT7

const char zifu[]={Welcome to!}; // 定义ASCII码字符数组

void delay(uint m)
{
unsigned int i;
for(i=0;i}

void lcd_write_command( uchar command ) // LCD1602 写命令
{
LCDRW_out_low;
LCDRS_out_low;
LCDE_out_high;
delay(1);
LCD_BUS_OUT = command;
LCDE_out_low;
delay(1);
}

void lcd_write_data( uchar datas ) // LCD1602 写数据
{

LCDRW_out_low;
LCDRS_out_high;
LCDE_out_high;
delay(1);
LCD_BUS_OUT = datas;
LCDE_out_low;
delay(1);
}

void lcd_initialization(void) // LCD1602初始化
{
delay(15);
lcd_write_command(0x01);//清除所有的显示,并将DDRAM 地址计数器(AC)清零
lcd_write_command(0x02);//不改变DDRAM中的内容,只将DDRAM 地址计数器 AC 清零,光标返回至原始状态
lcd_write_command(0x06);//光标由左向右移动且AC 自动加一 禁止滚动
lcd_write_command(0x0c);//整体显示打开 不显示光标 光标不闪烁
lcd_write_command(0x14);//光标右移,AC 加1,显示不动
lcd_write_command(0x38);//8位数据接口模式,DB0-DB7有效,5×7点阵显示模式,加光标
delay(5);
}

void lcd_display(void) // LCD1602显示
{
uchar count;
lcd_write_command(0x81);
for(count=0;count<11;count++)
{
lcd_write_data(zifu[count]);
}
}

void main ( void )
{
lcd_initialization();
lcd_display();
while(1);
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top