自动加料机控制系统设计 联系客服

发布时间 : 星期六 文章自动加料机控制系统设计更新完毕开始阅读

青岛理工大学毕业设计

附录A:程序清单

#include \#include \#include \

unsigned long HX711_Buffer = 0;

unsigned int Weight_Maopi = 0,Weight_Shiwu = 0; char Price_Count = 0; unsigned char KEY_NUM = 0;

unsigned char Price_Buffer[3] = {0x00,0x00,0x00}; unsigned long Money = 0; bit Flag_OK = 0;

sbit led1=P1^0; //绿灯 管脚 sbit led2=P1^1; //红灯 管脚

//**************************************************** //主函数

//**************************************************** void main() {

28

Init_LCD1602(); //初始化LCD1602

LCD1602_write_com(0x80);

//指针设置

//开机画面第一行

LCD1602_write_word(\

青岛理工大学毕业设计

Delay_ms(2000); //延时2s

loop:Price_Count = 0;

Price_Buffer[0] = 0; Price_Buffer[1] = 0; Price_Buffer[2] = 0; Flag_OK = 0;

LCD1602_write_com(0x80); //指针设置

LCD1602_write_word(\LCD1602_write_com(0x80+0x40);

//指针设置

LCD1602_write_word(\ . | . \

Get_Maopi();

while(1) {

}

29

if( Flag_OK == 0) {

Get_Weight();

//称重

//显示当前重量

LCD1602_write_com(0x80+0x40);

LCD1602_write_data(Weight_Shiwu/1000 + 0x30); LCD1602_write_data('.');

LCD1602_write_data(Weight_Shiwu00/100 + 0x30); LCD1602_write_data(Weight_Shiwu0/10 + 0x30); LCD1602_write_data(Weight_Shiwu + 0x30);

青岛理工大学毕业设计

if(Weight_Shiwu>5000) {led2=0; led1=1; }

if(Weight_Shiwu<1000) {led2=0; led1=1; }

if((Weight_Shiwu<5000)&(Weight_Shiwu>1000)) {led1=0; led2=1;}

void Get_Weight() {

HX711_Buffer = HX711_Read(); HX711_Buffer = HX711_Buffer/100; if(HX711_Buffer > Weight_Maopi) {

HX711_Buffer = HX711_Read(); Weight_Shiwu = HX711_Buffer/100;

Weight_Shiwu = Weight_Shiwu - Weight_Maopi;

//获取实物

的AD采样数值。

Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/4.22+0.05); //计算

实物的实际重量

//因为

不同的传感器特性曲线不一样,因此,每一个传感器需要矫正这里的4.30这个除数。

//当发

30

青岛理工大学毕业设计

现测试出来的重量偏大时,增加该数值。

//如果

测试出来的重量偏小时,减小改数值。

//该数

值一般在4.0-5.0之间。因传感器不同而定。

//+0.05

是为了四舍五入百分位

}

else if(HX711_Buffer < Weight_Maopi - 30) { }

else if(HX711_Buffer > Weight_Maopi + 24970)

//大于5Kg的最大量程,

Buzzer = 0;

//负重量报警

Buzzer = 1;

//关闭警报

报警 }

{ }

Buzzer = 0;

//**************************************************** //获取重量

//**************************************************** void Get_Maopi() { }

//****************************************************

31

HX711_Buffer = HX711_Read(); Weight_Maopi = HX711_Buffer/100;