一、系统方案
本设计采用STC89C52单片机作为主控制器,液晶1602显示温湿度,按键设置温湿度阀值,实际温湿度低于设置下限或者大于上限,蜂鸣器报警,LabView上位机通信,上位机显示温湿度,同时上位机可以设置温湿度阀值,实现下位机和上位机的双向通讯。
二、硬件设计
原理图如下:
三、单片机软件设计
单片机代码主要是串口初始化、串口中断服务程序。首先是串口初始化:
void Uart_init()
{
TMOD=0x21; //波特率发生器T1的工作方式为2,自动填装初值
TH0=(65536-50000)/256; //重装初值50ms中断一次
TL0=(65536-50000)%256;
ET0=1;
TR0=1;
EA=1;
TH1=0xfd;
TL1=0xfd;
TR1=1;
ET1=0;
SM0=0;
SM1=1;
REN=1;
ES=1;
beep=1;
}
贴上51单片机负责串口发送的两个函数:
void mcu_pc(unsigned char x)//串口发送程序 发送单个字节
{
SBUF=x;
while(TI0);
TI=0;
}
void Send2_Str(char *s)//发送字符串
{
while (*s) //Check the end of the string
{
mcu_pc(*s++); //Send current char and increment string ptr
}
}
在串口中断中处理接收到的数据:
void Usart() interrupt 4
{
if(RI1)
{
receiveData=SBUF;//出去接收到的数据
RI = 0;//清除接收中断标志位
}
}
四、上位机软件设计
上位机是借助LabView来开发的,界面比较简单,首先前面板设计UI界面,之后后面板通过图形化编程完成软件开发,放上一个上位机前面板的截图:
后面板截图如下:
基于LabView温湿度检测控制系统
最新推荐文章于 2024-04-25 10:33:22 发布