#include <reg51.h> #include <stdio.h> #include <intrins.h> #define uchar unsigned char sbit RS=P2^0; sbit RW=P2^1; sbit E=P2^2 ;
void delay(); void write(uchar,bit); void busy(); //void clear_sqr();
void main() { char str1[]="I Love You!"; char str2[]="bu zhi dao ma?"; char *str; write(0x01,0); write(0x38,0); write(0x0c,0); write(0x06,0);
write(0x80,0); str=str1; while(*str!='\0') { write(*str,1); delay(); str++; } write(0xc2,0); write(65,1); while(1); }
/* void clear_sqr() { write(0x01,0); write(0x80,0); } */
void write(uchar c,bit flag) { busy(); if(flag){ RS=1;RW=0;_nop_(); E=1;_nop_(); P0=c;_nop_(); E=0; delay(); } else { RS=0;RW=0;_nop_(); E=1;_nop_(); P0=c;_nop_(); E=0; delay(); } }
void busy() { RS=0;RW=1;_nop_(); E=1;_nop_(); while(P0&0x80); E=0; delay(); }
void delay() { uchar i=0xff; for(;i;i--); }
这是我的程序.. 没有问题呀.. 帮看看...
我原先在实物上运行第二行不显示 后来用软件仿真... 结果也是一样的... 这样可以看来液晶肯定是没坏的了.. 那到底是什么原因呢? |