电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

嵌入式系统期末大作业

23页
  • 卖家[上传人]:西****梢
  • 文档编号:356960256
  • 上传时间:2023-07-18
  • 文档格式:DOCX
  • 文档大小:1.24MB
  • / 23 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、2021-12-29桂林理工大学嵌入式系统期末大作业-基于STM32的温湿度监控 嵌入式系统的设计与实现学号:31920520512姓名:专业班级:计算机科学与技术同组姓名:目录基于STM32的温湿度监控设计与实现11. DHT11简介12.系统硬件设计22.1. DHT11电路图22.2. LED电路图22.3. KEY电路图32.4.引脚分配表43.系统软件设计43.1.系统流程图43.2.代码清单53.2.1. LED代码53.2.2. KEY代码63.2.3. DHT11代码83.3.C/OS-II移植113.4. main.c代码清单144. 系统测试185. 总结与展望20基于STM32的温湿度监控设计与实现1. DHT11简介DHT11是广州奥松有限公司生产的一款湿温度一体化的数字传感器,该传感器包括一个电阻式测湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接,通过单片机等微处理器简单的电路连接就能够实时的采集本地湿度和温度。DHT11与单片机之间能采用简单的单总线进行通信,仅仅需要一个I/O口就能实现,传感器内部湿度和温度数据一次性传给单片机,数据采用 校验和

      2、方式进行校验,有效的保证数据传输的准确性。DHT11功耗很低,5V电源电压下,工作平均最大电流0.5mA,其性能指标和特性如下: 工作电压范围:3.5V-5.5V。 湿度测量范围:2090RH。 工作电流:平均0.5mA。 温度测量范围:050。 与TTL兼容(5V)。 温度分辨率:18位。 采样周期:1S。 单总线结构。 湿度分辨率:1RH8位。DHT11的系统结构框图如下2.系统硬件设计2.1. DHT11电路图DHT11数字湿温度传感器连接方法极为简单。第一引脚接电源,第三引脚接地,数据端为第二引脚,可直接接单片机的I/O口,本次实验的接口为b14口。2.2. LED电路图2.3. KEY电路图2.4.引脚分配表引脚名称注释1VDD供电35.5VDC2DATA串行数据,单总线3GND接地,电源负极3.系统软件设计3.1.系统流程图3.2.代码清单3.2.1. LED代码Led.c代码:#include led.h#include stm32f10x.hvoid LED_Init(void) GPIO_InitTypeDef GPIO_InitTypeStructer;RCC_AP

      3、B2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD,ENABLE);GPIO_InitTypeStructer.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitTypeStructer.GPIO_Pin=GPIO_Pin_8;GPIO_InitTypeStructer.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitTypeStructer);LED0=1;GPIO_InitTypeStructer.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitTypeStructer.GPIO_Pin=GPIO_Pin_2;GPIO_InitTypeStructer.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOD,&GPIO_InitTypeStructer);LED1=1;Led.h代码:#ifndef _LED_H#define _LED_H#include sys.hvoid LE

      4、D_Init(void);#define LED0 PAout(8)#define LED1 PDout(2)#endif3.2.2. KEY代码Key.c代码:#include stm32f10x.h#include key.h#include sys.h #include delay.hvoid KEY_Init(void) GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;/KEY0GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; /设置成上拉输入 GPIO_Init(GPIOC, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;/KEY1GPIO_InitStructure.GPIO_Mode = GPIO_Mo

      5、de_IPU; /设置成上拉输入 GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;/WK_UPGPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; /设置成下拉输入 GPIO_Init(GPIOA, &GPIO_InitStructure);/mode:0,不支持连续按;1,支持连续按;/0,没有任何按键按下/1,KEY0按下/2,KEY1按下/3,KEY2按下 /4,WK_UP按下 /注意此函数有响应优先级,KEY0KEY1KEY2WK_UPu8 KEY_Scan(u8 mode) static u8 key_up=1;/按键松开标志if(mode=1)key_up=1; /支持连按 if(key_up&(KEY0=0|KEY1=0|WK_UP=1)delay_ms(10);/去抖动 key_up=0;if(KEY0=0)return KEY0_PRES;else if(KEY1=0)return KEY1_PRES;else if(WK

      6、_UP=1)return WKUP_PRES;else if(KEY0=1&KEY1=1&WK_UP=0)key_up=1; return 0;/ 无按键按下Key.h代码:#ifndef _KEY_H#define _KEY_H#include sys.h #define KEY0 PCin(5)#define KEY1 PAin(15)#define WK_UP PAin(0)#define KEY0_PRES 1/KEY0按下#define KEY1_PRES 2/KEY1按下#define WKUP_PRES 3/WK_UP按下void KEY_Init(void);u8 KEY_Scan(u8);#endif3.2.3. DHT11代码Dht11.c代码:#include dht11.h#include delay.h /复位DHT11void DHT11_Rst(void) DHT11_IO_OUT(); /SET OUTPUT DHT11_DQ_OUT=0; /拉低DQ delay_ms(20); /拉低至少18ms DHT11_DQ_OUT=1; /DQ=1 delay

      7、_us(30); /主机拉高2040us/等待DHT11的回应/返回1:未检测到DHT11的存在/返回0:存在u8 DHT11_Check(void) u8 retry=0;DHT11_IO_IN();/SET INPUT while (DHT11_DQ_IN&retry=100)return 1;else retry=0; while (!DHT11_DQ_IN&retry=100)return 1; return 0;/从DHT11读取一个位/返回值:1/0u8 DHT11_Read_Bit(void) u8 retry=0;while(DHT11_DQ_IN&retry100)/等待变为低电平retry+;delay_us(1);retry=0;while(!DHT11_DQ_IN&retry100)/等待变高电平retry+;delay_us(1);delay_us(40);/等待40usif(DHT11_DQ_IN)return 1;else return 0; /从DHT11读取一个字节/返回值:读到的数据u8 DHT11_Read_Byte(void) u8 i,dat; dat=0;for (i=0;i8;i+) dat=1; dat|=DHT11_Read_Bit(); return dat;/从DHT11读取一次数据/temp:温度值(范围:050)/humi:湿度值(范围:20%90%)/返回值:0,正常;1,读取失败u8 DHT11_Read_Data(u8 *temp,u8 *humi) u8 buf5;u8 i;DHT11_Rst();if(DHT11_Check()=0)for(i=0;i5;i+)/读取40位数据bufi=DHT11_Read_Byte();if(buf0+buf1+buf2+buf3)=buf4)*humi=buf0;*temp=buf2;else return 1;return 0;

      《嵌入式系统期末大作业》由会员西****梢分享,可在线阅读,更多相关《嵌入式系统期末大作业》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
     
    收藏店铺
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.