专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
1602显示
2019-03-24 19:37
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
10300
10
973
1602在main函数最后加while(1); lcd上就不显示了,去掉就显示,但是显示内容是闪的。本来想加个while不闪的 ,现在不显示了,怎么回事呢? 此帖出自
小平头技术问答
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
skyman_liu
2019-03-25 07:16
#include<reg52.h>
#include<intrins.h>
char code table[]={"hello"} ;
sbit RS=P2^5;
sbit RW=P2^6;
sbit E=P2^7;
#define DP P0
#define BF 0x80
void checkby();
void writecmd(char cmd,char b);
void writedata(char *a);
void lcdreset();
void delay();
void main()
{
char *ap ;
ap=table;
lcdreset();
delay();
writecmd(0x84,0);
while(*ap!=' ')
{
writedata(ap);
ap++;
delay();
}
while(1);
}
void lcdreset()
{
writecmd(0x01,1);
writecmd(0x0c,1);
writecmd(0x06,1);
writecmd(0x38,1);
}
void writecmd(char cmd,char b)
{
if(b==1)checkby();
RS=0;
RW=0;
_nop_();
DP=cmd;
_nop_();
E=1;
_nop_();
E=0;
}
void checkby()
{
DP=0xff;
RS=0;
RW=1;
E=1;
_nop_();
if(DP&BF)delay();
E=0;
}
void delay()
{
char i,j;
i=100;
for(;i>0;i--)
for(;j<100;j++);
}
void writedata(char *a)
{
RS=1;
RW=0;
_nop_();
DP=*a;
_nop_();
E=1;
_nop_();
_nop_();
E=0;
}
加载中...
查看其它10个回答
一周热门
更多
>
相关问题
相关文章
基于51单片机的计算器设计
0个评论
51单片机300个proteus仿真实例下载
0个评论
51单片机 蜂鸣器
0个评论
51单片机驱动RC522模块
0个评论
基于51单片机的指纹密码锁
0个评论
AT89C51单片机制作简易密码锁
0个评论
51单片机汇编语言计数器
0个评论
51单片机精确延时设计
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
#include<intrins.h>
char code table[]={"hello"} ;
sbit RS=P2^5;
sbit RW=P2^6;
sbit E=P2^7;
#define DP P0
#define BF 0x80
void checkby();
void writecmd(char cmd,char b);
void writedata(char *a);
void lcdreset();
void delay();
void main()
{
char *ap ;
ap=table;
lcdreset();
delay();
writecmd(0x84,0);
while(*ap!=' ')
{
writedata(ap);
ap++;
delay();
}
while(1);
}
void lcdreset()
{
writecmd(0x01,1);
writecmd(0x0c,1);
writecmd(0x06,1);
writecmd(0x38,1);
}
void writecmd(char cmd,char b)
{
if(b==1)checkby();
RS=0;
RW=0;
_nop_();
DP=cmd;
_nop_();
E=1;
_nop_();
E=0;
}
void checkby()
{
DP=0xff;
RS=0;
RW=1;
E=1;
_nop_();
if(DP&BF)delay();
E=0;
}
void delay()
{
char i,j;
i=100;
for(;i>0;i--)
for(;j<100;j++);
}
void writedata(char *a)
{
RS=1;
RW=0;
_nop_();
DP=*a;
_nop_();
E=1;
_nop_();
_nop_();
E=0;
}
一周热门 更多>