320240点阵液晶模块的设计与应用2接上一篇文章HG3202407液晶模块与8051单片机典型应用电路:3202407液晶模块示例程序:/********* 时间延时程序 *********/ void delay(uint t) /* 1.02500 ms */{ uint i,j; for(i=t;i>0;i--) for(j=125;j>0;j--);}
/******** “忙”状态程序 ********/void busy(){ data=0xff; cs=0; a0=1; wr=1; rd=0; while(data&0x80); rd=1; cs=1;}
/******** 写“指令”程序 ********/void write_com(uchar com){ while(Busy==0); // busy(); cs=0; a0=1; rd=1; data=com; wr=0; wr=1; cs=1;}
/******** 写“数据”程序 ********/void write_data(uchar dat){ while(Busy==0); // busy(); data=0xff; cs=0; a0=0; rd=1; data=dat; wr=0; wr=1; cs=1;}
/******** 写“指令数据”程序 ********/void write_comdat(uchar com,uchar dat){ write_com(com); write_data(dat);} /******* 读“数据”程序 ********/uchar read_data(void){ uchar temp; while(Busy==0);// busy(); data=0xff; cs=0; a0=0; wr=1; rd=0; temp=data; rd=1; cs=1; return temp;}
/******** 全屏(文本)显示程序 ********/void fill_txt(uchar coder){ uchar i,j; write_comdat(CPXR,0x00); //60H光标列地址 write_comdat(CPYR,0x00); //70H光标行地址 write_com(MWCR); //写指令 for(i=0;i<HD/16;i++) //地址到右边界时自动换行 for(j=0;j<WD/8;j++) write_data(coder); }
/******** 全屏(图形)显示程序 ********/void fill_graph(uchar dat){ uchar i,j; write_comdat(CPXR,0x00); //60H光标列地址 write_comdat(CPYR,0x00); //70H光标行地址 write_com(MWCR); //写指令 for(i=0;i<HD;i++) for(j=0;j<WD/8;j++) write_data(dat);}