标题: 51单片机LCD1602显示失败 [打印本页]

作者: grace_qin    时间: 2017-10-27 11:49
标题: 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);       
}

作者: tkf008    时间: 2017-10-27 12:17
目测没有延时函数
作者: wulin    时间: 2017-10-28 06:50
操作LCD1602各控制端之间时序关系非常重要,也就是各控制端之间谁先谁后及持续时间的问题。这是某品牌的LCD1602时序图,其它品牌大同小异。



作者: zl2168    时间: 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文件能在清华出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1