找回密码
 注册

QQ登录

只需一步,快速开始

搜索

51单片机8路电压采集1路温湿度采集串口收发数据Proteus仿真程序

[复制链接]
coolice 发表于 2020-2-1 09:54:56 | 显示全部楼层 |阅读模式
DHT11温湿度检测 8路ADC0809电压采集 串口发送采集数据 高低电压报警
仿真原理图如下(proteus仿真工程文件和程序c语言可到本帖附件中下载
DHT11温湿度检测 8路ADC0809电压采集 串口发送采集数据 高低电压报警.zip (198.69 KB, 售价: 1 E币)
1.png
单片机源程序如下:
  1. #include<reg52.h>
  2. #include<dht11.h>
  3. #include<1602.h>
  4. #include<uart.h>
  5. #include<adc0809.h>

  6. #define uchar unsigned char
  7. #define uint unsigned int
  8. sbit led1=P2^3;
  9. sbit led2=P2^4;

  10. void main()
  11. {
  12.                
  13.                 adc_interrupt();
  14.                 LCD_Init();   //lcd1602初始化
  15.                 UART_Init();
  16.                 led1=1;
  17.                 led2=1;
  18.         LCD_DrawString(0,0,"RH/T");
  19.    while(1)
  20.    {  
  21.      //电压值采集处理
  22.                  uchar i;
  23.                 for(i=0;i<8;i++)
  24.                 {
  25.                         ADC();//调用模数转换程序
  26.                         UART_SendString("volt");
  27.                         UART_SendNum1(1,i);
  28.                         UART_SendString(":");
  29.                         UART_SendNum1(5,volt[i]);
  30.                         UART_SendString("\r\n");
  31.                         
  32.                 }
  33.                  display();//调用显示程序
  34.                
  35.                 if(volt[0]<35000)
  36.                 {
  37.                         led2=0;
  38.                         UART_SendString("led2:open");
  39.                         UART_SendString("\r\n");
  40.                         }else{led2=1;UART_SendString("led2:close");UART_SendString("\r\n");}
  41.                 if(volt[1]<6000)
  42.                 {
  43.                         led1=0;
  44.                         UART_SendString("led1:open");
  45.                         UART_SendString("\r\n");
  46.                 }else{led1=1;led1=1;UART_SendString("led1:close");UART_SendString("\r\n");}
  47.                
  48.                 //温湿度处理
  49.                 DHT11_receive();
  50.                  //湿度
  51.                  LCD_SetDisplayAddress(4,0);
  52.                  LCD_DrawNum1(2,rec_dat[0]);
  53.                  LCD_DrawString(6,0,".");
  54.                  LCD_SetDisplayAddress(7,0);
  55.                  LCD_DrawNum1(2,rec_dat[1]);
  56.                  LCD_DrawString(9,0,"% ");
  57.                  
  58.                  //温度
  59.                  LCD_SetDisplayAddress(11,0);
  60.                  LCD_DrawNum1(2,rec_dat[2]);
  61.                  LCD_DrawString(13,0,".");
  62.                  LCD_SetDisplayAddress(14,0);
  63.                  LCD_DrawNum1(1,rec_dat[3]);
  64.                  LCD_DrawString(15,0,"C");
  65.                  
  66.                         UART_SendString("wendu");
  67.                         UART_SendNum1(2,rec_dat[0]);
  68.                  UART_SendString(".");
  69.                   UART_SendNum1(2,rec_dat[1]);
  70.                         UART_SendString("\r\n");
  71.                         UART_SendString("shidu");
  72.                         UART_SendNum1(2,rec_dat[2]);
  73.                         UART_SendString(".");
  74.                   UART_SendNum1(2,rec_dat[3]);
  75.                  UART_SendString("\r\n");
  76.                
  77.                  
  78.         
  79.    }
  80. }
复制代码


山海致远 发表于 2020-5-31 00:21:25 | 显示全部楼层
不错,谢谢很实用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|ELEOK |网站地图

GMT+8, 2024-3-29 19:37

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表