MSP430F2274 LCD1602顯示模塊
* 功能: 實(shí)現(xiàn)LCD1602顯示"Welcome to! "字符 *
* 描述: LCD1602三根控制引腳由NPN三極管反向控制,D0~D7直接與MSP430相連接 *
* 禁止 LCD1602讀操作.三極管C極接LCD三根控制引接,三極管E極接地,三 *
* 極管B極由口線控制.如此實(shí)現(xiàn) 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*
* 時(shí)間: 2008年10月17日23時(shí)45分 *
* 此例在 IAR Embedded Workbench IDE for MSP430 v3.42a 調(diào)試通過 . *
*********************************************************************************************************/
#include<msp430x22x4.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碼字符數(shù)組
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 寫數(shù)據(jù)
{
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 地址計(jì)數(shù)器(AC)清零
lcd_write_command(0x02);//不改變DDRAM中的內(nèi)容,只將DDRAM 地址計(jì)數(shù)器 AC 清零,光標(biāo)返回至原始狀態(tài)
lcd_write_command(0x06);//光標(biāo)由左向右移動(dòng)且AC 自動(dòng)加一 禁止?jié)L動(dòng)
lcd_write_command(0x0c);//整體顯示打開 不顯示光標(biāo) 光標(biāo)不閃爍
lcd_write_command(0x14);//光標(biāo)右移,AC 加1,顯示不動(dòng)
lcd_write_command(0x38);//8位數(shù)據(jù)接口模式,DB0-DB7有效,5×7點(diǎn)陣顯示模式,加光標(biāo)
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);
}
評論