×
单片机 > 单片机程序设计 > 详情

MSP430G2553、F5529、FR5994+LCD1602八位液晶显示程序

发布时间:2020-08-26 发布时间:
|

一: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);

}


关键字:MSP430G2553  F5529  FR5994  LCD1602  八位液晶显示

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
单片机的抗干扰措施有哪些