作者submarines ()
站内Electronics
标题[问题] 8051使用C语言LCD显示问题
时间Sun Feb 4 01:52:40 2007
最近才刚开始学51…
写到LCD时照着范例打只能显示一行而已
我需要显示两行
但程式怎麽改就是无法呼叫第二行
以下附的是显示一行的程式…
希望在这里的高手能帮我解决一下…thanks
#include "AT89X51.H"
#define RS P2_0
#define RW P2_1
#define Enable P2_2
char one=0;
char zero=0;
void DELAY(int zzz)
{
int d;
for(d=zzz;d>0;d--);
}
void CheckBusy(void)
{
char i=0x80;
while(i&0x80)
{
RS=0;
RW=1;
Enable=1;
i=P3;
Enable=0;
DELAY(250);
}
}
void WriteData(char i)
{
RS=1;
RW=0;
Enable=1;
P3=i;
Enable=0;
CheckBusy();
}
void WriteString(count,MSG)
char count;
char MSG[];
{
char i;
for(i=0;i<count;i++)
WriteData(MSG[i]);
}
void WriteIns(char instruction)
{
RS=0;
RW=0;
Enable=1;
P3=instruction;
Enable=0;
CheckBusy();
}
void InitialLCD(void)
{
WriteIns(0x38);
WriteIns(0x08);
WriteIns(0x01);
WriteIns(0x0e);
WriteIns(0x06);
}
void main()
{
char MSG0[]="FIRLAB";
InitialLCD();
WriteString(6,MSG0);
while(1);
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.56.153.19
1F:推 mosquito520:两列的LCD...第二列的记忆体位址好像是0xC0开始 02/04 01:56
2F:推 Magicx:之前实做记得是0x40....wh16xx系列的lcd 02/04 07:36
3F:推 Magicx:另外我记得范例里的一个clear指令拿掉的话会比较正常运作喔 02/04 07:48
4F:推 beagle:话说这个程式并没有移动读写游标的 function, 要自己写 02/04 10:09