图1 数码管显示方案
图2带有键盘输入的结构简图
图3带有键盘输入及液晶显示的结构简图
鉴于上述三种方案的优缺点,本系统在设计时充分考虑到系统的实用性及成本的可行性的前提下,设计完成了最终的电子称方案,最终的硬件设计方案图如图4所示,
图3系统设计硬件框图
2.2系统元器件选型及器件参数介绍2.2.1单片机选型单片机的选择在整个系统设计中至关重要,要满足大内存、高速率、通用性、价格便宜等要求,鉴于以上考虑本课题选择ST89C52作为整个系统的主控芯片。
ST89C52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写10000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构[1],芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的ST89C52可为许多嵌入式控制应用系统提供高性价比的解决方案。ST89C52芯片具有以下特性[2]:
①指令集和芯片引脚与Intel公司的8051兼容;
②8KB片内在系统可编程Flash程序存储器;
③时钟频率为0~33MHz;
④128字节片内随机读写存储器(RAM);
⑤32个可编程输入/输出引脚;
⑥2个16位定时/计数器;
⑦6个中断源,2级优先级;
⑧全双工串行通信接口;
⑨监视定时器;
⑩2个数据指针。
ST89C52单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。
方案一 数码管显示
数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。
数码管显示信息有限,当显示信息较多时需要多个数码管级联方可,这样会造成硬件连接复杂,成本增加;数码管对大部分字符不能很好的显示,动态扫描时处理不好易出现闪烁现象。
方案二 LCD字符液晶显示
采用点阵字符型 LCD 液晶显示,液晶显示模块具有体积小、功耗低、显示内容丰富等特点,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件,但采用LCD液晶显示会造成设计成本增加。
LCD1602可以显示2行 16 个字符,有 8 位数据总线 D0-D7,和 RS、R/W、 EN 三个控制端口,工作电压为 5V,并且带有字符对比度调节和背光[4]。
具体引脚说明如表图6所示。
图6 LCD1602字符液晶引脚定义
LCD1602 液晶模块内部的字符发生存储器(CGROM)已经存储了 160 个不同 的点阵字符图形,如表 1 所示,这些字符有:阿拉伯数字、英文字母的大小写、 常用的符号、和日文假名等,每一个字符都有一个固定的代码,它的读写操作、 屏幕和光标的操作都是通过指令编程来实现的。
最后综合了多方面因素的考虑采用了方案二,选择 LCD1602 显示器作为系统的显示界面。
2.2.4 AD转换芯片选择HX711是一款专为高精度电子秤而设计的24位A/D转换器芯片。与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。降低了电子秤的整机成本,提高了整机的性能和可靠性。该芯片与后端MCU 芯片的接口和编程非常简单,所有控制信号由管脚驱动,无需对芯片内部的寄存器编程。输入选择开关可任意选取通道A 或通道B,与其内部的低噪声可编程放大器相连。通道A 的可编程增益为128 或64,对应的满额度差分输入信号幅值分别为±20mV或±40mV。通道B 则为固定的64 增益,用于系统参数检测。芯片内提供的稳压电源可以直接向外部传感器和芯片内的A/D 转换器提供电源,系统板上无需另外的模拟电源。芯片内的时钟振荡器不需要任何外接器件。上电自动复位功能简化了开机的初始化过程。芯片管脚图如图7所示。
图7 HX711管脚定义
HX711典型应用电路如图8所示。
图8 HX711典型应用电路
3系统硬件电路设计3.1系统电源电路设计由于该系统中 51 单片机及 AD 转换芯片及液晶显示器所需供电电压均为 5V 电压,所以要保证系统稳定可靠的工作,需要设计一个可以稳定提供 5V 电压的供电系统。本设计采用USB供电方式,USB 接口供电方便程序调试,电源输接口加上LED 电源指示灯,用来判定电源是否正常工作。该系统电源电路设计如图 11 所示。
3.3单片机控制电路设计
系统主控电路由STC89C52单片机及晶振电路和复位电路组成,该电路作为整个系统功能实现的核心单元,其连接方式如图14所示。
图14单片机主控电路
晶振全称为晶体振荡器,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率。晶振一般叫做晶体谐振器,是一种机电器件,是用电损耗很小的石英晶体经精密切割磨削并镀上电极焊上引线做成。这种晶体有一个很重要的特性,如果给它通电,它就会产生机械振荡,反之,如果给它机械力,它又会产生电,这种特性叫机电效应。他们有一个很重要的特点,其振荡频率与他们的形状,材料,切割方向等密切相关。由于石英晶体化学性能非常稳定,热膨胀系数非常小,其振荡频率也非常稳定,由于控制几何尺寸可以做到很精密,因此,其谐振频率也很准确。根据石英晶体的机电效应,我们可以把它等效为一个电磁振荡回路,即谐振回路。他们的机电效应是机-电-机-电..的不断转换,由电感和电容组成的谐振回路是电场-磁场的不断转换。在电路中的应用实际上是把它当作一个高Q值的电磁谐振回路。由于石英晶体的损耗非常小,即Q值非常高,做振荡器用时,可以产生非常稳定的振荡,作滤波器用,可以获得非常稳定和陡削的带通或带阻曲线[10]。
复位电路是用来让单片机返回到初始状态的辅助电路,其作用是当单片机程序跑飞或系统出现死机状态时可以让系统从新恢复工作。本系统复位电路的设计为上电复位复位方式。按键复位就没有太大必要使用看,所以没有设计按键复位。
3.4系统显示电路设计显示部分采用LCD1602液晶显示模块,液晶板上排列着若干 5×7或 5×10点阵的字符显示位,每个显示位可显示1个字符,从规格上分为每行 8、16、20、24、32、40位,有一行、两行及四行三类。其与单片机的连接电路如图15所示
图15系统状态显示电路图
1脚和2脚为液晶1602地和电源引脚,3脚为背光调节引脚,通过10K电位器接地,背光可通过电位器来调节亮度;4脚、5脚、6脚为液晶片选控制引脚,分别连接到单片机的P2.5、P2.6、P2,7端口,7~14脚为数据接口,与单片机的P0口相连实现数据的传输,15、16、脚为液晶的背光控制脚,分别接到电源和地[9]。
报警指示电路用来在称重测量超出最高值时报警提示,以免重量太高的情况下损坏传感器。报警指示电路由PNP三极管9S8550驱动蜂鸣器来实现,单片机IO口控制三极管的基极,当单片机的IO口输出为低电平时,三极管导通,蜂鸣器的正极与电源接通,蜂鸣器通电发出报警声,当单片机IO口输出高电平时,三极管截止,蜂鸣器停止报警。报警指示电路如图16所示。
图16报警指示电路
3.6按键输入电路设计按键输入电路用来在电子称测量过程中输入单价值,按键输入电路采用4*4矩阵键盘实现,矩阵键盘电路如图17所示。
图17按键输入电路
电子称按键功能分配如下表所示:
此电子秤是开机检测托盘重量,并将托盘重量清零(即电子秤每次开机后检测托盘重量,并程序中自动将托盘重量保存在一个变量中,称量过程中每次都将获得的重量减去托盘重量,而得到所要称量物体的真正的重量),
计算功能:在正确输入了单价之后,按下计算按键,将会计算出金额,并在液晶显示器上显示出重量、单价、总价。
本电子称设计采用C语言编程,编译环境为keil UV3。
keil c51 是美国Keil Software 公司出品的51 系列兼容单片机C 语言软件开发系统,和汇编相比,C 在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil c51 软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keil c51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。
Keil C51 可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE 本身或其它编辑器编辑C 或汇编源文件,然后分别有C51 及A51 编辑器编译连接生成单片机可执行的二进制文件(.HEX),然后通过单片机的烧写软件将HEX 文件烧入单片机内。软件主要三个方面:一是初始化系统;二是按键检测;三是数据采集、数据处理并进行显示。这三个方面的操作分别在主程序中来进行。程序采用模块化的结构,这样程序结构清楚,易编程和易读性好,也便于调试和修改。
4.1系统主程序软件流程图经过不懈的努力和导师的细心指导,实物最终得以调试成功,最终完成的实物效果图如图23所示。
在此毕业设计过程中,巩固了我在大学4年内学过的知识,尤其是单片机和C语言编程方面的知识,同时通过这次毕设提高了单片机编程的能力,尤其是获得的软件调试经验,同时了解到了其它相关领域的知识,对今后的工作学习有着极大的帮助。
由于时间太仓促,经验不足,理论方面也相应的存在不足,加上条件有限,仍存在着一些设计方面的问题,个人技能也有待提高。理论知识还要巩固加强。但是宝贵的实践经验还是对自己的提高有着极大的帮助。
附录
附录1系统整体电路图
致 谢
该电子秤控制系统的设计及论文的撰写是在我的导师老师的精心指导和悉心关怀下完成的,从论文的选题、研究、撰写到定稿,都得到了?老师细心指导。他宽厚待人,对学生关怀备至,在工作上精益求精,对学生严格要求,鼓励学生学以致用,敢于实践,勇于创新,在实践中发现问题、解决问题。?老师具有丰富的科研经验与理论水平,其开明的学术思想、求实的科研作风和对科学研究及发展趋势的深刻认识给我以极大的影响、启迪和熏陶,令我受益匪浅。该设计及论文的圆满完成是和?老师的细心关怀分不开的。
在系统的设计和论文的研究工作中无不倾注着各位老师的心血和辛勤的汗水,各位老师严谨的治学态度、渊博的知识、生动而满富激情的授课方式,让我四年里学到了扎实的理论知识。从各位尊敬的老师身上,我不仅学到了扎实的专业知识和丰富的实践技能,也学到了很多做人的道理。在此,向给予我指导和帮助的各位老师致以最衷心的感谢和深深的敬意!
在这四年多的学习和研究工作中,也得到了学院的师兄弟们的关心和热心帮助,在此向他们表示由衷的感谢!
最后,衷心感谢在百忙中评阅论文和参加答辩的各位专家、教授和同学!
单片机源码:
完整的Word格式文档51黑下载地址:
基于单片机的电子称设计.doc
(2.4 MB, 下载次数: 27)
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |