附录
}
void wrtyejing() /*调液晶显示程序*/ {
yjinitiate();
for(j=0;j<100;j++) {
dv=5.0/60.0; /*相邻两行的电压差*/ n=62-Vin[j]/dv; /*显示点所在行数*/ p=n/8; /*显示点所在页数*/
b=n%8; /*显示点在第P页的第J个单元的第B位*/ d=1; /*第P页第J个单元的值*/ i=B;
for(i;i>0;i--) {
d*=2; }
wrtDDRAM(); }
}
void yjinitiate() /*液晶显示设置*/ {
CS1=1; /*左区设置*/ CS2=0; CS3=0;
COM=0xc0; /*设置显示起始行为第一行*/ prcode();
COM=0x3f; /*开显示设置*/ prcode();
COM=0x40; /*列地址设置为0*/ prcode();
CS1=0; /*中区设置*/ CS2=1; CS3=0; COM=0xc0; prcode(); COM=0x3f; prcode();
47
西安交通大学城市学院本科生毕业设计(论文)
COM=0x40; prcode(); }
void wrtDDRAM() {
if(j<64) {
CS1=1; /*左区显示数据写入*/ CS2=0; CS3=0;
COM=P||0xb8 ; /*或页面地址*/ prcode(); DAT=d;
prcwdata(); /*写入待显示数据*/
}
else if((j>64)&&(j<100)) {
CS1=0; /*右区显示数据写入*/ CS2=1; CS3=0;
COM=P||0xb8; /*或页面地址*/ prcode(); DAT=d;
prcwdata(); /*写入待显示数据*/ } }
void prcode() /*写指令代码子程序*/ {
pbusy(); RW=0;
P1=COM; /*写指令代码*/ E=1; E=0; }
void prcwdata() /*写显示数据子程序*/ {
pbusy(); RS=1; RW=0; P1=DAT;
附录
E=1; E=0; }
void prcrdata() /*读显示数据子程序*/
{
pbusy(); RS=1; P1=0xff; E=1; DAT=P1; E=0; }
void pbusy() {RW=1;
while(ACC^7) {
P1=0xff; E=1;
ACC=P1; E=0; } }
/*判\忙\标志为0否,否再读*/ 49
相关推荐: