一:MSP430G2553+LCD1602代码
#include
unsigned char tab[]={"0123456789"};
#define uchar unsigned char
#define uint unsigned int
#define lcd_dir P1DIR
#define lcd_out P1OUT
#define OUT_lcd P2DIR |=BIT0+BIT1+BIT2 //P2口设为输出
#define RS_1 P2OUT |=BIT0 //P2.0
#define RS_0 P2OUT &=~BIT0
#define RW_1 P2OUT |=BIT1 //P2.1
#define RW_0 P2OUT &=~BIT1
#define E_1 P2OUT |=BIT2 //P2.2
#define E_0 P2OUT &=~BIT2
//写指令
void WriteInstruction(uchar dictate)
//单词:Instruction指令 dictate命令、指示
{
OUT_lcd;
lcd_dir =0xff;
_delay_cycles(5000);
E_0;
RS_0;
RW_0;
_delay_cycles(2);
E_1;
lcd_out=dictate;
_delay_cycles(1000);
E_0;
}
//写地址
void WriteAddress(uchar x) //Address地址
{
WriteInstruction(x|0x80); //设计数据指针起点
}
//写数据
void WriteData(uchar y)
{
OUT_lcd;
lcd_dir =0xff;
_delay_cycles(5000);
RS_1;
E_0;
RW_0;
_delay_cycles(2);
E_1;
lcd_out=y;
_delay_cycles(1000);
E_0;
RS_0;
}
void Lcd_Init()
{
_delay_cycles(15000);
WriteInstruction(0x38);//开显示
_delay_cycles(50);
WriteInstruction(0x38);
WriteInstruction(0x38);
WriteInstruction(0x0c); //开显示不显示光标
WriteInstruction(0x06); //写一个指针加一
WriteInstruction(0x01); //清屏
}
void main(void)
{
int i=0;
WDTCTL=WDTPW+WDTHOLD;
Lcd_Init();
// ADC10_Init();
WriteAddress(0x03);
WriteData('V');
WriteData('P');
WriteData('P');
WriteData(':');
for(i=0;i<16;i++)
{
WriteData(tab[i]);
}
while(1);
}
二:MSP430FR5994+LCD1602代码
#include
unsigned char tab[]={"1234567"};
#define uchar unsigned char
#define uint unsigned int
#define lcd_dir P3DIR //P3.0,P3.1,P3.2,P3.3,P3.4,P3.5,P3.6,P3.7,
#define lcd_out P3OUT
#define OUT_lcd P1DIR |=BIT2+BIT4+BIT5 //P2口设为输出
#define RS_1 P1OUT |=BIT2 //P1.2
#define RS_0 P1OUT &=~BIT2
#define RW_1 P1OUT |=BIT4 //P1.4
#define RW_0 P1OUT &=~BIT4
#define E_1 P1OUT |=BIT5 //P1.5
#define E_0 P1OUT &=~BIT5
//写指令
void WriteInstruction(uchar dictate)
//单词:Instruction指令 dictate命令、指示
{
P1OUT &= ~BIT2|~BIT4|~BIT5;//清除P1.0输出锁存器以确定开机状态
OUT_lcd;
P3OUT &= ~BIT0|~BIT1|~BIT2|~BIT3|~BIT4|~BIT5|~BIT6|~BIT7;//清除P1.0输出锁存器以确定开机状态
//清除并启动
lcd_dir =0xff;//全部输出
_delay_cycles(5000);
E_0;
RS_0;
RW_0;
_delay_cycles(2);
E_1;
lcd_out=dictate;
_delay_cycles(1000);
E_0;
}
//写地址
void WriteAddress(uchar x) //Address地址
{
WriteInstruction(x|0x80); //设计数据指针起点
}
//写数据
void WriteData(uchar y)
{
P1OUT &= ~BIT2|~BIT4|~BIT5;//清除P1.0输出锁存器以确定开机状态
OUT_lcd;
P3OUT &= ~BIT0|~BIT1|~BIT2|~BIT3|~BIT4|~BIT5|~BIT6|~BIT7;//清除P1.0输出锁存器以确定开机状态
//清除并启动
lcd_dir =0xff;//全部输出
_delay_cycles(5000);
RS_1;
E_0;
RW_0;
_delay_cycles(2);
E_1;
lcd_out=y;
_delay_cycles(1000);
E_0;
RS_0;
}
void Lcd_Init()
{
_delay_cycles(15000);
WriteInstruction(0x38);//开显示
_delay_cycles(50);
WriteInstruction(0x38);
WriteInstruction(0x38);
WriteInstruction(0x0c); //开显示不显示光标
WriteInstruction(0x06); //写一个指针加一
WriteInstruction(0x01); //清屏
}
void main(void)
{
int i=0;
WDTCTL=WDTPW+WDTHOLD;
PM5CTL0 &= ~LOCKLPM5;
Lcd_Init();
// ADC10_Init();
WriteAddress(0x03);
WriteData('V');
WriteData('I');
WriteData('P');
WriteData(':');
for(i=0;i<7;i++)
{
WriteData(tab[i]);
}
while(1);
}
三:MSP430F5529+LCD1602代码
#include
unsigned char tab[]={"1234567"};
#define uchar unsigned char
#define uint unsigned int
#define lcd_dir P3DIR //P3.0,P3.1,P3.2,P3.3,P3.4,P3.5,P3.6,P3.7,
#define lcd_out P3OUT
#define OUT_lcd P1DIR |=BIT2+BIT4+BIT5 //P1口设为输出
#define RS_1 P1OUT |=BIT2 //P1.2
#define RS_0 P1OUT &=~BIT2
#define RW_1 P1OUT |=BIT4 //P1.4
#define RW_0 P1OUT &=~BIT4
#define E_1 P1OUT |=BIT5 //P1.5
#define E_0 P1OUT &=~BIT5
//写指令
void WriteInstruction(uchar dictate)
//单词:Instruction指令 dictate命令、指示
{
OUT_lcd;
//清除并启动
lcd_dir =0xff;//全部输出
_delay_cycles(5000);
E_0;
RS_0;
RW_0;
_delay_cycles(2);
E_1;
lcd_out=dictate;
_delay_cycles(1000);
E_0;
}
//写地址
void WriteAddress(uchar x) //Address地址
{
WriteInstruction(x|0x80); //设计数据指针起点
}
//写数据
void WriteData(uchar y)
{
OUT_lcd;
//清除并启动
lcd_dir =0xff;//全部输出
_delay_cycles(5000);
RS_1;
E_0;
RW_0;
_delay_cycles(2);
E_1;
lcd_out=y;
_delay_cycles(1000);
E_0;
RS_0;
}
void Lcd_Init()
{
_delay_cycles(15000);
WriteInstruction(0x38);//开显示
_delay_cycles(50);
WriteInstruction(0x38);
WriteInstruction(0x38);
WriteInstruction(0x0c); //开显示不显示光标
WriteInstruction(0x06); //写一个指针加一
WriteInstruction(0x01); //清屏
}
void main(void)
{
int i=0;
WDTCTL=WDTPW+WDTHOLD;
Lcd_Init();
// ADC10_Init();
WriteAddress(0x03);
WriteData('V');
WriteData('I');
WriteData('P');
WriteData(':');
for(i=0;i<7;i++)
{
WriteData(tab[i]);
}
while(1);
}
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』