基于stm32的仿真实现温湿度检测,蜂鸣器,跑马灯及其速度的控制

这几天,学校组织了为期5天的关于基于stm32的仿真的课程设计,最后一天,我们要进行实训项目的测验,要独立完成一个项目,具体有以下要求:

需要源码的小伙伴,在文章末尾有惊喜哦~

原理图绘制:

按键 6个

LED灯 4盏+1盏

蜂鸣器 1个

温湿度传感器 1个

要求:

(1)按下按键key1 , 开启LED跑马灯(4盏)

(2)按下按键key2 , 关闭LED跑马灯(4盏)

(3)按下按键key3 , 控制独立的LED 每500ms 闪烁一次-----使用定时器   TIM_cmd(TIM2,ENABLE)

(4)按下按键key4 , 关闭独立的LED 闪烁-----使用定时器   TIM_cmd(TIM2,DISENABLE)

(5)按下按键key5 , 开启蜂鸣器

(6)按下按键key6 , 关闭蜂鸣器

(7)温湿度检测报警,当温度超过30度或者湿度超过80%时,蜂鸣器报警

加分项1:

       添加2个按键

       按下按键7,跑马灯加速,按下按键8,跑马灯减速

满分项:

       添加显像管(seg),把温湿度显示在显像管中。

因为博主并不是主攻嵌入式开发的,所以5天时间对于嵌入式开发的研究还远远不够,因此,对于此次作业项目,并没有完成最后一个满分项,但我还是想将此次完成的项目进行记录,以作纪念。

 

一、Protues仿真部分

二、keil工程

#include "stm32f4xx.h"
#include "sys.h"



int SIGN = 10000;

void delay(int x)
{
	int i,j;
	for(i=0;i<x;i++)
		for(j=0;j<SIGN;j++);
}


//延时函数--毫秒级别
//VAL计数器是24bit的寄存器,所以最大值是16777215
//所以nms的最大值是 199
void delay_ms(int nms){
	uint32_t temp;
	
	//延时nms毫秒需要的计数数值,把它交给重载计数器
	SysTick->LOAD = 84000*nms;
	
	//将VAL计数器的数值赋值为0
	SysTick->VAL = 0;
	
	//将控制器的0bit位赋值为1&#
评论 109
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值