1、 届毕业设计(论文)题 目: 电子秤的设计 学 院: 电子与信息工程学院 专 业: 电子信息工程 学 号: 姓 名: 指导老师: 起讫日期: 2014 年 06 月电子秤的设计摘 要智能电子秤是日常生活中经常使用的一种测重装置,它采用了电子技术、传感器技术等,测量的误差小,可以将“精确、快速、自动”的要求很好的满足。现实生活中,在学校、市场、工厂、医院等地方都得到了广泛的推广和应用。本设计主要以单片机为中心模块,针对电子秤的自动称重、自动处理数据、自动显示来进行设计。本系统中的数据采集模块主要负责将压力这个非电量转化为电量;信号处理模块主要负责对信号的放大和模/数转换;单片机控制模块主要负责数
2、据的进一步处理、控制端口的输出等;显示模块主要负责显示重量、单价、总价;程序设计方面采用的模块化的设计思想。通过对这些模块的方案选择以及硬件设计,详细的介绍了本系统是如何进行数据采集、数据处理以及显示的。关键词:电子秤 变阻式压力传感器 单片机 A/D转换器The design of electronic scalesAbstractIntelligent electronic scale is one of the weighing device that we are frequently used in daily life, which uses electronic technolo
3、gy, sensor technology with a small measurement error. And it can be nice to meet the requirements-precisely, quickly and automatically. In real life, it has been widely promoted and applied in schools, markets, factories, hospitals and other places.The system uses the single-chip as central module,b
4、eing designed for automatically scales for weighing, automatic data processing, automatic display. Data acquisition module is mainly responsible for the pressure of the non-power into electricity; The signal processing module is mainly responsible for signal amplification and A / D converter ; SCM c
5、ontrol module is mainly responsible for the further processing of data, the control output port, etc.; The display module is mainly responsible for displaying the weight, unit price, total price; modular design concept adopted in the design process.Through selecting the scheme of these modules and d
6、esigning hardware, describes in detail how the system for data acquisition, data processing and display.Key Words:Electronic scales; variable resistance type pressure sensor; microcontroller; A/D converter目 录摘 要Abstract第一章 绪论11.1引言11.2 国内外的发展现状11.3 研究的目的和意义11.4 总体设计思路21.5 论文结构2第二章 系统方案设计32.1系统整体设计方案
7、比较32.2 系统各模块电路设计方案比较42.2.1 单片机处理模块42.2.2 数据采集模块52.2.3 信号处理模块62.2.4 显示模块72.2.5 按键电路72.3 具体实施方案简介8第三章 系统硬件设计93.1 基于STC89C52的单片机控制模块93.1.1 STC89C52简介93.1.2 STC89C52引脚说明93.1.3 STC89C52具体电路设计103.2 数据采集模块113.3 信号处理模块123.3.1 HX711简介123.3.2 HX711引脚图133.3.3 信号处理模块电路设计143.4 显示模块143.4.1 LCD1602简介143.4.2 LCD160
8、2引脚图153.4.3 显示模块电路设计153.5 按键电路163.5.1 4*4按键简介163.5.2 按键电路设计173.6 报警模块173.6.1 报警模块介绍173.6.2报警模块电路设计173.7 总结18第四章 系统软件设计194.1 软件开发环境194.2 系统软件设计流程图194.2.1 主程序设计流程图194.2.2 系统显示部分流程图204.2.3 信号处理模块流程图214.3 总结22第五章 系统仿真及硬件调试235.1系统仿真235.1.1系统仿真图235.1.2 系统仿真结果235.1.3 系统仿真误差分析255.2 系统整体调试255.2.1 系统实物调试结果图25
9、5.2.2 系统实物调试误差分析:27总 结28参考文献29致 谢30附 录31南京工业大学本科生毕业设计(论文)第一章 绪论1.1引言电子秤是日常生活当中经常会用到的一款衡器装置,它不仅体积小、读数方便,而且精确度高,操作十分简单方便。正因为上面这些优点,才能够被广泛应用与商场、医院、工厂等地方。相对于应用普通杠杆原理的衡器而言,电子秤有着很大的优点,它的精度比杠杆称重精度高的多,应用受限较少,所以应用非常广泛。为了使生活变得更加方便,研究和制作各种不同规格的电子秤有着非常重要的意义。1.2 国内外的发展现状现今社会,无论是在企业、医院交易市场、交易市场,还是小到每个家庭,电子秤可以说是随处
10、可见。它不仅拥有很多种类,而且拥有巨大的市场占有量。从日常生活中的简单的测量重量到工厂里产品的重量的检测,电子秤在越来越多的方面得到应用。随着市场需求的不断变化以及测重技术的飞跃发展,电子秤的技术性能趋向于高可靠性、高效率、高精确度。总的来说,电子秤技术正越来越模块化、集成化以及智能化。国际社会上,很多西方发达国家研制出的电子秤准确度高,可靠性高,可以说已经达到了很高的水平。他们已经研制了具有较高准确度、防水、耐腐蚀以及在高气压下正常工作的电子秤。目前,我国在电子秤称重技术上虽然与西方发达国家仍有一些差距,但是研究专家们正在不断努力,也取得了不少理论成果。我们国家已经成功研制出了省电、功耗小以
11、及能够利用光能的电子秤,不仅精度高,而且节能环保。1.3 研究的目的和意义电子秤的设计包括很多方面,不仅需要了解电子秤的各个组成部件,而且需要了解电子秤实际生活中的应用情况。要顺利的完成电子秤的设计,需要去了解传感器的原理、A/D转换器的原理及应用、单片机的应用以及完成程序算法的设计,这些方面需要我们运用所学的各种软件以及硬件方面的知识,可以巩固我们对于专业知识,以及其他相关知识的了解。1.4 总体设计思路根据本课题的背景以及设计要求,要实现称重功能,首先要将物体重量这个非电量转化为电量,因此需要传感器模块,传感器输出的的电量与物体的重量有一定的对应关系;但是只依靠这一关系推算出的重量不精确,
12、而且不直观,所以需要对传感器输出的数据进行处理;信号的处理一般选用单片机来进行,但是单片机输入的是数字信号,而传感器的输出是模拟信号,因此在此之前还要对信号进行模/数转换,再输入单片机进行处理;单片机输出的信号可以采用数码管显示,或者是LCD显示,这样得到的结果不仅准确性得到提高,而且比较直观,给用户更好的体验。除了以上功能模块,本设计还加入了报警模块。1.5 论文结构本论文包括中外文摘要、目录、正文、总结、参考文献、致谢、附录几大方面。正文部分第一章为绪论,第二章为系统方案设计,第三章为系统硬件设计,第四章为系统软件设计,第五章为系统仿真及硬件调试。1南京工业大学本科生毕业设计(论文)第二章
13、 系统方案设计2.1系统整体设计方案比较根据上面的设计思路,可以衍生出很多的设计方案,现列出三种方案如下:数据采集万用表方案一 简单的输入输出方案,如图2-1:图2-1 方案一这个方案是通过直接将物体放到传感器上,然后将传感器的输出接到万用表,再根据传感器特性推算出物体的重量,操作起来十分方便。但是也有很多的局限,这种方案的电子秤只能实现基本的秤重功能,而不能实现外部数据的输入,因此无法实现手动输入一些参数;而且得出物体重量非常麻烦,不能直接看出重量是多少,所以人机交换界面不理想,达不到购物清单的要求。 数据采集AD转换单片机处理显示模块按键处理信号放大方案二在方案一的基础上,可以通过将信号放
14、大以及进行模/数转换来提高结果的精确度,并使用显示模块可以使系统显示字符,使界面更直观,而且加入键盘模块,实现人机交互功能如图2-2:图2-2方案二信号处理单片机处理显示模块按键处理数据采集报警模块这种方案设计的电子秤不仅有了信号处理这一环节,使精度得到了很大的提高,而且可以通过键盘手动输入物品的单价,并能够显示出物品的重量、单价以及总价,拥有很好的人机交互界面。通过对比上述三种方案的优缺点,在考虑到设计的成本以及可行性前提下,本次设计选择使用第三种方案设计完成了最终的电子秤方案、最终的硬件设计方案图。除上面这些功能模块外,本设计还加入了报警模块作为扩展功能,方案图2-3如下: 图2-3 系统
15、整体方案图2.2 系统各模块电路设计方案比较2.2.1 单片机处理模块本系统的中心控制模块即单片机控制模块,它在整个系统中负责数据的处理、交换等作用。本次设计中的键盘输入信号、信号处理模块的输入信号,都将被输入到中心模块中进行数据的进一步处理。不仅如此,此中心控制模块还要能够输出显示控制信号、信号处理控制信号、报警信号等等。显然,作为整个系统的中心控制芯片,单片机扮演着一个中心枢纽的角色,不仅有信号的输入,也有信号的输出,具有十分重要的地位。因此,在选用这种中心控制芯片的时候,最好能够选用内存大,可靠性高,速度快而且价格便宜的芯片。在对比市场上众多的单片机芯片后发现,STC89C52相对于其他
16、芯片可以很好的完成上面的功能,并且拥有许多自身的优点。STC89C52是一种8位微控制器,采用串口直接下载,抗干扰能力相对更好一点,兼容性也不错,而且成本不高。因此,本次设计的中心控制芯片选用的是STC89C52。2.2.2 数据采集模块数据采集模块电路的作用是将物体的重量这个非电量,转换为电压或者电流这些电量形式,以便后续的处理、输出,因此需要用到压力传感器。方案一 采用压电式压力传感器晶体的正压电效应是压电式压力传感器的主要工作原理。正压电效应是指当改变外力的大小时,晶体内部的电极性发生改变,所带的电荷量也发生改变。因此,可以通过测得改变的电荷量的大小,来得到施加的外力的大小。市场上的压电
17、式传感器种类很多,它们都有体积小,动态性好等优点。但是该传感器的弱点也比较明显:内阻较大、功率偏小,防噪声性能不是很突出,输出特性被严重影响,因此由它输出的能量比较薄弱,需要设计复杂的外接电路进行矫正。方案二 采用电容式压力传感器电容式传感器是一种可以将压力、位移等非电量的变化转换为电容量的变化的传感器装置。它的优点是灵敏度高、简单、动态响应良好、测量可以不用接触等。一般我们借助平行电容器来解释说明电容式传感器的工作原理,两块平行的金属板上面的电容量(不考虑边缘效应)为:(2-1)其中:介质的相对介电常数;真空中的介电常数;A平行板覆盖的有效面积;d平行板间的距离。当被测量物体的重量发生改变,
18、并进而改变等式中、A、d的大小时,电容量都会改变,从而将变化量转化为电量的输出。然而,电容式压力传感器也有一些不足的地方:(1) 初始时的电容比较小,因此会在杂散电路中产生较大的寄生电容。(2) 功率小、阻抗高。由于平行板的尺寸较小,电容式传感器的电容量都比较小,因此它的容抗=1/C很大,属于高阻抗的元件,所以负载能力不行;同时,由于P=C,则当电容C很小时,功率P也就比较小。因此,电容式传感器外界干扰的抵抗能力较弱,需要采取必要的抗干扰措施。方案三 采用电阻式压力传感器电阻应变式传感器能够将各种力学物理量转换为电信号,主要是利用电阻应变效应制成的。电阻式压力传感器以电阻应变片为主要部件,这种
19、电阻应变片不仅可以单独用来充当传感器,而且能作为敏感元件构成力学量传感器。 电阻式压力传感器是一款常用的传感器,拥有很多的优点。使用比较灵敏,测量精度高,稳定性较好,分辨力高;应用领域比较广泛,许多机械量传感器都可以使用应变片制作而成;体积小,结构简单;操作简单方便,用户体验较好,便于远距离测量和商品化发展;对环境要求不高,可以在恶劣情况下正常工作,适应能力出色,在频率响应方面性能优越。综合对比分析以上三种传感器的优缺点,再考虑到本次设计的要求为称重范围05Kg,误差不大于2g。因此,为了提高设计准确性、精确度以及可靠性,本次设计选用的是第三种方案,即采用电阻式压力传感器。2.2.3 信号处理
20、模块信号处理模块在本系统中包括信号放大与信号转换两个功能,所以应该包括信号放大模块与A/D转换模块。方案一 信号放大器采用AD620,A/D转换器芯片采用ADC0832信号处理的两个部分可以分别由两个模块单独来完成。信号放大部分一般可以使用AD620。AD620是通过外接电阻来达到放大的效果,增益范围可调,且精度高,成本低。模/数转换部分可采用较为常用的ADC0832。ADC0832是一款双通道,8位分辨率的A/D转换器,采用的是逐次逼近式的转换方法。它的兼容性高,体积小,因此经常被大家使用。将这两个模块连接形成电路,可以完成设计的指标,但是由于需要电路间的连接,所以会产生一些不可避免的误差和
21、干扰,因此不是特别完美。而且ADC0832的精度不算太高,对于需要高精度的电子秤来说,不是最好的选择。方案二 采用集成的高精度A/D转换器HX711HX711内部不仅集成了信号放大模块,而且包含了一款高精度的24位A/D转换器。 不仅如此,HX711内部还集成了完成放大和转换功能所需要一些外围电路,比如稳压电源,时钟振荡器等。它的优点是精确度高,成本低,抗干扰能力强卓越且响应迅速。此外,HX711与单片机之间主要是通过管脚来驱动的,接口电路简单,不需要对芯片内的寄存器进行编程。对比分析以上两种方案的优缺点,可以发现第二种方案更有优势,所以选择使用HX711作为信号处理模块的主要芯片。这样不仅能
22、够节省成本,而且可以大大的提高设计的准确性和可靠性。2.2.4 显示模块本系统中显示模块应该主要用于显示物体的重量、单价、总价,设计主要是力求使人机交换界面美观,因此选用合适的显示模块非常重要。方案一 LED数码管显示LED数码管是一款常用的显示器件,它内部由8个发光二极管组成,其中有7个组成“8”字形,还有一个用来显示小数点。LED内部的发光二极管已经都连接了导线,只需要引出它们的公共电极就可以使用。但是数码管可以显示的信息有限,当需要显示的信息较多时,就用需要将多个数码管级联,这样会导致硬件连接复杂,成本也会相应增加;此外,数码管对大部分字符不能很好的显示,容易出现闪烁现象。方案二 采用L
23、CD液晶显示液晶显示模块可以显示出字符,因此经常用来作为字符显示模块,在单片机应用中使用较多。它不仅显示内容丰富,还拥有很多数码管不具备的优点。LCD1602不仅功耗低、驱动电压小、显示信息量大,而且使用周期长,不会产生辐射与污染。LCD1602属于液晶显示器件中最为常用的一种。它的工作电压为5V,拥有8 位数据总线和三个控制端口,并且还可以调节显示器的亮度,可以显示2行 16 个字符,并且具备液晶显示模块的所有优点。对比分析以上两种方案的优缺点,虽然都能成功显示数据,但是考虑到设计精确度,以及人机交换界面的美观,本设计选用的是第二种方案,即利用LCD1602来做显示模块。2.2.5 按键电路
24、按键电路模块主要用来手动输入物品的单价,实现人机交互的功能。方案一 专用键盘接口芯片式专用键盘芯片内部不仅集成了接收键盘输入数据的模块,还带有显示接口,可以独立的处理对键盘的扫描、消除抖动以及编码问题。因此,对于提高准确度和可靠性很有帮助,而且接口电路简单,使用起来十分方便,但是成本一般比较高。方案二 4*4矩阵薄膜键盘4*4矩阵薄膜键盘属于薄膜开关的一种,由上电路、面板、下电路、隔离层四个部分组成,内部集成了16个小的按键开关,并且按照矩阵式的排列着。它是一种近来非常流行的集功能性与装饰性于一体操作系统,不仅外形美观、体积小,而且密封性强,具有防尘、防潮等优点。对比分析以上两种方案的优缺点,
25、虽然都能实现按键输入的功能,但是考虑到成本的因素,而且第二种方案的可靠性相对也不低,并且还有很多其他优点,因此本设计选择第二种方案作为按键模块。2.3 具体实施方案简介根据上述各个模块方案的对比介绍,以及考虑到本次设计的要求,本次设计的硬件部分的中心控制芯片采用STC89C52。由于电子秤设计的功能不是很多,所需要编写的程序量也就不大,因此不需要对STC89C52外扩其他的程序存储器,这样可以避免硬件的浪费。除了单片机的最小系统,硬件部分还应该包括数据采集电路、信号处理电路以及数据显示电路。数据采集模块内部最主要的器件是变阻式压力传感器。为了尽量满足高精度的要求,选择的传感器必须要满足测得重量
26、的误差在一定的范围之内。但是由于传感器输出的信号一般比较微弱,因此需要对输出的信号进行信号的放大,这样就可以保证结果的可靠性。不仅如此,由于单片接收到的信号必须是数字信号,因此还需要对数据进行模/数转换。为了提高设计的精确度以及可靠性,减少不必要的误差,本设计选用专为电子秤设计的高精度的转换器HX711,不仅可以进行信号的放大,而且可以实现信号的模数转换。在人机交互方面,主要通过键盘来实现,可以手动输入数字和已经设置好的控制命令等,来实现一些特定的功能。本设计中,按键控制模块采用的是44矩阵薄膜键盘。显示电路部分,本设计选择使用字符点阵式液晶显示器LCD1602,不仅人机交换界面较美观,而且可
27、以一次满屏幕显示2行16个字符,可以实现购物清单的要求。在扩展功能上,本设计添加了报警电路,当物品重量超过量程时,蜂鸣器就会发出警报声。7南京工业大学本科生毕业设计(论文)第三章 系统硬件设计根据设计的要求和指标,本设计应该包括以下模块(如图2-4):中心控制模块、数据采集模块、信号处理模块、显示模块、按键模块以及报警模块。3.1 基于STC89C52的单片机控制模块3.1.1 STC89C52简介STC89C52是一种低电压,高性能COMS 8位微处理器,它的程序存储空间为8K字节,数据存储空间为512字节,内带EEPROM存储空间为4K字节,I/O接口线为32位。3.1.2 STC89C5
28、2引脚说明STC89C52引脚图如下图3-1:图3-1 STC89C52引脚图STC89C52 引脚功能说明,如表3-1:表3-1 STC89C52引脚说明图3.1.3 STC89C52具体电路设计在本设计中,STC89C52作为主控芯片,它应该包括振荡电路、复位电路、端口连接。振荡电路由一个晶体振荡器和两个电容并接到XTAL1和XTAL2引脚。由电容和石英晶体构成的振荡回路,构成了一个稳定的自激振荡器,为单片机内部的放大器提供振荡以及正反馈所需的相移条件。电路中电容的作用是起振,一般情况下,电容值偏大虽然有利于振荡器的稳定,但是同时也会增加起振时间,所以电容值在许可范围内越低越好。一般较常使
29、用的电容值为15pf-30pf,本设计中采用的是30pf。为保证较高的精确度,晶振频率则选用11.0592MHz。具体电路图如图3-2:图3-2 振荡电路图本设计中复位电路采用的是上电复位的方式,通过电容充放电来实现,使用起来简单方便,只要接通电源就可以完成系统的复位初始化。由上面晶振频率的选择可知,本设计的机器周期约为1us,为了保证复位信号高电平持续时间大于2个机器周期,上电复位电路中电阻与电容的选择由t=(35)RC来确定,因此可以选用电容为10uf,电阻为10K。具体电路图如图3-3:图3-3 复位电路图端口的连接用于与其他模块进行数据交换。P0端口以及P2.0-P2.3端口被定义为L
30、CD1602功能控制端,分别与LCD1602显示器的相应功能管脚连接。P1端口被定义为按键功能控制端,当某一个功能将键被按下时,相应的P1口将工作。P3口接信号处理模块,P3.0口接报警模块。因此,本设计的单片机模块端口连接图如下图3-4所示:图3-4 STC89C52单片机端口连接图3.2 数据采集模块数据处理模块的主要器件为变阻式压力传感器。变阻式压力传感器是根据电阻应变效应原理制成的。电阻应变效应是指当导体受力的作用,外部形状发生机械形变时,内部电阻也发生相应变化的现象。电阻应变片把导体形变的信号转换电阻变化的信号,但是由于变化的电阻值一般都比较小,直接测量得到的结果不精确。因此,一般使
31、用特定的转换电路将电阻的变化转化为电压或者电流的变化。这种转换电路经常采用直流电桥。图3-5为一个由直流供电的电阻电桥。本设计中采用的是压力变化转化为电压变化的输出,即把此电桥当做电压桥。由电路的分压原理可以得到(不计电源内阻):Eout=UBC=UBD-UCD (3-1)当满足条件R1R3=R2R4时,即(3-2)Eout =0,即电桥平衡。式(3-2)秤平衡条件。在测量之前,为了保证电桥的输出电压只跟电阻的变化有关,都要先使电桥保持平衡。如果出现差动工作,即出现R1=R-R,R2=R+R,R3=R-R,R4=R+R,按式(3-1),则电桥输出为 (3-3)压力与电压的关系与传感器的灵敏度、
32、测重范围和电路的激励电压有关。本设计中采用的传感器的灵敏度为2.01mv/v0.01,量程为0-5kg,电路中的激励电压为5v,所以可以得到传感器的输出电压范围为0-10mv,还可以得到也就是说,当压力改变1g时,电压的输出变化为0.002v。R1-RR2+RR4+RR3-R电阻桥 输入Ein输出Eout-BACDINA+INA-+式3-3中的Eout为变化的电压值,输出到信号处理模块中进行进一步的处理。传感器两个输出端接在HX711上的INA-、INA+端。因此,可以得到下面的电路连接图3-5:图3-5 数据采集模块连接图3.3 信号处理模块信号处理模块采用的是高精度的A/D转换器HX711
33、。3.3.1 HX711简介HX711是一款专为电子秤设计A/D转换器,是一个24位的A/D转换器。它将一个放大倍数可调的信号放大模块与一个A/D转换模块集成在内部,功能十分强大。芯片有两个通道A、B,由输入开关与内部的可编程放大器相连接来进行选择。通道A 的可编程增益为128 或64。通道B 的可编程增益为32。HX711内部还集成了完成放大和转换功能所需要一些外围电路,比如稳压电源,时钟振荡器等。为简化开机的初始化过程,HX711采用的是上电自动复位。3.3.2 HX711引脚图HX711引脚功能说明,如图3-6:图3-6 HX711引脚图模拟输入通道A一般用作传感器的接入端口,考虑到传感
34、器的输出信号较小,因此此通道采用较大的增益,为64或128.通道B为固定的32增益。 供电电源数字电源(DVDD)使用的供电电源与单片机的电源应该一致。HX711芯片内部含有稳压电源,可以直接向芯片内的A/D 转换器和外部传感器提供电源,因此不需要其他的模拟电源。串口通讯HX711的管脚 DOUT 和 PD_SCK 主要用来输出数据,选择输入通道和增益。当输出端口DOUT是高电平状态时,就表明HX711没有准备好开始输出数据,此时端口PD_SCK应保持低电平状态。当DOUT由高电平变为低电平后,表明已经准备好输出数据,此时向PD_SCK输入2527个时钟脉冲。通过第一个脉冲的上升沿可以读出输出
35、数据的最高位,然后依次读出24位数据,直到第24个时钟脉冲完成。第2527个时钟脉冲用来选择下一次数据转换的输入通道和增益,参见表3-2。表3-2 输入通道和增益选择PD_SCK脉冲数输入通道增益25A12826B3227A64一般情况下,为了避免造成串口通信的错误,PD_SCK 的输入时钟脉冲数应在25到27之间,否则无法得到正确的输出增益。3.3.3 信号处理模块电路设计由于本设计中采用的HX711模块内部功能强大,已经集成了信号放大与处理模块,因此只需要对其外部电路进行正确的连接,即可实现信号处理功能。由上面的介绍可得,将HX711的DOUT端口接在P2.4口,PD_SCK端口接P2.3
36、口。又因为传感器的输出电压为几毫伏,所以需要信号放大模块,且放大倍数尽可能大,所以将传感器的输出接在HX711的A口,并且使P2.3口的输入脉冲数为25,即保证放大增益为128。信号经过放大处理后,再经过后半部分的模/数转换模块将得到的数字信号通过P2.4口输入到单片机中,进行进一步的数据处理。具体的电路图如图3-7所示:传感器输出+传感器输出-P2.3P2.4图3-7 HX711内部结构图及电路连接图3.4 显示模块3.4.1 LCD1602简介LCD1602是一种点阵型液晶模块,可以用来显示字母、数字或符号。LCD1602表示液晶显示器上可以显示两行字符(或数字),且每行的字符(或数字)有
37、16个。3.4.2 LCD1602引脚图图3-8 LCD1602引脚图LCD1602管脚说明如表3-3所示:表3-3 管脚定义3.4.3 显示模块电路设计根据设计的要求,以及上面关于LCD1602的介绍。可以将Vss接地,VDD接电源正极,RS端接P2.0口,R/W端接P2.1口,E端接P2.2口,数据端口D0-D7口与单片机的P0口连接,用来控制显示器的显示。这样,通过单片机给出指令0或1,来控制显示器的输出。具体电路如图3-9:图3-9 LCD1602电路连接图3.5 按键电路3.5.1 4*4按键简介矩阵键盘一般作为单片机的外部设备使用,一般情况下将按键排列成矩阵形式。在矩阵式键盘中,每
38、条垂直线和水平线在交叉处都用一个按键来连接,不能直接连通。水平线和垂直线交叉后伸出8根导线,连接到单片机的一个端口,可以构成16个按键功能,相比于直接将按键与端口连接多了一倍。因此,当需要的按键较多时,使用矩阵法来做键盘是十分合理的。矩阵式键盘比直接键盘的连接要复杂一些,因此识别也相对复杂一些。如图3-10,将垂直线接电源正极,并将其与单片机的I/O接口作为输入,水平线所接的单片机I/O口作为输出。根据单片机的输出特性可知,当按键没有按下时,所有的输入端都是高电平,水平线输出是低电平。当有按键被按下时,输入线上电压就会被拉低。因此,可以通过输入线上电压的状态来判断是否有按键被按下。图3-10
39、矩阵式键盘内部电路图电子秤键盘功能分配如表3-4所示:表3-4 按键功能分配表123去皮456清零789撤销*0#总价如表3-5,本设计中1-9是数字键,用来输入单价;去皮键用来去除由于环境因素导致的重量;清零键用来进行二次测量,即当一次测量完成后可用其清零,并再次测量;撤销键是用来当输入单价有误时,删去错误的数据,重新输入的;总价键即用来控制计算总价的;*、#键是预留功能键。计算功能:在正确输入了单价之后,按下计算按键,将会计算出金额,并在液晶显示器上显示出重量、单价、总价。3.5.2 按键电路设计根据上面的介绍,按键电路有8个端口,依次连接单片机的P1口,通过按不同的键,输入不同的指令,实
40、现输入单价、清除、计算总价等功能,实现人机交互功能。具体电路图如图3-11:图3.11 按键电路连接图3.6 报警模块3.6.1 报警模块介绍报警模块主要由蜂鸣器构成,当物品的重量超出电子秤的量程是蜂鸣器将发出警报声,以防止器件受到损坏。3.6.2报警模块电路设计根据设计的要求,报警电路应该串联接到单片机的一个端口。但是单片机输出高电平时的电压相当于Vcc,蜂鸣器的额定电压小于5V,为了保护电路可以加入电阻,蜂鸣器的内阻为几百欧姆,所以本设计中选用R=1000欧姆。另外为了更好的保护电路,一般还加入NPN型三极管。利用三极管饱和、截止时的特性来当做开关使用。本设计中超出量程时,单片机输出高电平
41、,此时三极管导通,蜂鸣器发出警报,反之,不发出警报。因此,可以得到电路图3-12:图3-12 报警电路设计3.7 总结硬件电路部分涉及到电路设计的方方面面,不仅要考虑每个模块内部的电路如何搭建,器件如何选择,还要考虑到各模块之间的连接关系,选择最优的布线方式。只有将各个方面都考虑周全,电子秤的精度和可靠性才能够得到保证。17南京工业大学本科生毕业设计(论文)第四章 系统软件设计4.1 软件开发环境本系统的软件设计采用C语言来编程,在可读性、功能都上有明显的优势,所以比较容易上手,且编译易实现。编译环境为keil UV4,是一个兼容单片机C语言的开发系统。Keil C51 软件拥有功能强大的集成
42、开发调试工具以及丰富的库函数。不仅如此,Keil C51 在生成目标代码方面的效率非常高,并且多数语句生成的目标代码十分容易理解。Keil C51 工作的整个流程编辑、编译、连接、调试、仿真等。开发人员可以使用自己的编辑软件或使用Keil,编辑出C程序或汇编程序,再用Keil生成单片机可以执行的.HEX文件,再用烧录软件将.HEX文件烧进单片机中,这样就可以执行功能了。编写程序时主要从三个方面入手:一是将系统初始化;二是按键检测;三是采集数据、处理数据并显示出来。程序编写采用模块化的结构,这样编写的程序不仅结构清楚,可读性高,而且也便于调试和修改。4.2 系统软件设计流程图系统软件设计分为主程
43、序、LCD1602显示电路程序、信号处理模块程序。4.2.1 主程序设计流程图本设计中,主程序的功能应该包括初始化整个系统,检测输入信号,调用函数来执行数据处理、数据显示、数据判断,控制信号的输出等。为了更好的显示,其中还应该延时程序。因此,可以得到主程序的流程图4-1:开始置零键按下显示数据处理信号放大、转换初始化调零程序启动报警超重判断功能键按下按键扫描程序超重不超重图4-1 主程序流程图如图4-1,程序开始执行以后,首先对各个端口,功能键进行初始化;接着当置零键按下后,一边进行调零使输出排除环境的干扰,另一边启动HX711转换器,对信号进行放大并进行模/数转换;转换后在单片机内进行数据判
44、断,若超重则启动报警电路,并置零,若没有超重,则可以按下功能键,并用LCD1602显示程序,使重量、总价的显示出来。一轮结束以后,在此按下置零键,进行第二次测量,重复上述的操作。4.2.2 系统显示部分流程图本设计中,显示部分程序要执行的功能模块包括初始化界面、接收单片机输出的指令、调用显示函数显示出内容等,其中也要加入延时程序。因此,可得流程图4-2:开始显示初始化界面检测重物有无按键显示总价信息显示按键功能结束NoYesNoYes图4-2 显示程序流程图如图4-2,当程序开始运行后,LCD1602首先显示初始化界面,然后判断有无按键输入单价,若无输入则继续显示初始化界面,若有输入则显示按键
45、输入的数据,再经过数据处理计算出总价,并显示出总价为多少。4.2.3 信号处理模块流程图本设计中,信号处理模块的程序包括的功能包括初始化模块、接收传感器的信号、选择放大增益、启动模/数转换等,其中也要加入必要的延时程序。因此,可得流程图4-3:开始模/数转换信号放大启动信号处理置零键按下初始化图4-3 信号处理流程图如图4-3,当程序开始工作时,首先对HX711的端口进行初始化,然后当有物体放在称重盘上,而且置零键按下后,HX711则开始工作,先对信号进行128倍增益的放大,然后再对放大后的模拟信号进行模/数转换。转换后的信号送给单片机,等待下一次的置零键按下,开始下一轮的信号处理。4.3 总结软件设计部分一定要灵活运用好模块化的编程思想,本设计中把一个大的程序拆分主程序部分、显示程序部分、信号处理程序部分,并把这三部分程序进一步拆分为各个小功能部分。这样不断拆分,不仅编程的时候结构清楚,而且可读性高,比较有利于后期的检查。21南京工业大学本科生毕业设计(论文)第五章 系统仿真及硬件调试5.1系统仿真5.1.1系统仿真图本仿真设计中,当系统开始工作时,先经过数据采集模块,获取信号。再经过A/D转换模块将模拟信号转换为数字信号。所得的
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100