




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要电子秤是日常生活中常用的称重设备,广泛应用于超市、大中型商场、物流配送中心。电子秤在结构和原理上取代了以杠杆平衡为原理的传统机械式称量工具。相比传统的机械式 称量工具,电子秤具有称量精度高、装机体积小、应用范围广、易于操作使用等优点,在外 形布局、工作原理、结构和材料上都是全新的计量衡器。微电子技术的发展为电子秤提出了改进的空间。电子秤向着简单、便宜发展,智能化、精确的电子秤成为了人们的追求。本简易电子秤以常见的AT89C51为核心,以电阻应变片米集应变数据,通过HX711放大并进行AD转换供单片机处理,用LCD1602显示所测量的重量, 同时本电子秤系统还提供单价设置进行求价格的计算以及
2、去皮功能,通过一些简单低成本的 元器件就完成了一个功能齐全的电子秤的制作,将传统电子秤的成本进行了缩减。关键词:电阻应变片 AT89C51 HX711 电子秤第一章 方案与论证一、方案类型(一)方案一通过单片机为主控芯片, 用应变片采集应变数据, 通过专用仪表放大器 INA128 对采集到 的信号进行放大,在配上模数转换芯片对放大了的模拟信号转化为数字信号,传入单片机中 进行数据处理,找出函数关系并转化关系。通过数字信号转化为重量值显示在LDC1602上,同时通过键盘进行数据输入,输入单价、去皮等功能。通过蜂鸣器和二极管实现超额报警功(二)方案二以单片机为主控芯片,应变片采集应变数据,将放大和
3、模数转换用HX711芯片来同时进行实现,将模拟量传入主控芯片单片机中进行数据转换, 通过函数关系转换为重量显示到 LED 上或者LCD1602上,同时通过键盘按键进行数据输入,输入单价、去皮等功能,并通过蜂鸣 器进行数据处理。运用PLC作为主控制器,PLC运用广泛,它具有接线简单,通用性好,编程简单,使用 方便,可连接为控制网络系统,易于安装,便于维护等优点。、方案论证与选定运用51单片机作为主控芯片,AT89C51是一种高效微控制器。它为很多嵌入式控制系统 提供了一种灵活性高且价廉的方案。但方案一中,放大和 AD转换模块为独立模块,它们的独 立设计费事费力且还会存在误差较大的情况。相比于方案
4、一,方案二一HX711作为放大和AD转换芯片,简化了电路结构。HX711是一款专为高精度电子秤设计的 24位AD转换器芯片。 与同类型其他芯片相比,该芯片集成了包括文雅电源、片内时钟振荡器等其它同类型芯片所 需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。精度方面很好的满足了 题目中的要求,相比于方案一,方案二根据可行性。方案三采用PLC作为主控芯片,但其价格昂贵,违背了我们制作电子秤的简单、便捷、 便宜的原则,所以我们并没考虑选用 PLC作为主控芯片。综合考虑后,我们决定选择方案二来进行本简易电子秤系统的设计与制作。通过精度、 价格、简单程度出发考虑,方案二是最合适的。设计思路L
5、CD显示传感器去皮电阻应变片按键输入去皮各部分设计第二章设计方案放大电路图2-1总体思路图AD转换超额报警LCD160显示图2-2具体思路(一)传感器部分设计传感器应题目要求选用电阻应变片,是用于测量应变的元件。它能将机械构件上应变的 变化转换为电阻变化。为了减少测量误差,本简易电子秤系统采用全桥差动形式,全桥差动 测量电路不仅没有非线性测量误差,且电压灵敏度是单臂电阻应变片工作时的四倍,运用全 桥差动使得本电子秤系统更加稳定和可靠。图2-3全桥差动电路()主控芯片主控芯片是电子秤的核心部分,它能接受转换后的传感器信号,同时也能扫描接受到键 盘的输入信号,计算价格后控制显示器的输出,能够实现去
6、皮功能,当超过称重量量程时还 要控制报警装置报警。本简易电子秤选用 AT89C51作为主控芯片,AT89C51是一种带4K字节FLASH存储器的低 电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可 擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATME高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL勺AT89C51是一种高效微控 制器,AT89C051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种
7、灵 活性高且价廉的方案。51单片机的操作简单,功能强大,价格便宜。运用51单片机作为主控芯片可以减少成本,而且制作简便,能够实现本系统的所有功能,是一个不错的选择。(三)放大与AD转换模块在系统总体设计时,我们考虑到了将放大与AD转换作为单独的模块进行设计,但是思考 后发现这其中还有更好的选择。HX711是一款专为高精度电子秤而设计的 24位A/D转换器芯 片。与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯 片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。同时HX711还自带放大功能,可选增益为64和128两种。运用HX711保证了题目要求的高精度
8、,可实现精度误 差控制在01g以内,保证了我们完成题目的要求。(四)键盘方案针对题目要求,需要我们输入单间进行计算,单价包含0-9十个数字,数字键占用十个,确定和清除占用两个,去皮占用一个,复位占用一个。去皮键、复位键、清除键单独用一个 10 口引出;将十个数字键、确定键、计算总价键十二个键制成3x4的矩阵键盘2。通过设计成矩阵键盘的模式而减少单片机10 口的占用,为其他功能腾出空间。S3SWPB5151S4 _|OOSW-PB112 *!oO111OO575W-PE5W-PBEPE510SW-PBWO&1Ml*图2-4 3x4矩阵键盘第二章电路设计一、单片机最小系统电路AT89C51是片内有
9、ROM/EPROM单片机,其最小系统简单、可靠,仅由时钟电路、复位 电路、电源电路构成。(一)时钟电路AT89C51虽然有内部振荡电路,但要形成时钟,必须外部附加电路。AT89C51单片机的时钟产生方法有两种。内部时钟方式和外部时钟方式。本设计采用最常用的内部时钟方式,即用外接晶体和电容组成的并联谐振回路。振荡晶 体可在1.2MHZ到12MHZ间选择。电容取值对振荡频率输出的稳定性、大小、振荡电路起振 速度有少许影响,可在20pF到1OOpF之间取值。所以本设计中,振荡晶体选择 12MHZ电容 选择22pF。(二)复位电路AT89C51的复位电路是由外部的复位电路来实现的。只需给复位引脚RST
10、加上大于2个机器周期的高电平就可使其复位。复位电路通常采用上电自动复位和按键复位两种方式。本 设计就是用的按键手动复位。其中电平复位是通过RST端经电阻与电源Vcc接通而实现的。(三)电源电路AT89C51的电源脚分别为20脚Vss和40脚Vcc。这两个脚分别接地和+5V直流电源,31 脚EA为内外存储器的控制端,接+5V允许访问外部存储器。图3-1晶振电路和复位电路二、AD转换电路HX711是一款专为高精度称重传感器而设计的 24位A/D转换器芯片。与同类型其它芯片 相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路, 具有集成度高、响应速度快、抗干扰性强等优点、
11、降低了电子秤的整机成本,提高了整机的性能和可靠性。该芯片与后端 MCI芯片的接口和编程非常简单,所有控制信号由管脚驱动, 无需对芯片内部的寄存器编程。输入选择开关可任意选取通道A或通道B,与其内部的低噪声可编程放大器相连。通道 A的可编程增益为128或64,对应的满额度差分输入信号幅值分 别为土 20mV或土 40mV通道B则为固定的64增益,用于系统参数检测。芯片内提供的稳压 电源可以直接向外部传感器和芯片内的 A/D转换器提供电源,系统板上无需另外的模拟电源。 芯片内的时钟振荡器不需要任何外接部件。上电自动复位功能简化了开机的初始化过程。图3-2 HX711模块电路三、LCD1602显示电
12、路本设计采用的是LCD1602显示,LCD1602液晶也叫1602字符型液晶它是一种专门用来显 示字母、数字、符号等的点阵型液晶模块它有若干个5X 7或者5X 11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字 符间距和行间距的作用,正因为如此所以他不能显示图形。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块。LCD1?:Cg|w8E8Ss88HGND-Iff12MSCZ134-4-4RIO ItlK fcfjM5|=pKGM? -|VK卜TKIK 3j=aK1EJT=5T图 3-3 LCD1602 电路四、
13、总设计电路严3痕9 f FHSm BbB 8 8&fl siJUL- - J 5 .1 J ri V N:r:H.NKMM”3 aaj J 4- !- .IrJH呛mrrwm图3-4系统总电路第四章测试方法与测试结果一、测试方法由于本系统是一个简易电子秤系统,所以最好的测量方法就是通过测量标准砝码的质量 来比对本电子秤系统的测量显示值。以测量结果显示值减去砝码质量再除以砝码质量得出误 差百分比,同时也得出精确程度。(一)键盘测量与LCD1602测量键盘与LCD1602的测量我们放在一起进行,编写按键与 LCD1602显示函数,将对应按键 编码成0-9,按下按键通过LCD1602来进行显示所按下
14、键盘的数值,通过这种方法我们同时 测量了键盘与LCD1602的功能,保证了电路焊接的正确性。(二)模数转换对应数值测量将HX711连接到电路中,通过LCD1602来显示转换后的数值信号,依次将10g、20g、30g、 40g到500g的砝码放到秤盘上,依次独处LCD1602的显示数值,将这五十组数据放入到Excel 表格中,通过Excel绘制线性图形。通过线性图形拟合出线性函数关系。(三)测量质量检测分别用10g、20g、50g、100g、200g、500g的砝码放到本简易电子系统的秤盘上,比对 测量显示值,求出误差百分比和测量精度。除此之外,我们还用一个10克、两个2克砝码组成一个五十克砝码
15、;一个 10克砝码、 两个20克砝码和一个50克砝码组成一个100克方法等组合放在秤盘中心进行测量,以此来 确定本简易电子秤系统的精确度。测量结果(一)AD转换后数值信号值与砝码质量的对应关系表4-1 AD值与砝码质量(g)的对应关系AD值9174908890038919883387498663857784948408重量0102030405060708090AD值8326823981538069798378987814772576417553重量100110120130140150160170180190AD值7470738573007218713070466961687467926702重
16、量200210220230240250260270280290AD值6626654164556370629462086123603659545873重量300310320330340350360370380390AD值5780569556155535545553715290521251335049重量400410420430440450460470480490通过表中的数据,通过 Excel折线图进行拟合,拟合出的结果为数据呈现线性关系,这 满足应变片的性质,得出的转换函数为:y=0.1185x+1085.8145。重量重重线性(重里】图4-1折线图(二)简易电子秤测量结果与标准砝码比对关系在
17、确定了函数转换关系之后,电子秤的制作基本快要完成,将函数关系编写到程序中就实现电子秤的制作。将10g-500g依次增长10g的砝码放入到秤盘中,比对标准砝码值与测量显示值之间的关系发现误差基本控制在1g之内,0-50g期间大致控制在了 0.5g的范围内,基本完成了题目所给要求。三、测量结论本简易电子秤系统达到了题目要求,拥有输入单价求价格的功能,同时还能满足价格的 叠加在单片机芯片中计算而不用,输入一个记录一个值那么麻烦。同时本电子称系统也完成 了去皮功能,清除,复位功能,甚至还设置了超上限报警装置报警值上限为550g。参考文献1 胡向东,李锐,耿道渠等 M. 传感器与检测技术第 2 版.北京
18、. 机械工业出版社 .2013.37-382郭天祥.51单片机C语言教程M.北京.电子工业出版社.2009.86附录一、HX711 代码#include lcd1602.h #include#include hx711.h#includesbit ADDO = P2A4;sbit ADSK =卩2八3;extern unsigned long ReadAD(void);unsigned long data; data=ReadAD();*/ulong ReadCount(void)ulong Count;uchar i;ADSK=0;/使能 AD(PD_SCI置低)Count=0;while(
19、ADDO); /AD 转换未结束则等待 , 否则开始读取for (i=0;i24;i+)ADSK=1;/PD_SCK置高(发送脉冲)Count=Count1; / 下降沿来时变量 Count 左移一位 , 右侧补零ADSK=0;/PD_SCK置低if(ADDO) Count+;ADSK=1;Count=CountA0x800000; / 第 25个脉冲下降沿来时 , 转换数据ADSK=0;return(Count);二、键盘代码#include#include lcd1602.h#include key.huchar num,s = 5;uchar price = 0;uchar code t
20、able1 = 0123456789; str2 = Price:;uchar code str3 = Total:;显示单项称量价格void display_cost(uchar price)/uchar w5,i = 5;w0 = price/10000;w1 = price%10000/1000;w2 = price%1000/100;w3 = price%100/10;w4 = price%10;while(i != 10)DisplayOneChar(i,1,wi-5); i+;键盘扫描子程序/void temer1() interrupt 3 void keyscan(void)
21、uchar temp;P1 = 0XFE;temp = P1; temp = temp&0xf0; if(temp != 0xf0)delay(5);temp = P1; temp = temp&0xf0;while(temp != 0xf0)temp = P1; switch(temp)case 0xbe:num=1;s+;break;case 0xde:num=2;s+;break;case 0xee:num=3;s+;break; /case 0x7e:num=4;k=/;s+;break;while(temp!=0xf0)temp=P1; temp=temp&0xf0;price =
22、price*10+num;DisplayOneChar(s,1,table1num);P1 = 0XFd; temp = P1;temp = temp&0xf0; if(temp != 0xf0) delay(5);temp = P1;temp = temp&0xf0;while(temp != 0xf0) temp = P1;switch(temp)case 0xbd:num=4;s+;break;case 0xdd:num=5;s+;break;case 0xed:num=6;s+;break;/case 0x7d:num=8;k=*;s+;break;while(temp!=0xf0)t
23、emp=P1;temp=temp&0xf0;price = price*10+num;DisplayOneChar(s,1,table1num);P1 = 0XFb;temp = P1;temp = temp&0xf0; if(temp != 0xf0) delay(5);temp = P1;temp = temp&0xf0; while(temp != 0xf0) temp = P1; switch(temp) case 0xbb:num=7;s+;break;case 0xdb:num=8;s+;break;case 0xeb:num=9;s+;break;/case 0x7b:num=1
24、2;k=-;s+;break;while(temp!=0xf0)temp=P1;temp=temp&0xf0;DisplayOneChar(s,1,table1num); P1 = 0XF7; temp = P1;temp = temp&0xf0; if(temp != 0xf0) delay(5);temp = P1;temp = temp&0xf0; while(temp != 0xf0) temp = P1; switch(temp) case 0xb7:num=-;s+;break; case 0xd7:num=0;s+;break; case 0xe7:num=;s+;break;/
25、case 0x77:num=16;k=+;s+;break;while(temp!=0xf0)temp=P1; temp=temp&0xf0;if(num = 0)price = price*10+num;DisplayOneChar(s,1,table1num);else if(num = -)s = 5;price = 0;DisplayListChar(0, 1, 16,str2);elseDisplayListChar(0, 1, 16,str3); display_cost(price);三、 LCD1602 #include #include #include lcd1602.hs
26、bit rs = P2A0;sbit LCM_RW =卩2八1; sbit lcden = P2A2;延时程序 K*1ms,12000mhz*/void delay(uint k) uint i,j;for(i = 0; i k; i+)for(j = 0; j 100; j+); 写指令到LCM子函数void WriteCommandLCM(uchar com) P0=com;rs=0;lcden=0;delay(1);lcden=1;delay(1);lcden=0;写数据到LCM子函数*/void WriteDataLCM(uchar date) P0=date;rs=1;lcden=0
27、;delay(1);lcden=1;delay(1);lcden=0;*LCM初始化子函数void initLCM()WriteCommandLCM(0x38);delay(10);WriteCommandLCM(0x0f);delay(10);WriteCommandLCM(0x06);delay(10);WriteCommandLCM(0x01);delay(10);/* 显示指定坐标的一个字符子函数 */ void DisplayOneChar(uchar X, uchar Y, uchar DData) Y &= 0x01;X &= 0x0f; if(Y)X |= 0x40; /若 y
28、 为 1(显示第二行),地址码加 0x40X |= 0x80; / 指令码为地址码 +0x80 WriteCommandLCM(X); WriteDataLCM(DData);/* 显示指定坐标的一串字符子函数 */void DisplayListChar(uchar X, uchar Y, uchar length,uchar code *DData) uchar ListLength = 0;Y &= 0x01;X &= 0x0f; while(X length) DisplayOneChar(X,Y,DDataListLength); ListLength+;X+;四、主函数 #incl
29、ude #include #include #include #include lcd1602.h #include hx711.h sbit speaker = P2A7;sbit qupi =卩3八7;sbit qingling = P3A6;int weight; uchar num,s = 5;ulong ad_data = 0;ulong cost = 0,total = 0;ulong price = 0;uchar flag_ok = 0; /okuchar pi = 0;uchar flag_dian = 0,dian = 1; /uchar flag_dian_all = 0
30、;uchar dian_max = 1; /uchar flag_jian = 0;uchar cha=0,flag_jia=0,flag_jian;键的按键次数小数点的位数 , 和小数点标志最大的点的位数uchar code str0 = Weight: g ; uchar code str1 = cost:;uchar code str2 = Price:;uchar code str3 = Total:;uchar code table1 = 0123456789;键盘扫描函数void alarm(void);void keyscan(void); / void display_cost
31、(ulong price) / 显示单项称量价格 uchar w5,i,j,wei;w0 = price/10000;w1 = price%10000/1000;w2 = price%1000/100;w3 = price%100/10;w4 = price%10; if(flag_ok = 1)wei = 5; i = 5;/if(flag_dian = 1)/j = 11;/else/j = 10;while(wei != 11) / if(flag_dian=1&wei = 10-dian) if(wei = 10-dian)DisplayOneChar(wei,1,.);elseDis
32、playOneChar(wei,1,table1wi-5); i+;wei+;elsewei = 6; i = 6;/if(flag_dian_all=1)/j = 12;/else / j = 11;while(wei != 12) /if(flag_dian_all=1&wei = 11-dian if(wei = 11-dian_max)DisplayOneChar(wei,1,.);else DisplayOneChar(wei,1,table1wi-6);i+;wei+; void ad_change(ulong price)uchar w5,i;uchar ge,bai,shi,q
33、ian;int aver = 0;double z = 0;w0 = price/10000000;w1 = price%10000000/1000000;w2 = price%1000000/100000;w3 = price%100000/10000;w4 = price%10000/1000;/ DisplayOneChar(0,1,table1w0);/ DisplayOneChar(1,1,table1w1);/ DisplayOneChar(2,1,table1w2);/ DisplayOneChar(3,1,table1w3);/ DisplayOneChar(4,1,table
34、1w4);for(i = 0; i 8700)weight = (1079.6-0.1177*z)*10.0;else if(z 8290)weight = (1087.5-0.1186*z)*10.0;else if(z 7850)weight = (1077-0.1174*z)*10.0;else if(z 7410)weight = (1068.3-0.1163*z)*10.0;else if(z 7000)weight = (1080.8-0.1179*z)*10.0; else if(z 6590)weight = (1086.1-0.1187*z)*10.0; else if(z
35、6170)weight = (1100.4-0.1209*z)*10.0; else if(z 5730)weight = (1080.8-0.1177*z)*10.0; else if(z 5330)weight = (1114.9-0.1238*z)*10.0; elseweight = (1114-0.1236*z)*10.0; aver += weight;weight = aver/3;/ if(weight 0)/ /cha = -weight;/flag_jia = 1;/flag_jian = 0;/weight = 0;/ / else if(weight 5500)spea
36、ker = 0;/则启动报警elsespeaker = 1;键盘扫描子程序/void temer1() interrupt 3 void keyscan(void)uchar temp;P1 = 0XFE;temp = P1;temp = temp&0xf0; if(temp != 0xf0) delay(5);temp = P1;temp = temp&0xf0; while(temp != 0xf0) temp = P1; switch(temp) case 0xbe:num=1;s+;break; case 0xde:num=2;s+;break; case 0xee:num=3;s+;
37、break; /case 0x7e:num=4;k=/;s+;break; while(temp!=0xf0) temp=P1; temp=temp&0xf0; if(flag_jian = 0) if(flag_dian = 1) dian+;price = price*10+num;DisplayOneChar(s,1,table1num); P1 = 0XFd; temp = P1;temp = temp&0xf0; if(temp != 0xf0) delay(5); temp = P1;temp = temp&0xf0; while(temp != 0xf0) temp = P1;
38、switch(temp) case 0xbd:num=4;s+;break; case 0xdd:num=5;s+;break;case 0xed:num=6;s+;break; /case 0x7d:num=8;k=*;s+;break;while(temp!=0xf0)temp=P1;temp=temp&0xf0;if(flag_jian = 0)if(flag_dian = 1)dian+;price = price*10+num;DisplayOneChar(s,1,table1num);P1 = 0XFb;temp = P1;temp = temp&0xf0;if(temp != 0xf0)delay(5);temp = P1;temp = temp&0xf0;while(temp != 0xf0)temp = P1;switch(temp)c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年茯苓蝮蛇胶囊行业研究报告及未来行业发展趋势预测
- 2025年改善肠胃类保健品行业研究报告及未来行业发展趋势预测
- 2025年非标自动化设备行业研究报告及未来行业发展趋势预测
- 2025年光伏发电绿色物流碳减排技术应用报告
- 城市公共交通规划实施方案
- 幼教机构园内安全管理方案
- 安全员b整题库及答案解析
- 2025年新能源汽车电池包结构创新与电池寿命延长策略报告
- 2025年统计学期末考试题库:可视化图表制作与试题
- 2026年智能电网技术创新引领下的全球新能源产业升级报告
- 2025-2026学年高一数学上学期第一次月考试题(考试版A4)
- 建筑公司法务知识培训课件
- 2025.9.3抗战胜利大阅兵初高中学生征文(高中):观九三阅兵有感
- 2025食品安全员能力考核试题及答案附含答案
- 2025年度深圳住房租赁合同范本
- 湖南名校联考联合体2026届高三上学期第一次联考(暨入学检测)英语试题+答案
- 《创新创业基础》 课件 第1章 创新创业概述
- 商业保理考试试题及答案
- 接触网运行与检修课件
- 70周岁老人驾考三力测试题库及答案
- DBJ04-T 491-2025 建设工程消防设计审查验收文件归档标准
评论
0/150
提交评论