单片机解密STM32单片机DHT11温湿度环境监控系统
单片机解密单片机源程序如下:
- //头文件
- 单片机解密#include <stm32f10x.h>
- 单片机解密#include "GPIOLIKE51.h"
- 单片机解密#include "1602.h"
- #include <dht11.h>
- #include "ADC.h"
- #include "delay.h"
- #include "stdio.h"
- #include "usart.h"
- #define uchar unsigned char
- #define uint unsigned int
-
- #define key1 PBin(6)
- #define key2 PBin(1)
- #define key3 PBin(2)
- #define key4 PBin(3)
- #define beep PBin(7)
- #define led PBout(4)
- #define led1 PBout(5)
- uchar DHT[5];
- uchar str[12];
- uchar st=30;
- uchar sh=40;
- //函数声明
- void GPIO_Configuration(void);
- void key_process(void);
- //=============================================================================
- //文件名称:Delay
- //功能概要:延时
- //参数说明:nCount:延时长短
- //函数返回:无
- //=============================================================================
- void Delay(uint32_t nCount)
- {
- for(; nCount != 0; nCount--);
- }
- float valus;
- uint16_t AD_Val;
- uint8_t vals;
- uint16_t AD;
- uint16_t temp;
- u16 gz;
- //=============================================================================
- //文件名称:main
- //功能概要:主函数
- //参数说明:无
- //函数返回:int
- //=============================================================================
- int main(void)
- {
-
- char str[100];
- GPIO_Configuration();
- Adc_Init();
- LCD_Init(); //液晶初始化
- // uart_init(9600);
- LCD_Write_String(0,0,"ST: SH:");
- LCD_Write_String(0,1,"T: H: ");
- LCD_Write_String(10,1,"Lx: %");
- while(1)
- {
- temp++;
- if(temp%10)
- {
-
- AD_Val = ADC_GetConversionValue(ADC1);
- AD=4095-AD_Val;
- AD=(AD*99/4095);
- sprintf(str,"%d",AD);
- temp=0;
- }
- LCD_Write_String(12,1,str);
- if(AD>80)
- {
- beep=1;
- }
- else{beep=0;}
- key_process();
- DHT_Start();
- DHT_ByteRead(DHT);
- DHT[0]=DHT[0]/2;
- DHT[2]=DHT[2]/2;
- str[0] = (DHT[0]/10)%10+0x30; //十位转为ASCII码
- str[1] = (DHT[0]%10)+0x30; //个位转为ASCII
- LCD_Write_Char(2,1,str[0]);
- LCD_Write_Char(3,1,str[1]);
- str[0] = (DHT[2]/10)%10+0x30; //十位转为ASCII码
- str[1] = (DHT[2]%10)+0x30; //个位转为ASCII
- LCD_Write_Char(7,1,str[0]);
- LCD_Write_Char(8,1,str[1]);
-
-
- str[0] = st/10+0x30; //十位转为ASCII码
- str[1] = st%10+0x30; //个位转为ASCII
- LCD_Write_Char(3,0,str[0]);
- LCD_Write_Char(4,0,str[1]);
- str[0] = sh/10+0x30; //十位转为ASCII码
- str[1] = sh%10+0x30; //个位转为ASCII
- LCD_Write_Char(10,0,str[0]);
- LCD_Write_Char(11,0,str[1]);
-
-
- if(DHT[0]>=st) led=0;
- else led=1;
-
- if(DHT[2]<=sh) led1=0;
- else led1=1;
-
- }
- }

芯片解密