3451|1

6587

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

msp430驱动LCD1602液晶显示编程实例分享 [复制链接]

msp430驱动LCD1602液晶显示C语言程序
  • #include "msp430x14x.h"
  • #define CPU_F ((double)8000000)
  • #define delay_us(x) __delay_cycles((long)(CPU_F)*(double)x/2000000.0)
  • #define delay_ms(x) __delay_cycles((long)(CPU_F)*(double)x/20000.0)
  • #define uint unsigned int
  • #define uchar unsigned char
  • #define RS_H  P5OUT|=BIT5
  • #define RS_L  P5OUT&=~BIT5 //P1OUT&=~BIT0
  • #define RW_H  P5OUT|=BIT6
  • #define RW_L  P5OUT&=~BIT6
  • #define E_H  P5OUT|=BIT7
  • #define E_L  P5OUT&=~BIT7
  • #define BF  BIT7
  • #define DataDIR P4DIR
  • #define DataOUT P4OUT
  • #define DataIN  P4IN
  • uchar lcd_shuju[]="0123456789-";//定义字符数组显示数字
  • uchar lcd_tab[]="abcde";
  • uchar lcd_tab1[]="XYZ";
  • /*void LCDable(void)  //忙检测不写也可以
  • {
  • DataDIR&=0X00;//数据端设置为输入(读取液晶状态字,判断液晶状态)
  • RS_L;
  • RW_H;
  • E_H;
  • delay_us(4);
  • while((DataIN & BF!=0));
  • E_L;
  • DataDIR|=0xff;
  • }*/
  • void shizhong()
  • {
  •   BCSCTL1=0X37;            //使用高速晶振XT2,低速模式,8分频
  •   BCSCTL2=0XBE;           //选择时钟源为XT2,8分频,DC0震荡电阻选择内部电阻
  • }
  • void WriteCommond(uchar Commond) //写指令
  • {
  • //LCDable();
  • DataDIR|=0xff;//数据端设置为输出
  • RS_L;
  • RW_L;
  • E_L;
  • delay_ms(4);
  • DataOUT=Commond;
  • delay_ms(4);
  • E_H;
  • delay_ms(4);
  • E_L;
  • RW_H;
  • RS_H;
  • }
  • void WriteAddress(uchar x) //写地址
  • {
  •   WriteCommond(0x80|x);
  • }
  • void Writedata(uchar data) //写数据
  • {
  • //LCDable();
  • DataDIR|=0xff;//数据端设置为输出
  • RS_H;
  • RW_L;
  • E_L;
  • delay_ms(4);
  • DataOUT=data;
  • delay_ms(4);
  • E_H;
  • delay_ms(4);
  • E_L;
  • RW_H;
  • RS_L;
  • }
  • void LCD_Init()
  • {
  • DataDIR|=0xff;//数据口设置为输出
  • P5DIR|=0XE0;//控制端设置为输出
  • WriteCommond(0X38);//显示模式设置 16X2
  • WriteCommond(0X0C);//开显示,光标设置为不显示
  • WriteCommond(0X06);//开显示,光标移动模式设置为:读写一个字符后光标及地址指针加1
  • WriteCommond(0x80+0x00);//显示起始地址
  • WriteCommond(0X01);//清屏设置
  • }
  • void display_ZFC()
  • {
  •     uchar i;
  •     WriteAddress(0x05);//显示起始地址:第1行第6个位置
  •     i=0;
  •     while(lcd_tab!='\0')
  •      {
  •       Writedata(lcd_tab);
  •       i++;
  •       delay_ms(50);
  •      }
  • }
  • void display_ZFC1()
  • {
  •     uchar i;
  •     WriteAddress(0x42);//显示起始地址:第2行第3个位置
  •     i=0;
  •     while(lcd_tab1!='\0')
  •      {
  •       Writedata(lcd_tab1);
  •       i++;
  •       delay_ms(50);
  •      }
  • }
  • void display_SJ()
  • {
  •     uchar i;
  •     WriteAddress(0x03);//显示起始地址:第1行第1个位置
  •     i=0;
  •     while(lcd_shuju!='\0')
  •      {
  •       Writedata(lcd_shuju);
  •       i++;
  •       delay_ms(50);
  •      }
  • }
  • int main( void )
  • {
  •   WDTCTL = WDTPW + WDTHOLD;//关闭看门狗
  •   shizhong();//配置时钟
  •   P5DIR=0xE0;//控制端设置为输出
  •   LCD_Init();//液晶初始化
  •   display_ZFC();//显示字符串
  •   display_ZFC1();//显示字符串1
  •   delay_ms(2000);
  •   display_SJ();//显示数据串0123456789-
  • }

最新回复

多谢楼主分享  详情 回复 发表于 2016-3-19 20:17
 
点赞 关注

回复
举报

13

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

多谢楼主分享
 
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表