原创 基于C8051F330单片机的多路温湿度测控系统

2008-7-31 10:17 2818 0 分类: MCU/ 嵌入式

基于C<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />8051F330单片机的多路温湿度测控系统 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


收集:杨本荣  来源: 网络   发表于 2005-9-3 


The Multi-Channel Measurement and Control System of Temperature and Humidity Based-on Single-chip Microcomputer C8051F330


庞清乐,孙同景,秦伟刚 山东大学控制科学与工程学院


Pang,Qingle Sun,Tongjing Qin,Weigang Control Science & Engineering Dept of ShandongUniversity


摘要:介绍了一种高速、高性能的单片机C8051F330,该单片机内部集成了众多的功能部件,是真正的混合信号在片系统。本文对单片机的功能和特点做了详细的介绍,并以一个实际的多路温湿度测控系统为例,给出了其具体的应用方法。


关键词:C8051F330;单片机;传感器;分布式


中图分类号:TP368.1 文献标识码:B


Abstract: This paper introduces C8051F330 single-chip microcomputer with high-speed and high-capability .It is a genuine mix signal system-on-chip for its numerous integrated function parts.The functions and characteristics of C8051F330 is introduced in this article, and the detail applied methods of practical appliance example of the multi-channel measurement and control system of temperature and humidity also are given.


KeywordsC8051F330single-chip microcomputersensordistributed


1 前言


随着社会的高速发展,温室、粮库、孵化机等恒温场所对自动化水平的要求也越来越高,对室内温湿度的测量和设备的控制操作要用自动控制系统来完成。本系统采用美国Cygnal公司的C8051F330单片机为控制核心,组成的分布式多点温湿度控制系统。它利用较少的外围器件实现了对温湿度的自动控制。Cygnal C8051F×××系列单片机是完全集成的混合信号系统级芯片(SOC)。其中,C8051F330具有高模拟集成度、体积小、集成的FLASH存储器以及低功耗等特点,可用于很多中、小型控制系统和智能仪表。


2 C8051F330单片机简介


C8051F330使用Cygnal的专利CIP-51微控制器内核,CIP-51MCS-51指令集完全兼容。它采用流水线结构,与标准的8051结构相比指令执行速度有很大的提高。CIP-51提供了14个中断源,允许大量的模拟和数字外设中断微控制器,因而有更高的执行效率。该单片机有标准的8051程序和数字地址配置,包括768字节的数据RAM8KBFLASH程序存储器。它还具有片内Cygnal 2线(C2)接口调试电路,支持使用安装在最终应用系统中的产品器件进行非侵入式、全速的在系统调试。具有17I/O引脚,每个端口可以被配置为模拟输入或数字I/O。数字交叉开关允许将内部数字资源映射到端口I/O引脚。C8051F330MCU内部有一个SMBUS/I2C接口、一个具有增强型波特率配置的全双工UART和一个增强型SPI接口,每种串行总线完全用硬件实现,都能向CIP-51产生中断。它内部还有可编程计数器阵列,包括一个专用的16位计数器/定时器时间基准和5个可编程的捕捉/比较器。此外捕捉/比较模块4还有提供看门狗定时器(WDT)功能。C8051F330内部有一个10SAR ADC和一个16通道差分输入多路选择器。该ADC工作在200ksps的最大采样速率时可提供真正的10位线性度。A/D转换可以有6种启动方式,一次转换完成可以产生中断。C8051F330器件内部还有一个电压比较器,可以由用户软件使能/禁止和配置,端口I/O引脚可以通过多路选择器被配置为比较器输入,比较器可以产生中断。C8051F330内部有一个10位电流方式数/模转换器(IDA0)。IIDA0具有灵活的输出更新机制,允许无缝满度变化,支持无抖动波形更新。


3 系统硬件结构


多点温湿度控制系统由PC计算机和C8051F330单片机系统组成,构成小型的分布式控制系统。其结构如图一所示。该系统以C8051F330单片机为核心,主要由以下几部分组成:温度与湿度的检测电路、控制输出电路和数据通讯电路组成。单片机系统的任务是完成现场环境参量的采集、存储与处理,并通过总线同PC机相连。而PC机系统主要承担集中操作管理、通信控制、对每个单片机系统的测控等功能,并协调各从机之间的数据传送,对整个系统进行管理。


          <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />


3.1 温度与湿度的检测


温度传感器采用半导体集成温度传感器AD590,将温度转换成420mA的电流信号,长距离传输到运算放大器op07,经其放大滤波后,变成电压信号,输入到C8051F330的模拟输入端,经内部的A/D转换器转换成相应的数字量。C8051F330将两路温度采样值取平均后,作为现场温度存入相应的内存单元。湿度传感器采用电容型湿度传感器,型号为HMD1型。湿度采样值经变送器将其变为电压信号输入到单片机的模拟输入端,经内部的A/D转换器转换为数字量。对两路采样值取平均后,作为现场的湿度值。将现场温度和湿度值与系统设定值进行比较,并根据差值来输出相应的控制信号。


3.2 控制输出


控制输出首先经光电隔离器把数字信号与模拟信号隔离开,以避免干扰。再由驱动放大电路驱动中间继电器,通过中间继电器控制执行部件。当温度低于设定值时,则启动加热设备。当湿度低于设定值时,则启动加湿设备。当湿度和温度高于设定值时,启动排气风扇,进行降温和除湿。使温度和湿度保持在设定范围内。


3.3 数据通讯


多个单片机C8051F330TX0RX0P0.2分别通过MAX485与上位机相连,进行串行通信,从而实现多机通信。P0.2控制MAX485的状态或发送,用软件控制。RX0为单片机的串行输入端,接收上位机通过MAX485向单片机发送的数据。TX0为单片机的串行输出端,通过MAX485发送给上位机。


4 系统软件设计


4.1 单片机程序


本系统采用keil μVision2编译器进行编译。


4.1.1 主程序


主程序流程图如图二所示。


a 禁止WDT


WDTE=0


b 设置系统时钟及复位源


VDM0CN=0x80//使能VDD监视器


RSTSRC=0x02//选择VDD监视器为复位源


OSCICN=0x83//内部振荡器允许,不分频


c I/O端口初始化


P1MDIN=0xF0 //P1.0~P1.3为模拟输入,


//P1.4~P1.7为数字输入


P1MDOUT=0xF0//P1.0~P1.3为漏极开路输出,


//P1.4~P1.7为推挽输出


XBR0=0x01; //UART0连到P0.4P0.5


XBR1=0x40 //允许交叉开关和弱上拉


d ADC初始化


ADC0CF=(SYSCLK/5000000)<<3//ADC转换时钟


//5MHzADC0H:ADC0L中的数//据为右对齐


ADC0CN=0x02 //定时器2溢出启动


//ADC转换


e UART0初始化


REN0=1; //UART0接收允许


TI0=0; //清除发送中断标志


RI0=0; //清除接收中断标志


f 定时器1、定时器2初始化


#define TC_20ms 0x24703 //定时器224.5/12MHz


//时对应于20ms的滴答数


TMR2RLH=0xff&((-TC_20ms)>>8)//初始化重载值


TMR2RLL=0xff&(-TC_20ms)


TMR2CN=0x04 //定时器2允许,自动重载16


CKCON=0x02 //定时器2的时钟源为SYSCLK/12, 定时器1


//时钟源均为SYSCLK/48


TMOD=0x20 //定时器18位自动重装载定时器


TH1=0x96 //定时器1初始值


TL1=0x96 //定时器1重载值


TR1=1 //启动定时器1


TR2=1 //启动定时器2


g 开中断


ET1=1//允许定时器1中断


ET2=1//允许定时器2中断


ES0=1//允许UART0中断


EA=1 //允许所有中断


4.1.2 定时器2中断服务子程序


定时器2中断对应的中断为interrupt5,当定时器2产生溢出中断时,转入interrupt5对应的中断处理子程序。首先读入各个模拟通道的值,存入内存。再根据与设定值的差值来输出相应的控制。


4.1.3 UART0中断服务子程序


PC机通过RS-485网络广播自己所要求的下位机地址,所有下位机把收到的地址与自己的地址进行比较,地址相同的下位机为被选中的下位机,其余的下位机暂时与网络隔离。然后按主从双机的通讯过程进行通信。单片机与上位机通讯采用 2400,N,8,1方式,使用串行中断方法来实现。与上位机通讯采用中断方式时,中断流程图如图三所示。


4.2 上位机管理软件


上位机管理软件利用VB6.0开发,


系统模块主要包括:



  1. 通信模块:实现单片机与上位


机的数据通讯。



  1. 数据管理模块:运行于后台,


将通信模块读入的温湿度数据存储于


数据库,以便于查询、统计、打印。



  1. 数据分析模块:对温湿度数


据进行显示、查询、处理。



  1. 系统维护模块:对温湿度数


据库进行管理和维护。


5 结束语


总之,C8051F330单片机是目前


性价比较高的一款单片机,根据其速度高、体积小、设计简单等特点,无论是用于小型的自动控制系统,还是智能仪表的设计,都是一种非常理想的选择。


参考文献:



  1. C8051F330/1混合信号ISP FLASH微处理器数据手册


  2. 胡汉才,单片机原理与接口技术,北京,清华大学出版社,1996


  3. 李刚,林凌,与8051兼容的高性能单片机C8051Fxxx,北京,北京航空航天大学出社 2002


 


作者简介:庞清乐,男,1971年生,工程师,汉族,专业:计算机控制,在读硕士研究生,邮箱:stefam@163.com,联系电话:(05318393284;孙同景,男,1949年生,教授,博士生导师,研究领域:计算机控制及智能系统。


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
0
关闭 站长推荐上一条 /1 下一条