📄 lcd12232.c
字号:
#include "AT89X51.H"
#include <intrins.h>
int code MAXCOL=61; //单片LCD控制的列数
#define A0 P3_7 //控制信号线
#define RW P3_6 //读写信号线
#define CS1 P3_4 //主片片选线
#define CS2 P3_5 //从片片选线
void LCDWriteCom1(unsigned char com)
{
bit flag; //flag----LCD忙标志
_nop_();
_nop_();
A0=0;
RW=1;
do
{
P0=0xff;
CS1=0;
flag=P0_7;
CS1=1;
}while(flag);
RW=0;
P0=com;
CS1=0;
CS1=1;
}
/*向主LCD写数据 */
void LCDWriteDat1(unsigned char dat)
{
bit flag;
_nop_();
_nop_();
A0=0;
RW=1;
do
{
P0=0xff;
CS1=0;
flag=P0_7;
CS1=1;
}while(flag);
A0=1;
RW=0;
P0=dat;
CS1=0;
CS1=1;
}
unsigned char LCDReadDat1()
{
bit flag;
unsigned char dat;
_nop_();
_nop_();
A0 = 0;
RW=1;
do
{
P0=0xff;
CS1=0;
flag=P0_7;
CS1=1;
}while(flag);
CS1=0;
A0=1;
RW=1;
dat=P0;
CS1=1;
RW=0;
P0=0xff;
RW=1;
CS1=0;
dat=P0;
CS1=1;
return dat;
}
/*向从LCD写命令 */
void LCDWriteCom2(unsigned char com)
{
bit flag;
_nop_();
_nop_();
A0 = 0;
RW=1;
do{
P0=0xff;
CS2=0;
flag=P0_7;
CS2=1;
}while(flag);
RW=0;
P0=com;
CS2=0;
CS2=1;
}
/*向从LCD写数据 */
void LCDWriteDat2(unsigned char dat)
{
bit flag;
_nop_();
_nop_();
A0 = 0;
RW=1;
do{
P0=0xff;
CS2=0;
flag=P0_7;
CS2=1;
}while(flag);
A0=1;
RW=0;
P0=dat;
CS2=0;
CS2=1;
}
unsigned char LCDReadDat2()
{
bit flag;
unsigned char dat;
_nop_();
_nop_();
A0 = 0;
RW=1;
do{
P0=0xff;
CS2=0;
flag=P0_7;
CS2=1;
}while(flag);
CS2=0;
A0=1;
RW=1;
dat=P0;
CS2=1;
RW=0;
P0=0xff;
RW=1;
CS2=0;
dat=P0;
CS2=1;
return dat;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -