標(biāo)題: 1602第二行不能顯示,程序有問(wèn)題?? [打印本頁(yè)]

作者: mosybn    時(shí)間: 2013-10-3 22:34
標(biāo)題: 1602第二行不能顯示,程序有問(wèn)題??

原程序如下想在1602顯示屏下行顯示字符,用了WriteCom命令寫(xiě)0x80+0x40,操作,不能在下行顯示,請(qǐng)大神們指教下那里寫(xiě)錯(cuò)了。謝謝


#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)
        {
        }
}

/*********************************************
*函數(shù)名稱(chēng):WriteCom
*功能:寫(xiě)命令
*
***********************************************/
void WriteCom(unsigned char n)
{
RS=0;
RW=0;
GPIO_LCD=n;
Delay(10);
LCDE=1;
Delay(10);
LCDE=0;
}

/*********************************************
*函數(shù)名稱(chēng):WriteDat
*功能:寫(xiě)數(shù)據(jù)
*
***********************************************/
void WriteDat(unsigned char m)
{
RS=1;
RW=0;
GPIO_LCD=m;
Delay(10);
LCDE=1;
Delay(10);
LCDE=0;
}
/*********************************************
*函數(shù)名稱(chēng):IntLCD
*功能:初始化LCD
*
***********************************************/
void IntLCD()
{
WriteCom(0x38);               //設(shè)置16*2,5*7的顯示
WriteCom(0x0c);                   //設(shè)置下劃線(xiàn)不顯示,塊狀光標(biāo)顯示
WriteCom(0x06);                   //寫(xiě)一個(gè)指針加1
WriteCom(0x01);                   //清屏幕
WriteCom(0x80+0x40);                   //設(shè)置指針起始位置??俺設(shè)置了T_T,LCD不理我
}
/*********************************************
*函數(shù)名稱(chēng):Delay
*功能:延時(shí)函數(shù)
*
***********************************************/
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--);
}


作者: 皮匠    時(shí)間: 2013-10-4 22:25
肯定不顯示啦,你的寫(xiě)數(shù)據(jù)的子函數(shù)的參數(shù)又不是指針變量,你應(yīng)該寫(xiě)成WriteDat(HelloYu[i]);
作者: yixie    時(shí)間: 2013-10-7 14:18
接我試試
作者: 熟悉的陌生人    時(shí)間: 2013-10-15 00:32
piaogu




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1