基于LabView温湿度检测控制系统
一、系统方案
本设计采用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(TI==0); 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(RI==1) { receiveData=SBUF;//出去接收到的数据 RI = 0;//清除接收中断标志位 } } 四、上位机软件设计 上位机是借助LabView来开发的,界面比较简单,首先前面板设计UI界面,之后后面板通过图形化编程完成软件开发,放上一个上位机前面板的截图: 后面板截图如下: |