#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit lcden=P2^5;sbit lcdbf=P0^7;sbit lcdrs=P1^0;sbit lcdrw=P1^1;sbit dula=P2^6;sbit wela=P2^7;void delay(uint z){ uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}void write_com(uchar com){ lcdrs=0; lcdrw=0; P0=com; delay(5); lcden=1; delay(5); lcden=0;}void write_data(uchar date){ lcdrs=1; lcdrw=0; P0=date; delay(5); lcden=1; delay(5); lcden=0;}void init(){ dula=0; wela=0; lcden=0; lcdbf=0; write_com(0x38); write_com(0x0f); write_com(0x06); write_com(0x01); write_com(0x80);}void main(){ init(); write_com('1'); while(1);}这个程序让LED灯亮了,可是液晶屏并没有显示1,应该怎么改程序才能正常显示1呢?
lcdbf是液晶屏的忙状态标志位,是用来检测忙状态的,不能写0 的。
先别管LED灯,先让液晶屏显示出字符来再说,这个程序有RW引脚了。
把画圈那行删掉,这程序还是没检测忙状态,但可以增加延时,这次再试一下吧。