0x00,0x00,0x00,0x1F,0x1F,0x07,0xFF,0xFF,0xFF,0xFF,0x9F,0xFF,0xF0,0x00,0x00,0x00, 0x00,0x00,0x00,0x1F,0xBF,0x87,0xFF,0xFC,0x77,0x7B,0x9F,0xFF,0xF0,0x00,0x00,0x00, 0x00,0x00,0x00,0x3F,0xFF,0x87,0xB3,0xC0,0x77,0xF8,0x1E,0x3C,0xF0,0x00,0x00,0x00, 0x00,0x00,0x00,0x3F,0x7F,0xC7,0x83,0xC0,0x73,0xF0,0x1E,0x3C,0xF0,0x00,0x00,0x00, void delay1(unsigned int z);//定义读书延时函数
void delay2(unsigned int t); void delayNOP();
void lcdpos(uchar X,uchar Y);
void writecmd(unsigned char cmd); //写命令
void writedat(unsigned char dat); 0x00,0x00,0x00,0x79,0xF9,0xE7,0xC0,0x00,0x73,0xFC,0x1E,0x3C,0xF0,0x00,0x00,0x00, 0x00,0x00,0x00,0x73,0xF1,0xFF,0xFF,0xFE,0x7F,0xFF,0xFE,0x3C,0xF0,0x00,0x00,0x00, 0x00,0x00,0x00,0x70,0xC0,0x6E,0xFF,0xFE,0x7F,0x0F,0xBC,0x3F,0xF0,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x1C,0x3F,0xE0,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
unsigned char num,temp;//定义键盘返回值,中间变量
unsigned char getkey();//键盘扫描函数 unsigned char adc0804(void); //读AD0804子程序 //读AD0804子程序
unsigned int datpro(void);//ADC0804读出的数据处理
//写数据
void init(); //初始化 bit busy();
void displayA(); void displayB(); void displayC(); void displayD();
void disphoto(unsigned char *photo); //图片显示
void display_jiemian();
void clear(); //清屏 void display1(); void display(); void main() {
delay2(100); init();
disphoto(photo1); delay1(2000); clear(); delay2(5);
display_jiemian(); num=6; while(1) {
if(num==1) {
getkey();//获得键盘输入值
if(num==2||num==3||num==5||num==6) {
num=1; }
switch(num) {
3
case 2:a1=0;b1=0; break; case 5:a1=1;b1=0; break; case 3:a1=0;b1=1; break; default:a1=1;b1=1; }; display1(); } if(num==4) { getkey();//获得键盘输入值 switch(num) { case 2:a1=0;b1=0; break; case 5:a1=1;b1=0; break; case 3:a1=0;b1=1; break; default:a1=1;b1=1; }; lcdpos(3,3); for(i=0;i<10;i++) { writedat(dis12[i]); delay1(1); } display_jiemian(); delay1(5); } if(num==2)//(条件选择语句)不同的档位不同的显示形式
{ getkey();//获得键盘输入值 switch(num) { case 2:a1=0;b1=0; break; case 5:a1=1;b1=0; break; case 3:a1=0;b1=1; break; default:a1=1;b1=1; }; lcdpos(2,6); writedat('A'); delay1(2); lcdpos(3,7); for(i=0;i<2;i++) { writedat(dis6[i]); delay1(1); } adc0804();//读取模数转换数据 aaa=datpro();//读电压 if(aaa>=40000) { display(); delay1(1); } else { displayA(); delay1(2); } } if(num==3)
4
{ getkey();//获得键盘输入值 switch(num) { case 2:a1=0;b1=0; break; case 5:a1=1;b1=0; break; case 3:a1=0;b1=1; break; default:a1=1;b1=1; }; lcdpos(2,6); writedat('B'); delay1(2); lcdpos(3,7); for(i=0;i<2;i++) { writedat(dis7[i]); delay1(1); } delay1(2); adc0804();//读取模数转换数 aaa=datpro();//读电压据 if(aaa>=40000) { display(); delay1(1); } else { displayB(); delay1(2); } }
if(num==5) { getkey();//获得键盘输入值 switch(num) { case 2:a1=0;b1=0; break; case 5:a1=1;b1=0; break; case 3:a1=0;b1=1; break; default:a1=1;b1=1; }; lcdpos(2,6); writedat('C'); delay1(2); lcdpos(3,7); for(i=0;i<2;i++) { writedat(dis6[i]); delay1(1); } delay1(2); adc0804();//读取模数转换数据 aaa=datpro();//读电压 if(aaa>=40000) { display(); delay1(1); } else { displayC(); delay1(2); }
5
} if(num==6) { getkey();//获得键盘输入值 switch(num) { case 2:a1=0;b1=0; break; case 5:a1=1;b1=0; break; case 3:a1=0;b1=1; break; default:a1=1;b1=1; }; lcdpos(2,6); writedat('D'); delay1(2); lcdpos(3,7); for(i=0;i<2;i++) { writedat(dis7[i]); delay1(1); } delay1(2); adc0804();//读取模数转换数据 aaa=datpro();//读电压 if(aaa>=40000) { display(); delay1(1); } else { displayD(); delay1(2); }
} } } unsigned char getkey(void) { P2=0xf7; temp=P2; temp=temp&0xe7; while(temp!=0xe7) { delay1(5); temp=P2; temp=temp&0xe7; while(temp!=0xe7) { switch(temp) { case 0xe3:num=3; break; case 0xe5:num=2;
break; case 0xe6:num=1; break; } while(temp!=0xe7) //松手检测 { temp=P2; temp=temp&0xe7; } } } P2=0xef; temp=P2; temp=temp&0xe7; while(temp!=0xe7) { delay1(5);
6
temp=P2;
temp=temp&0xe7; while(temp!=0xe7) {
switch(temp) {
case 0xe3:num=6;
break; case 0xe5:num=5;
break; case 0xe6:num=4;
break; }
while(temp!=0xe7) //松手检测
{
temp=P2; temp=temp&0xe7;
} } } return(num); }
unsigned char adc0804( void ) {
rd=1; wr=1; int1=1;
P1=0xff; cs=0; wr=0; wr=1;
while(int1==1); rd=0; delay1(1); addata=P1; rd=1; cs=1;
return(addata);
}
unsigned int datpro(void) {
unsigned char x;
for(x=0;x<10;x++) {
dianya=addata+dianya; }
dianya=dianya/10; dianya=addata;
dianyah=dianya&0xf0; dianyah=dianyah>>4; dianyal=dianya&0x0f;
dianya=dianyal+dianyah*16; aaa=dianya*195.3125; return(aaa); }
void delay1(unsigned int z) {
uint t1,y;
for(t1=z;t1>0;t1--) {
for(y=110;y>0;y--); } }
void delay2(unsigned int t) {
uchar i,j;
for(i=0;i void delayNOP() { _nop_(); _nop_(); _nop_(); _nop_(); } bit busy() { bit i; rs=0; rw=1; en=1; 7