1478|0

3836

帖子

19

TA的资源

纯净的硅(中级)

楼主
 

msp430g2553在LCD1602显示源程序 [复制链接]

单片机源程序如下:
#include<msp430.h> /* 必要操作:正确连接1602 */
#define LCD_OUT P1OUT //定义LCD1602的数据口为P1
#define CLR_RS P2OUT&=~BIT0; //置零P2.3位,也就是置零RS
#define SET_RS P2OUT|=BIT0; //置壹P2.3位,也就是置壹RS
#define CLR_RW P2OUT&=~BIT1; //置零P2.4位,也就是置零RW
#define SET_RW P2OUT|=BIT1; //置壹P2.4位,也就是置壹RW
#define CLR_EN P2OUT&=~BIT2; //置零P2.5位,也就是置零EN
#define SET_EN P2OUT|=BIT2; //置壹P2.5位,也就是置壹EN
unsigned char busy; //1602判忙标志
void busy_1602(void) //查询忙碌标志信号程序
{
    do
    {
            CLR_EN;
            SET_RW;
            CLR_RS;
            busy=LCD_OUT;
            SET_EN;
            _delay_cycles(1000);
            CLR_EN;
            _delay_cycles(1000);
    }
    while(busy&&0x10==1);
}
void LCD_Write_com(unsigned char com) //写指令到LCM程序
{
    busy_1602();
    CLR_EN;
    CLR_RW;
    CLR_RS;
    LCD_OUT=com;
    _nop();
    SET_EN;
    _nop();
    CLR_EN;
}
void lcd_write_data(unsigned char data) //写数据到LCM程序
{
    busy_1602();
    CLR_EN;
    CLR_RW;
    SET_RS;
    LCD_OUT=data;
    _nop();
    SET_EN;
    _nop();
    CLR_EN;
}
void init_1602(void) //启动LCM程序
{
    LCD_Write_com(0x38);
    LCD_Write_com(0x0c);
    LCD_Write_com(0x06);
}
void lcd_clear(void)    //清屏函数
{
    LCD_Write_com(0x01);
    _nop();
    _nop();
    _nop();
}
void lcd_write_string(unsigned char x,unsigned char y,unsigned char *s) //字符串显示函数
{
    if (y==0)
    {
        LCD_Write_com(0x80 + x);
    }
        else
        {
            LCD_Write_com(0xC0 + x);
        }
     while(*s)
    {
         lcd_write_data(*s);
        s++;
    }
}

/*                     //字符显示函数 */
void lcd_write_char(unsigned char x,unsigned char y, unsigned char Data)
{
    if(y==0)
    {
        LCD_Write_com(0x80 + x);
    }
    else
    {
        LCD_Write_com(0xC0 + x);
    }
    lcd_write_data(Data);
}
void main(void) //主程序开始
{
    WDTCTL=WDTPW+WDTHOLD;
    P1DIR=0xFF;
    P2DIR=0xFF;
    init_1602();
    while(1)
    {
        lcd_write_string(0,0,"WARRNING!!!");

    }
}

 

 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表