基于51单片机的温室测试系统
正常工作,44780显示模块和89C51单片机连接电路如图7所示。
2.9 抗干扰设计
在微机测控系统中,系统抗干扰性能的好坏直接影响到整个系统工作的可靠性与安全性。因此,抗干扰设计是系统设计的一个主要内容,本系统采用的是由硬件和软件相结合的抗干扰措施。
2.9.1 系统硬件抗干扰设计
(1) 滤波技术
将电源变压器的进线段加入滤波器,以消弱瞬变噪声干扰;在直流电源线和地线之间接滤波电容,以抑制电源噪声。
(2) 去耦电路
存印刷电路板的各个集成电路的电源线端与地线端之间配置去耦电容。
(3) 屏蔽技术
屏蔽技术主要由电场屏蔽,电磁场屏蔽和磁场屏蔽三类,本系统是电场和电磁场屏蔽的方法。主要使用低电阻材料作为屏蔽材料,把需要隔离的部分保卫起来。磁场屏蔽则应采用高导磁率的材料。
(4) 光电隔离:
再I/O通道上采用光电隔离器,将单片机系统与各种传感器、开关从电器上隔离开来,很大一部分干扰可被阻挡
2.9.2系统软件抗干扰设计
对于微机测控系统,仅仅考虑硬件的抗干扰是远远不够的,采取一定的软件抗干扰措施非常必要,它不仪能降低系统的硬件成本,又可以充分发挥软件的优势,使系统具有自我诊断,自我恢复的能力。本系统采用的软件抗干扰措施主要有以下几种:
(1) 数字滤波技术,采用数字滤波技术除去输入信号中所掺杂的各种随机干扰。
(2) 软件陷阱技术,当系统受剑干扰,PC值发生变化,程序"乱飞"等情况,可以用软件陷阱和看门狗将程序拉回到复位状态。具体的讲,可以在RAM中埋一些标志,在每次程序复位时,通过这些标志,可以判断复位原因并根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用时也不易察觉到程序被重新复位过。
3 软件设计
该系统软件主要由主程序、中断子程序、数据采集与A/D转换子程序、显示子程序、报警子程序等六大模块组成,因为C语言编写的软件易于实现模块化,生成的机器代码质量高、可读性强、移植好,所以本系统的软件采用C语言编写,再KeilVision3 Demo版本的集成开发环境下进行编译连接。
3.1 主程序设计
主程序主要完成硬件初始化、子程序调用等功能,主程序流程图如图8所示。
3.2 数据采集子程序设计
数据采集与A/D转换子程序根据输入参数对相应的模拟信号进行采样、量化及处理,并将相应信号的数值返回主程序。
3.3 显示子程序设计
显示子程序完成符号、数值的显示输出。
3.4 报警子程序
主要实现异常情况下控制告警信号输山。如当室内温度升高到某一点时,或湿度低于某一规定值时,音频报警装置会发出不同频率的告警信号,同时相应的指示灯亮(点亮报警指示灯的任务由显示子程序来完成),以引起工作人员的主意。
4 仿真与调试
4.1 仿真器选择
本系统选用ME-52单片机仿真开发系统,它实时仿真频率高达33MHz,提供2~24MHz的时钟信号。同时它提供64KB程序代码存储器,支持仿真所有程序和数据地地址空间,支持Franklin V3.XX/Keil 6.xx编译连接工具。具有分别独立控制项目文件的项目管理器。另外具有VC++风格的窗口驻留,窗口动态切分和工作簿模式窗口界面。
4.2 仿真调试
在仿真调试阶段,采用"自底向上逐步集成"的策略,逐模块进行仿真测试,在此基础上逐步集成。譬如可先仿真显示模块、测温子模块、测湿度子模块等,然后将仿真成功的模块逐个加入主程序进行仿真,在仿真过程中发现错误,采用"分块压缩策略",快速找到并改正错误;注意在集成过程中出现问题,大多是由于模块间资源使用冲突引起的。当软件模块仿真成功后,可与硬件一起进行在线仿真,此时在调试中出现的问题大多是由于连接线连接错误、虚焊、布线不合理等原因造成的。 随着电子技术的广泛应用,智能温室控制必将成为一种发展趋势,文中提出利用51单片机和新型传感器对温室环境进行测试,目前原型机己取得成功。调试结果表明,本系统可靠性高、使用方便,下一步将住此基础上开发控制系统,给用户提供更大的方便。
- Arduino是什么?(07-07)
- 单片机课程设计-ATMEL51系列单片机编程器(12-01)
- ATMEL的ISP下载线(12-01)
- Atmel和STC的51单片机通用ISP下载线制作(11-29)
- ATMEL9263 800*600屏驱动问题(11-22)
- MSP430与ATMEL 93C46通讯子程序(11-13)