找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4817|回复: 3
收起左侧

51单片机LCD1602显示失败

[复制链接]
ID:243390 发表于 2017-10-27 11:49 | 显示全部楼层 |阅读模式
开发板配套例程,在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);       
}
回复

使用道具 举报

ID:160782 发表于 2017-10-27 12:17 来自触屏版 | 显示全部楼层
目测没有延时函数
回复

使用道具 举报

ID:213173 发表于 2017-10-28 06:50 | 显示全部楼层
操作LCD1602各控制端之间时序关系非常重要,也就是各控制端之间谁先谁后及持续时间的问题。这是某品牌的LCD1602时序图,其它品牌大同小异。 无标题.jpg


回复

使用道具 举报

ID:111634 发表于 2017-10-28 22:17 | 显示全部楼层
本帖最后由 zl2168 于 2017-10-28 22:19 编辑

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

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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