单片机1602的问题,普中的,为什么我的程序老是不显示,用普中给的资料就可以,但是我的为什么不行??
#include<reg52.h>typedefunsignedcharuint8;sbitRS=P1^0;sbitRW=P1^1;sbitEN=P1^5;sbitBUZ...
#include<reg52.h>
typedef unsigned char uint8;
sbit RS=P1^0;
sbit RW=P1^1;
sbit EN=P1^5;
sbit BUZY=P0^7;
void wait()
{
P0=0xff;
do
{
RS=0;
RW=0;
EN=0;
EN=1;
}while(BUSY==1);
}
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()
{
w_cmd(0x38);
w_cmd(0x0c);
w_cmd(0x06);
w_cmd(0x01);
}
void main()
{
w_cmd(0x80);
w_dat('A');
while(1);
} 展开
typedef unsigned char uint8;
sbit RS=P1^0;
sbit RW=P1^1;
sbit EN=P1^5;
sbit BUZY=P0^7;
void wait()
{
P0=0xff;
do
{
RS=0;
RW=0;
EN=0;
EN=1;
}while(BUSY==1);
}
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()
{
w_cmd(0x38);
w_cmd(0x0c);
w_cmd(0x06);
w_cmd(0x01);
}
void main()
{
w_cmd(0x80);
w_dat('A');
while(1);
} 展开
5个回答
展开全部
你没有初始化,加个Init_LCD1602();在w_cmd(0x80);上面
追问
加了,还是不行。。。还是老样子,,真的,,
追答
void delay_us(unsigned int n)
{ if(n==0)
return;
while(--n);
}
void w_dat(uint8 dat)
{
wait();
EN=0;
RS=1;
RW=0;
P0=dat;
delay_us(40);
EN=1;
delay_us(40);
EN=0;
}
void w_cmd(uint8 cmd)
{
wait();
EN=0;
RS=0;
RW=0;
P0=cmd;
delay_us(40);
EN=1;
delay_us(40);
EN=0;
}
展开全部
调程序是先把人家给的例程跑一下确定硬件没问题,再看自己的程序和人家的例程哪里不一样慢慢检查
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
显示屏幕有个对比度,通过电位器调节的。你试试看。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
初始化配置没调用
追问
加了也不行。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
需要给你完成一份吗
追问
什么意思????
追答
需要定做可以丘上说
我id
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询