标题: 1602第二行不能显示,程序有问题?? [打印本页]

作者: mosybn    时间: 2013-10-3 22:34
标题: 1602第二行不能显示,程序有问题??

原程序如下想在1602显示屏下行显示字符,用了WriteCom命令写0x80+0x40,操作,不能在下行显示,请大神们指教下那里写错了。谢谢


#include<reg51.h>

#define GPIO_LCD P0                        //Data IO

sbit RS=P2^6;                                //RS data:H,Com:L
sbit RW=P2^5;                                //RW read:H,Write:L
sbit LCDE=P2^7;                                //LCDE delay,H,delay,L

void IntLCD();                                //Int LCD,command
void WriteCom(unsigned char);                        //
void WriteDat(unsigned char);
void Delay(unsigned int);
unsigned char code HelloYu[]="Hello!Li Ai Dang";

void main(void)
{
unsigned char i=0;
        IntLCD();                                   // use int LCD first
        //while(1)                           //putout Data to IO
        //{                                           // 16th times
        for(;i<16;i++)
        WriteDat(HelloYu);
        //}
        while(1)
        {
        }
}

/*********************************************
*函数名称:WriteCom
*功能:写命令
*
***********************************************/
void WriteCom(unsigned char n)
{
RS=0;
RW=0;
GPIO_LCD=n;
Delay(10);
LCDE=1;
Delay(10);
LCDE=0;
}

/*********************************************
*函数名称:WriteDat
*功能:写数据
*
***********************************************/
void WriteDat(unsigned char m)
{
RS=1;
RW=0;
GPIO_LCD=m;
Delay(10);
LCDE=1;
Delay(10);
LCDE=0;
}
/*********************************************
*函数名称:IntLCD
*功能:初始化LCD
*
***********************************************/
void IntLCD()
{
WriteCom(0x38);               //设置16*2,5*7的显示
WriteCom(0x0c);                   //设置下划线不显示,块状光标显示
WriteCom(0x06);                   //写一个指针加1
WriteCom(0x01);                   //清屏幕
WriteCom(0x80+0x40);                   //设置指针起始位置??俺设置了T_T,LCD不理我
}
/*********************************************
*函数名称:Delay
*功能:延时函数
*
***********************************************/
void Delay(unsigned int c)
{
unsigned char a,b;
for(;c>0;c--)
        for(a=1;a>0;a--)
                for(b=22;b>0;b--);
}


作者: 皮匠    时间: 2013-10-4 22:25
肯定不显示啦,你的写数据的子函数的参数又不是指针变量,你应该写成WriteDat(HelloYu[i]);
作者: yixie    时间: 2013-10-7 14:18
接我试试
作者: 熟悉的陌生人    时间: 2013-10-15 00:32
piaogu




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1