一、课程设计(论文)的内容
1、用4只LED数码管输出显示重量。
2、可通过按键设置重量功能,且停闹无须手工操作。
3、可通过按键设置重量的单位。
4、称重时的误差少于10g。
二、课程设计(论文)的要求与数据
1、系统框图、方案论证;
2、各部分的硬件电路原理图及功能说明;
3、程序流程图及分析;
4、系统调试与分析;
5、源程序清单。
三、课程设计(论文)应完成的工作
1. 画出系统框图,论证系统设计方案;
2、器件选型,给出系统各个组成部分的硬件电路原理图;
3、给出程序流程图;
4、进行源程序的设计及调试;
5、撰写课程设计报告的。
四、课程设计(论文)进程安排
序号 | 设计(论文)各阶段内容 | 地点 | 起止日期 |
1 | 选择课题,明确设计要求,查阅资料 | 校内 | 5.12 |
2 | 方案论证、系统总体设计 | 校内 | 5.13~5.14 |
3 | 硬件电路原理图设计 | 校内 | 5.15~5.16 |
4 | 程序流程图的设计、源程序的编制及系统调试 | 校内 | 5.17~5.18 |
5 | 撰写课程设计报告 | 校内 | 5.19~5.20 |
6 |
|
|
|
五、应收集的资料及主要参考文献
[1] MCS-51系列单片微型计算机及其应用
[2] MCS-51系列单片机实用设计
发出任务书日期: 2017年 05月12 日 指导教师签名:
计划完成日期: 2017年 05月20 日 教学单位责任人签章:
目录
1系统分析
1.1功能要求
1.2方案论证
2 系统设计
2.1 系统硬件电路的设计
2.2 系统程序的设计 9
3 结束语 18
参考文献 19
附录1材料清单 20
附录2电路原理图 21
附录3实物图 22
附录4主要程序清单 23
1系统分析
1.1功能要求
本课题的主要设计思路是:利用压力传感器采集因压力变化产生的电压信号,经过电压放大电路放大,然后再经过模数转换器转换为数字信号,最后把数字信号送入单片机。单片机经过相应的处理后,得出当前所称物品的重量及总额,然后再显示出来。此外,还可通过键盘设定所称物品的价格。
本文主要主要以下几个方面的工作:
(1)详细讲解了称重器工作原理。
(2)对称重器系统进行总体方案的设计。
(3)对于称重器的硬件系统,重点介绍关于精度、转换速率的压力传感器和A/D转换模块器件的选取。
(4)对于称重器的软件系统,通过解说LCD液晶显示的使用及键盘的工作原理,对于主程序的编写与调试提供重要的依据。
(5)依据称重系统的总电路,通过Keil软件C语言编程和Proteus仿真,实现模拟的称重显示。
(6)对称重系统的测量值与显示值的差值,进行系统的调试与误差校正。
主要技术指标为:称量范围0~10Kg;分度值0.01kg;精度等级Ⅲ级;电源DC1.5V(一节5号电池供电)。
数码管显示。结构如图1.2所示:
图1.2数码管显示方案
此方案利用数码管显示物体重量,简单可行,可以采用内部带有模数转换功能的单片机。此设计的硬件部分简单,接口电路易于实现,并且在编程时大大减少程序量,在电路结构上只有简单的输出输入关系。缺点是:硬件部分简单,虽然可以实现电子称基本的称重功能,但是不能实现外部数据的输入,无法实时地设定各种控制参数。由于数码管只能实现简单的数字和英文字符的显示,不能显示汉字以及其他的复杂字符,不能达到显示购物清单的要求。又因为采用了具有模数转换功能的单片机,系统电路过于简单,系统硬件的扩展必受到限制,电子秤的功能过于单一,达不到设计的标准。
2 系统设计
2.1 系统硬件电路的设计
2.1.1 AT89S52的最小系统电路构成
AT89S52单片机的最小系统由时钟电路、复位电路、电源电路及单片机构成。单片机的时钟信号用来提供单片机片内各种操作的时间基准,复位操作则使单片机的片内电路初始化,使单片机从一种确定的初态开始运行。
单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。
当单片机的复位引脚RST出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。
上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。
系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。
图2.1AT89S52最小系统电路
2.2.2 A/D转换器与AT89S52单片机接口电路
AD574是美国Analog Device公司生产的12位单片A/D转换器。它采用逐次逼近型的A/D转换器,最大转换时间为25us,转换精度为0.05%,所以适合于高精度的快速转换采样系统。芯片内部包含微处理器借口逻辑(有三态输出缓冲器),故可直接与各种类型的8位或者16位的微处理器连接,而无需附加逻辑接口电路,切能与CMOS及TTL电路兼容。AD574采用28脚双列直插标准封装。
图2.2AD574芯片引脚图
A/D574有5根控制线,逻辑控制输入信号有: A0:字节选择控制信号。 CE:片启动信号。
/CS:片选信号。当/CS=0,CE=1同时满足时,AD574才处于工作状态,否则工作被禁止。
R/-C:读数据/转换控制信号。
12/-8:数据输出格式选择控制信号。当其为高电平时,对应12位并行输出;为低电平时,对应8位输出。
当R/-C=0,启动A/D转换:当A0=0,启动12位A/D转换方式;当A0=1,启动8位转换方式。
当R/-C=1,数据输出,A0=0时,高8位数据有效;A0=1时,低4位数据有效,中间4位为0,高4位为三态。 输出信号有:
STS:工作状态信号线。当启动A/D进行转换时,STS为高电平;当A/D转换结束时为低电平。则可以利用此线驱动一信号二极管的亮灭,从而表示是否处于A/D转换。
由于对AD574 的8、10、12引脚的外接电路有不同连接方式,所以AD574与单片机的接口方案有两种,一种是单极性接法,可实现输入信号0~10V或者0~20V的转换;另一种为双极性接法,可实现输入信号-5~+5V或者-10~+10V之间转换。本次设计采用单极性接法。
图2.3 AD574与AT89S52的接线图
根据芯片管脚的原理,无论启动、转换还是结果输出,都要保证CE端为高电平,所以可以将单片机的/RD引脚和/WR端通过与非门与AD574的CE端连接起来。转换结果分高8位、低4位与P0口相连,分两次读入,所以12/-8端接地。同时,为了使CS、A0、R/-C在读取转换结果时保持相应的电平,可以将来自单片机的控制信号经74LS373锁存后再接入。CPU可采用中断、查询或者程序延时等方式读取AD574的转换结果,本设计采用查询方式。
2.1.3 显示电路与AT89S52单片机的接口电路
图2.4 单片机与LCD接线图
3.4 键盘电路与AT89S52的接口电路设计
键盘一般是由若干按键组成的开关矩阵,若按照其接线方式的不同,可分为两种: 一种是独立式接法,一种是矩阵式接法;若按照按键的结构原理,可分为两类:一类是触点式开关按键,如机械式开关、导电橡胶式开关等,一类是无触点式开关按键,如电气式按键、磁感应按键等。前者造价低,后者寿命长。
按键按下时,与此键相连的行线与列线导通,行线在无键按下时处于高电平。显然如果让所有的列线也处在高电平,那么按键按下与否不会引起行线电平的变化,因此,必须使所有的列线处在低电平。只有这样,当按键按下时,该键所在的行电平才会由高电平变为低电平。CPU根据行电平的变化,便能判定相应的行有键按下。
对应键盘的相应取决于键盘的工作方式,键盘的工作方式应根据实际应用系统中CPU的工作情况而定,其选取的原则既要保证CPU能及时响应按键操作,又不要过多的占用CPU的工作时间。通常,键盘的工作方式有3种,即编程扫描、定时扫描和中断扫描。
① 编程扫描方式:利用CPU完成其他工作的空余时间,调用键盘扫描子程序来响应键盘输入要求。在执行键功能程序时,CPU不再响应键输入要求,直到CPU重新扫描键值为止。
② 定时扫描方式,定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(列如10ms)的定时,当定时时间到,就会产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的子程序。
③ 中断扫描方式:采用上述两种扫描方式时,无论是否有键按下,CPU都要定时扫描键盘,而单片机应用系统工作时,并非经常需要键盘输入,因此,CPU经常处于空扫描状态。为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己程序,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。
说明此(低电平)行没有键被按下。接着进行下一行“0”行扫描与列读入,知道4行关不检查完为止,若无键按下,则返回。
矩阵式键盘的结构与工作原理: 在键盘中按键数量较多时,为了减少I/矩阵式键盘有两种识别键是否被按下的方法:行扫描法和线反转法。行扫描法又称逐行零扫描查询法,及逐行输出行扫描信号“0”,使各行依次为低电平,然后分别读取列数据,检查此(低电平)行中是否有键被按下。如果读得某列线为低电平,则表示此(低电平)行线与列线的交叉处有键按下,再对该键该键译码计算,得到键值,然后转入该键的功能子程序入口地址;如果没有任何一根列线为低电平,则O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
矩阵式键盘的按键识别方法 :确定矩阵式键盘上何键被按下介绍一种“行扫描法”。行扫描法 行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如下图所示键盘,介绍过程如下。判断键盘中有无键按下 将全部行线R0-R3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。 判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。
在本系统中键盘采用矩阵式键盘并采用编程扫描的工作方式。键盘为4 X 4键盘,包括0、1、2、3、4、5、6、7、8、9、十个数字及确认和清除键。
图2.5 单片机与键盘接口电路
各个按键的功能说明:
数字键:.、0、1、2、3、4、5、6、7、8、9被按下时直接显示在LCD液晶显示屏上。
启动键:当按下此键时,LCD液晶显示开启。
单价键:当此按键被按下时,此刻要求输入称重物品单价,即要求按下数字键。 确定键:前提是单价已输入完毕,当此按键被按下时,LCD屏幕显示当前称重物品的总价格。
总价键:当称重物品单价不变、重量改变时,按下此按键时,LCD液晶屏上显示当前重量物品的总价格。
清除键:当此键按下时,单价及总价处的显示清零。
2.2 系统程序的设计
2.2.1 主程序设计
在单片机应用系统的开发中,软件的设计是最复杂和困难的,大部分情况下工作量都较大,特别是对那些控制系统比较复杂的情况。如果是机电一体化的设计人员,往往需要同时考虑单片机的软硬件资源分配。本系统的软件设计主要分为系统初始化、按键、显示处理及信号频率输入处理。
程序设计是一件复杂的工作,为了把复杂的工作条理化,就要有相应的步骤和方法。其步骤可概括为以下三点:
(1) 分析系统控制要求,确定算法:对复杂的问题进行具体的分析,找出合理的计算方法及适当的数据结构,从而确定编写程序的步骤。这是能否编制出高质量程序的关键。
(2) 根据算法画流程图:画程序框图可以把算法和解题步骤逐步具体化,以减少出错的可能性。
(3)编写程序:根据程序框图所表示的算法和步骤,选用适当的指令排列起来,构成一个有机的整体,即程序。
程序数据的一种理想方法是结构化程序设计方法。结构化程序设计是对利用到的控制结构类程序做适当的限制,特别是限制转向语句(或指令)的使用,从而控制了程序的复杂性,力求程序的上、下文顺序与执行流程保持一致性,使程序易读易理解,减少逻辑错误和易于修改、调试。根据系统的控制任务,本系统的软件设计主要由主程序、初始化程序、A/D转换子程序、键盘扫描子程序和显示子程序等组成。
2.2.2 C语言在单片机中的应用
C语言是一种通用的计算机程序设计语言,在国际上非常流行。它既可以用来编写计算机的系统程序,也可以用来编写一般的应用程序。以前计算机的系统软件主要用汇编语言编写,单片机应用系统更是如此。C语言是当前最流行的程序设计语言,它像其它高级语言一样,面向用户,面向解题的过程,编程者不必熟悉具体的计算机内部结构和指令;C语言又像汇编语言一样,可以对机器硬件进行操作。如进行端口0,1操作、位操作、地址操作,并可内嵌汇编指令,将汇编指令当作它的语句一样。我们知道,汇编语言将涉及计算机硬件,所以C语言又像低级语言一样,可以对计算机硬件进行控制,因此人们把它称为介于高级语言与低级语言之间的一种中级语言。正是因为C语言具有这样的特性,所以很适合编写要对硬件进行操作的软件程序。本文采用C语言进行编写.因为经系统软件比较,本系统存储量较大,因此必须应用C语言编程了。 4.1.2 电子称的软件设计与实现
电子称软件设计均采用模块化设计,整个程序包括主程序、A/D转换模块程序、键盘扫描程序、液晶显示子程序等模块。所有程序均采用C语言编写。电子计价秤的软件设计思路说明如下:主程序的作用为程序初始化,计算单价×物体重量(单价通过键盘给出,物体重量通过压力传感器获得),并实时显示十进制的物重,单价,总价。设定T0为计数工作方式,T1为定时工作方式。其中R0为标志位寄存器当为OOH时为正常显示方式。当为01H时为累计显示方式,在T1定时中断程序中。一秒钟采样物料重量(已转成脉冲频率),并赋值重量计算RAM区和显示RAM区。在INTO外部中断程序中,采样单价并赋值单价计算。
2.2.3 系统主程序流程图
主程序流程图给出了系统工作的基本过程,描述了信号的基本流向,起到一个向导的作用。
本系统的软件系统主要可分为主程序和定时器中断程序两大模块。在程序过程中,加入了抗干扰措施。下面对部分模块作介绍。
图2.6 称重总设计的仿真图
图2.7 系统总程序图
2.2.4 系统子程序设计
系统子程序主要包括A/D转换启动及数据读取程序设计、键盘输入控制程序设计以及显示程序设计等。
2.2.5 A/D转换启动及数据读取程序设计
A/D转换子程序主要是指在系统开始运行时,把称重传感器传递过来的模拟信号转换成数字信号并传递到单片机所涉及到的程序设计
图2.8 A/D转换启动及数据读取程序流程图
图2.9 A/D0832转换后的显示图像
2.2.6 显示程序设计
显示子程序主要是来判断是否需要显示,以及如何去显示,也是十分重要的程序之一。
图2.11 显示子程序流程图
图2.12 显示启动按键按下后
图2.13 显示欢迎界面
2.2.7 键盘输入控制程序设计
键盘电路设计成4X4矩阵式,由键盘编码方式可以得出0,1,2,3,4,5,6,7,8,9以及启动等功能选择键。在程序中可以先判断按键编码,然后根据编码将键盘代表的数值送到相应的存储单元,再进行功能选择或数据处理。
矩阵式键盘又叫行列式键盘。就是用I/O口线组成行、列结构,按键设置在行列的交点上。在按键较多时多用矩阵键盘,可以节省I/O口线。列如:占用8个I/O口线的4×4矩阵式结构可以构成16个键的键盘。当有键按下时,要逐行或逐列扫描来判断是哪个按键按下。通常的扫描方式有扫描法和反转法。
图2.14 键盘逐行扫描过程
本文唯一的不足是只对研发方案成果的进行了仿真设计,没有运用实物进行验证方案是否可行,有待进一步的研发。虽然没有做出实物,但基于51单片机双精度电子称依然是一个具有前景的电子衡器产品,非常适合于中小型市场的物体称重,如果双精度电子称进一步发展,与虚拟串口技术融合,将会实现与上位机的无线通讯,实现远程监测,将更有价值。
参考文献
[1] 黄坚,金惟伟.中小型电机产品近年出口情况简述[J].中小型电机,2005,32(1) 9--12.
[1]赵茂泰. 智能仪器原理及应用[M].北京:电子工业出版社.2004
[2]张毅刚. MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社.2003 [3]贾伯年, 俞朴.传感器技术[M].东南大学出版社.2000
[4]单成祥.传感器理论设计基础及其应用[M].北京:国防工业出版社.1999 [5]李道华,李玲,朱艳 .传感器电路分析与[M].武汉:武汉大学出版社.2000 [6]沙占友 ,王彦朋等. 智能传感器系统设计与应用[M].北京:电子工业出版社2004.6
[7]何希才,薛永毅. 传感器及其应用实例[J].北京:机械工业出版社.2004.1 [8]李群芳. 单片机微型计算机与接口技术[M].电子工业出版社. [9]周立功. 单片机实验与实践[M].北京航空航天大学出版社.2004.6
[10]全国大学生电子设计竞赛组委会.全国大学生电子设计竞赛获奖作品汇编[J].北京理工大学出版社.2005.11
[11]何立民 .单片机高级教材[M].北京:航空航天大学出版社.2000 [12]童诗白,华成英 .模拟电子技术基础[M]. 北京:北京高等教育出社.2001 [13]程林 ,超省电型电子秤的设计方案[J].福建:福建省计量科学技术研究所. 2008.3
附录1材料清单
名称 | 型号 | 数量 |
单片机 | AT89C2051 | 1 |
数字集成芯片 | CD4017 | 2 |
数字集成芯片 | CD4069 | 1 |
超高亮数码管 | 共阳 尺寸0.5inch | 4 |
高亮发光二极管 | ![]() | 13 |
高亮发光二极管 | 3绿、透明 | 50 |
普通二极管 | IN4001 | 4 |
普通二极管 | IN4148 | 2 |
稳压二极管 | C4V7( 4.7V) | 1 |
三极管 | 9012 | 5 |
三极管 | 9013 | 1 |
轻触按键 | 小(尺寸6×6mm×5.5) | 3 |
蜂鸣器 | 5 V | 1 |
晶振 | 6M(小体积) | 1 |
底座 | 14脚 | 1 |
底座 | 16脚 | 2 |
底座 | 20脚 | 1 |
底座 | 40脚 | 1 |
电阻 | 220欧姆,1/8瓦 | 8 |
电阻 | 4.7K,1/8瓦 | 5 |
电阻 | 100欧姆,1/8瓦 | 1 |
电阻 | 10k,1/8瓦 | 4 |
电阻 | 270欧姆,1/8瓦 | 1 |
电容 | 100微法/25伏 | 2 |
电容 | 220微法/25伏 | 1 |
电容 | 30P 瓷片 | 3 |
电容 | 104(0.1微法) | 3 |
变压器 | 5 V/100 M A | 1 |
电源线 | 150cm | 1 |
固定脚 | 铜 | 3套 |
PCB线路板 | 直径11.5 | 1 |
附录2电路原理图
附录3实物图
附录4主要程序清单
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |