标题: 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仿真一下,确认有效。
若需改变1602显示内容,只须将需显示的内容用ASCII码写入显示数组,即可。
以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil C和Proteus》清华大学出版社ISBN 978-7-302-41682-1。书中电路和程序设计有详细说明,程序语句条条有注解。仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |