这个LCD1602程序怎么回事,怎么没有显示?
IMG_20160514_210244.jpg

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char code word1[]={"FUCK YOU"};//单字符用单引号双字符用双引号
unsigned char code word2[]={"Asshole"};
sbit RS = P1^0 ;
sbit RW = P1^1 ;
sbit EN = P2^5 ;
sbit STA7 = P0^7;
void wait()
{
P0 = 0xFF;

do
{
RS = 0;
RW = 1;
EN = 0;
EN = 1;
}while (STA7 == 1);
EN = 0;
}


void w_dat(uint dat)
{
wait();
EN = 0;
P0 = dat;
RS = 1;
RW = 0;
EN = 1;
EN = 0;
}
void w_cmd(uint cmd)
{
wait();
EN = 0;
P0 = cmd;
RS = 0;
RW = 0;
EN = 1;
EN = 0;
}
void w_string(uint addr_start,uint *p)
{
w_cmd(addr_start);
while (*p != '\0')
{
w_dat(*p++);
}
}
void Init_LCD1602()
{
w_cmd(0x38);  // 16*2显示,5*7点阵,8位数据接口
w_cmd(0x0C);  // 显示器开、光标开、光标允许闪烁
w_cmd(0x06);  // 文字不动,光标自动右移
w_cmd(0x01);  // 清屏
}




main()
{
    Init_LCD1602();
    w_string(0x80,word1);
w_string(0xC0,word2);
while (1);
}
来自:电子信息 / 电子技术
14
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
osfg
8年8个月前 IP:浙江
819276
对比度先调好,现在根本不知道显示什么
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
懒惰的0族元素作者
8年8个月前 IP:江苏
819289
我拿商家的程序试过显示了,但我自己写的不行
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
ne555
8年8个月前 修改于 8年8个月前 IP:山东
819349
引用 懒惰的0族元素:
我拿商家的程序试过显示了,但我自己写的不行
写入速度太高?,不检测第8位电平,直接加个延时试试
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
huojunan2
8年8个月前 IP:北京
819411
不文明用语自动屏蔽
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
电子黑马
8年8个月前 IP:广东
819428
这样写当然不行
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
novakon
8年8个月前 IP:广东
819442
初始化失败通常是因为代码有错误,没有生成应生成的信号。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
懒惰的0族元素作者
8年8个月前 IP:江苏
819510
引用 电子黑马:
这样写当然不行
具体怎么改
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
懒惰的0族元素作者
8年8个月前 IP:江苏
819511
引用 novakon:
初始化失败通常是因为代码有错误,没有生成应生成的信号。
具体怎么改?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
金坷居士
8年8个月前 IP:澳大利亚
819636
几点建议
E的高电平保持时间长一些
单片机上电之后等一下再开始初始化
检测lcd忙的换成比较长的延时
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
富二代创始人
8年8个月前 IP:天津
819637
为什么我感觉是对比度没调好?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
gkcn
8年8个月前 IP:浙江
819638
你这个是v0直接接电源了?你上下你现在的接线图看看
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
懒惰的0族元素作者
8年8个月前 IP:江苏
820273
改过了,然而还是没有什么变化
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="FUCK YOU";
uchar code table1[]="Asshole";
sbit BF=P0^7;
sbit EN=P2^5;
sbit RS=P1^0;
sbit dula=P2^6;
sbit wela=P2^7;
uchar num;
void delay(uint z)
{
  uint x,y;
  for(x=z;x>0;x--)
   for(y=110;y>0;y--);
  }
void w_cmd(uchar cmd)
{
RS=0;
P0=cmd;
delay(5);
EN=1;
delay(5);
EN=0;
}
  void w_dat(uchar dat)
  {
RS = 1;
P0 = dat;
   delay(5);
EN = 1;
delay(5);
EN = 0;
  }
void Init_LCD1602()
  {
    dula=0;
wela=0;
EN=0;
    w_cmd(0x38);  // 16*2显示,5*7点阵,8位数据接口
w_cmd(0x0C);  // 显示器开、光标开、光标允许闪烁
w_cmd(0x06);  // 文字不动,光标自动右移
w_cmd(0x01);  // 清屏
  }
void main()
{
Init_LCD1602();
w_cmd(0x80);//选择显示位置此时为0位80每加1就移一位
for(num=0;num<11;num++)
{
   w_dat(table[num]);
   delay(5);
}
w_cmd(0x80+0x40);
{
w_dat(table1[num]);
delay(5);
}
while(1);
}
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
金坷居士
8年8个月前 IP:澳大利亚
820350
main开始之后加以点延时再初始化
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
所属分类
上级专业
同级专业
懒惰的0族元素
开除学籍
文章
9
回复
15
学术分
0
2014/06/22注册,8年5个月前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:未同步
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}