基于Aduc845单片机数据采集最小系统的软件设计

基于Aduc845单片机数据采集最小系统的软件设计
摘要:本文介绍了一种基于Aduc845单片机和其它芯片构成的多路数据采集系统的软件设计方案,详细说明了系统的工作原理、传感器的数据采集过程、数据的读取、数据的显示该系统设计简单,便于操作,可用于农业生产,易于实现农业的现代化管理,有广阔的应用前景。
关键字:数据采集系统,Aduc845单片机,传感器数据实时显示
在工农业生产中由于某些场所物理环境比较恶劣,不方便人工采集数据,但实际生产又需要实时采集处理数据以支持后面的生产,因此如何实现方便快捷的采集数据和准确高效的处理数据就成为我们研究的重点,因此本文提出了基于Aduc845单片机的数据采集系统的软件设计。
1 系统整体设计
数据采集系统主要对光照强度、湿度、温度三个数据采集,并按照要求将其转换为数字量进行计算处理,通过按键将采集的数据进行排序送给单片机,最后用LCD显示器将数据进行实时
显示。因此,系统由光照传感器、湿度传感器、温度传感器、键盘、显示器、控制器部分六个部分组成,其整体设计如图(1)。
图(1
2 软件总体设计
2.1  主程序设计
数据采集系统通过检测是否有按键按下对数据进行采集,如果有按键按下则调用相应的传感器程序并进行实时显示,如果没有按键按下,则返回welcome显示程序显示“welcome”, 数据采集系统的工作流程如图(2)所示,其中welcomxainshi()程序用于显示“welcome”字
符,zhuBH1750()程序、wenduzhuchengxu()程序、shidu()程序分别用于对光照强度、温度、湿度的测量与显示,其对应程序见附录1
图(2复合硅微粉
主程序如图下:   
void main()
{
welcomxainshi();
while1
{if(key1==0)
zhuBH1750();
if(key2==0)
wenduzhuchengxu();
if(key3==0)
shidu();
ifkey=0
break
}   
}
2. 2 显示程序设计
本设计显示部分采用LCD1602显示器, 每次在显示前先检查数据端口是否被其他信号占用,如果被占用则等待,没有则向数据端口写数据,流程如图(3)。
图(3
初始化完成以下工作:
1)显示两行,使用八位数据和5x7点阵的字形。
2)显示控制开关,光标不显示,字符不闪。
3)光标从左向右移动,内容不移动。
部分显示程序如下:
//LCD忙函数
地质建模
void WaitForEnable(void)           
{ 
DataPort=0xff;       
RS=0;RW=1;_nop_();
E=1;_nop_();_nop_();
while(DataPort&0x80);   
E=0;
}                       
//LCD写命令函数
void WriteCommandLCM(uchar CMD,uchar Attribc)
{                   
if(Attribc)WaitForEnable();   
RS=0;RW=0;_nop_();
DataPort=CMD;_nop_();   
E=1;_nop_();_nop_();E=0;
}                   
//LCD写数据函数
void WriteDataLCM(uchar dataW)
{                   
WaitForEnable();       
RS=1;RW=0;_nop_();
DataPort=dataW;_nop_();   
E=1;_nop_();_nop_();E=0;
}       
2.3 光照程序设计
光照传感器BH1750是通过全双工通信完成数据的读写,本设计中SCL脚连接至Aduc845P2.3口,SDA脚连接P2.4口。BH1750有严格的通信协议来保证各位数据传输的正确和完整,有初始化时序、读时序和写时序。每一次命令和数据的传输都是从单片机启动写时序开始,当要求传感器回送数据,在进行写命令后,单片机需启动读时序完成数据的接收。数据和命令的传输都是低位优先。其工作流程如图(4):
图(4草地悠波球
部分光照数据读取程序如下:
void Multiple_read_BH1750(void)
{  uchar i;   
火锅红
    BH1750_Start();                        //起始信号
    BH1750_SendByte(SlaveAddress+1);        //发送设备地址+读信号
        for (i=0; i<3; i++)  //连续读取6个地址数据,存储在BUF
    {
        BUF[i] = BH1750_RecvByte();  //BUF[0]存储0x32地址中的数据
        if (i == 3)
        { BH1750_SendACK(1);  }  //最后一个数据需要回NOACK
        else
        {        BH1750_SendACK(0); }    //回应ACK
  }
    BH1750_Stop();                          //停止信号
    Delay5ms();
}
4 总结
本文提出了一种基于ADuC845高性能24位数据采集与系统处理芯片的数据实时采集系统的软件设计,该系统在Keil  UVision4开发环境下应用C语言编程,经过实际测试,该系统最突出优点是:该系统最终实现了对温度、湿度、光照强度的实时采集与显示。系统分辨率高,噪音低,克服了传统数据采集系统的不足。
参考文献
[1]谢维成,杨加国.单片机原理与应用及C51程序设计.清华大学出版社2011
[2]康华光.电子技术基础.高等教育出版社2011
[3]王永山,王博.计算机原理与应用(第三版).西安电子科技大学出版社 2009
[4]王正光,周忠英,侯伯亨,李伯成.数据采集与处理.国防工业大学出版社  1985
[5] 谭浩强,C程序设计.清华大学出版社
附录膏药制作1:

Welcome显示程序:锅巴生产设备

本文发布于:2024-09-22 13:38:45,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/105785.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   采集   系统   显示   单片机   传感器   程序
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议