《电子称设计bwze.docx》由会员分享,可在线阅读,更多相关《电子称设计bwze.docx(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、电子称设设计方案案班级;机机电一体体化八班班姓名;丰丰凯学号;目录电子技能能课程设设计报告告书1基于ATT89CC51的的数字电电子秤的的设计11、设计计目的12、设计计的主要要内容和和要求13、 整整体设计计方案13.1设设计方案案13.2工工作原理理14、 硬硬件电路路的设计计25、软件件设计35.1主主程序设设计35.2 LM442299液晶显显示驱动动程序45.3 ADCC08332采样样程序55.4 4*44键盘程程序66、系统统仿真67、 使使用说明明 98、设计计总结9参考文献献9附录A110-29-基于ATT89CC51的的数字电电子秤的的设计1、设计计目的 单片片机以其其功能
2、强强,体积积小,功功耗低,易易开发等等很多优优势被广广泛应用用。但单单片机不不是万能能的,也也存在不不适合的的场合,我我们要充充分利用用单片机机的内部部资源和和选择合合适的单单片机来来完成我我们的设设计。本本数字电电子秤的的设计过过程中需需要用到到A/DD转换、键键盘、液液晶显示示、复位位电路和和蜂鸣器器报警驱驱动电路路的知识识,同时时在软件件的设计计过程中中需要用用到键盘盘扫描、液液晶显示示驱动、模模数转换换程序及及汉字库库的的设设计,可可以很好好的将数数电、模模电、单单片机知知识进行行综合应应用。在在综合应应用中进进一步熟熟悉单片片机设计计的开发发各个流流程,最最终达到到巩固固基础、注注重
3、设计计、培养养技能、追追求创新新、走向向实用的目的的。2、设计计的主要要内容和和要求 本文文主要完完成一个个简单实实用数字字电子秤秤的硬件件电路部部分和软软件部分分的设计计。在设设计的过过程学会会使用单单片机对对数字电电子秤的的各种功功能进行行控制。本本设计中中的数字字电子秤秤要求能能够显示示商品的的名称、价价格、总总量、总总价等;能够自自动完成成商品的的价格计计算;能能够储存存几种简简单商品品的价格格;能够够具有超超重提醒醒功能,一一旦重量量超出了了自身重重量的测测量的范范围,发发出警报报;同时时对数字字电子秤秤的测量量范围要要达到55KG,测测量精度度要求达达到0.0011。3、 整体设计
4、计方案3.1设设计方案案整个数字字电子秤秤电路由由电源电电路、单单片机主主控制电电路、LLM42229显显示电路路、蜂鸣鸣器报警警电路、44*4键键盘电路路和压力力传感电电路(AADC008322采样)66个部分分组成。如如图3.1所示示。3.2工工作原理理打开电源源开关,数数字电子子秤开始始工作。接接通电源源时,数数字电子子秤进入入欢迎界界面“欢迎使使用电子子秤 设设计”。此此时数字字电子秤秤上MCCU开始始工作,键键盘不断断进行扫扫描,同同时 通通过ADDC08832也也不断进进行外部部称量数数据采样样,LCCD上显显示“实用电电子秤 名称 单价”。当载物台上放有物体时,ADC0832立即
5、将数据收集送给单片机处理。此时工作人员只要输入对应商品的代码编号,在240*128的LCD上可以看到相应商品的名称,单价,总重,总价格等信息。在称量的过程中,一旦物体自身的重量超出电子秤的称量范围,蜂鸣器立即会发出“滴滴”警报声告诉工作人员,所称量物品超重。图3.11 整体体设计方方框图4、 硬件电路路的设计计数字电子子秤采用用AT889C551单片片机作为为微处理理器,接接口电路路由晶振振、LMM42229显示示电路、44*4按按键电路路、ADDC08832电电路、报报警电路路、存储储器等组组成。控控制器系系统的硬硬件电路路原理图图如图44.1所所示。控制器系系统硬件件电路的的工作过过程是:
6、打开电电源时,MMCU及及各个部部分电路路开始工工作,MMCU调调用内部部存储数数据对各各部分接接口电路路初始化化。2000mss后LMM42229进入入欢迎界界面,AADC008322不断对对外部数数据进行行采样交交给MCCU进行行处理,一一旦有物物品放入入载物台台,ADDC08832立立即发送送中断请请求,并并将本次次采集数数据交给给MCUU处理,之之后LMM42229显示示相应数数据量。在在此过程程中,键键盘也在在不断进进行扫描描,一旦旦有键按按下,单单片机也也会对其其数据进进行相应应处理,然然后将对对LM442299进行写写操作。图4.11 数字字电子秤秤硬件电电路图5、软件件设计本设
7、计中中的程序序由主控控制程序序、LMM42229液晶晶显示驱驱动程序序、ADDC08832采采样程序序和4*4键盘盘程序组组成。5.1主主程序设设计整个设计计中采用用由下向向上的设设计思路路。主程程序中主主要完成成对LCCM42229、AADC008322、及键键盘扫描描程序的的调用。在在编写程程序的过过程中,各各变量统统一采用用全局变变量方式式命名,同同时考虑虑到电子子秤对精精度的要要求,本本设计中中的价格格及总量量相关的的变量全全部采用用浮点数数。主程程序流程程图如图图5.11所示。图5.11 主程程序流程程图5.2 LM442299液晶显显示驱动动程序图5.22 LMM42229液晶晶显
8、示驱驱动程序序流程图图 LMM42229液晶晶能够显显示比较较复杂的的汉字和和图形,首首先必须须对其写写入控制制操作字字,包括括图形的的显示方方式,字字体的模模式。然然后写入入初始行行地址,指指针自动动左移,直直到写完完全部数数据为止止。 wriite_datta(pplacce&00xfff); /写入入地址高高位 wriite_datta(pplacce/2256); /写入入地址低低位 wriite_comm(0xx24); /地址址设置 wriite_comm(0xxb0); /设置置数据自自动写 wriite_datta(AASC_MSKK(cc1-00x200)*116+kk);
9、/*-例如:0的AASCIII码为为0x330, 在ASSC_MMSK中中的位置置为0xx10*16 -16字字节字码码依次写写入LCCD-*/ wriite_comm(0xxb2); /自动动复位 plaace=plaace+30;5.3 ADCC08332采样样程序图5.33 ADDC08832采采样程序序程序流流程图 MCCU通过过拉低CCS、拉拉高CLLK来启启动ADDC08832进进行外部部压力传传感转换换后的电电压信号号进行采采样,每每产生88个CLLK脉冲冲,DAATA获获得一位位完整的的8biit数据据,此时时MCUU发送中中断请求求,拉高高CS,拉拉低CLLK,并并将数据据D
10、ATT返回。5.4 4*44键盘程程序图5.44 4*4键盘盘程序 本设设计中采采用了44*4矩矩阵式键键盘,单单片机定定时进行行查询。首首先单片片机发送送行扫描描代码,然然后进行行列扫描描,当发发现某一一列出现现了低电电平时,即即返回相相应的键键盘值。若若没有发发现则说说明当前前行没有有键按下下,行扫扫描右移移一位,继继续执行行列扫描描。MCU根根据相应应的键值值,即可可确定被被按下的的键。6、系统统仿真在prootuees的IISISS 7.4spp2软件件环境下下画出电电路原理理图,接接下来就就是将设设计的程程序在KKeill C551 Vissionn3开发发集成环环境上编编译成机机器
11、语言言,进入入Prootuees的IISISS,双击击AT889C551,在在Prrogrram Fille中添加maiin.hhex文件到到AT889C551中,如如图6.1所示示。图6.11 数字字电子秤秤仿真设设置图 该仿真真验证的的过程:首先按按开始按按,此时时数字电电子秤进进入欢迎迎界面。LLM42229上显示欢迎使使用电子子秤 设设计。如如图6.2所示示。图6.22 数字字电子秤秤欢迎界界面图 接下来来调节压压力传感感模拟电电路电压压,将电电压设为为0.000表示示此时载载物台上上没有物物体。此此时LMM42229切换换到称量量画面。显显示指示示“实用电电子秤 名称单价:00.00
12、00元/千克 总重量量:0.0000千克 总价:00.0000元”。如图图6.33所示。图6.33 数字字电子秤秤模拟空空载图 最后,上上调压力力传感电电压表示示已载有有商品,同同时按下下“6”号键,表表示选择择6号商商品“苹果”。此时时LM442299上显示示“名称:苹果 单价:6.8800元元/千克克 总重重量:33.4996千克克 总价价:“23.7333元”(实际际6.88*3.4966=233.77758元元)。达达到基本本要求。如如图6.4所示示。最大大称量重重量4.9800KG,如图66.5所所示。图6.44 数字字电子秤秤模拟载载物显示示仿真图图图6.44 数字字电子秤秤模拟最
13、最大称量量范围仿仿真图7、 使用说明明 在使用用仿真的的过程中中,首先先打开仿仿真电路路图,并并加载好好“HEXX”文件到到单片机机中。后后将压力力传感电电压调制制0.000,点点击按钮钮,开始始仿真。(为为了能够够看到清清晰的演演示过程程,请将将电路的的背景设设为无。)整整个电子子秤设置置了“0115”个按键键,其中中的“0”键表示示取消,其其他键代代表155种可供供选择商商品价格格。(另另本设计计的仿真真文件需需要安装装prootuees7.4以上上版本才才能打开开。)8、设计计总结 通通过本次次电子技技能课程程数字电电子秤的的设计,让让我更加加熟悉了了单片机机的整个个设计流流程。在在设计
14、过过程中,我我也意识识到好的的编程书书写习惯惯对软件件设计的的重要性性。刚刚刚开始由由于自己己变量大大部分采采用的是是局部变变量,导导致程序序仿真出出错,给给自己的的修改创创造不小小的麻烦烦。经过过一天的的努力,统统一采用用全局变变量终于于实现最最终的仿仿真结果果和设计计的全部部任务和和要求。当当然本数数字电子子秤还有有很多可可以改进进的地方方,例如如可以改改进按键键功能方方便工作作人员随随时对各各数据进进行修改改等等。由由于设计计时间有有限,只只能在以以后的学学习过程程中做更更进一步步的改进进。参考文献献1 于永.51单单片机CC语言常常用模块块于综合合系统设设计实例例精讲M.北京:电子工工
15、业出版版社,20008:888-994.2 李建忠忠.单片机机原理及及应用M.西安:西安电电子科技技大学出出版,20002:663-778.3 张俊谟谟.单片机机中级教教程MM.北北京:北北京航空空航天大大学出版版,20000:336-445.附录A#inccludde#inccludde#inccludde #inccludde #inccludde#deffinee uccharr unnsiggnedd chhar#deffinee uiint uunsiigneed iintsbitt ADDCS =P335; sbitt ADDDI =P337; sbitt ADDDO =P337;
16、 sbitt ADDCLKK =PP366; uintt x11,y11,z11=0,w1;uchaar aad_ddataa,k,n,mm,e,numm,s; /采采样值存存储uintt teemp11;sbitt beeep =P330; charr prresss_daata; /标度变变换存储储单元floaat preess;unsiigneed ccharr add_allarmm,teemp; /报报警值存存储单元元unsiigneed ccharr abbc55=48,46,48,48,48;unsiigneed ccharr prricee_alll66=48,48,46,48
17、,48,48;floaat ppricce_uunitt100=5.55,2.8,33.6,4.55,5.8,66.8,7.99,8.0,99.5,0; /商品初初始单价价uchaar ppricce_ddanjjia5=488,466,488,488,488;floaat ppricce;uintt prricee_teemp11,prricee_teemp22; /商商品总价价 uchaar AAdc008322(unnsiggnedd chhar chaanneel);voidd allarmm(vooid);voidd daata_proo(vooid);voidd deelayy(u
18、iint k);voidd keeysccan();voidd diisp_iniit();voidd ppricce_jjisuuan();/*主函数*/voidd maain(voiid) ddelaay(5500); /系统延延时5000mss启动 /add_daata=0; /采样值值存储单单元初始始化为00 llcd_iniit(); /显示初初始化 ddispp_innit(); /开始始进入欢欢迎界面面 ddelaay(110000); /延时时进入称称量画面面 ccleaar_llcd(0,44,400); ccleaar_llcd(16,0,880); ccleaar_llc
19、d(28,0,440); ccleaar_llcd(44,0,880); ccleaar_llcd(56,0,440); ccleaar_llcd(72,0,880); ccleaar_llcd(84,0,440); ccleaar_llcd(1000,0,80); ccleaar_llcd(1122,0,40); wwritte_llcd(0,88,实实用电子子秤); whiile(1) ad_datta =Adcc08332(00); /采采样值存存储单元元初始化化为0 alaarm(); datta_ppro(); /读读取重量量 keyyscaan(); /查查询商品品种类 wriit
20、e_lcdd(400,0,-); wriite_lcdd(566,0,单 价:); wriite_lcdd(566,111,prricee_daanjiia); wriite_lcdd(566,200,元元/千克克); wriite_lcdd(722,0,总重重量:); wriite_lcdd(722,111,abbc); wriite_lcdd(722,200,千千克); wriite_lcdd(888,0,总 价:); priice_jissuann(); /计算算出价格格 wriite_lcdd(888,100,prricee_alll); wriite_lcdd(888,200,元元)
21、; wriite_lcdd(1112,00,);/*读ADCC08332函数数*/采集集并返回回uchaar AAdc008322(unnsiggnedd chhar chaanneel) /AD转转换,返返回结果果 uccharr i=0; uchhar j; uinnt ddat=0; uchhar ndaat=00; if(chaanneel=0)cchannnell=2; if(chaanneel=1)cchannnell=3; ADDDI=11; _noop_(); _noop_(); ADCCS=00;/拉低CCS端 _noop_(); _noop_(); ADCCLK=1;/拉高
22、高CLKK端 _noop_(); _noop_(); ADCCLK=0;/拉低低CLKK端,形形成下降降沿1 _noop_(); _noop_(); ADCCLK=1;/拉高高CLKK端 ADDDI=cchannnell&0xx1; _noop_(); _noop_(); ADCCLK=0;/拉低低CLKK端,形形成下降降沿2 _noop_(); _noop_(); ADCCLK=1;/拉高高CLKK端 ADDDI=(chaanneel1)&0x11; _noop_(); _noop_(); ADCCLK=0;/拉低低CLKK端,形形成下降降沿3 ADDDI=11;/控制命命令结束束 _noo
23、p_(); _noop_(); datt=0; forr(i=0;ii8;i+) daat|=ADDDO;/收数数据 ADDCLKK=1; _nnop_(); _nnop_(); ADDCLKK=0;/形形成一次次时钟脉脉冲 _nnop_(); _nnop_(); daat=1; iff(i=7)datt|=AADDOO; forr(i=0;ii8;i+) j=0; j=j|AADDOO;/收数据据 ADDCLKK=1; _nnop_(); _nnop_(); ADDCLKK=0;/形形成一次次时钟脉脉冲 _nnop_(); _nnop_(); j=j7; nddat=ndaat|jj; if
24、f(i=1; ADCCS=11;/拉搞CCS端 ADCCLK=0;/拉低低CLKK端 ADDDO=11;/拉高数数据端,回到初初始状态态 datt=8; datt|=nndatt; retturnn(daat); /rretuurn ad k voidd daata_proo(vooid) uunsiigneed iint; iif(00add_daata=2556) beeep=0; /则则启动报报警 eelsee beeep=1; voidd deelayy(uiint k) uuintt i,j; ffor(i=00;ik;ii+) forr(j=0;jj1000;jj+); /开机机欢
25、迎界界面voidd diisp_iniit() -); wwritte_llcd(84,/键盘盘服务程程序voidd keeysccan()PP1=00xfee;ttempp=P11;ttempp=teemp&0xff0;wwhille(ttempp!=00xf00)dellay(5);temmp=PP1;temmp=ttempp&0xxf0;whiile(temmp!=0xff0)temmp=PP1;swiitchh(teemp) casse 00xeee:nuum=11,prricee=prricee_unnit0, wrritee_lccd(224,00,名名 称称: 杏 仁);bree
26、ak;casse 00xdee:nuum=22,prricee=prricee_unnit1,wriite_lcdd(244,0,名 称: 李 子);breeak;casse 00xbee:nuum=33,prricee=prricee_unnit2,wriite_lcdd(244,0,名 称: 草 莓);breeak;casse 00x7ee:nuum=44,prricee=prricee_unnit3,wriite_lcdd(244,0,名 称: 葡 萄);breeak;whiile(temmp!=0xff0)temmp=PP1;temmp=ttempp&0xxf0;PP1=00xfdd;
27、ttempp=P11;ttempp=teemp&0xff0;wwhille(ttempp!=00xf00)dellay(5);temmp=PP1;temmp=ttempp&0xxf0;whiile(temmp!=0xff0)temmp=PP1;swiitchh(teemp)casse 00xedd:nuum=55,prricee=prricee_unnit4,wriite_lcdd(244,0,名 称: 西 瓜);breeak;casse 00xddd:nuum=66,prricee=prricee_unnit5,wriite_lcdd(244,0,名 称: 苹 果);breeak;casse
28、 00xbdd:nuum=77,prricee=prricee_unnit6,wriite_lcdd(244,0,名 称: 雪 梨);breeak;casse 00x7dd:nuum=88,prricee=prricee_unnit7,wriite_lcdd(244,0,名 称: 核 桃);breeak;whiile(temmp!=0xff0)temmp=PP1;temmp=ttempp&0xxf0;PP1=00xfbb;ttempp=P11;ttempp=teemp&0xff0;wwhille(ttempp!=00xf00)dellay(5);temmp=PP1;temmp=ttempp&0
29、xxf0;whiile(temmp!=0xff0)temmp=PP1;swiitchh(teemp)casse 00xebb:nuum=99,prricee=prricee_unnit8,wriite_lcdd(244,0,名 称: 香 蕉);breeak;casse 00xdbb:nuum=110,ppricce=ppricce_uunitt9,wrritee_lccd(224,00,名名 称称: 商商品代码码);breeak;casse 00xbbb:nuum=111,ppricce=ppricce_uunitt1;breeak;casse 00x7bb:nuum=112,ppricce=
30、ppricce_uunitt2;breeak;whiile(temmp!=0xff0)temmp=PP1;temmp=ttempp&0xxf0;PP1=00xf77;ttempp=P11;ttempp=teemp&0xff0;wwhille(ttempp!=00xf00)dellay(5);temmp=PP1;temmp=ttempp&0xxf0;whiile(temmp!=0xff0)temmp=PP1;swiitchh(teemp)casse 00xe77:nuum=113,ppricce=ppricce_uunitt3;breeak;casse 00xd77:nuum=114,ppric
31、ce=ppricce_uunitt4;breeak;casse 00xb77:nuum=115,ppricce=ppricce_uunitt5;breeak;casse 00x777:nuum=116,ppricce=ppricce_uunitt6;breeak;whiile(temmp!=0xff0)temmp=PP1;temmp=ttempp&0xxf0; priice_temmp1=(innt)(priice*10000);priice_dannjiaa0=prricee_teemp11/10000+48; /取取单价个个位priice_dannjiaa1=466;priice_dann
32、jiaa2=(ppricce_ttempp1%110000)/1100+48; /取取单价十十分位priice_dannjiaa3=(priice_temmp1%10000)%1000)/110+448; /取取单价百百分位priice_dannjiaa4=(priice_temmp1%10000)%1000)%110+448;/取取单价千千分位voidd ppricce_jjisuuan() ppricce_ttempp2=(intt)(ppricce*ppresss*110000); ppricce_aall0=priice_temmp2/100000+48; priice_alll1=(ppricce_ttempp2/110000)%110+448; ppricce_aall2=46;ppricce_aall3=(prricee_teemp22%10000)/1000+448; ppricce_aall4=(ppricce_ttempp2%110000)%1100)/100+488; ppricce_aall5=(ppricce_ttempp2%110000)%1100)%100+488;