全国电赛电子秤代码: 主函数代码如下 #include <stc15f2k60s2.h> #include "hx711.h" #include <stdio.h> #include "delay.h" #include "show.h" #include "key.h" double num,package,n; double danjia=0.0,money,factweight; int i; bit start=0,flag_D=0,judge_qupi=0; char xdata d[4]; char xdata danjia_z[5]; void dat_rm(char *p){ char j; for(j=0;j<4;j++){ p[j]=0; } } void danjia_rm(){ //存储单价的数组初始化 int i; for(i=0;i<6;i++){ danjia_z[i]=0; } } void clear() //将变量置零 { num_k=16; b=0; judge_qupi=0; start=0; i=0; n=0; end=0; } void show_num_init() //数值显示初始化 { num=0.0;danjia=0.0;money=0.0;package=0.0;factweight=0.0; dsp_single_colour(WHITE); show_c(); sprintf(d,"%2.2f",num); Display_ASCII8X16_Color(45,10,d,BLACK,WHITE); dat_rm(d); sprintf(d,"%2.2f",danjia); Display_ASCII8X16_Color(45,25,d,BLACK,WHITE); dat_rm(d); sprintf(d,"%2.2f",money); Display_ASCII8X16_Color(45,43,d,BLACK,WHITE); dat_rm(d); sprintf(d,"%2.2f",package); Display_ASCII8X16_Color(45,61,d,BLACK,WHITE); dat_rm(d); sprintf(d,"%2.2f",factweight); Display_ASCII8X16_Color(45,79,d,BLACK,WHITE); dat_rm(d); } void input_DJ() //单价输入及显示 { if(num_k==13) { if(start==0) { start=1; i=0; while(start) { while(b!=1) keyscan16(); if(b==1) { b=0; if(end==1) { end=0; break; } else if(end==2) { end=0; danjia_z[i++]=num_k; } n=i; } sprintf(d,"%0.2f",n); //判断输入单价的位数 Display_ASCII8X16_Color(40,115,d,BLACK,WHITE); } if(n==1) //单价的精确度保留小数点后1位或2位 0.0-999.9 danjia=danjia_z[0]; if(n==2) danjia=danjia_z[1]*10+danjia_z[0]; if(n==3) if(danjia_z[1]==12) danjia=danjia_z[0]+danjia_z[2]*0.1; else danjia=danjia_z[0]*100+danjia_z[1]*10+danjia_z[0]; if(n==4) { if(danjia_z[1]==12) danjia=danjia_z[0]+danjia_z[2]*0.1+danjia_z[3]*0.01; if(danjia_z[2]==12) danjia=danjia_z[0]*10+danjia_z[1]+danjia_z[3]*0.1; } if(n==5) { if(danjia_z[2]==12) danjia=danjia_z[0]*10+danjia_z[1]+danjia_z[3]*0.1+danjia_z[4]*0.01; if(danjia_z[3]==12) danjia=danjia_z[0]*100+danjia_z[1]*10+danjia_z[2]+danjia_z[2]*0.1+danjia_z[4]*0.01; } flag_D=1; n=0; } else if(start==1) { start=0; // danjia=12.5; sprintf(d,"%2.2f",danjia); Display_ASCII8X16_Color(45,25,d,BLACK,WHITE); dat_rm(d); danjia_rm(); num_k=16; } } } void output_money() //金额显示 { if(num_k==11&&flag_D==1) { money=danjia*num; sprintf(d,"%2.2f",money); Display_ASCII8X16_Color(45,43,d,BLACK,WHITE); dat_rm(d); } } void qupi() //去皮 { if(num_k==10) { judge_qupi=1; package=ReadKg(12.4384,686020.400); sprintf(d,"%2.2f",package); Display_ASCII8X16_Color(45,61,d,BLACK,WHITE); dat_rm(d); factweight=num-package; sprintf(d,"%2.2f",factweight); Display_ASCII8X16_Color(45,79,d,BLACK,WHITE); dat_rm(d); } } void init_num() //刷新页面 { if(num_k==15) { clear(); show_num_init(); } } void main(){ P3M0=0;P3M1=0; //键盘初始化 lcd_initial(); show_c(); show_num_init(); while(1){ if(judge_qupi==0) //去皮标志判断 { num=ReadKg(12.4384,686020.400); if(num<0) num=0; sprintf(d,"%2.2f",num); Display_ASCII8X16_Color(45,10,d,BLACK,WHITE); dat_rm(d); } keyscan16(); //按键扫描 input_DJ(); //调用输入单价函数 output_money(); //调用显示金额函数 qupi(); //调用去皮函数 init_num(); //调用初始化数值 } }
- 1
- 粉丝: 1
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助