void fuhao(uchar s) {
if(jjcc<5) {
if(Num_str[0]!='A') {
if(Num_str[0]<=0x39&&Num_str[0]>=0x30&&jjcc != 2) {
num1=atof(Num_str); // 从数组中取第二个数字 // XS_JG(0x8a,num1);
} }
if(jjcc==0) {
Num_str[Lcd_dis1_i] = s ;
Lcd_dis1_i++;
Lcd_num2_add = Lcd_dis1_i ;
} else {
if(Num_str[Lcd_num2_add]==0) Num_str[Lcd_dis1_i-1] = s ; }
Dis_str(0x80,Num_str);
}
if(jjcc==5) {
Lcd_dis1_i = 4 ; Lcd_num2_i = 0 ; Lcd_num2_add = 4; memset(Num_str,0,16);
20
}
Num_str[0] = 'A'; Num_str[1] = 'n'; Num_str[2] = 's'; Num_str[3] = s;
Dis_str(0x80,\ Dis_str(0x80,Num_str); }
void main(void) {
uchar num_key1; init_1602(); write_1602dat('0'); memset(Num_str,0,16); while(1) {
num_key1=saom(); delayms(10); if(num_key1<18) {
batt = 0; delayms(30);batt = 1; switch(num_key1) {
case
11:
//是否有按键按下,小于16时有按键按下
//读按键值
if(Num_str[Lcd_num2_add]<=0x39&&Num_str[Lcd_num2_add]>=0x30)
num2=atof(Num_str+Lcd_num2_add); // 从数组中取第
二个数字
else break; Lcd_num2_i=0 ;
XS_JG(0x8a,num2);
switch(jjcc) {
21
case 1: num1+=num2;
// 加
break; case 2: num1-=num2;
break;
// 减
break;
case 12: if(Num_str[0]==0||Lcd_num2_i>0) break; fuhao('+'); jjcc=1;Dian_i=0 ; break;
case 13: if(Num_str[0]==0||Lcd_num2_i>0) break; fuhao('-');
jjcc=2;Dian_i=0 ; break;
case 14: if(Num_str[0]==0||Lcd_num2_i>0) break; fuhao('*');
break;
case 15: if(Num_str[0]==0||Lcd_num2_i>0)
case 3: num1*=num2;
break; case 4: num1/=num2;
break;
// 按下加号键
// 按下减号键
// 按下乘号键22
// 乘
// 除
等号标志
}
XS_JG(0xc0,num1);
Dis_str(0x80+Lcd_dis1_i,\
jjcc=5; //
jjcc=3;Dian_i=0 ;
break; fuhao('/');
jjcc=4;Dian_i=0 ; break;
// 按下除号键
case 10: if(Dian_i==0&&(Lcd_num1_i != 0||Lcd_num2_i != 0)) // 输入小数点时前面必须有数字
{
Dian_i++;
// 小数点
Num_str[Lcd_dis1_i] = '.' ; Lcd_dis1_i++;
Dis_str(0x80,Num_str); }
break;
case 16: jjcc = 0;
Dian_i = 0;
Lcd_dis1_i = 0 ; Lcd_num1_i = 0 ;
Lcd_num2_i = 0 ; Lcd_num2_add = 0; memset(Num_str,0,16);
Dis_str(0x80,\清除显示 Dis_str(0xc0,\
/********************* 删除一个数字*******************/
case 17: if(Lcd_dis1_i==0) break;
//删除一个数字;删除小数点;按等号后不再撤销
if(((Num_str[Lcd_dis1_i-1]<=0x39&&Num_str[Lcd_dis1_i-1]>=0x30)||Num_str[Lcd_dis1_i-1]=='.')&&jjcc!=5)
{
if(Num_str[Lcd_dis1_i-1]=='.')
{ Dian_i = 0; } else
23

