2604|9

36

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

请大家看看这个程序哪里有问题,1602液晶驱动的 [复制链接]

#include
#define uint unsigned int
#define uchar unsigned char

uchar table[]={"hell0"};//输入你想要显示的字符
void init();
void write_com(uchar com);//写指令函数
void write_data(uchar dat);//写数据函数
void LCD_display();//显示函数
void delay()
{
  int z;
  for(z=500;z>0;z--);
}
//P2.2e  P2.41RW P2.0RS
void init()//初始化函数
{
P2OUT &= ~BIT2;
P2OUT &= ~BIT1;
write_com(0x38);   //设置显示,点阵,数据接口等
delay();
write_com(0x38);
delay();
write_com(0x38);
write_com(0x0c);   //开显示,不显示光标,光标不闪烁
delay();
write_com(0x06);   //指针自动加一
delay();
write_com(0x01);   //数据指针、显示清零
delay();
//write_com(0x08);  //从第一格开始显示
}
/*LCD指令*///P2.2e  P2.41RW P2.0RS
void write_com(uchar com)
{
P2OUT&= ~BIT0;//写指令的时候RS给低
P2OUT&= ~BIT1;
P1OUT=com;
delay();
P2OUT|= BIT2;//EN给一个高脉冲
delay();
P2OUT&= ~BIT2;

}
/*LCD数据*///P2.2e  P2.41RW P2.0RS
void write_data(uchar dat)
{
P2OUT|=BIT0;//写数据的时候RS给高
P2OUT&= ~BIT1;
delay();
P1OUT=dat;
delay();
P2OUT|=BIT2;;//EN给一个高脉冲
delay();
P2OUT&=~BIT2;
}
void LCD_display()
{
   int i;

  for(i=0;i<5;i++)//X代表字符的个数
  {
    write_data(table);
    delay();
  }
}

void main()
{
  WDTCTL=WDTPW+WDTHOLD;//关看门狗
  //BCSCTL2=SELM_3;//选择时钟源为MCLK
  //P1SEL&=0x00;//P1为I/O模式
  P1DIR|=0xff;//选择P1为输出端
  P2DIR|=0xff;//P2为输出端
  //P1REN=0xFF;
  //P2REN=0xFF;
  P1OUT = 0x00;
  P2OUT = 0x00;
  init();
  delay();
  LCD_display();
  while(1);
}

我看了一遍觉得没有问题啊,为啥液晶不显示

最新回复

这个不要写,我看过好多lcd1602的程序,都没有写。我在一篇文档中看到过,不建议写busy函数。  详情 回复 发表于 2015-7-23 15:44
 
点赞 关注

回复
举报

36

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
//BCSCTL2=SELM_3;//选择时钟源为MCLK
  //P1SEL&=0x00;//P1为I/O模式
  P1DIR|=0xff;//选择P1为输出端
  P2DIR|=0xff;//P2为输出端
  //P1REN=0xFF;
  //P2REN=0xFF;
这几行代码前面的杠杠不用删掉么
 
 

回复

401

帖子

4

TA的资源

版主

板凳
 

给个你100%能用的,自己改下IO


1603.rar (1.97 KB, 下载次数: 15)
 
 
 

回复

168

帖子

3

TA的资源

一粒金砂(中级)

4
 
初始化里好像没开显示,还有display()函数好像有问题,不改的话是不是显示5个h?
 
 
 

回复

36

帖子

0

TA的资源

一粒金砂(中级)

5
 
REMY 发表于 2015-7-23 08:44
初始化里好像没开显示,还有display()函数好像有问题,不改的话是不是显示5个h?

write_com(0x0c); 这个不就是开显示了
 
 
 

回复

4177

帖子

9

TA的资源

五彩晶圆(高级)

6
 
大致了下,大的东西没有少。建议看下datasheet,对照你的函数中的语句是否和时序一致。
 
 
 

回复

36

帖子

0

TA的资源

一粒金砂(中级)

7
 
huaiqiao 发表于 2015-7-23 10:24
大致了下,大的东西没有少。建议看下datasheet,对照你的函数中的语句是否和时序一致。

是不是没有检测忙信号导致的

点评

这个不要写,我看过好多lcd1602的程序,都没有写。我在一篇文档中看到过,不建议写busy函数。  详情 回复 发表于 2015-7-23 15:44
 
 
 

回复

36

帖子

0

TA的资源

一粒金砂(中级)

8
 
REMY 发表于 2015-7-23 08:44
初始化里好像没开显示,还有display()函数好像有问题,不改的话是不是显示5个h?

是不是没有检测忙信号导致的
 
 
 

回复

36

帖子

0

TA的资源

一粒金砂(中级)

9
 
REMY 发表于 2015-7-23 08:44
初始化里好像没开显示,还有display()函数好像有问题,不改的话是不是显示5个h?

是不是没有检测忙信号导致的
 
 
 

回复

4177

帖子

9

TA的资源

五彩晶圆(高级)

10
 
切换中英文 发表于 2015-7-23 15:39
是不是没有检测忙信号导致的

这个不要写,我看过好多lcd1602的程序,都没有写。我在一篇文档中看到过,不建议写busy函数。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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