STM32芯片DTH11 PROTEUS 仿真帶℃報警
溫度超過40度 自動報警,低于40 度恢復。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif (108.62 KB, 下載次數: 44)
下載附件
2022-3-19 04:28 上傳
0318_2.jpg (13.32 MB, 下載次數: 47)
下載附件
2022-3-18 16:30 上傳
0318_1.jpg (12.04 MB, 下載次數: 46)
下載附件
2022-3-18 16:30 上傳
單片機源程序如下:
- #include "stm32f10x.h"
- #include "LQ12864.h"
- #include "adc.h"
- #include "dth11.h"
- void main_delay(u32 ms)
- {
- int i, j;
- for(i = 0; i < ms; i++)
- {
- for(j = 0; j < 1000; j++)
- {
- ;
- }
- }
- }
- void GPIO_Configuration(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
-
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOC, ENABLE);
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //LED0-->PA.8 ????
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //????
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO ???? 50MHz
- GPIO_Init(GPIOA, &GPIO_InitStructure); //????????? GPIOA.8
-
- GPIO_SetBits(GPIOA,GPIO_Pin_8); //PA.8 ???
- }
- int main(void)
- {
- u8 temp = 0, hum = 0;
- unsigned char buf[100] = { 0 };
- // delay_init() ;
- LCD_Init() ;
- Adc_Init();
- DHT11_Init();
- GPIO_Configuration();
- while(1)
- {
- DHT11_Read_Data(&temp, &hum);
- sprintf(buf, "temp: %d hum:%d", temp, hum);
- LCD_P6x8Str(2, 3, buf);
- if (temp>40)
- {
- GPIO_ResetBits(GPIOA, GPIO_Pin_8);
- delay(2000);
- delay(2000);
- }
- else
- { GPIO_SetBits(GPIOA, GPIO_Pin_8);
- delay(200);
- }
- }
- }
復制代碼
Keil代碼與Proteus仿真下載:
STM32 DTH11.7z
(263.66 KB, 下載次數: 92)
2022-3-19 04:28 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|