找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机LCD1602显示失败

[复制链接]
跳转到指定楼层
楼主
开发板配套例程,在LCD上显示字符“A”
用的是51单片机,我用的芯片时52的,求助为啥没有显示?、#include<reg52.h>
typedef unsigned char uint8;//数据类型宏定义

sbit BF = P0^7;
sbit EN = P2^5;
sbit RS = P1^0;
sbit RW = P1^1;


void wait(void)
{
         P0=0xFF;
       
         do
                {
                 RS=0;
                 RW=1;
                 EN=0;
                 EN=1;
                 }
         while (BF==1);
         EN=0;
}

//写数据函数
void w_dat(uint8 dat)
{
        wait();
        EN=0;
        P0=dat;
        RS=1;
        RW=0;
        EN=1;
        EN=0;
}

void w_cmd(uint8 cmd)
{
        wait();
        EN=0;
        P0=cmd;
        RS=0;
        RW=0;
        EN=1;
        EN=0;
}

void Init_LCD1602(void)
{       
   w_cmd(0x38);
        w_cmd(0x0c);
        w_cmd(0x06);
        w_cmd(0x01);
}
main()
{
        Init_LCD1602();//调用LCD函数
        w_cmd(0x80);
        w_dat('A'); //显示一个字符 A   'A'
        while(1);       
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:160782 发表于 2017-10-27 12:17 来自手机 | 只看该作者
目测没有延时函数
回复

使用道具 举报

板凳
ID:213173 发表于 2017-10-28 06:50 | 只看该作者
操作LCD1602各控制端之间时序关系非常重要,也就是各控制端之间谁先谁后及持续时间的问题。这是某品牌的LCD1602时序图,其它品牌大同小异。


回复

使用道具 举报

地板
ID:111634 发表于 2017-10-28 22:17 | 只看该作者
本帖最后由 zl2168 于 2017-10-28 22:19 编辑

实例67  LCD1602显示屏显示
Proteus仿真一下,确认有效。
实例61 LCD1602显示屏显示.rar (49.26 KB, 下载次数: 9)


若需改变1602显示内容,只须将需显示的内容用ASCII码写入显示数组,即可。
以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1。书中电路和程序设计有详细说明,程序语句条条有注解。仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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