发布时间 : 星期五 文章基于单片机HX711电子称设计更新完毕开始阅读aafda9403069a45177232f60ddccda38366be15f
附录
}
void displayprice() //显示price {
static ucharbufferprice[4]={' ',' ',' '}; //把bufferprice定到能保存4个字符型数据,主要 } return key;
}
}
while(tem!=0xf0) { }
tem=P3; tem=tem&0xf0; case 0x77: key='.'; break; case 0xb7: key='w'; break; case 0xd7: key='p'; break; case 0xe7: key='m'; break;
是为了在做清零时方便
staticucharbuffermoney[4]; uint j;
static char ii;//这里不能用uchar型数据,静态数据必须加 button=keyscan();
if(button!='a') //如果有键按下 {
33
附录
}
}
write_com(0x80+0x0c); //price for(j=0;j<3;j++)
write_date(bufferprice[j]);//price
if(button=='m') { }
else if(button=='p')//单价 { }
else if(button==' ') //清零 {
ii=ii-1; //因为会减到-1,所以i不能用uchar型 if(ii<=0)ii=0; bufferprice[ii]=' '; } else { }
bufferprice[ii]=button; ii++;
if(ii>=3)ii=3; for(j=0;j<3;j++) bufferprice[j]=' '; write_com(0x80+0x0c); ii=0;
money=atof(bufferprice)*weight/10;//atof将字符串转换为浮点型 sprintf(buffermoney,\将浮点型转换为字符串 write_com(0x80+0x46); for(j=0;j<4;j++)
write_date(buffermoney[j]);
34
附录
//////////////////喇叭函数/////////////////// voiddelayus(uint z) { while(z++) { _nop_();
} }
void sound() { uint j; for(j=0;j>200;j++) { delayus(200); spk=!spk;
} spk=0;
for(j=0;j>200;j++) { delayms(1); //spk=!spk; }
/*if (spk>500 spk=1) elsespk=0;*/ }
void main() { get_pizhong(); init_1602();
displaywpm();
/* unsigned long ReadCount(void) {
unsigned long Count;
35
附录
unsigned char i; ADSK=0;//使能AD(PD_SCK 置低)
Count=0;while(ADDO); //AD转换未结束则等待,否则开始读取for (i=0;i<24;i++) { ADSK=1;//PD_SCK 置高(发送脉冲) Count=Count<<1; //下降沿来时变量 //Count//左移一位,右侧补0
ADSK=0; //PD_SCK 置低if(ADDO) Count++
}
ADSK=1;
Count=Count&0x800000;//第25个脉冲下降沿来时,ADSK=0return(Count);
} */ while(1) { get_weight();//得到重量 if(weight>0)
{weight_shuzhi(weight);}//显示重量 else
{weight_shuzhi(0);}
displayprice(); //扫描键盘,并显示price if(weight>2000)sound(); }
}
36
转换数据