引 言
为了确保太阳能发电系统能够正常的工作,需要对太阳能发电系统的各项环境参数进行测量,从而有效地控制其运行。本文介绍了一种基于单片机的太阳能参数测试仪,提供了3种参数的测量功能和通信接口,以及2种供电方式,既可作为手持设备使用,又能安装在发电系统中,具有较高的实用价值。
1 硬件电路设计
1.1 总体结构
该测试仪以AT89S52单片机为核心,外接温湿度传感器SHTll、照度传感器TSL2561、四位共阴数码管、RS485总线通信接口以及显示切换按键。单片机上电工作后,对当前温度、湿度、光强度进行实时测量,通过按键切换将测得的3种参数通过LED数码管进行轮流显示;此外,还可以通过RS485总线与PC机进行通信,将参数值传送到上位机,以达到远程监测的目的。该测试仪的结构框图如图1所示。
1.2 测量模块
温度和湿度测量采用的是瑞士Sensirion公司生产的SHTll传感器。该传感器采用独特的CMOsens TM技术,将温湿度传感器、信号放大处理、A/D转换、I2C总线全部集成在一块芯片上,可直接与单片机接口。该芯片采用数字式输出,为编程提供了方便。
光照度测量选用的是TAOS公司生产的TSL2561光强度传感器。它具有数字式输出端口和标准I2C总线接口,涵盖1~70 000 lx的宽照度范围,非常适合户外环境下光照强度的测量,适用于太阳能发电系统。图2为传感器与AT89S52单片机的接口电路设计。
1.3 电源模块
电源模块提供了2种供电方式:
①当测试仪作为手持设备使用时,可直接使用3.6V锂电池,经过DC—DC电压转换芯片MAX756将电压升至5 V后为单片机和外设供电。
②当测试仪作为固定设备安装在太阳能发电现场时,可以采用太阳能供电。太阳能电池产生的12 V电压通过稳压芯片LM7805后,得到稳定的5 V电压输出,输出电压既可以为测试模块供电还可以通过充电电路为锂电池充电。图3是电源模块的硬件原理图。
1.4 充电电路
充电电路的核心器件采用的是上海如韵公司生产的专用充电芯片CN3058,它可以对单节磷酸铁锂可充电电池进行恒流/恒压充电。该器件内部集成有功率晶体管,使用时不需要设计外围电流检测和保护电路,适用于便携式的应用领域。
图4为锂电池充电电路。其中LEDl和LED2分别作为充电中和充电饱和两种状态的指示灯,R1在充电时起限流保护的作用;电容C1和C2采用的是多层陶瓷电容器(MLCC),能保证充电电路稳定工作。
1.5 通信模块
测试仪通过RS485工业总线与PC机进行通信,其硬件接口电路如图5所示。
2 软件设计
2.1 总体设计
测试仪的软件开发环境采用的是Keil C,所有代码采用C语言编写。为了方便程序调试和提高可靠性,软件采用模块化结构设计,主要由初始化程序、主程序、子程序、中断服务程序等组成。单片机上电后即开始循环执行温湿度、照度测量程序,并以设定的时间间隔在数码管上轮流动态显示;按键切换和通信功能部分由于使用频率相对较低,为降低设备功耗,其程序以中断响应的方式执行。在此要注意中断优先级的设置:按键中断优先级应高于串口中断,否则将无法进行显示切换。主程序流程如图6所示。
2.2 传感器驱动程序
本系统采用的传感器均为集成数字芯片且都具有I2C总线接口,故其驱动程序的编写要严格遵循I2C总线的时序。主程序为每一个参数开辟了一个8位的存储空间,传感器将采集到的数据经SDA引脚串行输出,驱动程序将SDA线上输出的数据进行串并转换,并存储到相应空间中,以方便其他功能程序调用。以下是照度传感器数据采集程序的部分代码。
(1)TSL2561初始化
2.3 RS485通信程序
测试仪与上位机的通信采用RS485协议。串口参数为:波特率9600,数据位8位,1个校验位,1个停止位。其数据格式如图7所示。
由于RS485总线协议与RS232串口协议只是接口电平上有区别,其软件编程完全按照串口通信协议进行,此处不再详述。
结 语
经实验测试,该环境参数测试仪温度测量显示精度可以达到0.1℃,湿度精确到O.1%,照度可以精确到11x。由于主要器件均为I2C数字接口,故本测试仪还有结构简单、易维护、可扩展性强等特点,具有很高的实用价值;另外,独特的双电源供电方式更扩展了它的适用范围。
关键字:AT89S52 单片机 太阳能 环境参数测试仪
引用地址:
基于AT89S52单片机的太阳能环境参数测试仪的系统设计
推荐阅读最新更新时间:2024-03-16 15:16
基于LabVIEW与单片机串口的数据采集系统
1LabVIEW部分设计
1.1VISA简介
LabVIEW提供了功能强大的VISA库。VISA(Virtual Instrument Software Architecture)——虚拟仪器软件规范,是用于仪器编程的标准I/O函数库及其相关规范的总称。VISA库驻留于计算机系统中,完成计算机与仪器之间的连接,用以实现对仪器的程序控制,其实质是用于虚拟仪器系统的标准的API。VISA本身不具备编程能力,它是一个高层API,通过调用底层驱动程序来实现对仪器的编程,其层次如图1所示。VISA是采用VPP标准的I/O接口软件,其软件结构包含三部分,如图2所示。
与其他现存的I/O接口软件相
[嵌入式]
pic单片机的八大优势总结
pic单片机作为许多人工作内容之一,扮演着重要角色。但大部分人却不知为什么要使用pic单片机,为解决这个问题,我们必须从pic单片机几大优点谈起。借由这篇有关pic单片机优势的文章,希望相关人士能对pic单片机有一定的把握,并充分了解为什么使用pic单片机以及使用场景。 pic单片机的八大优势总结 优势1:PIC最大的特点是不搞单纯的功能堆积,而是从实际出发,重视产品的性能与价格比,靠发展多种型号来满足不同层次的应用要求。就实际而言,不同的应用对单片机功能和资源的需求也是不同的。比如,一个摩托车的点火器需要一个I/O较少、RAM及程序存储空间不大、可靠性较高的小型单片机,若采用40脚且功能强大的单片机,投资大不说,使用起来
[单片机]
关于单片机LED二进制加法
#include reg52.h void TIMED(unsigned int x ); main() { unsigned int clac = 0xff; while(1) { P0 = clac; clac--; TIMED(300); } } void TIMED( unsigned int x) { unsigned int y,i; for(i = x; i 0; i--) for(y = 110; y 0; y--); }
[单片机]
单片机编程好学吗?单片机初学者怎样看懂代码?
单片机在很多人看来好像门槛很高,在某些人看来很简单。 所以,单片机编程好不好学,这取决于谁去学,有没有基础,有没有兴趣。 我自己是通过自学学会的,我个人认为相对java那些纯软件,单片机比较好学。 单片机编程只需要学习C语言,很多人也会把汇编也学了,但是实际产品开发汇编一般用的还是比较少。 反正我从来没用汇编做过项目,所以只需要学习C语言就可以了。 至于单片机嘛,入门51的单片机也很简单,就是看手册配置单片机的寄存器而已。 就像你买一个冰箱,它配一个说明书给你,教你怎么用。 学习编程的过程才是最枯燥,连续看1个月视频,敲一个月的代码,只能在屏幕前显示冷冰冰一些字符。 而单片机则有趣的多,你只要会C语言入门语句,再加一点单片机寄存器
[单片机]
用汇编语言实现51单片机内部RAM单元的数据传送到外部RAM
下面是实现将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去的8051单片机汇编语言代码: STRAT:MOV R0,#30H MOV R7,#0FH MOV DPTR,#3000H LOOP: MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R7,LOOP RET 下面是实现将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去的8051单片机汇编语言代码: STRAT:MOV R0,#30H MOV R7,#0FH MOV DPTR,#3000H LOOP: MOV A,@R0 MOVX @DPTR,A
[单片机]
自制简单51单片机编程器(烧写器)
AT89C51是一款应用最为广泛的8051单片机,更重要的是他具有反复烧写(FLASH)的特性。一般情况下可重复烧写1000次,这样为初学者试验提供了一个廉价的平台。为了满足广大单片机爱好者动手的需要,本人利用半个月的时间,参考国外资料,实际设计制作成功一款简单的AT89C51/52/55单片机编程器。由于单片机编程时序不同,这一款编程器仅仅支持ATMEL公司的AT89C51, AT89C52, AT89C55芯片,不支持华邦或飞利浦兼容芯片。下面是单片机编程器电路图. 注:元器件清单见附录 工作原理简述: Q2, Q4以及周围的几个元件构成了电平转换电路,这样节省了1片max 232芯片,在要求不高的场合,这个电路在
[单片机]
时分多线程在单片机系统中的应用研究
引 言 随着IT技术的飞速发展,单片机应用系统几乎覆盖了社会生活的各个角落,从消费电子、通信网络、工业控制、汽车到军事等领域皆可觅其踪影;而在硬件、软件以及网络技术日益成熟的今天,其应用形式正呈现多样性和复杂性。尤其是SoC、可配置内核等性能的出现,其可裁剪性使系统设计成本大大降低,减小了系统设计工作量,为单片机应用提供了便利,在产品设计、更新换代等应用方面也备受青睐。 为适应这些纷繁的应用需求.本文就时分多线程技术在单片机中的应用进行了介绍。该方法为构建低成本、高效、便于维护的单片机系统提供了良好的体系框架结构和设计思想。 1 时分多线程结构应用 通常,在单片机应用的各种控制系统中,都或多或少地存在着诸如现场数据采集、控
[单片机]
以C8051F020单片机为控制核心的人机交互系统设计
在现代各类仪器的开发中,人机交互功能正起着无可替代的作用。人机交互界面友好的仪器将更容易操作和使用,从而提高工作效率。液晶显示器(LCD)具有功耗低、价格低、寿命长、接口控制方便等特点,在科研与设计领域正发挥着越来越大的作用。FPGA 作为单片机外设的接口芯片,可以大大简化接口电路,通过对FPGA 进行编程,可以实现常用的译码、地址选通等功能。 本文以C8051F020 单片机与FPGA 互连系统为控制核心,以液晶显示控制器T6963C 为例,结合行扫描键盘,简述了一种人机交互功能的设计。 1 系统设计方案: FPGA 可在很大程度上扩展单片机的资源,然而人机交互功能仍应尽量减少对单片机及FPGA 的资源消耗, 以便将更多
[单片机]