找回密码
 立即注册

QQ登录

只需一步,快速开始

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

lcd1602 液晶显示单个字符 程序那里有错误,显示不了,大神赐教

[复制链接]
跳转到指定楼层
楼主
ID:64512 发表于 2014-7-29 09:28 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
file:///c:/users/administrator/appdata/roaming/360se6/User Data/temp/223551r22qfrp2u46r4pc2.jpg.thumb.jpg
仿真电路如图。程序仿真什么都不显示。


#include <reg51.h>
#include <string.h>
#define lcddata P0 //p0口为数据输入端


sbit busy=P0^7;
sbit RS=P2^0;
sbit RW=P2^1;
sbit EN=P2^2;
void sysbegin(void); //显示系统初始化函数声明
void yanshi(unsigned int i); //延时子程序声明
void redbusy(void); //读忙子程序声明,判断lcd是否忙碌,是否可以输入数据
void begin(void); //lcd1602显示一般初始化过程子程序声明
void writelcd(bit i,unsigned char value); //写指令函数声明 RS=L,R/W=L,D0-D7=指令码,E=高脉冲
//写数据 RS=H,R/W=L,D0-D7=数据,E=高脉冲




void main()
{
sysbegin(); //系统初始化程序
begin(); //lcd1602显示初始化
writelcd(0,0x80);//写指令 显示地址设置
writelcd(1,*A*);//写数据 显示字符设置
while(1);
}


void sysbegin(void) //显示系统初始化子程序
{
RS=1;
RW=1;
EN=0;
lcddata=0xFF; //这里P0为与LCD D0~D7相连的I/O口
}


void redbusy(void)//读忙子程序,判断lcd是否忙碌,是否可以输入数据
{
lcddata=0xFF; //初始化,p0口为输入。
RS=0;
RW=1;
EN=1;
while(busy==1); //判断lcd D7位:为1-忙, 0-不忙 lcddata & 1xxx xxxx 为1一直等待,为0跳出循环。
EN=0; //读状态是EN为高脉冲变低脉冲
}


void writelcd(bit i,unsigned char value) //写指令 RS=L,R/W=L,D0-D7=指令码,E=高脉冲
// 写数据函数 RS=H,R/W=L,D0-D7=数据,E=高脉冲
{
redbusy(); //写指令写数据前先读忙
lcddata=value;
RS=i;
RW=0;
EN=1;
EN=0; //写指令 写数据EN为高脉冲变低脉冲
}


void begin(void) //lcd1602显示一般初始化过程
{
yanshi(15000); //延时15ms
writelcd(0,0x28); //写指令38H 设置液晶的显示模式:设置为16*2显示,5*10点阵,8位数据接口
yanshi(5000); //延时5ms
writelcd(0,0x28); //写指令38H
yanshi(5000); //延时5ms
writelcd(0,0x28); //写指令38H
yanshi(5000); //延时5ms


writelcd(0,0x28); //写指令38H 显示模式设置
//redbusy();
writelcd(0,0x08); //写指令08H 关闭显示
//redbusy();
writelcd(0,0x01); //写指令01H显示清屏
//redbusy();
writelcd(0,0x06); //写指令06H光标移动设置
//redbusy();
writelcd(0,0x0C); //写指令0CH显示开及光标设置
//redbusy();
}


void yanshi(unsigned int i)//延时子程序
{
while(--i);
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

板凳
ID:58502 发表于 2014-8-17 21:13 | 只看该作者
本帖最后由 liaolinhui 于 2014-8-17 21:16 编辑

写指令38H你用了0,0x28能用才怪,把所有的0,0x28改为0,0x38
回复

使用道具 举报

沙发
ID:64047 发表于 2014-8-17 10:03 | 只看该作者
可能是写指令和写数据子程序里的读忙没起效果,你把readbuly改为延时5MS试试
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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