找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3441|回复: 9
打印 上一主题 下一主题
收起左侧

请问为什么我的这个关于 LCD1602的程序 不能显示呀

[复制链接]
跳转到指定楼层
楼主
ID:68099 发表于 2014-10-29 23:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问为什么我的这个关于 LCD1602的程序 不能显示呀
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define GPIO_LCD P0
sbit LCDE=P2^7;
sbit RW=P2^5;
sbit RS=P2^6;

unsigned char Puzh[]=" pechin science";
void lcdwritecom(unsigned char);
void lcdwritedata(unsigned char);
void lcdinit();
void delay1ms(uint);




                                                             
void lcdwritdata(uchar dat)
{
RS=1;
RW=0;
GPIO_LCD=dat;
delay1ms(10);
LCDE=1;
delay1ms(10);
LCDE=0;
}



void lcdwritecom(uchar com)
{
        RS=0;
        RW=0;
        GPIO_LCD=com;
        delay1ms(10);
        LCDE=1;
        delay1ms(10);
        LCDE=0;
}






void lcdinit()
{
        lcdwritecom(0x38);
        lcdwritecom(0x0c);
        lcdwritecom(0x06);
        lcdwritecom(0x01);
        lcdwritecom(0x80);
}




void delay1ms(uint c)
{
    int a,b;
        for (; c>0; c--)
        {
                 for (b=2;b>0;b--)
                 {
                          for(a=10;a>0;a--)
                        {
                        };
                 };      
        };         
}




void main(void)
{
                unsigned char i;
        lcdinit();

        for(i=0;i<16;i++)
        {
         lcdwritedata('A');
        }

        while(1);
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:58502 发表于 2014-10-30 00:43 | 只看该作者
写命令和写数据前先让LCDE=0

评分

参与人数 1威望 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:64693 发表于 2014-10-30 12:43 | 只看该作者
你这个程序是不是还少了些东西,读lcd忙状态,写地址,你也没写啊

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:61876 发表于 2014-10-30 16:32 | 只看该作者
除了缺少一些必要的程序代码外,RS和RW只间必须加延时。否则有时就真不显示。

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的积分奖励!

查看全部评分

回复

使用道具 举报

5#
ID:66840 发表于 2014-10-30 22:53 来自触屏版 | 只看该作者
还差取数据,和取数据命令函数。

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

6#
ID:67992 发表于 2014-10-31 11:24 | 只看该作者
void lcdwritedata(unsigned char);       //你的函数声明
void lcdwritdata(uchar dat)                //你的函数体
      lcdwritedata('A');                       //你的函数调用
这是我复制你的,你仔细看看问题在哪,不用我说了吧!这样编译无错误,下载就是没显示,骗倒一大片高人啊!

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

7#
ID:67992 发表于 2014-10-31 11:26 | 只看该作者
多一个e少一个e的问题,就这么简单。
回复

使用道具 举报

8#
ID:67992 发表于 2014-10-31 11:36 | 只看该作者
尽量做到0错误0警告。
回复

使用道具 举报

9#
ID:72751 发表于 2015-1-25 22:19 | 只看该作者
主要是没有写入CGRAM的地址吧!

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

10#
ID:72462 发表于 2015-1-30 14:23 | 只看该作者
大神,我也遇到了像你这样的问题,请问你现在解决了这个问题吗?我都快被这1602弄疯了!
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表