




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 引言11 课题研究背景现代社会的发展,对称重技术提出了更高的要求。目前,台式电子秤在商业贸易中的使用已相当普遍,但存在较大的局限性:体积大、成本高、需要工频交流电源供应、携带不便、应用场所受到制约。现有的便携秤为杆秤或以弹簧压缩、拉伸变形来实现计量的弹簧秤,居民用户使用的是国家已经明令淘汰的杆秤。多年来,人们一直期待测量准确、携带方便、价格低廉的便携式电子秤投放市场1。质量是测量领域中的一个重要参数,称重技术自古以来就被人们所重视。公元前,人们为了对货物交换量进行估计,起初采用木材或陶土制作的容器对交换货物进行计量。以后,又采用简单的秤来测定质量。据考证,世界上最古老的计量器具出土于中东和
2、埃及,最古老的衡器和砝码出自于埃及。秤是最普遍、最普及的计量设备,电子秤取代机械秤是科学技术发展的必然规律。低成本、高智能化的电子秤无疑具有及其广阔的市场前景2。12 称重技术和衡器的发展衡器是通过作用于被测量物体的重力来确定该物体质量的计量器具。在整个衡器的发展过程中,先后主要出现了六种类型的衡器:架盘天平、不等臂平台秤、吊车秤、倾斜象限杆秤、弹簧秤和自动秤。其中,不等臂平台秤(“十进制”)是当今动态轨道衡的鼻祖,至今它仍是最通用的一种秤3。第一次世界大战后,由于金融贸易和工业发展的需要,急需能进行快速称量的衡器。机械式衡器在此期间得到很大的发展。当时以倾斜杠杆案称占绝大多数,读数装置除扇形
3、度盘外,还有滚筒形度盘,从而扩大了读数范围并可附加价格标尺。以后又出现了用于工业的带双摆锤测量机构的圆形度盘指针式秤和成本低廉、带投影标尺的倾斜式杠杆秤4。第二次世界大战后出现了电子衡器,它主要由称重显示控制器、称重传感器和电器控制等部分组成,其发展过程与其它事物一样,经历了由简单到复杂、由粗糙到精密、由机械到机电结合再到全电子化、由单一功能到多功能的过程5。近30年以来,工艺流程中的现场称量、配料定量称重、以及产品质量的监测等工作,都离不开能输出电信号的电子衡器。这是因为电子衡器不仅能给出质量或重量值的信号,而且也能作为总系统中的一个单元承担着控制和检验功能,从而推进工业生产和贸易交往的自动
4、化和合理化。电子衡器具有反应速度快、测量范围广、应用面广、结构简单、使用操作方便、信号远传、便于计算机控制等特点,计量精度高,而且实现了多功能、多用途。电子衡器已被广泛应用于各个行业,近年来愈来愈多地参与到数据处理和过程控制之中,使现代称重技术和数据系统成为工艺技术、储运技术、预包装技术、收货业务及商业销售领域中不可缺少的组成部分6。13 我国电子秤的发展现状电子秤是载于秤的台座、盘、钩上的物品的重量由传感器蠕变反应平衡,而由仪器数字显示的电子衡器。电子秤集机、电、仪于一体,具有多功能、高精度、快速和动态计量、稳定可靠等特征,代表了衡器产品发展的方向。电子秤属于日用衡器,为劳动密集型产品7。电
5、子秤产品总的发展趋势是小型化、模块化、集成化、智能化;其技术性能趋向是速率高、准确度高、稳定性高、可靠性高;其功能趋向是称重计量的控制信息和非控制信息并重的“智能化”功能;其应用性能趋向于综合性和组合性8。目前我国产品标准中列入的十大类衡器(案秤、台秤、地上衡、地中衡、吊称、皮带秤、料斗秤、检验秤、轨道衡和特种秤)均已实现了电子化。据近期统计,工业用衡器(按销售量统计)中的电子产品已占三分之二左右,技术水平比较成熟的静态衡器的计量范围可以从1g到800t,部分非自动衡器(如电子计价秤、电子台秤、电子地上衡、电子皮带秤、电子吊秤和电子轨道衡等)已达到国际九十年代初期水平,有的产品达到了九十年代中
6、期水平;由于近十年来电子技术的迅速发展,商用衡器的加工能力迅速增长,产品成本大幅度降低,市场稳步发展。现在,电子计量称重技术已越来越多地应用于工业生产过程控制中,电子衡器的功能及应用拓展到更广泛领域。随着我国加入wto组织,经济市场的开放度加大,一批具有国际先进水平的衡器产品和技术(如定量包装秤、自动重量检测秤、标签计价秤、电脑组合秤、耐压式计量给煤机等,以及应变计、称重传感器、称重显示器生产技术)进入我国,这对电子秤的进一步普及和提高必将产生积极的、巨大的影响9。14 电子秤软件设计实现的意义电子秤软件的设计,它主要由电源、称重传感器、单片机、lcd显示器等部分构成。新型便携式电子秤体积小、
7、计量准确、携带方便、操作简单、称量速度快,能够满足商业贸易和居民家庭的使用需求,具有广阔的应用前景10。电子称重技术的发展规律就是不断的加强基础研究并扩大应用,扩展新技术领域,向相邻学科和行业渗透,综合各种技术方法解决称重计量、自动控制、信息处理等问题。对某些商用电子计价秤而言,只具备称重、计价、显示、打印功能还远远不够,现代商业系统还要求它能提供各种销售信息,把称重与管理自动化紧密结合,使称重、计价、进库、销售管理一体化,实现管理自动化。这就要求电子计价秤能与电子计算机联网,把称重系统与计算机系统组成一个完整的综合控制系统,为现代商业贸易物流的高效率发展提供强有力的支持11。2 软件设计的原
8、理和思路21 软件设计原理电子秤设计过程遵循了简化硬件电路、以软件代替硬件的设计原则,力求最大限度地减小仪器的体积和重量,降低仪器成本12。随着计算机技术的飞速发展及其广泛应用,远程控制以及数据采集系统多采用上位机和下位机的主从工作方式,由于串行通信具有高效可靠、价格便宜,遵循统一的标准等特点,因而成为主要的通信手段。微机的分析处理能力较强,有很好的人机界面和大容量的多种存储方式,所以上位机一般采用微机。而单片机具有价格低,功能强,抗干扰能力好,温限宽和面向控制等特点,所以下位机采用单片机来构成主从式多机工作模式。在需要对采集的数据进行分析处理或在远程需要对控制对象的控制过程进行统计或有条件控
9、制时,采用数据库访问技术能有效地解决这类问题13。软件设计的总体思想是,根据预先编制的程序对测量进行控制,软件设计采用模块化结构。根据仪器的设定功能,将软件划分为若干个功能相对独立的模块,主要有仪器主程序、系统初始化、中断控制、重量读取、lcd显示、单片机与pc机串口通信模块。22 软件设计思路电子秤软件设计包括两大部分,上位机(pc机)和下位机(单片机)。串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如ieee488定义并行通行状态时,规定设备线总长不
10、得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。典型地,串口用于ascii码字符的传输。通信使用3根线完成:地线、发送、接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配14。(1)波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800hz。这意味着串口通
11、信在数据线上的采样率为4800hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是gpib设备的通信。(2)数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ascii码是0127(7位)。扩展的ascii码是0255(8位)。如果数据使用简单的文本(标准 ascii码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于
12、通信协议的选取,术语“包”指任何通信的情况。(3)停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。(4)奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那
13、么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位位1,这样就有3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步15。2.2.1 软件设计上位机(pc机)部分上位机程序的编写是通过visual basic 6.0软件实现的。visual basic 6.0以其强大的功能、使用简单、能在短时间内开发出高效的通信程序而成为windows系统开发的主要编程语言。首先表现在vb可直接使用户自定义控件vbx或ocx文件;其次表现在vb可通过调用动态链接库(dl
14、l,dynamic link library)来加快应用程序关键部分的执行速度。利用vb提供的这些功能可方便地完成程序设计,本设计将利用vb6.0通信控件mscomm .vbx及其编程方法,编写计算机与单片机进行数据通信的基本程序。 vb提供的通信控件mscomm32.ocx,使用前只需从project菜单下的components中选择microsoft comm control6.0把mscomm32.ocx控件调入工具框中即可使用。利用该控件可对串行通信的数据发送和接收进行设置,还可对串口状态及串行通信的信息格式和协议进行设置。在通信过程中可以通过触发oncomm事件来追踪、处理通信和错误
15、事件的发生。由于每个通信控件对应一个串口,如果要访问多个通信口,则要设计多个通信控件16。通信控件mscomm32.ocx提供了两种处理通信的方法: (1)事件驱动方式它是一种功能很强的处理串行通信问题的方法,在实际工作中,往往要处理许多通信中的相关事件,可通过对oncomm属性值进行编程来处理,它也包括检测和处理通信错误等方面的问题,commevent值返回最近的通信事件或错误的数字代码17。 (2)查询方式 在每个重要的程序功能之后检查commevent属性值来检测事件和通信错误。这种方式常用于应用程序较简单和相对独立的应用程序设计中。 通信控件的基本属性 为支持串行通信的实现,vb6.0
16、中mscomm控件提供了众多的串行通信属性,主要有:commport:设置和返回pc机串行端口号;settings:初始化传输波特率、奇偶校验位、数据位宽度和停止位宽度;input:从输入缓冲区中读取数据;inputlen:输入缓冲区数据长度;inputmode:输入模式,ascii字符或二进制数据;output:将数据写入输出缓冲区;inbuffersize:设置并返回接收缓冲区的字节数;outbuffersize:设置并返回输出缓冲区的字节数;portopen:布尔型,用于打开或关闭串行通信端口;oncomm:在发生通讯事件或错误时,将触发oncomm事件,commevent属性值将被改变
17、;rthreshold:引发接收事件的字节数,为0时不引发接收事件;sthreshold:引发发送事件的字节数,为0时不引发发送事件。以下程序分别是获取重量、显示重量和绘制曲线的重要程序。获取重量测量值并显示每发送一次指令,触发下面事件,返回数据串private sub mscomm1_oncomm() dim inbyte() as byte dim buffer as string dim datatemp2a, datatemp2b as string dim datatemp2 as string if num 199 then call renew 读取仪表返回数据串 select
18、case mscomm1.commevent case comevreceive inbyte = mscomm1.input for i = lbound(inbyte) to ubound(inbyte) buffer = buffer + hex(inbyte(i) + chr(32) next i case comevsend end select显示测量重量值 if datatemp(num) 0 then grid.col = 1: grid.row = num + 1 grid.text = format$(datatemp(num), 000) temptext = forma
19、t$(datatemp(num), 000) 10进制显示,保留一位小数 text2.text = datatemp2 16进制显示 num = num + 1 call draw 调用绘曲线过程 end ifend sub绘制重量实时变化曲线private sub draw() picture1.cls picture1.drawwidth = 1 picture1.backcolor = qbcolor(15) picture1.scale (-10, 100)-(200, 0) for i = 1 to num - 1 x1 = (i - 1): y1 = datatemp(i - 1)
20、 x2 = i: y2 = datatemp(i) picture1.line (x1, y1)-(x2, y2), qbcolor(12) next iend sub本设计中的上位机(pc机)通信界面,如图2.1所示。图2.1 上位机(pc机)通信界面2.2.2 软件设计下位机(单片机)部分下位机程序部分是用c语言编写的。c语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到c语言,具体应用比如单
21、片机以及嵌入式系统开发。编写本部分程序是利用keil软件进行的,图2.2就是keil c51集成开发环境。图2.2 keil c51集成开发环境c语言具有如下五大特点:(1)c是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。c 语言可以像汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。(2)c是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。c 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程
22、序完全结构化。(3)c语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外c语言也具有强大的图形功能,支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。(4)c语言适用范围大。适合于多种操作系统,如windows、dos、unix等等;也适用于多种机型。(5)c语言文件由数据序列组成,可以构成二进制文件或文本文件。结构化程序就是用高级语言表示的结构化算法。结构化程序设计的思路是,把复杂问题分解成一些容易理解和处理的小问题,而这些小问题在结构安排上、组合层次上都有自己的准确定位,每一个小问题的解决都为这一复杂问题的解决服务。如何合理地
23、在算法上这些小问题加以考虑和在结构上作正确的安排是解决复杂问题必须面对的关键问题18。解决复杂问题首先应该进行模块的划分,把一个较大的问题划分为若干个功能模块,每一个功能模块相对独立;每一个模块又可继续划分为更小的模块。经过模块划分后,会使得程序具有一种层次结构。现阶段,模块化程序设计主要有以下两种设计方法。1、自顶向下自顶向下程序设计是先设计第一层(即顶层),然后步步深入,逐层细分,逐步求精,直到整个问题可用程序设计语言明确地描述出来为止。(1)步骤:首先对问题进行仔细分析,确定其输入、输出数据,写出程序运行的主要过程和任务;然后从大的功能方面把一个问题的解决过程分成几个问题,每个子问题形成
24、一个模块。(2)特点:先整体后局部,先抽象后具体。2、自底向上自底向上程序设计是先设计底层,最后设计顶层。(1)优点:由表及里、由浅入深地解决问题。(2)不足:在逐步细化的过程中,可能发现原来的分解细化不够完善。程序设计的步骤可简单概括如下。(1)分析问题。对于待解决的问题,通过分析,明确题目的要求,列出所有已知量、未知量,找出题目的求解范围、解的精度等。(2)建立数学模型。对实际问题进行分析之后,找出它的内在规律,就可以建立数学模型。只有建立了模型的问题,才有可能利用计算机来解决。(3)确定算法。建立数学模型后,还不能着手编程序,必须根据数据结构,设计问题的算法。一般设计算法要注意:算法的逻
25、辑结构尽可能简单;除了要满足算法的基本要求外,还应注意以下问题。算法所要求的存储量应尽可能地少。避免不必要的循环,减少算法的执行时间。在满足题目条件要求下,使所需的计算量最小。(4)编写程序。把整个程序看作一个整体,先全局后局部,自顶向下,一层一层分解处理,如果某些问题的算法相同而仅参数不同,可以用模块化的方式来实现。(5)调试运行。(6)分析结果。(7)写出程序的文档。文档主要是对程序中的变量、函数或过程作必要的说明,解释编程思路,画出程序流程图,讨论运行结果等。面对一项复杂的任务,通常采取模块化的解决方法。首先,分解该复杂任务成几个大的功能模块,根据需要还可以继续细分,直到分解成一个个功能
26、独立的模块为止。分解的结果可以描述为一棵倒立的大树,其中大任务类似于树根,中间层的小任务类似于树枝,最小的小任务类似于树叶。其次,对最小的模块单独编写程序代码并调试。最后,把这些最小的模块按原来分解的逆序组合成最初的大任务。模块化解决问题的实际方法可简单描述为拆分编码组装。这样做可以使复杂问题简单化,同时可以达到程序结构清晰、层次分明、程序便于编写、便于维护的目的。任务中模块的功能可以用高级语言的子程序或函数来实现19。函数是构成c语言程序的基本功能模块,它完成一项相对独立的任务。一个c语言程序是若干函数构成的,在构成c程序的诸多函数中有且只有一个主函数。函数是程序的最小组成单位。所有函数之间
27、的关系式平行的,没有从属的概念。函数的平行关系使得函数的编写相对独立,便于模块化程序设计的实现。c程序的执行总是从主函数开始,又从主函数结束,其他函数只有通过调用关系发生作用。在主函数执行的过程中直接或间接调用其他函数,并将程序的执行控制权交给被调函数,调用结束后,继续执行主函数直到结束,才能结束整个程序的执行过程。c语言规定只允许主函数调用其他函数,反之不能。函数之间可以互相调用,同一函数可以调用多个函数,一个函数也可以被多个函数调用,函数也可以自己调用自己20。随着结构化程序设计方法的发展和广泛的应用,模块化设计方法逐步成为结构化程序设计方法的主流。模块化设计方法的主要思想是将整个软件系统
28、分解成若干个功能相对独立的模块,这些功能模块可以单独命名、单独设计、单独编程和调试。下位机(单片机)程序主要包括系统初始化、中断控制、重量读取、lcd显示、单片机与pc机串口通信等若干模块程序。根据要求实现的功能和设计程序的顺序,做出了如图2.3所示的程序流程图。ri=1计算重量定时550ms读取频率串口中断开中断开始receivea发送数据报警receivebri=0初始化lcd,串口软件滤波lcd显示图2.3 程序流程图3 电子秤软件设计所使用的各类软件介绍电子秤软件设计所使用的软件有proteus软件、keil软件、visual basic软件开发工具、串口调试助手。31 proteus
29、软件3.1.1 为什么选择proteus软件protues软件是英国labcenter electronics公司出版的eda工具软件。它不仅具有其它eda工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。proteus是世界上著名的eda工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到pcb设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、pcb设计软件和虚拟模型仿真软件三合一的设计平台,其处理器
30、模型支持8051、hc11、pic10/12/16/18/24/30/dspic33、avr、arm、8086和msp430等,2010年即将增加cortex和dsp系列处理器,并持续增加其他系列处理器模型21。protues软件具有其它eda工具软件(例:multisim)的功能。这些功能是:(1)原理布图;(2)pcb自动或人工布线;(3)spice电路仿真。protues软件具有革命性的特点:(1)互动的电路仿真用户甚至可以实时采用诸如ram,rom,键盘,马达,led,lcd,ad/da,部分spi器件,部分iic器件。(2)仿真处理器及其外围电路可以仿真51系列、avr、pic、ar
31、m、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。图3.1就是该软件仿真环境。配合系统配置的虚拟逻辑分析仪、示波器等,protues建立了完备的电子设计开发环境。图3.1 protues软件仿真环境3.1.2 proteus软件详细介绍proteus软件由isis和ares两个软件构成,其中isis是一款便捷的电子系统仿真平台软件,并且是一个操作简便且功能强大的原理绘图工具,它整合了spice的仿真模型,拥有超过8000个元件的庞大库结构。ares 是一款高级的布线编辑软件,可将isis的仿真原理图生成pcb版图22。protues提供
32、了丰富的资源:(1)protues可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。(2)protues可提供的仿真仪表资源 :示波器、逻辑分析仪、虚拟终端、spi调试器、i2c调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。(3)除了现实存在的仪器外,protues还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。(4)protues
33、可提供的调试手段 protues提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。protues在仿真方面有很强的优势,在protues绘制好原理图后,调入已编译好的目标代码文件:*.hex,可以在protues的原理图中看到模拟的实物运行状态和过程。protues 是单片机课堂教学的先进助手。protues不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选
34、择、电路连接、电路检测、电路修改、软件调试、运行结果等。课程设计、毕业设计是学生走向就业的重要实践环节。由于protues提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台随着科技的发展,计算机仿真技术已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中protues也能茯得愈来愈广泛的应用。32 keil软件3.2.1 keil软件开发背景单片机开发中除必要的硬件外,同样离不
35、开软件,我们写的汇编语言源程序要变为cpu可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于mcs-51单片机的汇编软件有早期的a51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,keil软件是目前最流行开发mcs-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持keil即可看出。keil提供了包括c编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uvision)将这些部份组合在一起。
36、运行keil软件需要pentium或以上的cpu,16mb或更多ram、20m以上空闲的硬盘空间、win98、nt、win2000、winxp等操作系统。掌握这一软件的使用对于使用51系列单片机的人来说是十分必要的,如果你使用c语言编程,那么keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用c语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。3.2.2 keil软件综述keil c51是美国keil software公司出品的51系列兼容单片机c语言软件开发系统,与汇编相比,c语言在功能上、结构性、可读
37、性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用c来开发,体会更加深刻。keil c51软件提供丰富的库函数和功能强大的集成开发调试工具,全windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keil c51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势23。3.2.3 keil c51单片机软件开发系统的整体结构c51工具包的整体结构,如图3.2所示,其中uvision是c51 for windows的集成开发环境(ide),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用id
38、e本身或其它编辑器编辑c或汇编源文件。然后分别由c51及a51编译器编译生成目标文件(.obj)。目标文件可由lib51创建生成库文件,也可以与库文件一起经l51连接定位生成绝对目标文件(.abs)。abs文件由oh51转换成标准的hex文件,以供调试器dscope51或tscope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如eprom中。图3.2 keil c51集成开发环境3.2.4 如何正确使用keil软件keil软件支持c 语言和汇编语言编写程序,并且成功的将编译和仿真软件统一为vision。keil 提供包括c 编译器、宏汇编、连接器、库
39、管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:vision ide 集成开发环境(包括工程管理器、源程序编辑器、程序调试器)、c51 编译器、a51 汇编器、lib51 库管理器、bl51 连接/定位器、oh51 目标文件生成器以及monitor-51、rtx51 实时操作系统。应用keil 进行软件程序编写的主要步骤为:编写源程序并保存、建立工程并添加源文件、设置工程、编译/汇编、连接、产生目标文件、程序调试。keil 使用“工程”(project)的概念,对工程进行编译/汇编、连接等操作。工程的建立、设置、编译/汇编及连接产生目标文件的方法如下:(1)选择菜单fil
40、enew,在源程序编辑器中输入汇编语言或c 语言源程序(或选择fileopen,直接打开已用其他编辑器编辑好的源程序文档)并保存,注意保存时必须在文件名后加上扩展名.asm(.a51)或.c;(2)选择菜单projectnew project,建立新工程并保存(保存时无需加扩展名,也可加上扩展名.uv2);(3)工程保存后会立即弹出一个设备选择对话框,选择cpu 后点确定返回主界面。这时工程管理窗口的文件页(files)会出现“target1”,将其前面+号展开,接着选择source group1,右击鼠标弹出快捷菜单,选择“add file to group source group1”,出
41、现一个对话框,要求寻找并加入源文件(在加入一个源文件后,该对话框不会消失,而是等待继续加入其他文件);(4)加入文件后点close 返回主界面,展开“source group1”前面+号,就会看到所加入的文件,双击文件名,即可打开该源程序文件;(5)对工程进行设置,通过选择工程管理窗口的target1,再选择projectoptionfor target target1,打开工程属性对话框,共有8 个选项卡,这些设置工作包括在target 选项卡中设置晶振频率、在debug 选项卡中设置实验仿真板等,如要写片,还必须在output 选项卡中选中“creat hex fi”;其他选项卡内容一般可
42、取默认值。工程设置结束后进行编译/汇编、连接以及产生目标文件。(6)成功编译/汇编、连接后,选择菜单debugstart/stop debug session(或按ctrl+f5 键)进入程序调试状态,keil 提供对程序的模拟调试功能,内建一个功能强大的仿真cpu 以模拟执行程序。keil 能以单步执行(按f11 或选择debugstep)、过程单步执行(按f10 或选择debugstep over)、全速执行等多种运行方式进行程序调试。如果发现程序有错,可采用在线汇编功能对程序进行在线修改(debuginline assambly),不必执行先退出调试环境、修改源程序、对工程重新进行编译/
43、汇编和连接、然后再次进入调试状态的步骤。对于一些必须满足一定条件(如按键被按下等)才能被执行的、难以用单步执行方式进行调试的程序行,可采用断点设置的方法处理(debuginsert/remove breakpoint 或debugbreakpoints等)。在模拟调试程序后,还须通过编程器将.hex 目标文件烧写入单片机中才能观察目标样机真实的运行状况。33 visual basic软件开发工具3.3.1 visual basic的发展basic是20世纪60年代由美国达特茅斯大学的两位教授共同设计的计算机程序设计语言,其全称是beginners all-purpose symbolic in
44、struction code,意为“初学者通用的符号指令代码”,是国际上广泛使用的一种计算机高级语言。basic语言简单易学、人机交互容易、程序调试简便,目前仍是计算机程序设计初学者入门学习的主要语言之一24。1964年basic语言问世时,它只有十几条指令组成,随后经过了几十年的发展历程,其功能和界面也在不断更新。到了20世纪80年代中至20世纪90年代初,结构化basic语言出现了,其对前面版本进行了较大的扩充,并且增加了数据类型和程序控制结构。特别是20世纪90年代初,由于windows操作平台的出现,pc的操作方式开始由命令方式向图形方式转变,图形用户界面程序设计语也言应运而生visu
45、al basic程序设计语言。1991年,微软推出了visual basic 1.0版,它是第一个“可视”的编程软件。这使得程序员都尝试在visual basic的平台上进行软件创作。随着windows操作平台的不断成熟,visual basic产品由1.0版本升级到3.0版,利用visual basic 3.0产品可以非常快速地创建各种应用程序,如多媒体应用程序,各种图形操作界面等,且从visual basic 3.0开始,微软将access的数据库驱动集成到了visual basic中,大大提高了visual basic的在数据库方面的编程能力。在visual basic4.0版本中,提供
46、了创建自定义类模块,属性及过程功能,利用这些功能,用户可以创建自定义类和对象;还提供了强大的数据库管理能力,通过dao模型和odbc,用户可以访问任何一种类型的数据库。随着互联网的出现和迅速发展,微软公司推出了activex技术,并且将这一技术引入到了visual basic 6.0版本中,visual basic 6.0在面向对象编程的技术上也做了许多扩展,用户可以自定义对象所处理的事件,还可以定义构造函数和析构函数。此外,visual basic 6.0还提供了用组件编程的概念,实际上是对象编程的扩展。目前,visual basic已经成为一种真正专业化的开发语言,用户不仅可以用visua
47、l basic快速创建windows程序,还可以编写企业水平的客户/服务器程序和强大的数据库应用程序3.3.2 visual basic的特点visual指的是可视化、图形化的应用程序开发方法,它不需要编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象拖放到窗口的适当位置上即可,这是visual basic最显著的特点。visual basic是一个强大的在 windows平台上使用的开发工具,从开发个人或小组使用的小工具,到大型企业应用系统,甚至通过internet遍及全球的分布式应用软件,都可以使用visual basic语言进行开发。visual basic有着广泛的应用,具
48、有以下几个主要特点:(1)真正的面向对象编程,使开发人员在维护系统运行时只需要修改很少的代码,同时也加快了系统开发的速度。(2)可视化的编程方法,以及向导的功能,使开发人员几乎不用输入太多的代码就可以开发windows程序。(3)数据访问特性允许对包括microsoft sql server和其他企业数据库在内的大部分数据库格式建立数据库和前端应用程序。(4)通过activex技术可以广泛地使用其他应用程序程序提供的功能,例如,microsoft word字处理软件,microsoft excel电子表格及其他 windows应用程序,甚至可以直接使用visual basic创建应用程序和对象
49、。(5)支持internet,很容易通过internet访问文档和应用程序。(6)已经完成的应用程序是真正的*.exe文件,并提供运行时的可自由发布的动态链接库(dll)。3.3.3 visual basic的语言特性vb的中心思想就是要便于使用,无论是新手或者专家。vb使用了可以简单建立应用程序的gui系统,但是又可以开发相当复杂的程序。vb的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组件的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。过去的版本里面vb程序的性能问题一直被放在了桌面上,但是随着计算机速度的飞速
50、增加,关于性能的争论已经越来越少。窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件(比如文本框或者按钮)。每个控件都有自己的属性和事件。默认的属性值会在控件创建的时候提供,但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了一个动态的程序。举个例子来说:窗体的大小改变事件中加入了可以改变控件位置的代码,在运行时候每当用户更改窗口大小,控件也会随之改变位置。在文本框中的文字改变事件中加入相应的代码,程序就能够在文字输入的时候自动翻译或者阻止某些字符的输入。vb的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体,类似于
51、操作系统的样子。有很少功能的对话框窗口(比如没有最大化和最小化按钮的窗体)可以用来提供弹出功能。vb的组件既可以拥有用户界面,也可以没有。这样一来服务器端程序就可以处理增加的模块。vb使用参数计算的方法来进行垃圾收集,这个方法中包含有大量的对象,提供基本的面向对象支持。因为越来越多组建的出现,程序员可以选用自己需要的扩展库。和有些语言不一样,vb对大小写不敏感,但是能自动转换关键词到标准的大小写状态,以及强制使得符号表入口的实体的变量名称遵循书写规则。默认情况下字符串的比较是对大小写敏感的,但是可以关闭这个功能25。vb使得大量的外界控件有了自己的生存空间。大量的第三方控件针对vb提供。vb也
52、提供了建立、使用和重用这些控件的方法,但是由于语言问题,从一个应用程序创建另外一个并不简单。3.3.4 visual basic 6.0软件的主要功能介绍visual basic 6.0软件的主要功能如下:(1)集成的可视化数据库工具:visual basic 6.0提供一整套工具以便任何应用程序中集成数据库。可以来设计和修改sql server,oracle8.0或以上版本及as/400的数据库。(2)数据环境设计器:使用拖放功能来可视化地创建可重用的记录集命令对象。绑定到多个数据源上,以聚集和操作数据。(3)用拖放式创建绑有数据的表格报告:使用新的数据环境设计器,开发者可迅速拖放自定义的绑
53、有数据的控件来创建表格;可用新的数据报表设计器来创建报表。创建自定义数据阶结构也非常容易,只需填写一个对话框,再将命令拖入表格中即可。(4)visual basic webclass 设计器:创建可在任何平台上用任何web浏览器访问的服务器方应用或构件。(5)动态html页面设计器:开发用文档对象模型和动态html平面做用户界面的富于多媒体的应用程序。(6)新的性能方面的增强:使用新的字符串函数和诸如驻留内存(retain in memory)的技术来创建更快,可调节性更好的应用程序和构件。visual basic 6.0集成的visual component manager(可视化组件管理器
54、)和visual modeler(可视化模块设计器)提供了最有效的管理方式。通过vcm,可以在vb工程中方便地组织,查找和插入各种窗体,模版和类模版,甚至整个工程,为代码的重利用提供了最大的方便,如图3.3所示,此软件编写vb程序的界面非常方便使用。而visual modeler功能则更加强大,可以将其设计的类和组件转化成visual c+或visual basic 的代码,与visual component manager结合使用,可以将vb中编写的类在其他工程甚至vc的工程中使用。图3.3 vb软件操作界面34 串口调试助手串口调试助手,支持常用的300-115200bps波特率,能设置校
55、验、数据位和停止位,能以ascii码或十六进制接收或发送任何数据或字符(包括中文),可以任意设定自动发送周期,并能将接收数据保存成文本文件,能发送任意大小的文本文件。适宜单片机编程时对rs232通讯测试用。支持ascii,hex码收发和显示,支持单次发送、多次发送、循环发送等,支持xmodem modem 协议文件传输,作为avr ,stm32 通用bootloader软件 pc端升级工具。图3.4为其操作界面。图3.4 串口调试助手操作界面4 总结软件设计在当今社会无处不在,软件对于社会所起的作用是十分关键的。对某些商用电子计价秤而言,只具备称重、计价、显示、打印功能还远远不够,现代商业系统
56、还要求它能提供各种销售信息,把称重与管理自动化紧密结合,使称重、计价、进库、销售管理一体化,实现管理自动化。这就要求电子计价秤能与电子计算机联网,把称重系统与计算机系统组成一个完整的综合控制系统,为现代商业贸易物流的高效率发展提供强有力的支持。电子秤的软件设计中上位机(pc机)部分,用的是vb语言编写的。限于本人对vb的运用并不是很成熟,界面做的不是很好,所以,我觉得在把功能实现的前提下能够让界面更加人性化、美观化、实用化,是非常有实用意义的。我认为电子秤未来的发展方向,应该是在称重、计价、显示、打印这些最基本的功能下,能够把各种销售信息和库存、进价等贸易活动,实现自动化管理,即计价秤和计算机连接组成一个有机整体,为现代商业贸易更好的服务。附录a 上位机(pc机)设计程序清单及部
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年云浮市云城区招聘教育人才笔试真题
- 2024年南昌职业大学辅导员考试真题
- 法学概论学习方法与技巧探讨试题及答案
- 2024年西安市第一医院招聘笔试真题
- 加强行业分析能力的行动计划
- 广东省深圳市罗芳中学2025年八年级数学第二学期期末教学质量检测试题含解析
- 明确目标客户群的识别计划
- 数据可视化技术的应用前景试题及答案
- 赋能团队领导力提升计划
- 丰富校园经历的实习社活动计划
- 【MOOC】线性代数-浙江大学 中国大学慕课MOOC答案
- 江苏省启东市高中数学 第二章 平面向量 第6课时 2.3.2 向量的坐标表示(1)教案 苏教版必修4
- 电子商务客户服务5套综合测试题带答案
- 微观经济学课件第二章(高鸿业)
- 实测实量方案交底
- 医院科室6S管理制度
- 病历书写基本规范12021病历书写规范试题.doc
- 《山东省自然科学基金资助项目年度进展报告》
- 电厂保安人员管理制度
- ge核磁共振机房专用精密空调机技术要求
- 发展与教育心理学个别差异
评论
0/150
提交评论