_NOP(); } }
//************************************************** void prl0(uchar com1)// 写指令代码子程序(左) {
P4DIR|=0X7F; //P4为输出口 P4OUT|=CS1; //csa=1 P4OUT&=~CS2; //csb=0 P4OUT&=~RS;
P4OUT|=RW; //RS=0,R/W=1,以便读液晶状态 P3DIR=0x00; //P3口为输入口 do {
P4OUT|=E; //E=1 cradd1=P4IN; P4OUT&=~E; //E=0 }
while((cradd1&0x80)!=0); P4OUT&=~RW; //rw=0 P3DIR=0xff; //P3口为输出口 P3OUT=com1;
第 17 页
P4OUT|=E; //E=1 P4OUT&=~E; //E=0 }
//************************************************** void prl1(uchar dat1)// 写显示数据子程序 {
P4DIR|=0X7F; //P4为输出口 P4OUT|=CS1; //csa=1 P4OUT&=~CS2; //csb=0 P4OUT&=~RS;
P4OUT|=RW; //RS=0,R/W=1,以便读液晶状态 P3DIR=0x00; //P3口为输入口 do {
P4OUT|=E; //E=1 cradd1=P4IN; P4OUT&=~E; //E=0 }
while((cradd1&0x80)!=0); P4OUT|=RS; //rs=1 P4OUT&=~RW; //rw=0 P3DIR=0xff; //P3口为输出口
第 18 页
P3OUT=dat1; P3OUT|=E; //E=1 P3OUT&=~E; //E=0 }
void prr0(uchar com2)// 写指令代码子程序 {
P4DIR|=0X7F; //P4为输出口 P4OUT&=~CS1; //csa=0 P4OUT|=CS2; //csb=1 P4OUT&=~RS;
P4OUT|=RW; //RS=0,R/W=1,以便读液晶状态 P3DIR=0x00; //P3口为输入口 do {
P4OUT|=E; //E=1 cradd1=P3IN; P4OUT&=~E; //E=0 }
while((cradd1&0x80)!=0); P4OUT&=~RW; //rw=0 P3DIR=0xff; //P3口为输出口 P3OUT=com2;
第 19 页
P4OUT|=E; //E=1 P4OUT&=~E; //E=0 }
//************************************************* void prr1(uchar dat2)// 写显示数据子程序(右) {
P4DIR|=0X7F; //P4为输出口 P4OUT&=~CS1; //csa=0 P4OUT|=CS2; //csb=1 P4OUT&=~RS;
P4OUT|=RW; //RS=0,R/W=1,以便读液晶状态 P3DIR=0x00; //P4口为输入口 do {
P4OUT|=E; //E=1 cradd1=P4IN; P4OUT&=~E; //E=0 }
while((cradd1&0x80)!=0); P4OUT|=RS; //rs=1 P4OUT&=~RW; //rw=0 P3DIR=0xff; //P4口为输出口
第 20 页
P3OUT=dat2; P4OUT|=E; //E=1 P4OUT&=~E; //E=0 uchar ReadDatal(void) {
uchar Rdata;
P4DIR|=0X7F; //P4为输出口 P4OUT|=CS1; //csa=1 P4OUT&=~CS2; //csb=0 P4OUT&=~RS;
P4OUT|=RW; //RS=0,R/W=1,以便读液晶状态 P3DIR=0x00; //P3口为输入口 do {
P4OUT|=E; //E=1 cradd1=P4IN; P4OUT&=~E; //E=0 }
while((cradd1&0x80)!=0);
P4OUT|=RS; //RS=1 //P4OUT|=RW; //R/W=1
第 21 页