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