STM32 Proteus仿真GP2Y101红外测距温度湿度DHT11内部RTC-0010

STM32 Proteus仿真GP2Y101红外测距温度湿度DHT11内部RTC-0010

Proteus仿真小实验:

STM32 Proteus仿真GP2Y101红外测距温度湿度DHT11内部RTC-0010

功能:

硬件组成:STM32F103R6单片机 +LCD1602显示器+GP2Y1014AU红外测距+DHT11温度湿度+多个按键

1.单片机通过内部ADC采集GP2Y1014AU红外测距的电压。计算出距离。

2.单片机获取DHT11温度湿度。

3.使用单片机内部RTC计算时间。

4.LCD1602显示器显示温度湿度红外距离北京时间。

5.按键可以设定北京时间。

有功能视频哦:

可以哔哩哔哩B站搜索UP主“单片机仿真汇”。在其空间中搜索关键词“红外测距”即可找到对应详细功能视频和介绍。

电路图:

部分源代码

//按键扫描,获取按键状态

k1 = GPIO_ReadInputDataBit(GPIOB , GPIO_Pin_11);

k2 = GPIO_ReadInputDataBit(GPIOB , GPIO_Pin_12);

k3 = GPIO_ReadInputDataBit(GPIOB , GPIO_Pin_13);

k4 = GPIO_ReadInputDataBit(GPIOB , GPIO_Pin_0);

k5 = GPIO_ReadInputDataBit(GPIOB , GPIO_Pin_1);

k6 = GPIO_ReadInputDataBit(GPIOB , GPIO_Pin_2);

//小时

//表明按下

if(k1 == 0)

{

K1Flag = 1;

}

else

{

//释放后进行响应

if(K1Flag )

{

K1Flag = 0;

calendar.hour++;

if(calendar.hour>=24)

{

calendar.hour = 0;

}

//RTC_Init();

RTC_SetCounter(calendar.hour*3600+calendar.min*60+calendar.sec);//hour:min:sec;

}

}

//分钟

//表明按下

if(k2 == 0)

{

K2Flag = 1;

}

else

{

//释放后进行响应

if(K2Flag )

{

K2Flag = 0;

calendar.min++;

if(calendar.min>=60)

{

calendar.min = 0;

}

//RTC_Init();

RTC_SetCounter(calendar.hour*3600+calendar.min*60+calendar.sec);//hour:min:sec;

}

}

//秒钟

//表明按下

if(k3 == 0)

{

K3Flag = 1;

}

else

{

//释放后进行响应

if(K3Flag )

{

K3Flag = 0;

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值