?? put_digit.c
字號:
/*
----------------------------------------------------------
; (c) Copyright xami All Rights Reserved
----------------------------------------------------------
; SOURCE_FILE: PUT_DIGIT.H
; APPLICATION: 80c51\80c52
; DESCRIPTION: 輸入數字鍵的處理
; AUTHOR: xami
; DATE: 28 Apr. 2007
----------------------------------------------------------
*/
uchar put_digit(void){
uchar key;
while((key_pro=keyscan()) != 0x88){ //按下"確認"鍵退出
if(key_pro==0x28 || key_pro==0x48){ //向上鍵、向下鍵 禁止!
show_err();
}else if(key_pro== 0x18){ //處理菜單鍵
return 0x18;
key= key_pro; //返回菜單鍵值
return key;
}else{
//------------------------------------------------------------------------------------
//數據輸入
//------------------------------------------------------------------------------------
if(key_pro == 0x84){ //如果按"-"鍵
if(i==0){ //處理第0位
if(digit_temp[0]== 0x40){ //顯示"-"時
digit_temp[0]= 0x00;
have_p[0]= 0;
}else if(digit_temp[0]== 0x00){ //"null"
digit_temp[0]= 0x40;
i= 1; //輸入"-"號后,當前位后移到第1位
have_p[0]= 0;
}
}else{ //其他位
digit_temp[--i]= 0x00;
have_p[i]= 0;
}
}
else if(key_pro == 0x82){ //如果按"."鍵
if(i==1){ /*處理第1位*/
if(digit_temp[0] == 0x40){ //第0位為"-"
show_err();
}else{ //第0位不為"-"
if(have_p[0]== 0){ //沒加過"."
have_p[0]= 1;
digit_temp[0] += 0x80;
}else{ //加過"."
have_p[0]= 0;
digit_temp[0] -= 0x80;
}
}
}else if(i==0){ /*處理第0位,即還沒輸入數據時*/
show_err();
}else{ /*第1位以上的處理*/
if(have_p[i-1]== 0){ //上一位沒加"."
//其它位已經有"."
if(have_p[0]+have_p[1]+have_p[2]+have_p[3]+have_p[4]+have_p[5] != 0){
show_err();
}else{
have_p[i-1]= 1;
digit_temp[i-1] += 0x80;
}
}else{ //上一位加了"."
have_p[i-1]= 0;
digit_temp[i-1] -= 0x80;
}
}
}
else{ //如果按數字鍵
switch(key_pro){
case 0x11:{ //0
if(i < 6){
digit_temp[i++]= 0x3F;
}else{
show_err();
}
}break;
case 0x12:{ //1
if(i < 6){
digit_temp[i++]= 0x06;
}else{
show_err();
}
}break;
case 0x14:{ //2
if(i < 6){
digit_temp[i++]= 0x5B;
}else{
show_err();
}
}break;
case 0x21:{ //3
if(i < 6){
digit_temp[i++]= 0x4F;
}else{
show_err();
}
}break;
case 0x22:{ //4
if(i < 6){
digit_temp[i++]= 0x66;
}else{
show_err();
}
}break;
case 0x24:{ //5
if(i < 6){
digit_temp[i++]= 0x6D;
}else{
show_err();
}
}break;
case 0x41:{ //6
if(i < 6){
digit_temp[i++]= 0x7D;
}else{
show_err();
}
}break;
case 0x42:{ //7
if(i < 6){
digit_temp[i++]= 0x07;
}else{
show_err();
}
}break;
case 0x44:{ //8
if(i < 6){
digit_temp[i++]= 0x7F;
}else{
show_err();
}
}break;
case 0x81:{ //9
if(i < 6){
digit_temp[i++]= 0x6F;
}else{
show_err();
}
}break;
default:break;
}
}
//------------------------------------------------------------------------------------
//數據輸入
//------------------------------------------------------------------------------------
}//end "while(key_pro==0x28 || key_pro==0x48)"
/*每個while循環顯示一次*/
dis_num[4]= digit_temp[0];
dis_num[5]= digit_temp[1];
dis_num[6]= digit_temp[2];
dis_num[7]= digit_temp[3];
dis_num[8]= digit_temp[4];
dis_num[9]= digit_temp[5];
display();
}//end "while((key_pro=keyscan()) != 0x88)"
return 0x88; //返回確認鍵
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -