基于单片机的5kg电子称的设计文档格式.docx
《基于单片机的5kg电子称的设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的5kg电子称的设计文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
图1
传感器输出的模拟信号被放大整形后由运算放大器组成的v/f转换电路完成电压-频率转换,再经过单片机对测量信号进行处理并根据相应的数据关系译码显示出被测物体的重量。
单片机控制适合于功能比较简单的控制系统,算术运算功能强、技术成熟。
因此,选用单片机STC89C52来实现系统设计。
.
三、
芯片简介:
1、HX711芯片
Hx711采用了海芯科技集成电路专利技术,是一款专为高精度电子秤而设计的24位A/D转换器芯片。
与同类型其它芯片相比,该芯片集成了包括稳压电源,片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰能力强等优点。
降低了电子秤的整机成本,提高了整机的性能和可靠性。
该芯片与后端MCU芯片的接口与编程非常简单,所有控制信号由管脚驱动,无需对芯片内部的寄存器编程。
输入选择开关可任意选取通道A或通道B,与其内部的低噪声可编程放大器相连。
通道A的可编程增益为128或64,对应的满额度差分输入信号幅值分别为20mv或40mv。
通道B则为固定的64增益,用于系数参数检测。
芯片内提供的稳压电源可以直接向外部传感器和芯片内的A/D转换器提供电源,系统板上无需另外的模拟电源。
芯片内的时钟振荡器不需要任何外接器件。
上电自动复位功能简化了计算机的初始化过程。
该芯片有两路可选择差分输入,片内低噪音可编程放大器,可选择增益为64和128。
片内稳压电路可直接向外部传感器和芯片内A/D转换器提供电源。
片内时钟振荡器无需任何外接器件,必要时也可以使用外接晶振或时钟,它能上电自动复位,能够实现简单的数字控制和串口通讯:
所有控制由管教输入,芯片内寄存器无需编程,可选择10hz或80hz的输出数据速率,能同步抑制50hz和60hz的电源干扰。
封装如图2
图2
VSUP:
电源:
稳压电路供电电源;
~(不用稳压电源时应接AVDD)
BASE:
模拟输出:
稳压电路控制输出(不用稳压电路时无连接)
AVDD:
模拟电源:
~
VFB:
模拟输入:
稳压电路控制输入(不用稳压电路时应接地)
AGND:
地:
模拟地
VBG:
参考电源输出
INA-:
通道A负端输入
INA+:
通道A正端输入
¥
INB-:
通道B负端输入
INB+:
PD_SCK:
数字输入:
断电控制(高电平有效)和串口时钟输入
DOUT:
数字输出:
串口数据输出
XO:
数字输入输出:
晶振输入
XI:
外部时钟或晶振输入(0:
使用片内振荡器)
RATE:
输出数据速率控制(0:
10hz;
1:
80hz)
DVDD:
数字电源:
Hx711在电子秤方面应用典型方案图,如下图3
图3
2、STC89C52
STC89C52是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)
图5
2管脚接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、>
7、按键电路(如图9)
图9
通过单片机的P14,P15,P16,P17端口实现对按键的控制。
8、主体电路(如图10)
图10
该电路为主体部分电路为单片机模块。
9、[
10、晶振电路(如图11)
图11
软件设计部分:
主程序流程图
!
整体程序:
#include"
"
;
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);
LCD1602_write_data(maxValueTable[1]+0x30);
LCD1602_write_data(maxValueTable[2]+0x30);
《
LCD1602_write_data(maxValueTable[3]+0x30);
LCD1602_write_word("
break;
case1:
LCD1602_write_com(0x80+0x40);
MAX="
if(Blink_Speed<
Blink_Speed_Max/2)
{
…
LCD1602_write_data(maxValueTable[0]+0x30);
}
else
LCD1602_write_data('
'
.'
`
case2:
?
case3:
·
}
case4:
-
default:
、
//超限报警
if(Weight_Shiwu>
=Max_Value||Weight_Shiwu>
=AlarmValue)//超过设置最大值或者传感器本身量程最大值报警
{
Buzzer=0;
}
else
Buzzer=1;
}
//****************************************************
//称重
voidGet_Weight()
{
Weight_Shiwu=HX711_Read();
Weight_Shiwu=Weight_Shiwu-Weight_Maopi;
//获取净重
=0)
{
Weight_Shiwu=(unsignedlong)((float)Weight_Shiwu/GapValue);
//计算实物的实际重量
Weight_Shiwu=0;
$
//获取毛皮重量
voidGet_Maopi()
Weight_Maopi=HX711_Read();
}
//MS延时函数(12M晶振下测试)
voidDelay_ms(unsignedintn)
unsignedinti,j;
for(i=0;
i<
n;
i++)
for(j=0;
j<
123;
j++);
//蜂鸣器程序
voidBuzzer_Di()
Buzzer=0;
Delay_ms(10);
Buzzer=1;
!
//按键扫描程序
unsignedcharScan_Key()
{
if(KEY1==0)//按键扫描
Delay_ms(10);
//延时去抖
》
if(KEY1==0)
Buzzer_Di();
while(KEY1==0);
//等待松手
return1;
if(KEY2==0)//按键扫描
)
if(KEY2==0)
while(KEY2==0);
return2;
if(KEY3==0)//按键扫描
if(KEY3==0)
while(KEY3==0);
【
return3;
if(KEY4==0)//按键扫描
if(KEY4==0)
;
while(KEY4==0);
return4;
return0;
四、问题及结果分析
经过本次传感器的大作业,我们做的是双平行梁的电子秤,我们的实验电路分为三个模块,分别是采集模块,控制模块,显示处理模块,在传感器的设计中最困难的地方无非在于如何将重力转化为电信号,然后在LCD1602上显示出来,因为在桥式电路中电压的压差很小而且还是模拟信号,所以我们采用了集成24位AD转化芯片,将电信号先放大128倍然后在进行AD转换,通过P3^2口给出高电平启动信号,然后通过I2C将转化的24位数字量传送到P3^3口,单片机通过计算得出数值。
其次在制作的后期还有一个问题就是电子秤的校准问题,所以计算公式中加了一个宏定义GapValue,通过改变它就能校准电子秤的准确性。
最后一个问题就是硬件焊接的问题,注意与软件相结合,比如排阻的焊接注意正负,显示屏加上对比调节。
五、总结
1、5月15日
开始选择要用那种传感器
5月16日
确定使用金属应变片做压力传感器
5月17日
上网搜集各种有关压力传感器的资料
5月18日
上网采集所需要的元件
5月19日
开始进行电路图的设计以及构思
5月20日
绘制出电路图
5月23日
对电路进行焊接
5月25日
进行程序的编写
5月27日
调试相关程序
5月28日
烧写程序,对硬件进行测试
5月30日
写设计报告
5月31日
完成
2、陈徐飞50%(进行硬件的焊接以及程序的编写)
梅杰50%(对电路进行检查以及写设计报告)
3、心得体会
随着集成电路和计算机技术的迅速发展,使电子仪器的整体水平发生巨大变化,传统的仪器逐步的被智能仪器所取代。
智能仪器的核心部件是单片机,因其极高的性价比得到广泛的应用与发展,从而加快了智能仪器的发展。
而传感器作为测控系统中对象信息的入口,越来越受人们的关注。
传感器好比人体“五官”的工程模拟物,它是一种能将特定的被测量信息(物理量、化学量、生物量等)按一定规律转换成某种可用信号输出的器件。
因此,只有充分了解有关智能仪器、单片机、传感器以及各部分之间的关系才能达到要求。
在这次制作中我熟悉了STC89C52单片机功能及工作特性,通过对数据采集的分析,了解了放大器及A/D转换器有更深的认识。
学会了采用面向对象的思想,分层次、分模块构建设计的总体框架。
最后,我觉传感器这门课应该重视实践能力的培养,而不应该放在理论上,通过这次大作业我了解了好多有关传感器的知识,真正的了解了传感器相关方面的知识。
六、参考文献
1、陆伯勤,电子称重技术和自动称重系统的进展;
自动化博览,1999
2、杨文龙,单片机原理及应用;
西安电子科技大学出版社,2000
3、刘伯中,刘景霞,高精度智能电子分析天平;
仪器仪表学报,1989
4、李朝青,单片机原理及其接口技术;
北京航空航天大学出版社,1999