《基于单片机控制的电子秤控制系统设计(共51页).doc》由会员分享,可在线阅读,更多相关《基于单片机控制的电子秤控制系统设计(共51页).doc(51页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上 题 目 基于单片机控制的电子秤控制系统设计学生姓名 贾瑛 学号 所在学院 物理与电信工程学院 专业班级 电子信息工程12级4班 指导教师 帅春江 完成地点 陕西理工学院 年 月 日 专心-专注-专业基于单片机控制的电子秤控制系统设计作者:贾瑛(陕西理工学院物理与电信工程学院电子信息工程专业12级4班,陕西 汉中)指导教师:帅春江 摘要在社会快速发展和电子技术广泛应用的现况下,市场上使用的传统称重工具已不能满足人们的需求。本设计基于单片机设计了由称重传感器,AD转换系统,显示系统,键盘控制系统和报警系统组成外围电路。基本实现物体称重、调节单价、计算总价、去皮、多种物品
2、总额的累加等基本功能。整体设计具备测量准确、性价比较高、设计简单和功能多样化等特点,进一步满足了商家和消费者对电子秤的功能需求。 关键词单片机;传感器;A/D转换;LCD显示;阈值报警 The Design of MCU-Based Eletronic WeighterAuthor:Jia Ying(Class 4, Grade 12, Major electronic1s and information engineering, School of Physics and Electronic Information Engineering, Shaanxi University of Te
3、chnology, Hanzhong Shaanxi, )Tutor: Shuai ChunjiangAbstract:In the current society ,the traditional weighing tools have been unable to meet peoples needs with the rapid development and wide application of electronic technology,in the market . Based on MCU,the design consisted with the peripheral cir
4、cuits that including weighing sensor,AD converter system, display system, keyboard control system and alarm system.The basic realization of objects weighing ,price regulation,calculation of total price peeled,a variety of items of the total accumulation and other basic functions. The overall design
5、has accurate measurement, high performance to price ratio, simple design and various functions and so on characteristics further to meet the businesses and consumers of electronic scales of functional requirements. Key Words: SCM;sensor;A/D conversion;LCD display; threshold alarm目录1 引言 随着电子科技时代的不断进步
6、,现代微电子学1计算机等一些现代电子技术的成果给传统电子测量带来了巨大冲击。普通的测试仪表仪器和控制装置被更先进的智能仪器所取代,因此传统的电子测量仪器在功能、精度及自动化水平等方面发生了大的变化,相应出现了多种多样智能仪器的控制系统,使得科学实验和应用工程的自动化程度进一步提高2。20世纪90年代以来,电子科学技术和工业生产自动化、智能化水平提高了多个层次,各行各业对称重计量产品的要求也逐渐提高。电子秤各方面发展特点趋势总结出来是:从静态测量朝动态发展的称重技术;从模拟测量向数字方向发展的测量方法;从单参数向多参数发展的测量特点;电子衡器产品技术性能慢慢发展成高速率,高准确度,高稳定性,高可
7、靠性等特点3。1.1 目的及意义 称重计量在人类生活中已然至关重要。在现代文明和科学技术不断进步的今天,人们对称重计量的准确度也提出了越来越高的要求。最近几年,称重技术取得了日新月异的发展,电子称在称重计量领域的地位十分重要。尤其是商用电子称,高准确度、反应灵敏、结构简单是其最被人们看中的优点,被广泛应用到各种商场卖店。目前,电子秤正逐步取代传统的机械秤,比如杆秤,磅秤,带动了电子秤的进一步深入的研究。称重工具由机械到电子的智能化转变,给人们的日常生活带来了便捷,提高了全国乃至全世界的效益,也带动了经济的高速发展。目前市场上使用的称量工具,或结构复杂,或运行不可靠,成本高且整体水平低,部分小型
8、企业质量差且技术薄弱,设备不全,产品的开发能力欠缺,产品质量在低水平线。因此,有针对性的开发出一套具有实用价值的电子秤系统,从技术上克服上述诸多缺点,改善电子秤应用中的不足之处,就具有很大现实意义。本设计以智能电子测量为设计方向,在原本的电子秤系统上加以改善和提高,增加基本功能和人性化功能,满足市场的消费需求,使产品进一步智能化和人性化,更加接近本次设计的设计理念。1.2 国内外研究现状及发展趋势称重测量技术自古就被人们重视。作为一种计量方法,一直被广泛应用于工农业、科研、交通、内外贸易等各个领域,并且发挥着巨大的不可缺少的作用,与人们的生活息息相关。50年代中期,电子技术的渗入推动了衡器制造
9、业的发展。自60年代初期了出现机电结合式电子衡器以来,经过多年一步步的改进和完善,我国电子衡器从最初的机电结合型发展到现在的全电子型、数字智能型。现如今电子衡器的制造技术及应用得到了全新的发展。总结分析近年来电子衡器产品的发展情况和国内外市场对电子秤的需求,电子衡器的发展趋向于智能化、小型化、集成化、模块化;其技术性能朝速率高、准确度高、稳定性高、可靠性高等多方面发展;其功能趋向于称重计量控制信息与非控制信息并重的“智能化”;其应用性能趋向于综合性、组合性。国内电子称重技术基本上达到国际上20世纪90年代中期的水平,少数产品的技术也已处于国际领先水平。作为重量测量仪器,智能电子秤在各行各业显现
10、了其测量准确,测量速度快,易于实时测量和监控的巨大优点,并开始逐渐取代传统型的机械杠杆测量称,成为测量领域的主流产品。上海友声衡器有限公司还有深圳市汇思科电子科技有限公司这两家公司做的比较突出。上海友声衡器有限公司,产品特点:(1)、电路集成度高,简单可靠。是采用目前世界上最先进的-增量调制型单片集成AD转换技术5,和目前大部分衡器厂家采用的传统双积分电路相比6,具有高精度、采样速度快、高集成度、电路简单、维修方便等优势,(2)、低功耗设计。产品设计紧跟电子技术的发展潮流,从传感器供电电路、主机电路的设计到器件选择,均符合低功耗这个要求。在国际上,一些发达国家在电子称重力一面,从技术水平、品种
11、和规模等方到了较高的水平。特别是在准确度和可靠性等方面有了很大的提高。电子称重行业主要有:美国西特(SETRA)公司、德国赛多利斯(Sartorius)、日本石田(ISHIDA)电子秤、瑞士托利多(TOLEDO)电子秤等几个优秀的电子秤产商电子秤。其中,美国西特(Setra)品牌成立于1967年,以电容技术而闻名于世界,其革命性的高精度可变电容的原理,已取得了30 多项专利,从1982年开始,Setra(西特)将其高超的电容技术应用到电子天平,设计出了极具竞争力的电子天平和各种称重系统。目前,电子秤在称量速度方面需要进一步的研究。在称重传感器方面,国外产品的品种和结构又有创新,技术功能和应用范
12、围不断扩大。1.3 解决的主要问题 本设计在电子秤基本功能上增加了键盘控制及阈值报警两种功能,随时可改变称重上限阈值,同时增加了调节单价,计算物品总额,去皮和累加等处理功能,使产品更趋向智能化和人性化,方便实际应用中的功能需求。1.4 工作原理 在电子秤托盘放上物品,重量便通过秤体传递到称重传感器,传感器随即产生力电效应,将物体的重量转变成与被称物体重量成一定函数关系的电信号。接下来传到模数(AD)器进行放大、滤波后转换,数字信号再送到CPU中处理,CPU持续扫描键盘和各种功能开关,根据键盘输入的内容和功能开关进行分析,然后运算。运算结果送到内部存储器,需要显示时,CPU发出指令,从内部存储器
13、中读出送到显示器显示。 2 总体方案的设计2.1 设计要求(1)主要技术指标:称量范围05kg;分度值0.10.01kg;精度等级级(2)测量物体质量并显示(3)输入物品单价后计算总价并显示(4)去皮功能(5)计算多种物品的总价功能(累加)按照本设计功能的要求,本设计大致可分为四个模块:数据采集模块、模数转换模块、单片机控制模块、人机交换模块。(其中人机交换模块中包括:报警、显示、键盘输入)系统设计总体方案框图如图2.1所示: 数据采集 报警系统 A/D转换 控制系统 键盘系统 显示系统图2.1设计思路框图2.2 CPU的选择方案方案一:采用传统的8位的51系列单片机作为系统控制器。89C52
14、是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的89C52单片机可以提供许多较复杂系统控制应用场合7。而且我们做的很多产品都是在51的基础上完成,对51系列的单片机相对来说较为熟悉。方案二:采用32位的ARM2138作为系统控制器。它有很大的存储空间,内嵌32K片内静态RAM和512K的flash存储器,2个8路10位A/D转换器,1个D/A转换器,转换迅速准确,引脚资源丰富,多达47个可承受5V电压的通
15、用I/O口,多个串行接口。但价格相对较高。综上分析,由于考虑到器件的价格、现有资源和对器件的掌握程度,控制器模块选择方案一。2.3 传感器的选择在设计中,传感器是一个十分重要的元件,因此对传感器的选择也显的特别重要和谨慎,不仅要注意量程和参数,还要考虑与其相配置的各种电路的设计难易程度和设计性价比等等。在实际使用时,加在传感器上的载荷除了被称物体外,还有秤体的自重、皮重、偏载及振动冲击等载荷,因此选用传感器量程时,要考虑很多方面的因素,保证传感器的安全和寿命和灵敏度。为保证电子秤称量结果的准确度和精确度,克服传感器在低量程段线性度差这一缺点,在实际工作中,要保证称重传感器的有效量程得在20%8
16、0%之间,这样才能确保电子秤的线性好,精度高。还有重量误差,应该控制在0.01Kg。同时又考虑到秤台自重、称重时的振动和冲击分量,还要避免物体超重会损坏传感器,所以确定传感器的额定载荷为5Kg,允许过载为150%F.S,精度为0.05%,最大量程时误差 0.01kg。这样可以满足本系统的精度要求.传感器是测量机构里最重要的部件之一。目前压力传感器主要有以下三种:方案一:电容式压力传感器在稳定性方面较差;精度和灵敏度高,寿命较短,对环境要求苛刻,且不易长距离传输。方案二:压电式压力传感器稳定性较好,精度和灵敏度高,寿命较长,但大量程的压力传感器有待进一步去研究。方案三:电阻应变式压力传感器稳定性
17、好,精度和灵敏度较高,寿命较长,对测量环境要求不太严格。综合考虑稳定性、精度、灵敏度、使用寿命时间长短和对环境的要求等方面,考虑到本设计要实现的是电子秤的绝对压力值,同时为了简化电路,要提高稳定性和抗干扰能力,最后选择方案三,使用具有温度补偿能力的电阻应变式压力传感器。2.4 AD芯片的选择方案方案一:采用AD7810作为AD转换器件。 AD7810是美国模拟器件公司(Analog Devices)生产的一种低功耗、10位高速串行AD转换器。它的转换时间为2s(微秒),采用标准SPI同步串行接口输出和单一电源(2.7V5.5V)供电。在自动低功耗模式下,该器件转换吞吐率为1kSPS时,仅有27
18、W功耗,因此特别适合在便携式仪表和各种电池供电的场合应用。方案二:采用hx711芯片作为AD转换器件。hx711是一款专为高精度称重传感器而设计的24位AD转换器芯片。与其他同类型芯片相比,该芯片集成了稳压电源、片内时钟振荡器等外围电路,集成度高、响应速度快、抗干扰性强,降低成本,提高性能和可靠性等优点。芯片内的稳压电源可以直接向外部传感器和芯片内的AD转换器提供电源。无需其他电源,还有上电自动复位功能。综合比较二者的优缺点和对设计产品精确度的考虑,最终选择hx711芯片作为AD转换器。2.5 显示器的选择方案方案一:采用LED(数码管)显示。LED(数码管)是light-emitting d
19、iode的缩写,它根据设置可以完成显示被测物体质量、单价、总价、累加价以及可测上限值的任务,并且经济耐用。同时LED具有亮度高,刷新率高的优点,能提供宽达160的视角,可以在较远的地方看清楚。但是它的缺点有:显示存在信息量少,显示不直观,不易理解,连线复杂等。方案二:采用LCD(液晶屏)显示。LCD(液晶屏)是Liquid Crystal Display的缩写,它具有字符显示的功能,不但可以同时显示被测物体的质量、单价、总价以及可测上限值,还可以同时显示相应的控制命令、指示符号及单位等,信息量丰富而且直观易懂。另外,液晶显示有功耗低,体积小,质量轻,寿命长,无电磁辐射污染等优点。综合比较二者的
20、优缺点,最终采用LCD1602作为显示器。2.6 总体方案综合考虑本次设计要求、现有元器件资源、元器件价格和对元器件的熟悉掌握程度,本次设计选用89C52作为CPU控制器,hx711作为A/D转换器件,LCD1602作为显示器件,再配以其他相关元器件来实现硬件电路的设计。电子秤的基本组成框图如图2.2所示:被测物体LCD显示 CPU 单片机键盘传感器报警电路AD转换 图2.2 基本组成框图 3 系统硬件设计3.1 单片机控制模块 3.1.1 89C52简介 89C52是美国ATMEL公司生产的单片机,它是一款低电压,高性能CMOS 8位单片机,采用ATMEL公司的高密度、非易失性存储技术生产,
21、兼容了标准MCS-51指令系统,片内装置了通用8位中央处理器(CPU)和Flash存储单元,功能强大。89C52单片机可提供许多高性价比的应用场合8,灵活应用于各种控制领域。 89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,1个全双工串行通信口,2个读写口线。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本9。 单片机引脚如图3.1所示 图 3.1 51系列单片机的引脚图 89C52引脚说明如下: (1)VCC 电源正极输入,接+5V 电压。 (2)GND 电源接地端。 (3
22、)XTAL1 接外部晶振的一个引脚。在单片机内部,它是一反相放大器输入端,这个放大器构成了片内振荡器。 (4)XTAL2 接外部晶振的一个引脚。在片内接至振荡器的反相放大器输出端和内部时钟发生器输入端。当采用外部振荡器时,则此引脚接外部振荡信号的输入。89C52的复位信号输入引脚,高电位工作,当要对芯片又时,只要将此引脚电位提升到高电位,并持续两个机器周期以上的时间,89C52便能完成系统复位的各项工作,使得内部特殊功能寄存器的内容均被设成已知状态。(5)ALE/PROG ALE 是英文ADDRESS LATCH ENABLE的缩写,表示允许地址锁存允许信号。当访问外部存储器时,ALE信号负跳
23、变来触发外部的 8 位锁存器 (如 74LS373),将端口P0的地址总线(A0-A7)锁存进入锁存器中。在非访问外部存储器期间,ALE 引脚的输出频率是系 统工作频率的 1/16,因此可以用来驱动其他外围芯片的时钟输入。当问外部存储器期间, 将以 1/12 振荡频率输出。(6)EA/VPP 该引脚为低电平时,则读取外部的程序代码 (存于外部 EPROM 中)来执行程序。因此 在 8031 中,EA 引脚必须接低电位,因为其内部无程序存储器空间。如果是使用 AT89C51 或其它内部有程序空间的单片机时,此引脚接成高电平使程序运行时访问内部程序存储器, 当程序指针 PC 值超过片内程序存储器地
24、址(如 8051/8751/89C51 的 PC 超过 0FFFH)时,将自 动转向外部程序存储器继续运行。此外,在将程序代码烧录至 8751 内部 EPROM、89C51 内部 FALSH 时,可以利用此引 脚来输入提供编程电压(8751 为 2lV、AT89C51 为 12V、8051 是由生产厂方一次性加工好)。(7)PSEN 此为Program Store Enable的缩写。访问外部程序存储器选通信号,低电平有效。在访 问外部程序存储器读取指令码时,每个机器周期产生二次 PSEN 信号。在执行片内程序存储 器指令时,不产生 PSEN 信号,在访问外部数据时,亦不产生 PSEN 信号。
25、(8)P0 口(P0.0P0.7)是一个 8 位漏极开路双向输入输出端口,当访问外部数据时,它是地址总 线(低 8 位)和数据总线复用。外部不扩展而单片应用时,则作一般双向 IO 口用。P0 口 每一个引脚可以推动 8 个 LSTTL 负载。(9)P1 口(P1.0P1.7)口是具有内部提升电路的双向 I/0 端口(准双向并行 I/O 口),其输出可 以推动 4 个 LSTTL 负载。仅供用户作为输入输出用的端口。(10)P2 口(P2.0P2.7)口是具有内部提升电路的双向 I/0 端口(准双向并行 I/O 口),当访问外 部程序存储器时,它是高 8 位地址。外部不扩展而单片应用时,则作一般
26、双向 IO 口用。 每一个引脚可以推动 4 个 LSTL 负载。(11)P3 口(P3.0P3.7)口是具有内部提升电路的双向 I/0 端口(准双向并行 I/O 口),它还提供特殊功能,包括串行通信、外部中断控制、计时计数控制及外部随机存储器内容的读取或写入控制等功能。3.1.2 单片机控制电路的设计 CPU控制系统的设计电路如图3.2所示:图 3.2 CPU控制电路的设计 图3.2 中,P0口作为LCD1602的数据端,P1口接键盘控制电路,P2口作为A/D转换后的信号输入端,P3.7口接报警电路。3.2 数据采集模块3.2.1 电阻应变式传感器简介 传感器实际上是一种可以将质量信号转变为可
27、测量的电信号并且输出的装置。传感器首先要考虑它的工作环境是否适合,这是正确使用传感器并且取得良好的精确度至关重要的一点,它关系到传感器能否正常工作以及它的安全和使用寿命,乃至整个衡器的可靠性和安全性。因此传感器外围电路的抗干扰能力是数据采集部分电路设计的关键环节。 图 3.3 应变式传感器安装图电阻应变式传感器的组成有三部分,即电阻应变片、弹性体和测量电路三部分。如图3.3。档托盘上放上物体后,弹性体在外载荷作用下产生应变,然后通过粘接剂将变化传给电阻应变片,电阻值会发生改变,使电桥输出不平衡电压信号,此输出与托盘上物体得到外载荷成正比。常用的电阻应变片有两种:电阻丝应变片和半导体应变片。本设
28、计中采用的是电阻丝应变片,如果要获得高电阻值,可以将电阻丝排成网状,并贴在绝缘的基片上,电阻丝两端引出导线,线栅上面粘有覆盖层,可起到保护作用10。在制作过程中,由于有些电阻应变片本身就存在误差,就会产生很多误差因素。在测量时一定要特别注意,尤其以温度的影响最为重要,传感器工作的环境温度影响电阻值变化的原因主要有:应变片敏感丝栅电阻温度系数;应变片丝栅的线膨胀系数与弹性体的线膨胀系数不一致11。因此在被测体受力状态及大小不变,温度发生变化时,输出电压会有一定的变化。即使采用同一批应变片,对于因温度变化对桥路零点输出及灵敏度的影响,也会因应变片之间稍有一定的温度特性之差而引起误差,所以对精度较高
29、的传感器,必须进行温度补偿。解决的方法是在被粘贴的基片上采用适当温度系数的自动补偿片,并从外部对它加以适当的补偿。传感器特性中最重要的一点是非线性误差。很多原因都可以产生非线性误差,一般来说主要是由结构设计决定,通过线性补偿,误差也可得到明显的改善12。3.2.2 传感器原理 原理图如图3.4所示: 图3.4 传感器原理图3.3 AD转换模块3.3.1 hx711的简介 本设计采用hx711作为A/D转换器件。hx711是一款专为高精度称重传感器而设计的24位A/D转换器芯片。该芯片与单片机控制系统的接口和编程非常简单,无需对芯片内部的寄存器编程,所有控制信号由管脚驱动。输入选择开关可任意选取
30、通道A或通道B,与其内部的低噪声可编程放大器相连。通道A 的可编程增益为128dB或64dB,对应的满额度差分输入信号幅值分别为20mV 或40mV 。通道B则为固定的64增益,用于系统参数检测。3.3.2 SOP-16管脚封装 SOP-16封装如表3.1:表3.1 16个管脚的封装 管脚号 名称 性能 描述1VSUP电源稳压电路提供电压2.65.5V。(不用时接AVDD)2BASE模拟输出稳压电路控制输出(不用时为无连接)3AVDD电源模拟电源:2.65.5V4VFB模拟输入稳压电路控制输入(不用时应接地)5AGND地模拟地6VBG模拟输出参考电源输出7INA模拟输入通道A 负输入端8INA
31、+模拟输入通道A 正输入端9INB模拟输入通道B 负输入端10INB+模拟输入通道B 正输入端11PD_SCK数字输入断电控制(高电平有效)和串口时钟输入12DOUT数字输出串口数据输出13X0数字输入输出晶振输入(不用时为无连接)14X1数字输入外部时钟或晶振输入,0:使用片内振荡器15RATE数字输入输出数据速率控制,0;10HZ,1:80HZ16DVDD电源数字电源:2.65.5V 模拟输入 通道A 模拟差分输入可直接与桥式传感器的差分输出相接。该通道的可编程增益较大,为128dB 或64dB。这些增益所对应的满量程差分输入电压分别20mV 或40mV 。通道B为固定的64dB 增益,所
32、对应的满量程差分输入电 压为40mV 。通道B 应用于包括电池在内的系统参数检测。 供电电源 数字电源(DVDD) 应使用与MCU 芯片相同的数字电源。HX711 芯片内的稳压电路可同时向A/D 转换器和外部传感器提供模拟电源。稳压电源的供电电压(VSUP) 与数字电源(DVDD)相同。稳压电源的输出电压值(VAVDD)由外部分压电阻R1、R2 和芯片的输出参考电压VBG 决定(图3.4), VAVDD=VBG(R1+R2)/R2。应选择该输出电压比稳压电源的输入电压(VSUP)低至少100mV 。如果不使用芯 片内的稳压电路,管脚VSUP 和管脚AVDD 应相连,并接到电压为2.65.5V
33、的低噪声模拟电源。管脚VBG 上不需要外接电容,管脚VFB 应接地,管脚BASE 为无连接。 时钟选择 如果将管脚XI 接地,HX711 将自动选择使用内部时钟振荡器,并自动关闭外部时钟输入和晶振 的相关电路。这种情况下,典型输出数据速率为10Hz 或80Hz 。如果需要准确的输出数据速率,可将 外部输入时钟通过一个20pF 的隔直电容连接到XI管脚上,或将晶振连接到XI 和XO 管脚上。这种情况下,芯片内的时钟振荡器电路会自动关闭,晶振时钟或外部输入时钟电路被采用。此时,若晶振频 率为11.0592MHz, 输出数据速率为准确的10Hz 或80Hz 。输出数据速率与晶振频率以上述关系按比例
34、增加或减少。使用外部输入时钟时,外部时钟信号不一定需要为方波。可将MCU 芯片的晶振输出管脚 上的时钟信号通过20pF 的隔直电容连接到XI管脚上,作为外部时钟输入。外部时钟输入信号的幅值 可低至150mV 。 串口通讯 串口通讯线由管脚PD_SCK和DOUT组成,用来输出数据,选择输入通道和增益。当数据输出管 脚DOUT为高电平时,表明A/D转换器还未准备好输出数据,此时串口时钟输入信号PD_SCK应为低 电平。当DOUT 从高电平变低电平后,PD_SCK 应输入25至27个不等的时钟脉冲。其中第 一个时钟脉冲的上升沿将读出输出24位数据的最高位(MSB),直至第24个时钟脉冲完成,24位输
35、出数据从最高位至最低位逐位输出完成。第25至27个时钟脉冲用来选择下一次A/D转换的输入通道和增益。3.3.3 hx711内部电路 内部电路如图3.5所示:图3.5 hx711内部电路3.4 显示模块3.4.1 液晶显示的原理说明 利用液晶的物理特性,通过电压控制显示区域,有电就会在显示屏上有显示,就可以显示出图形。液晶显示器的优点有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示,目前在便携式电脑、数字摄像机、PDA移动通信工具等众多领域已经被广泛应用。3.4.2 LCD1602的结构及引脚功能 LCD1602的结构图如图3.6所示:图3.6 LCD1602的结构图 第1脚:VSS为
36、地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。
37、第16脚:背光源负极3.4.3 显示电路的硬件设计LCD1602电路设计图如图3.7所示: 图 3.7 LCD1602的电路图3.5 报警模块 本设计采用蜂鸣器作为报警器,从而实现阈值报警功能。将蜂鸣器的正极接VCC,负极接三极管的集电极,基极串联一个限流电阻R3再接到CPU的P3.7口,当P3.7为高电平时,三极管无法导通,蜂鸣器不叫,当P3.7为低电平时,三极管导通,蜂鸣器报警。电路图如图3.8所示。 图3.8 报警电路图4 软件设计4.1 keil软件 单片机开发中除必要的硬件外,同样离不开软件,汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编13,
38、机器汇编是通过汇编软件将源程序变为机器码,Keil软件是目前最流行开发MCS-51系列单片机的软件。 Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(mVision)将这些部份组合在一起。 Keil 51 编译指南: 第1步: 打开Keil51软件,首先弹出一个开机启动画面。 第2步: 然后进入Keil51的开发界面。下面简要介绍一下Keil51开发环境中各个区域的功能。 Keil51开发环境可以分为四个区域,分别为:菜单条、项目文件管理窗口、代码编译窗口和代码编译信息窗口四个部分。菜单条分为十项,所有的命令都可以在这里找
39、到。下面的命令是一些常用的菜单命令,如文件的打开、关闭及保存。其中编译命令最为常用。中间靠左是项目文件管理窗口,这里可以看到当前项目中所包含的所有带编译的文件。项目文件管理窗口的右侧是代码编译窗口,这是最主要的工作区域。最底层显示了代码编译的信息。当代码有语法错误时,可以在这里轻松的找到问题的所在。 第3步:下面以建立一个简单的项目为例,来说明Keil51开发项目的一般方法。单击Project菜单项,选择New Project项。 第4步:此时弹出Create New Project对话框,选择合适的路径口,在文件名一栏中填入新工程的名字。单击保存。 第5步: 根据所用的器件,选择CPU的型号
40、,单击确定。 第6步:Keil51询问是否生成默认的配置文件,这个可选可不选,这里选定。单击Yes,观察项目 文件管理窗口的变化。 第7步:在File菜单下单击New选项,新建文件。此时在代码窗口出现一“Text1”空白文档。 第8步: 在“Text1”中编辑完代码后,单击File菜单中的保存项,弹出保存对话框。保存名写为text.c。单击保存。注意在对文件命名时必须加扩展名。 第9步: 在项目导航栏中Source Group 上单击右键,选Add File to Group Source Group 1。 第10步: 此时弹出Add File 对话框。选中刚才保存的text.c文件。单击Ad
41、d。此时在项目文件管理窗口中就会出现刚才所添加的文件text.c。 第11步: 单击快捷菜单栏中的编译按钮,可以编译程序。 第12步: 单击Project菜单项,选择Option for Target Target 1选项。在弹出的对话框中可以对Project进行总体配置。 第13步: 选择Output 选项卡,单击Create HEX File ,代码输出格式应为HEX-80 。 第14步: 单击确定后,并重新编译。可以看到编译成功之后,Build 选项卡里又多了一项。这是生成的HEX 文件。 第15步: 单击Debug 菜单项中的Start/Stop Debug Session 命令或工具
42、栏中的进入调试界面。 第16步: 单击调试界面Debug 菜单项中的Go命令或工具栏中的运行程序,单击Stop Running 命令或来结束程序。观察运行结果,若结果正确,便可通过下载软件将它烧写到目标板上去。这样,一个简单的Keil 51下的项目就完成了。注:Keil 51 对汇编语言文件的编译调试步骤和对C语言的编译调试基本上是一样的,只是在第八步中用汇编语言进行代码的编写,并在保存文件时将扩展名加成 . asm。 本系统中,最初采用把9个状态分别设置成一个子函数的方法。在每个子函数中对在此状态中需要点亮的LED单独赋值,延时程序采用定时器延时,在主函数中设置调用子函数。但是在调试过程中遇
43、到很多问题,比如,LED并未按照理想的方式点亮或熄灭,也没有状态变化。在经过分析后,采用了另一种更为简单的方法,即给P1口和P2口整体赋值,如P1=0xff、P2=0xff即表示所有LED不点亮。每个状态只需赋一个或两个值,需要延时时只需调用延时程序。此外,对延时程序也进行了修改,把原有方案改为用CPU延时,这样,程序变得较为简单易行。4.2程序流程图程序设计的流程如图4.1所示,开机后先对系统进行初始化,接下去则循环采集数据和键盘程序。4.3 子程序流程图系统子程序主要包括A/D转换启动及数据读取程序设计、键盘输入控制程序设计、显示程序设计等。4.3.1 AD转换程序流程图AD转换子程序主要是指在系统开始运行时,把称重传感器传递过来的模拟信号转换成数字信号并传递到单片机所涉及到的程序设计。流程图如图4.2所示。4.3.2 显示子程序流程图 显示子程序主要是来判断是否需要显示,以及如何去显示,也是十分重要的程序之一。而显示子程序是其他程序所需要调用的程序之一,含有总价显示程序和数据录入显示程序。程序流程图如图4.3所示。开始 系统初始化进入后台while循环有称重标志吗? N称重并计算 Y