打印

智能人工气候培养室中显示部分的应用

[复制链接]
1228|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
topyq2003|  楼主 | 2012-7-6 14:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 topyq2003 于 2012-7-6 14:57 编辑

      智能人工气候培养室现在应用很广泛,广泛的应用在农业研究上,其功能比较多,而且每一样的功能基本上都要在人机界面上显示出来,这就需要很多的技术。下面我们一起看看这种气候培养室的功能和在进行仪表显示的时候注意事项。
      本系统的控湿系统采用FPID模糊控制,还将加湿与除湿间相互关系引入控湿系统。具有温度偏差报警、极限温度报警和保护功能。光照强度可按用户要求定制,每种型号后面的B代表昼夜两个温度、时间段;D代表1-30个温度、时间、光照段,自由组合实验周期显示,光照级别显示。可根据用户要求增加光照强度,光照自动可选。例如:种子发芽可选3500LX;幼苗生长可选5500LX.微电脑全自动控制,控制板一体化,触摸开关可任意设定各个实验段运行时间、温度、湿度、光照值。可显示实验周期(天数),运行时间、实际温湿度值(自动加湿除湿)、设定温湿度值、剩余时间和光照级别。并具有周期转换功能。具有超温和传感器异常保护功能,保证仪器和样品安全;选配全光谱的植物生长灯,有利于植物的生长,提高抗病性。具有掉电**、掉电时间自动补偿功能;停电后再次开机都可延续原来的工作状态。硬件部分的特点:豪华铝合金外框,金色或银色、永不老化变形、永不生锈、精致美观,箱外带锁扣,保证内部样品安全。灯灯箱外部标准开孔(扇片),是控温更精确,底部有万向转轮、方便移动。箱体内部网架空间可按样品高度随意调节,更方便实用。风道式通风,工作室风速柔和,温湿度均匀。采用中空反射钢化镀膜玻璃,绝热性良好,美观大方。
      编程的时候要注意有良好的编程习惯,有清楚的思维,有层次感。思维能力要强,要注意细节.反复修改,下面总结一下:作为一种结构化的程序设计语言,C语言的特点就是可以使你尽量少地对硬件进行操作,具有很强的功能性、结构性和可移植性,常常被优选作为单片机系统的编程语言。但是基于单片机的C语言和标准C语言有很大区别,如何结合单片机的系统资源,用C语言开发符合实际工程需要的单片机系统,对用编程者来说具有十分重要的意义。
      1、单片机C语言主要特点    用C 编写程序比汇编更符合人们的思考习惯,开发者可以摆脱与硬件无必要的接触,更专心的考虑功能和算法而不是考虑一些细节问题,这样就减少了开发和调试的时间。C语言具有良好的程序结构,适用于模块化程序设计,因此采用C语言设计单片机应用系统程序时,首先要尽可能地采用结构化的程序设计方法,将功能模块化,由不同的模块完成不同的功能,这样可使整个应用系统程序结构清晰,易于调试和维护。不同的功能模块,分别指定相应的入口参数和出口参数,对于一些要重复调用的程序一般把其编成函数,这样可以减少程序代码的长度,又便于整个程序的管理,还可增强可读性和移植性。
      2 单片机C语言与标准C语言的区别    由于现在越来越多的产品都采用单片机开发,所完成的计算和控制工作也日趋复杂,但是单片机系统是一种资源十分有限的系统,这主要表现在程序存储器资源的不足,因此在程序设计时如何使用好这些有限的资源就显得十分重要。用C语言编程虽然具有许多的。不同的数据类型所生成的机器代码长度相差很多,相同类型的数据类型有无符号对机器代码长度也有影响。在程序编译时生成机器代码长的数据类型的优先级越高,不同的数据类型在进行程序运算时要转化为高优先级的的数据类型,相应的代码长度也会增长。因此我们应尽可能地使用bit,char等机器语言直接支持的数据类型,无符号数的变量应声明为无符号数,尽可能地减少程序中使用的数据类型的种类。2.2 算法设计问题     单片机C语言和标准C语言存在着很大差别,在计算机上进行C语言程序设计时由于不必考虑程序代码的长短,只需考虑程序功能实现,但是在单片机上进行C语言程序设计就必须考虑系统的硬件资源。有时并不是程序的算法越简单、长度越短越好,因为有一些算法要调用一些内部的子程序和函数,生成的机器代码长度非常长。不同的算法对程序代码长度影响十分大,因此在进行程序设计时,就尽量采用程序生成代码短的算法,在不影响程序功能实现的情况下可以采用一些优化算法。     在单片机C语言编译成机器代码时,不同的运算生成的机器代码的长度相差很大,尽可能地减少程序中对某种数据类型的运算种类,越复杂的数据类型效果越明显。在进行数据计算时,在一定的精度范围内,可以用一些近似的计算来完成一些运算,既不损失精度又能减少大量的代码。比如:用逻辑AND/&取模比MOD/%操作更有效。    在用热敏电阻测量温度时,可根据热敏电阻—温度特性公式来求值。数学表达式表示为:RT=RT0expB(1/T-1/T0)    如果直接按照公式温度时程序结构简单,算法复杂度不高,但是程序将调用<Math.h>文件中的对数函数,在编译成机器码时函数有1K多字节,对于一般只有几K字节的单片机系统来说,这是十分不合适的。考虑到系统资源问题可以用一种替代方法—查表法来实现算法。只要给出一定温度范围内不同温度值对应热敏电阻的电阻值,然后建立表格,只要按照系统求出的阻值,进行查表,插值,就可以求出相应的温度值。这种算法相比前面的的公式法的算法复杂高,C语言程序代码也长,但在编译成机器码时,代码长度却很短,只有一、二百字节。
     3数据存储器的分配    单片机内部数据存储器RAM只有几百字节,如果扩展外部存储器RAM来提高数据存储量话必将会增加了硬件成本,使系统更加的复杂,访问外部存储器比访问内部存储器所需的代码也要长得多。有效地使用片内存储器、提高存储器空间的利用率对开发者来说十分关键。    内部处理器、内部堆栈、压缩栈、所有程序变量和所有包含进来的库函数都将使用数量有限的内部数据存储器RAM。因为C语言采用了存储器的覆盖技术[2],可以在程序进行连接时,它将那些已经被其它程序段释放了的存储器空间重新定义给另一个程序段的变量使用,当这个程序运行结束时再将这些存储器释放以供其它程序段使用。全局变量的作用范围是整个程序,因此不能被释放;静态变量由于在函数的调用中专用不变,也不能被释放;只有局部变量中的动态变量可以被释放。    因此在进行程序设计时应该尽量的使用局部变量,提高内部数据存储器的使用率。在C语言中程序中间结果及参数传传递是通过内部的寄存器来完成的,要是内部的存储器不够,将会给你的程序带来许多莫名其妙的错误。例如在进行程序设计时语句不应该太长,一个长语句可以分成多个语句,这样的话可以大的减少中间变量,当然太长时就会造成临时寄存器的不够用,导致计算出错。
      4单片机C语言与汇编语言的混合编程    在绝大多数场合采用C语言编程即可完成预期的目的,但是对实时时钟系统、要求执行效率高的的系统就不适合采用C语言编程,对这些特殊情况进行编程时要结合汇编语言。汇编语言具有直接和硬件打道、执行代码的效率高等特点,可以做到C语言所不能做到的一些事情,例如对时钟要求很严格时,使用汇编语言成了唯一的选择。这种混合编程[2]的方法将C语言和汇编语言的优点结合起来,已经成为目前单片机开发最流行的编程方法。
      目前大多数据单片机系统,在C语言中使用汇编语言有两种情况:一种是汇编程序部分和C程序部分为不同的模块,或不同的文件,通常由C程序调用汇编程序模块的变量和函数(也可称为子程序或过程);另一种是嵌入式汇编,即在C语言程序中嵌入一段汇编语言程序。    当汇编程序和C程序为不同模块时程序一般可分为若于个C程序模块和汇编程序模块,C程序模块通常是程序的主体框架,而汇编程序模块通常由用C语言实现效率不高的函数组成,也可以是已经成熟的、没有必要再转化成C语言的汇编子程序。在这种混合编程技术中,关键是参数的传递和函数的返回值。它们必须有完整的约定,否则数据的交换就可能出错。    对于嵌入式汇编,可以在C程序中使用一些关键字嵌入下些汇编程序,这种方法主要用于实现数**算或中断处理,以便生成精练的代码,减少运行时间。当汇编函数不大,且内部没有复杂的跳转时,可以用嵌入式汇编实现。    下面就以AT89C2051单片机在模拟电压检测中的应用为例说明C语言程序与汇编语言程序的调用。    AT89C2051单片机内置模拟比较器,13脚即P1.1是比较器的负输入端,12脚即P1.0是比较器的正输入端,比较器的输出端做在了CPU内部即P3.6未被引出,CPU可以直接读取P3.6状态来判定两输入端比较的结果其和一个外部电阻及一个外部电容器就可以设计成一个A/D转换器,采用RC模拟转换的原理,来检测外部P1.1引脚的输入电压。由于系统对时钟要求很严格,因此就采用了C语言和汇编语言混合编程技术.5 结束语    C语言具有很强的功能性和结构性,可以缩短单片机控制系统的开发周期,而且易于调试和维护,已经成为目前单片机语言中最流行的编程语言。
      本文就单片机C语言的特点以及在
真空数种置床仪开发过程中的一些问题给予分析并提供了解决方法,为广大单片机开发人员提供了可借鉴的经验。

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:托普仪器网:http://www.top17.net/ 基层农技服务推广体系建设项目:http://www.soil17.com/

0

主题

2

帖子

0

粉丝