#include<reg52.h>
#include<intrins.h>
sbit RS= P1^0;
sbit RW= P1^1;
sbit EN= P2^5;
#define RS_CLR RS=0
#define RS_SET RS=1
#define RW_CLR RW=0
#define RW_SET RW=1
#define EN_CLR EN=0
#define EN_SET EN=1
#define Dataport P0
void DelayUs2x(unsigned char t)
{
while(--t);
}
void DelayMs(unsigned char t )
{
while (t--)
{
DelayUs2x(245);
DelayUs2x(245);
}
}
bit LCD_check_Busy(void)
{
RS_CLR;
RW_SET;
EN_CLR;
_nop_();
EN_SET;
return (bit)(Dataport & 0x80);
}
void LCD_Write_Com(unsigned char com)
{
while (LCD_Check_Busy());
RS_CLR;
RW_CLR;
EN_SET;
Dataport=com;
_nop_();
EN_CLR;
}
void LCD_Write_Date(unsigned char Date)
{
while(LCD_Check_Busy());
RS_SET;
RW_CLR;
EN_SET;
Dataport=Date;
_nop_();
EN_CLR;
}
void LCD_Write_String(unsigned char x,unsigned char y , unsigned char *s)
{
if(y==0)
{
LCD_Write_Com(0x80 +x);
}
else
{
LCD_Write_Com(0xC0 + x);
}
while (*s)
{
LCD_Write_Date( *s);
}
}
void LCD_Write_char (unsigned char x, unsigned char y, unsigned char Data)
{
if (y==0)
{
LCD_Write_Com(0x80 + x);
}
else
{
LCD_Write_Com(0xC0 +x);
}
LCD_Write_Date (Data);
}
void LCD_Init(void)
{
LCD_Write_Com(0x38);
DelayMs (5);
LCD_Write_Com(0x38);
DelayMs (5);
LCD_Write_Com(0x38);
DelayMs (5);
LCD_Write_Com(0x38);
LCD_Write_Com(0x08);;
LCD_Write_Com(0x01);
LCD_Write_Com(0x06);
DelayMs (5);
LCD_Write_Com(0x0C);
}
void main(void)
{
LCD_Init();
LCD_Clear();
while (1)
{
LCD_Write_Char (7,0,'O');
LCD_Write_Char (8,0,'k');
LCD_Write_String (1,1 "hello word");
while (1);
}
}
一直顯示
Build target '目標 1'
compiling 44.C...
44.C(46): warning C206: 'LCD_Check_Busy': missing function-prototype
44.C(119): warning C206: 'LCD_Clear': missing function-prototype
44.C(122): warning C206: 'LCD_Write_Char': missing function-prototype
44.C(122): error C267: 'LCD_Write_Char': requires ANSI-style prototype
44.C(124): error C141: syntax error near '<string>'
目標未創建
求解
|