电子秤课程设计(传感器原理与应用)_第1页
电子秤课程设计(传感器原理与应用)_第2页
电子秤课程设计(传感器原理与应用)_第3页
电子秤课程设计(传感器原理与应用)_第4页
电子秤课程设计(传感器原理与应用)_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《传感器技术与应用》电子称设计电子秤设计一、设计要求器,设计数字电子称。该数字电子称具有如下功能:LM4229质量,质量显示值保存到小数点后两位。可以通过键盘设计物体单价。二、系统设计流源〕称重传感器信号放大电路A/D液晶显示器报警器单片机矩阵键盘1设计框图LTC1297示对应物品的信息。三、设计原理1、恒流源电路R1RV3RV1U1:A8Q14R2R32〔阻性、感性、容性〕等优点。调整滑动变阻器可以看出,电流稳定供电,具有重要作用,同样也是是电子秤设计的根底局部。2、全桥电路传感器R△R2.00.05mV/V,输入电阻范围35020Ω。

𝑈 =∆𝑅𝑈 =2𝑚𝑉=

∆𝑅×1𝑜𝑢𝑡

𝑅 𝑖𝑛 360∆R=0.72Ω±359.28~360.723、差分放大电路V1V2V0RV6=RVR6=R7R5=R8,具体计算方式如下:4依据推算得出以下公式,可计算放大倍数:𝑉3𝑉

=𝑉𝑉0

=𝑉 𝑉3𝑉1

=𝑉1𝑉2

=𝑉2𝑉4𝑅6

𝑅8

𝑅6

𝑅8

𝑅𝑉6𝑉0=

𝑉1 𝑅6 𝑅𝑉2P2.4下一步处理。5、单片机由keli5hex使其能够完成价格计算的工作,是本设计最重要的一个局部。具体计算如下:重量转换:voiddata_pro(void){unsignedint;if(0<ad_data<256){intvary=ad_data;press=(0.019531*vary);temp1=(int)(press*1000);abc[0]=temp1/1000+48;//取压力值百位价格计算:

abc[1]=46;abc[2]=(temp1%1000)/100+48;//取压力值十位abc[3]=((temp1%1000)%100)/10+48;//取压力值分位abc[4]=((temp1%1000)%100)%10+48;//取压力值个位}}void price_jisuan{price_temp2=(int)(price*press*1000);price_all[0]=price_temp2/10000+48;price_all[1]=(price_temp2/1000)%10+48;price_all[2]=46;price_all[3]=(price_temp2%1000)/100+46、液晶显示屏

8;price_all[4]=((price_temp2%1000)%100)/10+48;price_all[5]=((price_temp2%1000)%100)%10+48;}这里主要承受了一个LM4229液晶显示器,引脚接在单片机接口上,当价格是人机交互的重要环节。7、按键局部KEYPAD-CUSTOM16每个按键分别对应不同的功能,如数字0~9求执行,实现单价设置等根本功能。8、报警器自动报警提示,大大加大了电子秤的有用性。试验中蜂鸣器与单片机接口相连,由单片机检测到超重信号时,将报警信号传达给蜂鸣器,便完成了本局部功能。四、电路仿真图及相关介绍5显示界面Keil5hexMCU,MCU数据对各局部接口电路初始化。200msLM4229LTC1297MCULM4229入到液晶显示屏进展显示。五、局部程序代码1、主函数设计整个设计中承受由下向上的设计思路。主程序中主要完成对LCM4229、LTC1297、及键盘扫描程序的调用。在编写程序的过程中,各变量统一承受全局量全部承受浮点数。voidmain(void){delay(500); //系统延时500ms启动//ad_data=0;//采样值存储初始化为0lcd_init; //显示初始化disp_init; //进入欢送界面delay(1000); //延时进入称量画面 “);clear_lcd(0,4,40);clear_lcd(16,0,100);clear_lcd(28,0,40);clear_lcd(44,0,100);clear_lcd(56,0,40);clear_lcd(72,0,100);clear_lcd(84,0,40);clear_lcd(100,0,100);clear_lcd(112,0,40);write_lcd(0,8,“有用电子秤“);while(1){、LM4229

ad_data=Adc0832(0);//采样值存储单元初始化为0alarm;data_pro;//读取重量keyscan; //²查询商品种类write_lcd(40,0,“------------------------------write_lcd(56,0,“单价:“);write_lcd(56,11,price_danjia);write_lcd(56,20,“元/千克“);write_lcd(72,0,“总重量:“);write_lcd(72,11,abc);write_lcd(72,20,“千克“);write_lcd(88,0,“总价:“);price_jisuan; //计算出价格write_lcd(88,10,price_all);write_lcd(88,20,“Ôª“);}}LM4229液晶能够显示比较简单的汉字和图形,首先必需对其写入掌握操作直到写完全部数据为止。write_data(place&0xff);//写入地址高位write_data(place/256);//写入地址低位write_com(0x24); //地址设置write_com(0xb0); //设置数据自动写write_data(ASC_MSK[(c1-0x20)*16+k]);write_com(0xb2); //自动复位place=place+30;、LTC1297LTC1297CS,CLK,DATA//采集并返回ucharAdc0832(unsignedcharchannel)//AD转换,返回结果{uchari=0;ucharj;uintdat=0;ucharndat=0;if(channel==0)channel=2;if(channel==1)channel=3;ADDI=1;_nop_;_nop_;ADCS=0;//拉低CS端_nop_;_nop_;ADCLK=1;//拉高CLK端_nop_;_nop_;ADCLK=0;//拉低CLK端,形成下降沿1_nop_;_nop_;ADCLK=1;//拉高CLK端ADDI=channel&0x1;_nop_;_nop_;ADCLK=0;//拉低CLK,形成下降沿2_nop_;_nop_;ADCLK=1;//拉高CLK端ADDI=(channel>>1)&0x1;_nop_;

_nop_;ADCLK=0;//拉低CLK,形成下降沿3ADDI=1;//掌握命令完毕_nop_;_nop_;dat=0;for(i=0;i<8;i++){dat|=ADDO;//收数据ADCLK=1;_nop_;_nop_;ADCLK=0;//形成一次时钟脉冲_nop_;_nop_;dat<<=1;if(i==7)dat|=ADDO;}for(i=0;i<8;i++){j=0;j=j|ADDO;//收数据ADCLK=1;_nop_;_nop_;ADCLK=0;//形成一次时钟脉冲_nop_;_nop_;j=j<<7;ndat=ndat|j;if(i<7)ndat>>=1;}ADCS=1;//拉高CS端ADCLK=0;//拉低CLK端ADDO=1;//拉高数据端,回初始状态dat<<=8;dat|=ndat;4、4*4

return(dat);//returnadk}本设计中承受了4*4MCUvoidkeyscan{P1=0xfe;temp=P1;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P1;temp=temp&0xf0;while(temp!=0xf0){temp=P1;switch(temp){case0xee:num=1,price=price_unit[0],write_lcd(24,0,““);break;case0xde:num=2,price=price_unit[1],write_lcd(24,0,““);break;case0xbe:num=3,price=price_unit[2],write_lcd(24,0,““);break;case0x7e:num=4,price=price_unit[3],write_lcd(24,0,““);break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}}}P1=0xfd;temp=P1;temp=temp&0xf0;while(temp!=0xf0){delay(5);

temp=P1;temp=temp&0xf0;while(temp!=0xf0){temp=P1;switch(temp){case0xed:num=5,price=price_unit[4],write_lcd(24,0,““);break;case0xdd:num=6,price=price_unit[5],write_lcd(24,0,““);break;case0xbd:num=7,price=price_unit[6],write_lcd(24,0,““);break;case0x7d:num=8,price=price_unit[7],write_lcd(24,0,““);break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}}}P1=0xfb;temp=P1;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P1;temp=temp&0xf0;while(temp!=0xf0){temp=P1;switch(temp){case0xeb:num=9,price=price_unit[8],write_lcd(24,0,““);break;case0xdb:num=10,price=price_unit[9],write_lcd(24,0,““);break;case0xbb:num=11,price=price_unit[1],write_lcd(24,0,“名称:苹果“);;break;case0x7b:num=12,price=price_unit[2],write_lcd(24,0,“名称:葡萄“);;break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}}}P1=0xf7;temp=P1;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P1;temp=temp&0xf0;while(temp!=0xf0){temp=P1;switch(temp){case0xe7:num=13,price=price_unit[3],write_lcd(25、报警子函数voidalarm(void){if(ad_data>=256)beep=0; //启动报警elsebeep=1;}

4,0,“名称:草莓“);;break;case0xd7:num=14,price=price_unit[4],write_lcd(24,0,“名称:西瓜“);;break;case0xb7:num=15,price=price_unit[5],write_lcd(24,0,“名称:李子“);;break;case0x77:num=16,price=price_unit[6],write_lcd(24,0,“名称:香蕉“);;break;}while(temp!=0xf0){temp=P1;temp=temp&0xf0;}}}price_temp1=(int)(price*1000);price_danjia[0]=price_temp1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论