write_command(0x38);//不可变,显示模式设置:16*2显示,5*7点阵,
8位数据接口
}
void start() //开始AD转换 {
adoe=0;
write_command(0x0c);//屏幕开启和光标闪烁 write_command(0x06);//显示开关及光标设置 write_command(0x01);//清屏
adstart=0;
_nop_();
adstart=1;
adstart=0;
}
void xianshi() //AD转化结果显示 { }
void first_mark() {
//0-4路通道的标号
write_data(table[b1]); delay(1);
// 小数点 //最高位
write_data(table[10]); delay(1);
write_data(table[b2]); delay(1);
//第二位
write_data(table[b3]); delay(1);
// 第三位
write_data(table[11]); delay(1);
// 电压V
5
}
write_command(0x01); write_command(0x80); write_data('A'); delay(1);
write_command(0x80+0x01); write_data('='); delay(1);
write_command(0x80+0x09); write_data('B'); delay(1);
write_command(0x80+0x0a); write_data('='); delay(1);
write_command(0x80+0x40); write_data('C'); delay(1);
write_command(0x80+0x41); write_data('='); delay(1);
delay(1);write_command(0x80+0x49); write_data('D'); delay(1);
write_command(0x80+0x4a); write_data('='); delay(1);
void second_mark() //5-7路通道的标号 {
write_command(0x01);
6
}
write_command(0x80); write_data('E'); delay(1);
write_command(0x80+0x01); write_data('='); delay(1);
write_command(0x80+0x09); write_data('F'); delay(1);
write_command(0x80+0x0a); write_data('='); delay(1);
write_command(0x80+0x40); write_data('G'); delay(1);
write_command(0x80+0x41); write_data('='); delay(1);
delay(1);write_command(0x80+0x49); write_data('H'); delay(1);
write_command(0x80+0x4a); write_data('='); delay(1);
void main() {
a2=0; init();
//调用LCD初始化子程序
7
TMOD=0x01; EA=1;//开总中断 TH0=(65535-1000)/256; TL0=(65535-1000)%6; ET0=1;//开定时器0中断 TR0=1;//定时器0置位 first_mark(); while(1) {
a0=0; //0路或4路通道的AD转化 a1=0;
start(); while(!eoc);
adoe=1; temp=P1;
delay(3); adoe=0;
b1=(temp*500/255)/100; b2=(temp*500/255)0/10;
//最高位 //第二位
b3=(temp*500/255); //第三位 write_command(0x80+0x02); xianshi();
a0=1; //1路或5路通道的AD转化 a1=0;
start(); while(!eoc);
adoe=1;
temp=P1;
delay(3);
8
adoe=0;
b1=(temp*500/255)/100; b2=(temp*500/255)0/10;
//最高位 //第二位
b3=(temp*500/255); //第三位 write_command(0x80+0x0b); xianshi();
a0=0; //2路或6路通道的AD转化 a1=1; start(); while(!eoc);
adoe=1; temp=P1;
delay(3);
adoe=0;
b1=(temp*500/255)/100; b2=(temp*500/255)0/10;
//最高位 //第二位
b3=(temp*500/255); //第三位 write_command(0x80+0x42); xianshi();
a0=1; //3路或7路通道的AD转化 a1=1;
start(); while(!eoc);
adoe=1;
temp=P1;
delay(3); adoe=0;
b1=(temp*500/255)/100; b2=(temp*500/255)0/10;
//最高位 //第二位
9