@45280
[圖片]決定使用運放做差分輸入。。。3D顯示效果大概就是這樣……看來要等春節后才能打樣了,某寶的店基本都打烊了~~~
void mode_canshu() //按鍵處理函數{ u8 i; static bit k; if(k) { //如果顯示了幫助界面或者錯誤提示界面 key_huifu(); //恢復輸入界面 k=0; //清零標志位 return; //退出,等待下一次按鍵操作 } i=kay_scan(); //匹配掃描回來的坐標 if(i==0)return; //如果沒有按在對應位置不做處理 switch(i) { case 1 : case 2 : case 3 : if(key_dat[7]>5)return; //最多輸入6位數,包括小數點 if(key_dat[0]==0)if(key_dat[7]==1){key_dat[7]=0;key_addr-=16;} //如果第一位是0,則消隱 key_dat[key_dat[7]]=i+6;key_dat[7]++; //將數字保存于數組中 key_addr=LCD_ZF(ZF_16,key_addr,44,beijing_2,i+6);return; //顯示 case 6 : case 7 : case 8 : if(key_dat[7]>5)return; if(key_dat[0]==0)if(key_dat[7]==1){key_dat[7]=0;key_addr-=16;} key_dat[key_dat[7]]=i-2;key_dat[7]++; key_addr=LCD_ZF(ZF_16,key_addr,44,beijing_2,i-2);return; case 11 : case 12 : case 13 : if(key_dat[7]>5)return; if(key_dat[0]==0)if(key_dat[7]==1){key_dat[7]=0;key_addr-=16;} key_dat[key_dat[7]]=i-10;key_dat[7]++; key_addr=LCD_ZF(ZF_16,key_addr,44,beijing_2,i-10);return; case 9 : if(key_dat[6]!=0)return;if(key_dat[7]>5)return; if(key_dat[7]==0) //小數點判斷,如果已經存在小數點則退出,如果在第一位則自動補零 {key_addr=LCD_ZF(ZF_16,key_addr,44,beijing_2,0);key_dat[7]++;} key_dat[6]=key_dat[7];key_dat[7]++; key_addr=LCD_ZF(ZF_16,key_addr,44,beijing_2,mm_dg);return; case 14 : if(key_dat[7]>5)return;if(key_dat[0]==0)if(key_dat[7]==1)return; key_addr=LCD_ZF(ZF_16,key_addr,44,beijing_2,0); key_dat[key_dat[7]]=0;key_dat[7]++;return; case 5 : if(key_dat[7]==0)return;key_addr-=16; //退格處理 LCD_Clear(key_addr,44,32,16,beijing_2);key_dat[7]--; if(key_dat[6]==key_dat[7])key_dat[6]=0;key_dat[key_dat[7]]=0;return; case 15 : mode_menu(mode_key/10);return; //返回對應的界面 case 4 : mode_tishi(mode_key);k=1;return; //如果點擊了問號按鈕,顯示提示界面 case 10 : k=enter();if(k){LCD_PC(0,0,80,320,PC_cuowu);return;}break; //確認按鍵,判斷輸入的數值是否有誤 } //如果有誤,顯示錯誤提示界面 if(canshu_falg!=0) //將設置的值寫入EEPROM. canshu_falg=write_eeprom(canshu_falg);}