找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

求助1602显示问题

[复制链接]
admin 发表于 2012-9-2 09:15:02 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
源程序如下:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS=P3^3;
sbit RW=P3^2;
sbit E=P3^0;
uchar code table[]="clock";
uchar code table1[]="date";
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void read_busy()//读忙状态
{
P0=0xff;
RS=0;
RW=1;
E=1;
while(P1&0x80);
}
void write_com(uchar com)//写命令
{
P0=0xff;
read_busy();
delay(5);
P1=com;
RS=0;
RW=0;
E=1;
delay(5);
E=0;
}
void write_dat(uchar dat)//写数据
{
P0=0xff;
read_busy();
delay(5);
P1=dat;
RS=1;
RW=0;
E=1;
delay(5);
E=0;
}
uchar read_dat(void)//读数据
{
uchar rdat;
RS=1;
RW=1;
E=1;
rdat=P1;
return(rdat);
}
void init()
{
E=0;
delay(15);
write_com(0x01);//清屏并光标复位
write_com(0x38);//设置显示模式:8位2行5*7
write_com(0x0c);//显示屏开、光标开、光标允许闪烁
write_com(0x06);//文字不动,光标自动右移
// write_com(0x80);//写入显示起始地址(第一行第一个位置)
}
void display(uchar *p)
{
while(*p!='\0')
{
write_dat(*p);
p++;
read_busy();
}
}
void main()
{
init();
write_com(0x80);
display(table);
write_com(0xc0);
display(table1);
while(1);
}

发现只有第一行有显示,第二行没有显示,调了一天了,第二行怎么也调不出来。请高手指点!多谢!
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-24 13:48 , Processed in 0.053864 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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