5059|15

4

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

我是一个初学者有关1602液晶屏的问题哪位大哥能帮我解答一下。 [复制链接]

#include
#define uchar unsigned char
#define uint unsigned int
sbit lcden=P3^4;
sbit lcdrs=P3^5;
sbit dula=P2^6;
sbit wela=P2^7;

void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void write_com(uchar com)
{
        lcdrs=0;
        P0=com;
        delay(5);
        lcden=1;
        delay(5);
        lcden=0;
       
}
void write_data(uchar date)
{
        lcdrs=1;
        P0=date;
        delay(5);
        lcden=1;
        delay(5);
        lcden=0;
       
}
void init()
{
        dula=0;
        wela=0;
    lcden=0;
        write_com(0x38);
        write_com(0x0e);
    write_com(0x06);
        write_com(0x80);
        write_com(0x01);
}
void main()
{
        init();
     write_data('1');
        while(1);
       
}



这是我按视频教材写的1602程序,但是没有显示错误下载后却无法在1602上显示1,这是为什么?我按照视频教的排查了一遍没发现错误,哪位大哥能帮我看看哪里出错了
此帖出自51单片机论坛

最新回复

你的板子上定义的LCDRS,LCDEN,LCDRW的引脚,是不是和抄人家的一样呢?这个程序是没有错误的  详情 回复 发表于 2013-3-27 16:25

点评

你的板子上定义的LCDRS,LCDEN,LCDRW的引脚,是不是和抄人家的一样呢?这个程序是没有错误的  详情 回复 发表于 2013-3-27 16:25
点赞 关注
 

回复
举报

4008

帖子

0

TA的资源

版主

沙发
 
1602的黑色方块有没有消失?
消失了表示复位指令发送成功,没有的话查查连线看看主频是不是太高了
此帖出自51单片机论坛

点评

方块没有消失,下载别的程序就可以显示。但是按照视频写的程序和他自己的程序就没有反应  详情 回复 发表于 2012-8-29 17:49
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
主函数没有用到void write_com(uchar com),你怎么写1进去,没有选写命令,就直接写数据了····
此帖出自51单片机论坛

点评

视频教材上就这么写的,在他的视频里就能显示出来,换成我的就不行了  详情 回复 发表于 2012-8-29 17:57
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

4
 

回复 沙发 huo_hu 的帖子

方块没有消失,下载别的程序就可以显示。但是按照视频写的程序和他自己的程序就没有反应
此帖出自51单片机论坛

点评

方块没有消失,说明没有清屏成功,是不是初始化的问题,按6楼说的试试看  详情 回复 发表于 2012-8-30 09:27
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

5
 

回复 板凳 茹zhiwei 的帖子

视频教材上就这么写的,在他的视频里就能显示出来,换成我的就不行了
此帖出自51单片机论坛
 
 
 

回复

4008

帖子

0

TA的资源

版主

6
 
init()前要延时
此帖出自51单片机论坛
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(中级)

7
 

回复 4楼 inza 的帖子

方块没有消失,说明没有清屏成功,是不是初始化的问题,按6楼说的试试看
此帖出自51单片机论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

8
 

1602

1602的接线与视频上的接线不一样,你还得控制另外一个脚试一下。
此帖出自51单片机论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

9
 

1602

看看你的原理图,认真分析一上1602的每个接口,特别是RS、R/W、EN三个口是不是都接上,如果接上那就把RW接地就OK了。
此帖出自51单片机论坛
 
 
 

回复

182

帖子

0

TA的资源

一粒金砂(高级)

10
 
对比度调了没?那个地方很容易被忽略!另外,在初始化函数中最好在每条指令后都延时一下(5ms左右吧)~
此帖出自51单片机论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(高级)

11
 
你试试这样呢
uchar one='1';
write_data(one);
此帖出自51单片机论坛
 
个人签名上善若水 顺其自然
 
 

回复

2

帖子

0

TA的资源

一粒金砂(中级)

12
 
如果是仿真的话可以看看数据线上高低电平的变化,是否正确。另外最好在数据线上加上拉
此帖出自51单片机论坛
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

13
 
write_com(0x80);
write_com(0x01);这个把显示清0,数据指针清0了,就没有具体位置了。
你在初始化函数里面这样写不对。
write_com(0x80);
不要写在初始化函数里面,直接写在主函数里面,写在你要显示数据的前面。
此帖出自51单片机论坛
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

14
 

我提个议

写‘1’那里有问题,不能直接那样给他个1让他显示,应该写成write_data(0x30+1);这样让他显示1,不管行不行,给我个答复,我好对自己的理解也有个交代啊。
此帖出自51单片机论坛

点评

\'1\' 就是(0x30+1)  详情 回复 发表于 2012-11-29 18:49
 
 
 

回复

4008

帖子

0

TA的资源

版主

15
 

回复 14楼 罗曼帝客 的帖子

'1' 就是(0x30+1)
此帖出自51单片机论坛
 
 
 

回复

14

帖子

0

TA的资源

一粒金砂(中级)

16
 

回复 楼主 inza 的帖子

你的板子上定义的LCDRS,LCDEN,LCDRW的引脚,是不是和抄人家的一样呢?这个程序是没有错误的
此帖出自51单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

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