电子台秤课程设计.docx
《电子台秤课程设计.docx》由会员分享,可在线阅读,更多相关《电子台秤课程设计.docx(15页珍藏版)》请在冰豆网上搜索。
电子台秤课程设计
目录
目录1
摘要2
ABSTRACT3
第1章前言4
1.1设计目的4
1.2设计意义5
第2章设计方案以及原理6
2.1总体设计方案6
2.2电子台秤工作原理6
第3章硬件的方案设计8
3.1基于AT89S52的控制电路8
3.2传感器9
3.3信号处理电路10
3.4A/D转换器10
3.5键盘输入电路11
3.6显示电路12
第4章软件设计以及程序编写13
4.1主程序流程图13
4.2子程序设计14
4.2.1A/D转换启动及数据读取程序设计14
4.2.2键盘输入控制程序及显示程序设计15
第五章调试与仿真17
5.1调试17
5.2仿真17
总结19
致谢20
参考文献21
摘要
本次课程设计是以51系列单片机AT89S52为控制核心,实现电子秤的基本控制功能。
首先通过了解电子台秤的应用以及发展前景对本次设计有一个大概的认识,再通过制定总体设计方案以及了解其原理对本次设计有一个清晰的思路。
本次设计的硬件电路包括AT89S52单片机、称重传感器、放大滤波电路、A/D转换器、键盘输入电路和LCD显示电路。
通过了解它们的工作原理以及工作环境,来完成电子台秤的硬件部分设计;然后通过绘制主程序流程图以及子程序的编写来完成软件部分设计;最后,对整体的调试和系统仿真来完成本次课程设计。
关键词:
AT89S52单片机;A/D转换器;LCD显示器;
ABSTRACT
Thecurriculumdesignisbasedon51seriesMCUAT89S52asthecontrolcore,realizethebasiccontrolfunctionsofelectronicscale.:
thefirstelectronicplatformscalethroughtheapplicationanddevelopmentprospectofthisdesignhaveaprobablyunderstanding,againbymakingoveralldesignandunderstandtheprincipleofthisdesignhasacleartrainofthought.ThedesignofhardwarecircuitincludingAT89S52singlechipmicrocomputer,weighingsensor,amplifiedfiltercircuit,A/Dconvertercircuit,keyboardinputandLCDdisplaycircuit.Byunderstandingtheirworkingprincipleandtheworkingconditions,tocompletethehardwarepartdesignoftheelectronicplatformscale;Thenthroughmappingthemainprogramflowchartandthewritingofthesubroutinetocompletethesoftwarepartofthedesign;Finally,thedebuggingandanalysisoftheoveralldesigntocompletethecourse.
Keywords:
AT89S52singlechipmicrocomputer;A/Dconverter;LCDdisplay;
第1章前言
21世纪,电子产品变得越来越丰富,给人们带来了很多很多的方便,其中电子秤成了人们生活中不可缺少的一部分。
大大小小的市场电子秤能够完成许多工作,为人们节省了时间,提高了工作效率。
在超市里的一台电子秤,它能很精确的称出商品的重量,还能去除皮重,更主要的是,它其中预存了超市里商品的单价,当称出商品的重量后,电子秤马上就能算出价格,不管几种商品都能一一累加,最后列出清单,可以说非常的智能化,而且非常的精确。
近年来,电子秤已愈来愈多地参与到数据处理和过程控制中。
现代称重技术和数据系统已经成为工艺技术、储运技术、预包装技术、收货业务及商业销售领域中不可缺少的组成部分。
随着称重传感器各项性能的不断突破,为电子秤的发展奠定了其础,国外如美国、西欧等一些国家在20世纪60年代就出现了0.1%称量准确度的电子秤,并在70年代中期约对75%的机械秤进行了机电结合式的电子化改造。
称重装置不仪是提供重量数据的单体仪表,而且作为工业控制系统和商业管理系统的一个组成部分,推进了工业生产的自动化和管理的现代化,它起到了缩短作业时间、改善操作条件、降低能源和材料的消耗、提高产品质量以及加强企业管理、改善经营管理等多方面的作用。
称重装置的应用已遍及到围民经济各领域,取得了显著的经济效益。
因此,称重技术的研究和衡器工业的发展各国都非常重视。
50年代中期电子技术的渗入推动了衡器制造业的发展。
60年代初期出现机电结合式电了衡器以来,经过40多年的不断改进与完善,我国电子衡器从最初的机电结合型发展到现在的全电子型和数字智能型。
现今电子衡器制造技术及应用得到了新发展。
电子称重技术从静态称重向动态称重发展:
计量方法从模拟测量向数字测量发展;测量特点从单参数测量向多参数测量发展,特别是对快速称重和动态称重的研究与应用。
通过分析近年来电子衡器产品的发展情况及国内外市场的需求,电子衡器总的发展趋势是小型化、模块化、集成化、智能化;其技术性能趋向是速率高、准确度高、稳定性高、可靠性高;其功能趋向是称重计量的控制信息和非控制信息并重的“智能化”功能;其应用性能趋向于综合性和组合性。
电子秤是电了衡器中的一种,衡器是国家法定计量器具,是围计民生、国防建设、科学研究、内外贸易不可缺少的计量设备,衡器产品技术水平的高低,将直接影响各行各业的现代化水平和社会经济效益的提高。
1.1设计目的
设计目的是为了学习和巩固知识,提高对所学应用基本理论分析和解决实际问题的能力,应设计并制作实际的模型实现电子秤要求的功能,从而达到并熟悉一个产品完整的开发流程和具体内容,提高实践应用能力。
1.2设计意义
随着生活水平的提高,商品的种类和样式越来越来多,我们出门买东西无论是在超市还是在市场都经常会用到电子称,电子称在我们的日常生活中已经成为必不可少的工具,因此,有针对性地开发出一套有实用价值的电子秤系统,从技术上克服上述诸多缺点,改善电子秤系统在应用中的不足之处,具有现实意义。
第2章设计方案以及原理
电子秤的应用系统是由硬件和软件所组成。
硬件指单片机、扩展的存储器、扩展的输入输出设备等部分;软件是各种工作程序的总称。
硬件和软件只有紧密配合、协调一致,才能提高系统的性能价格比。
从一开始设计硬件时,就应考虑相应软件的设计方法,而软件设计是根据硬件原理和系统的功能要求进行的。
2.1总体设计方案
按照设计的基本要求,系统可分为三大模块,数据采集模块、控制器模块、人机交互界面模块。
其中数据采集模块由压力传感器、信号的前级处理和A/D转换部分组成。
转换后的数字信号送给控制器处理,由控制器完成对该数字量的处理,驱动显示模块完成人机间的信息交换。
此部分对软件的设计要求比较高,系统的大部分功能都需要软件来控制。
在扩展功能上,本设计增加了一个过载、量程报警提示。
前端信号处理时,选用放大、A/D转换等措施,尤其在显示方面采用具有字符图文显示功能的LCD显示器。
这种方案不仅加强了人机交换的能力,而且满足设计要求,可以显示购物清单、所称量的物体信息等相关内容。
结构简图如图2-1。
图2-1结构简图
目前单片机技术比较成熟,功能也比较强大,被测信号经放大整形后送入单片机,由单片机对测量信号进行处理并根据相应的数据关系译码显示出被测物体的重量。
由于系统需要的按键较多,因此要加一个键盘显示管理芯片(ZLG7289)。
单片机控制适合于功能比较简单的控制系统,而且其具有成本低,功耗低,体积小算术运算功能强,技术成熟等优点。
2.2电子台秤工作原理
当被称物体放置在秤体的秤台上时,其重量便通过秤体传递到称重传感器,传感器随之产生力-电效应,将物体的重量转换成与被称物体重量成一定函数关系(一般成正比关系)的电信号(电压或电流等)。
此信号由放大电路进行放大、经滤波后再由模/数(A/D)器进行转换,数字信号再送到微处器的CPU处理,CPU不断扫描键盘和各种功能开关,根据键盘输入内容和各种功能开关的状态进行必要的判断、分析、由仪表的软件来控制各种运算。
运算结果送到内存贮器,需要显示时,CPU发出指令,从内存贮器中读出送到显示器显示,或送打印机打印。
一般地信号的放大、滤波、A/D转换以及信号各种运算处理都在仪表中完成。
第3章硬件的方案设计
根据设计要求以及系统所需要实现的功能,在设计系统时可以分成以下几个部分:
单片机控制模块,前端信号采集、处理、转换模块,人机接口界面以及系统电源部分。
3.1基于AT89S52的控制电路
AT89S52是51系列单片机的一个型号,它是ATMEL公司生产的。
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。
AT89S52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
AT89S52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。
主要引脚功能说明:
P3引脚功能复用见下表:
表3-1P3引脚功能复用
P3.0
串行通讯输入(RXD)
P3.1
串行通讯输出(TXD)
P3.2
外部中断0(INT0)
P3.3
外部中断1(INT1)
P3.4
定时器0输入(T0)
P3.5
定时器1输入(T1)
P3.6
外部数据存储器写选通WR
P3.7
外部数据存储器写选通RD
3.2传感器
能感受规定的被测量,并按照一定规律转换成可用输出信号的器件或装置。
通常传感器由敏感元件和转换元件组成。
其中敏感元件指传感器中能直接感受被测量的部分,转换部分指传感器中能将敏感元件输出量转换为适于传输和测量的电信号部分。
现代科技的快速发展使人类社会进入了信息时代,在信息时代人们的社会活动将主要依靠对信息资源的开发和获取、传输和处理,而传感器处于自动检测与控制系统之首,是感知获取与检测信息的窗口;传感器处于研究对象与测控系统的接口位置,一切科学研究和生产过程要获取的信息,都要通过它转换为易传输与处理的电信号。
因此,传感器的地位与作用特别重要。
为保证电子秤称量结果的准确度,克服传感器在低量程段线性度差的缺点。
传感器的量程应根据皮带秤的最大流量来选择。
在实际工作中,要求称重传感器的有效量程在20%~80%之间.线性好,精度高。
重量误差应控制存±0.OIKg,又考虑到秤台自重、振动和冲击分量,还要避免超重损坏传感器,根据设计需要,确定传感器的额定载荷为1Kg,允许过载为150%F.S,精度为0.05%,最大量程时误差±0.1kg,可以满足本系统的精度要求。
综合考虑,本设计采用SP20C-G501电阻应变式传感器,其最人量程为1Kg.称重传感器由组合式S型梁结构及金属箔式应变计构成,具有过载保护装置。
由于惠斯登电桥具诸如抑制温度变化的影响,抑制干扰,补偿方便等优点,所以该传感器测量精度高、温度特性好、工作稳定等优点,广泛用于各种结构的动、静态测量及各种电子秆的一次仪表。
该称重传感器主要由弹性体、电阻应变片电缆线等组成,其工作原理如图3-1所示。
图3-1称重传感器原理图
3.3信号处理电路
经由传感器或敏感元件转换后输出的信号一般电平较低而且有干扰;经由电桥等电路变换后的信号亦难以直接用来显示、记录、控制或进行信号转换。
为此,测量电路中常设有模拟放大环节和整流滤波环节。
图3-2为滤波放大电路图:
图3-2滤波放大电路图
图中电容C5、C6用来滤除采样信号电压中的高频噪声,选用0.1uF的普通独石电容;电容C7、C84用来滤除采样信号电压中的低频噪声,选用22uF的普通独石电容。
电阻R3、R4选用较小的阻值,因为采样信号电压值只有毫伏级,所以其阻值不宜太大,否则导致放大器由于输入电流太小而放大效果不明显。
微弱信号Vi1和Vi2被分别放大后从AD620的第6脚输出。
A/D转换器ICL7135的输入电压变化范围是-2V~+2V,传感器的输出电压信号在0~20mv左右,因此放大器的放大倍数在200~300左右,可将R9接成1K的滑动变阻器。
由于ICL7135对高频干扰不敏感,所以滤波电路主要针对工频及其低次谐波引入的干扰。
因为压力信号变化十分缓慢,所以滤波电路可以把频率做得很低。
图中的LM741的输出端与AD620的地端相连,LM741的2脚与6脚相连构成电压跟随器,R15与正负电源相接,通过改变R15的阻值可使VO与RET之间的压差变化,从而实现调零、去皮的功能。
3.4A/D转换器
A/D转换器选用的原则:
1、A/D转换器的位数。
A/D转换器决定分辨率的高低。
在系统中,A/D转换器的分辨率应比系统允许引用误差高一倍以上。
2、A/D转换器的转换速率。
不同类型的A/D转换器的转换速率大不相同。
积分型的转换速率低,转换时间从几豪秒到几十毫秒,只能构成低速A/D转换器,一般用于压力、温度及流量等缓慢变化的参数测试。
逐次逼近型属于中速A/D转换器,转换时间为纳秒级,用于个通道过程控制和声频数字转换系统。
3、是否加采样/保持器。
4、A/D转换器的有关量程引脚。
有的A/D转换器提供两个输入引脚,不同量程范围内的模拟量可从不同引脚输入。
5、A/D转换器的启动转换和转换结束。
一般A/D转换器可由外部控制信号启动转换,这一启动信号可由CPU提供。
转换结束后A/D转换器内部转换结束信号触发器置位,并输出转换结束标志电平。
通知微处理器读取转换结果。
6、A/D转换器的晶闸管现象。
其现象是在正常使用时,A/D转换器芯片电流骤增,时间一长就会烧坏芯片。
考虑到其他部分所带来的干扰,12位A/D转换器无法满足系统精度要求。
所以我们需要选择14位或者精度更高的A/D转换器。
3.5键盘输入电路
键盘输入是人机交互界面中重要的组成部分,它是系统接受用户指令的直接途径。
键盘是由若干个按键开关组成,键的多少根据单片机应用系统的用途而定。
键盘由许多键组成,每一个键相当于一个机械开关触点,当键按下时,触点闭合,当键松开时,触点断开。
单片机接收到按键的触点信号后作相应的功能处理。
因此,相对于单片机系统来说键盘接口信号是输入信号。
矩阵式键盘又叫行列式键盘。
如图3-3,用I/O口线组成行、列结构,按键设置在行列的交点上。
例如,用2×2的行列结构可构成4个键的键盘,4×4行列结构可构成16个键的键盘。
因此,在按键数量较多时,可以节省I/O口线。
相对于专用芯片式可以节省成本,且更为灵活。
缺点就是需要用软件处理消抖、重键等问题。
图3-3键盘输入电路图
3.6显示电路
LCD液晶显示器是LiquidCrystalDisplay的简称,LCD的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。
比LED要好的多,但是价钱较其贵。
液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。
液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。
由于本次设计的显示模块需要显示多位数字,如果采用数码管显示的话将会占用多个单片机I/O口,使得电路变得更为复杂。
所以选用液晶显示,1602LCD符合基本条件,能够采用。
第4章软件设计以及程序编写
程序数据的一种理想方法是结构化程序设计方法。
4.1主程序流程图
主程序流程图4-1给出了系统工作的基本过程,描述了信号的基本流向,起到一个向导的作用。
图4-1主程序流程图
4.2子程序设计
系统子程序主要包括A/D转换启动及数据读取程序设计、键盘输入控制程序设计及显示程序设计等。
4.2.1A/D转换启动及数据读取程序设计
externucharcodeadcount2[3];
externbitbAd;//已产生AD值
externbitb_warnled;
externbitb_steady;
externbitb_up_last;
externucharadup_count;
externulongidataad_steady;//AD数据处理后的稳定值
externucharadd_count;//AD累加计数器
externulongidataadd_val;//AD累加值
externucharwdcount;
externucharadup_count;//AD异常值计数
externucharaddcount3;
externulongidataup_val;
externulongidataadval;//AD芯片采样值
externulongidatalvbo[6];
externucharidatafollow_time;//零位跟踪时间
externucharidatatime_weight;//重量为0时,消隐时间
voidtime(void);
ulongbuf_left(ulongtemp);
voidad_processor(void)
{ulongtemp1;
ulongtemp2;
uchari;
bitb_up;
if(bAd)
{
bAd=0;
time();//时间计数器自减
adval=adval>>4;
add_val=add_val+adval;//传感器累加滤波
add_count++;
if(add_countreturn;
temp1=add_val/addcount3;//累加n次平均
add_count=0;
add_val=0;//传感器累加清零
i=(uchar)(temp1>>16)+1;
4.2.2键盘输入控制程序及显示程序设计
externbitb_keyok;//有按键产生标记
externbitb_longdown;//长按下标记
externucharkey_num;//键值
externucharkey_temp;//临时键值
externucharkey_count;//键长按计数
externucharkey_dly;//键去抖动延时
externucharbeep_time;//蜂鸣时间
voidkey_scan1();////按键松开或没有按下处理
/****************************************************/
oiddisp_t1(void)interrupt3using1//显示中断程序
{
uchartemp;
TR1=0;
P_OE=1;//高阻态,禁止输出
if((disp_number==(5-bdf.dp))&(bdf.dp!
=0))//这一位是否有小数点
temp=0x08;//小数点段码
else
temp=0;
if(disp_number==6)//指示灯显示不用查表
P0=fun_led;//
else
{
if((disp_number==fu_number)&&b_fuhao)
temp=temp|0x40;
if((disp_number==flash_num)&b_flash)//是否有闪烁位
P0=0x0;
else
disp_number=0;
if(beep_time)//是否要鸣叫
{
if(!
TR0)
{buz0=~buz1;TR0=1;}
beep_time--;
}
else
{TR0=0;buz0=1;buz1=1;}//不鸣叫时置高,减小电流
if(key_dly)//按键去抖动延时
key_dly--;
if(flash_num<6)
{
if(flash_time)//闪烁计时
flash_time--;
else
{b_flash=!
b_flash;flash_time=20;}//时间到,置闪烁标记
}
}
TH1=0xf8;
TL1=0x18;
TR1=1;
}
主程序的作用为程序初始化,计算单价木单重(单价和单重分别在定时中断程序和INT0外部中断程序中获得),并时时显示十进制的单重,单价,总价。
设定T0为计数工作方式,T1为定时工作方式。
其中R0为标志位寄存器当为OOH时为正常显示方式。
当为01H时为累计显示方式,在T1定时中断程序中。
一秒钟采样物料重量(已转成脉冲频率),并赋值重量计算RAM区和显示RAM区。
在INTO外部中断程序中,采样单价并赋值单价计算。
第5章调试与仿真
系统的调试工作环节在设计中的地位尤为重要,在硬件焊接布线与软件程序编写完成之后,就要对其进行调试,以保证编写的软件程序通过硬件能够正常实现其功能,完成设计要求。
5.1调试
可采用万用表测试。
先用万用表复核目测中认为可疑的连线或接点,查看它们的通断状态是否与设计规定相符。
再检查各种电源线与地线之间是否有短路现象。
在短路问题排除后通电。
上电时,首先检查所有插座或器件引脚的电源端是否有符合要求的电压值,接地端电压值是否接近于零。
然后,在断电状态下将芯片逐个插在电路板上的相应插座中,每插上一个做一遍上述的电压检查,特别要检查电源到地是否短路,这样就可以确定电源错误或与地短路发生在哪块芯片上。
在对各芯片、器件加电过程中,还要注意观察芯片或器件是否出现过热、变色、冒烟、异味等现象,如出现这些现象,应立即断电,仔细检查电源加载等情况,找出产生异常的原因加以解决。
5.2仿真
在protues的ISIS7.6sp4软件环境下画出电路原理图,接下来就是将设计的程序在KeilC51μVision3开发集成环境上编译成机器语言,进入Proteus的ISIS,鼠标左键点击菜单“Debug”,选中“useromotedebugermonitor”,便可实现KeilC与Proteus连接调试。
首先在Proteus中双击