樓主是剛學習單片機的,在書上看到的這個程序,可是不能編譯,求大神幫忙解答一下
#include <reg51.h>
#include <intrins.h>
sbit RS=0xb0;
sbit RW=0xb1;
sbit E=0xb2;
void lcd_w_cmd ( unsigned char com);
void lcd_w_dat ( unsigned char dat );
unsigned char lcd_r_start ( );
void lcd_int();
void delay ( unsigned int i ) ;
void delay1 ( );
void main
{
unsigned char lcd[]="SHEN ZHEN";
unsigned char i;
P1=0xff;
lcd_int();
delay(255);
lcd_w_cmd(0x83);
delay(255);
for(i=0;lcd[i]!='\0';i++)
{ lcd_w_dat (lcd[i]);
delay(200);}
while (1);
}
viod delay1()
{
_nop_();
_nop_();
_nop_();
}
viod lcd_int()
{
lcd_w_cmd(0x3c);
lcd_w_cmd(0x0e);
lcd_w_cmd(0x01);
lcd_w_cmd(0x03);
lcd_w_cmd(0x80);
}
unsigned char lcd_r_start()
{
unsigned char s;
RW=1;
delay1();
RS=0;
delay1();
E=1;
delay1();
S=P2;
delay1();
E=0;
delay1();
RW=0;
delay1();
return(s);
}
viod lcd_w_cmd(unsigned char com)
{
unsigned char i;
do{
i=lcd_r_start();
i&0x80;
delay(2);
}while (i!=0);
RW=0;
delay1()
RS=0;
delay1();
E=1;
delay1();
P1=COM;
delay1();
E=0;
delay1();
RW=1;
delay1(255);
} viod lcd_w_dat(unsigned char dat)
{
unsigned char i;
do{
i=lcd_r_start();
i&0x80;
delay(2);
}while(!=0);
RW=0;
delay1();
RS=1;
delay1();
EM=1;
delay1();
P1=dat;
delay1();
E=0;
delay1();
RW=1;
delay1(255);
}
viod delay(unsigned int i)
{
unsigned int k;
for(k=0;k<i,;k++);
}
|