您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于单片机的5kg电子称的设计
基于单片机的5kg电子称的设计一、意义:随着科技的发展,电子称在生活中的应用很是广泛,几乎在称重时都会用到,小到超市,菜场的称重,大到工程中的称重。电子秤的主要特点是体积小,电路比较简单,应用广泛,有很多量程和精度可以选择,满足了很多场合的要求,电子秤的应用对普通的杠杆原理的称重有着很大的优点,精度比杠杆称重精度高的多,应用不受太大的限制,所以应用非常广泛。研究和制作各种不同精度和量程的电子秤对人们的生活有着重要的意义。背景:中国是发展中国家,在国际上,电子秤行业与发达国家相比有很大的差距,如美国,德国,西欧,电子称重已经达到了很高的水平。特别是在准确度和可靠性等方面有了很大的提高。特别是近30年来,工艺流程中的现场称重、配料定量称重、以及产品质量的监测等工作,都离不开电子衡器。这是由于电子衡器不仅得出质量或重量信号,而且也能作为总系统中的一个单元承担着控制和检验功能。随着称重传感器各项性能的不断突破,为电子秤的发展奠定了基础,早在20世纪60年代就出现了0.1%称量准确度的电子秤,并在70年代中期约对75%的机械秤进行了机电结合改造。如今电子秤已经发展到全电子化,智能化,网络的阶段。外国产智能化程度相当高,通过对原始信息的数字处理,更好的排除了外部干扰对信息影响,提高了产品的耐环境性和测量真实性而且电子秤产品的网络化在国外已经进入实用阶段。如今,国外电子秤品种和结构又有创新,技术功能和应用范围不断扩大。二、方案选取:1,用霍尔元件实现2,用金属应变片实现在选取方案的时候,觉得霍尔元件原理比较复杂,在设计上有一些难度而且霍尔元件在工作时容易被磁场和电场干扰,所以选择方案2来设计电子秤。基本设计思路:当物体放在秤盘上时,物体产生的压力施给传感器,该传感器发生形变,使阻抗发生变化,同时使用激励电压发生变化,传感器输出一个变化的模拟信号。该信号经过放大电路放大输出到电压-频率转换电路转换成便于处理的数字信号输出到微处理器,单片机根据键盘命令将这种结果输出到LED显示电路,显示出要显示的结果,如图1所示。系统方框图:图1传感器输出的模拟信号被放大整形后由运算放大器组成的v/f转换电路完成电压-频率转换,再经过单片机对测量信号进行处理并根据相应的数据关系译码显示出被测物体的重量。单片机控制适合于功能比较简单的控制系统,算术运算功能强、技术成熟。因此,选用单片机STC89C52来实现系统设计。三、芯片简介:1、HX711芯片Hx711采用了海芯科技集成电路专利技术,是一款专为高精度电子秤而设计的24位A/D转换器芯片。与同类型其它芯片相比,该芯片集成了包括稳压电源,片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰能力强等优点。降低了电子秤的整机成本,提高了整机的性能和可靠性。该芯片与后端MCU芯片的接口与编程非常简单,所有控制信号由管脚驱动,无需对芯片内部的寄存器编程。输入选择开关可任意选取通道A或通道B,与其内部的低噪声可编程放大器相连。通道A的可编程增益为128或64,对应的满额度差分输入信号幅值分别为20mv或40mv。通道B则为固定的64增益,用于系数参数检测。芯片内提供的稳压电源可以直接向外部传感器和芯片内的A/D转换器提供电源,系统板上无需另外的模拟电源。芯片内的时钟振荡器不需要任何外接器件。上电自动复位功能简化了计算机的初始化过程。该芯片有两路可选择差分输入,片内低噪音可编程放大器,可选择增益为64和128。压力传感器信号放大v/f转换压力传感器压力传感器51单片机片内稳压电路可直接向外部传感器和芯片内A/D转换器提供电源。片内时钟振荡器无需任何外接器件,必要时也可以使用外接晶振或时钟,它能上电自动复位,能够实现简单的数字控制和串口通讯:所有控制由管教输入,芯片内寄存器无需编程,可选择10hz或80hz的输出数据速率,能同步抑制50hz和60hz的电源干扰。封装如图2图2VSUP:电源:稳压电路供电电源;2.6~5.5v(不用稳压电源时应接AVDD)BASE:模拟输出:稳压电路控制输出(不用稳压电路时无连接)AVDD:电源:模拟电源:2.6~5.5vVFB:模拟输入:稳压电路控制输入(不用稳压电路时应接地)AGND:地:模拟地VBG:模拟输出:参考电源输出INA-:模拟输入:通道A负端输入INA+:模拟输入:通道A正端输入INB-:模拟输入:通道B负端输入INB+:模拟输入:通道B负端输入PD_SCK:数字输入:断电控制(高电平有效)和串口时钟输入DOUT:数字输出:串口数据输出XO:数字输入输出:晶振输入XI:数字输入:外部时钟或晶振输入(0:使用片内振荡器)RATE:数字输入:输出数据速率控制(0:10hz;1:80hz)DVDD:电源:数字电源:2.6~5.5vHx711在电子秤方面应用典型方案图,如下图3图32、STC89C52STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。标准功能:8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。管脚情况如图4:图4这里就不一一对管脚进行介绍了。各部分硬件电路设计:1、LCD1602显示电路(如图5)图52管脚接VCC,4到14管脚分别接在单片机对应的管脚。3、hx711接口电路(如图6)图6这里只用到4个端口,VCC接稳压电路供电电源,单片机P32接HX711数字输入端口,P33接HX711的数字输出端口,实现A/D转换。4、蜂鸣器电路(如图7)图7从单片机P24引出来接一个电阻R3,接到三极管上,三极管的发射极在于电铃相连。5、复位电路(如图8)Reset端接单片机的9管脚,实现复位功能。6、按键电路(如图9)图9通过单片机的P14,P15,P16,P17端口实现对按键的控制。7、主体电路(如图10)图10该电路为主体部分电路为单片机模块。8、晶振电路(如图11)图11软件设计部分:主程序流程图整体程序:#includemain.h#includeLCD1602.h#includeHX711.h开机系统初始化调用显示程序测重物V/F转换数据处理调用按键处理程序#includeEEPROM.H//定义变量unsignedcharKEY_NUM=0;//用来存放按键按下的键值unsignedlongHX711_Buffer=0;//用来存放HX711读取出来的数据unsignedlongWeight_Maopi=0;//用来存放毛皮数据longWeight_Shiwu=0;//用来存放实物重量longMax_Value=0;//用来存放设置最大值charmaxValueTable[4]={1,0,0,0};unsignedcharstate=0;//用来存放设置状态unsignedcharBlink_Speed=0;#defineBlink_Speed_Max6//该值可以改变设置指针闪烁频率//校准参数//因为不同的传感器特性曲线不是很一致,因此,每一个传感器需要矫正这里这个参数才能使测量值很准确。//当发现测试出来的重量偏大时,增加该数值。//如果测试出来的重量偏小时,减小改数值。//该值可以为小数#defineGapValue365//传感器最大测量值,单位是g#defineAlarmValue5000//****************************************************//主函数//****************************************************voidmain(){Init_LCD1602();//初始化LCD1602LCD1602_write_com(0x80);//设置LCD1602指针LCD1602_write_word(Welcometouse!);Get_Maopi();Get_Maopi();Delay_ms(2000);//延时2sGet_Maopi();Get_Maopi();//称毛皮重量//多次测量有利于HX711稳定LCD1602_write_com(0x01);//清屏//读取EEPROM中保存的报警值maxValueTable[0]=byte_read(0x2000);maxValueTable[1]=byte_read(0x2001);maxValueTable[2]=byte_read(0x2002);maxValueTable[3]=byte_read(0x2003);Max_Value=maxValueTable[0]*1000+maxValueTable[1]*100+maxValueTable[2]*10+maxValueTable[3];//计算超限报警界限值while(1){Get_Weight();//显示当前重量LCD1602_write_com(0x80);LCD1602_write_word(Weight=);LCD1602_write_data(Weight_Shiwu%10000/1000+0x30);LCD1602_write_data('.');LCD1602_write_data(Weight_Shiwu%1000/100+0x30);LCD1602_write_data(Weight_Shiwu%100/10+0x30);LCD1602_write_data(Weight_Shiwu%10+0x30);LCD1602_write_word(Kg);KEY_NUM=Scan_Key();if(KEY_NUM==1)//按键1切换设置状态{state++;if(state==5){state=0;SectorErase(0x2000);byte_write(0x2000,maxValueTable[0]);//保存EEPROM数据byte_write(0x2001,maxValueTable[1]);byte_write(0x2002,maxValueTable[2]);//保存EEPROM数据byte_write(0x2003,maxValueTable[3]);Max_Value=maxValueTable[0]*1000+maxValueTable[1]*100+maxValueTable[2]*10+maxValueTable[3];//计算超限报警界限值}}if(KEY_NUM==2)//按键加{if(state!=0){maxValueTable[state-1]++;if(maxValueTable[state-1]=10){maxValueTable[state-1]=0;}}}if(KEY_NUM==3)//按键减{if(state!=0){maxValueTable[state-1]--;if(maxValueTable[state-1]=-1){maxValueTable[state-1]=9;}}}if(KEY_NUM==4){Get_Maopi();//去皮}if(state!=0){Blink_Speed++;if(Blink_Speed==Blink_Speed_Max){Blink_Speed=0;}
本文标题:基于单片机的5kg电子称的设计
链接地址:https://www.777doc.com/doc-2535866 .html