标题:
51单片机3路DHT11采集程序与Proteus仿真 串口上传
[打印本页]
作者:
小枫啊
时间:
2021-4-3 17:36
标题:
51单片机3路DHT11采集程序与Proteus仿真 串口上传
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
1.png
(87.61 KB, 下载次数: 39)
下载附件
2021-4-4 01:08 上传
单片机源程序如下:
#include <reg52.h>
#include <intrins.h>
#include "Delay.h"
#include <ds18b20mul.h>
#include <uart.h>
sbit beep=P1^7;
sbit key1=P2^3;
sbit key2=P2^4;
sbit key3=P2^5;
sbit key4=P2^6;
int8u temp_date[16]="max:xx min:xx\r\n";
unsigned int temp_1,temp_2,temp_3;
unsigned int temp_max=50;
unsigned int temp_min=30;
unsigned char mode_flag=0;
void delay_us(unsigned int us)
{
while(us--);
}
void key_scan()
{
if(key1==0)
{
delay_us(10);
if(key1==0)
{
sendstring("Start set,Change mode!\r\n");
mode_flag++;
if(mode_flag>3)
mode_flag=1;
}
while(!key1);
}
if(key2==0)
{
delay_us(10);
if(key2==0)
{
if(mode_flag==1)
temp_max+=2;
if(mode_flag==2)
temp_min+=2;
sendstring(temp_date);
}
while(!key2);
}
if(key3==0)
{
delay_us(10);
if(key3==0)
{
if(mode_flag==1)
temp_max-=2;
if(mode_flag==2)
temp_min-=2;
sendstring(temp_date);
}
while(!key3);
}
if(key4==0)
{
delay_us(10);
if(key4==0)
{
mode_flag=0;
sendstring("Set OK!\r\n");
}
while(!key4);
}
}
void main()
{
UARTinit();//串口初始化
beep=0;
while(1) //空等
{
if(mode_flag==0)
{
Delay_Xms(1000);//每秒上传一次温度
GetData(1); //读取温度放入dispBuf中,1指P1.0引脚,2指P1.1引脚
sendstring("*1:");
sendstring(dispBuf);sendstring("\r\n");//主动上传温度
GetData(2); //
sendstring("*2:");
sendstring(dispBuf);sendstring("\r\n");//主动上传温度
GetData(3); //
sendstring("*3:");
sendstring(dispBuf);sendstring("\r\n");//主动上传温度
}
temp_date[4]=temp_max/10+'0';
temp_date[5]=temp_max%10+'0';
temp_date[11]=temp_min/10+'0';
temp_date[12]=temp_min%10+'0';
key_scan();
if(temp_1>temp_max||temp_1<temp_min||temp_2>temp_max||temp_2<temp_min||temp_3>temp_max||temp_3<temp_min)
beep=1;
else
beep=0;
}
}
复制代码
仿真程序51hei提供下载:
多路温度采集上传 (2).zip
(108.51 KB, 下载次数: 40)
2021-4-3 17:36 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1