当前位置: 首页 > news >正文

杭州网站推广营销重庆网站制作建设

杭州网站推广营销,重庆网站制作建设,青岛网站设计方案,郑州网站及优化按键控制LED 按键抖动&#xff0c;电平发生变化&#xff0c;可用延时函数抵消按键抖动对系统的影响 传感器电路图 按键电路图 c语言对应类型 “_t”后缀表示使用typedef重命名的数据类型 枚举类型 #include<iostream> using namespace std; //定义枚举类型 typedef enu…

按键控制LED

按键抖动,电平发生变化,可用延时函数抵消按键抖动对系统的影响

在这里插入图片描述

传感器电路图

在这里插入图片描述

按键电路图

在这里插入图片描述

c语言对应类型

“_t”后缀表示使用typedef重命名的数据类型

在这里插入图片描述

枚举类型

在这里插入图片描述

#include<iostream>
using namespace std;
//定义枚举类型
typedef enum{Mon=1,Tue=2,Wed=3
} week_t;
int main(){week_t w;w=Wed; //对星期类型设定指定量cout << w << endl;return 0;
}

按键控制LED灯

主函数

#include "stm32f10x.h"                  // Device header
#include "MyDelay.h"   //自定义延时函数
#include "Delay.h"     //官方延迟函数
#include "Button.h"   //按键Led驱动
#include "stdio.h"uint8_t KeyNum ;
int main(void){//初始化Led_Init();Button_Init();//按键控制led灯while(1){KeyNum = Key_GetNum();if(KeyNum==1) {Led_One_Turn();}if(KeyNum==2){Led_Two_Turn();}}return 0;
}

Button

//头文件
#ifndef Led_h  //若没有定义该变量,则定义
#define led_h
//LED驱动
void Led_Init(void);
//按键初始化,按键用于输入,不用设置输出的速度
void Button_Init(void);
//获取是哪个按键被按下
uint8_t Key_GetNum(void);
//灯1亮
void Led_One_Turn(void);
//灯2亮
void Led_Two_Turn(void);
#endif//源文件
#include "stm32f10x.h" 
#include "Delay.h"
#include "stdio.h"
//Led初始化
void Led_Init(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitTypeDef GI;GI.GPIO_Mode = GPIO_Mode_Out_PP;GI.GPIO_Pin = GPIO_Pin_All;GI.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GI);//设置led灯对应引脚为高电平GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1); //A0,A1引脚高电平,灯灭
}
//按键初始化,按键用于输入,不用设置输出的速度
void Button_Init(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //时钟使能GPIO_InitTypeDef Button;Button.GPIO_Mode = GPIO_Mode_IPU; //上拉输入模式,保持高电平Button.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_11; //按键所在引脚  Button.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB,&Button);
}  
//获取是哪个按键被按下
uint8_t Key_GetNum(void){uint8_t KeyNum=0;//按键1if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)==0){  //按键按下读取输入数据Delay_ms(20); //按下抖动while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1) == 0 ); //等待度过按键触底期Delay_ms(20);  //弹起抖动KeyNum=1;  //按键一}//按键11if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11)==0){  //读取输入数据Delay_ms(20); //按下抖动while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11) == 0); //等待度过按键触底期Delay_ms(20);  //弹起抖动KeyNum=2;  //按键二}return KeyNum; //返回按键号码
}
//灯1
void Led_One_Turn(void){uint8_t Light_Status = GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0);if(Light_Status==0) GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);else GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);
}//灯2
void Led_Two_Turn(void){uint8_t Light_Status = GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1);if(Light_Status==0) GPIO_WriteBit(GPIOA,GPIO_Pin_1,Bit_SET);else GPIO_WriteBit(GPIOA,GPIO_Pin_1,Bit_RESET);
}

光敏传感蜂鸣器(绿灯常亮,光线变暗,红灯亮,警报响起,光线恢复,警报解除)

在这里插入图片描述

//光敏蜂鸣器头文件
#ifndef Buzzer
#define Buzzer
//读取光敏传感器的数据
uint8_t Read_Buzzer_Data(void);
//初始化环境
void Buzzer_PhotoResitors_Init(void);
//光敏电阻响应
void Reaction_PhotoResitors(void);
//蜂鸣器响应
void Buzzer_Ring(void);
//蜂鸣器安静
void Buzzer_Slient(void);
#endif//源文件
#include "stm32f10x.h"
#include "Button.h"
#include "Delay.h"
//读取光敏传感器的数据
uint8_t Read_Buzzer_Data(void){return  GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13); //读取蜂鸣器引脚数据
}
//初始化蜂鸣器和光敏电阻环境
void Buzzer_PhotoResitors_Init(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);  //B端口时钟使能GPIO_InitTypeDef Buzzer;Buzzer.GPIO_Mode = GPIO_Mode_IPU; //上拉输入,保持光敏电阻在线Buzzer.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_12; Buzzer.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB,&Buzzer);GPIO_WriteBit(GPIOB,GPIO_Pin_12,Bit_SET);
}
//蜂鸣器响应,红灯亮
void Buzzer_Ring(void){GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);  //红灯亮GPIO_WriteBit(GPIOA,GPIO_Pin_1,Bit_SET);  //绿灯灭while(1){GPIO_WriteBit(GPIOB,GPIO_Pin_12,Bit_RESET);  //低电平有效Delay_ms(200);GPIO_WriteBit(GPIOB,GPIO_Pin_12,Bit_SET);Delay_ms(300);GPIO_WriteBit(GPIOB,GPIO_Pin_12,Bit_RESET);  //低电平有效Delay_ms(300);GPIO_WriteBit(GPIOB,GPIO_Pin_12,Bit_SET);Delay_ms(100);GPIO_WriteBit(GPIOB,GPIO_Pin_12,Bit_RESET);  //低电平有效Delay_ms(200);GPIO_WriteBit(GPIOB,GPIO_Pin_12,Bit_SET);Delay_ms(300);break;     //要退出循环,不然一直响,也回不到绿灯状态}}
//蜂鸣器安静,绿灯亮
void Buzzer_Slient(void){GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);  //红灯灭GPIO_WriteBit(GPIOA,GPIO_Pin_1,Bit_RESET);  //绿灯亮GPIO_WriteBit(GPIOB,GPIO_Pin_12,Bit_SET);  //高电平无效
}
//光敏电阻响应
void Reaction_PhotoResitors(void){uint8_t  RP = GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13);  if(RP==1) Buzzer_Ring();else Buzzer_Slient();
}

项目结构

在这里插入图片描述

http://www.yayakq.cn/news/168470/

相关文章:

  • 品牌网站首页怎么设计网页小游戏源码
  • 怎么给网站做支付接口法律咨询网站开发
  • 盘锦网站建设做网站 学什么
  • 上海网站建设服务器湖北省建设厅网站查询
  • 网站改手机版视频网站 php源码
  • 网站备案添加APP备案网站 配色表
  • 重庆建设教育协会网站首页百度收录平台
  • 上海市住房和城乡建设部网站网络舆情监测流程
  • 防止网站被克隆网上买吃的网站做代理
  • 东莞做网站公司在哪网页制作设计思路
  • 广州建设行业网站网站建设有哪些关键细节
  • 深圳手机网站制作公司排名长春餐饮网站建设
  • 做视频包的网站城乡建设门户网站
  • 企业培训网站模板wordpress随机文章插件
  • 企业营销型网站应该有哪些内容张家界官方网站
  • 凡客网站网址做网站一般分几种
  • 315晚会 网站建设公司社区类网站建设
  • 免费国外网站模板智慧团建管理员登录入口
  • 昆明网站建设网站wordpress页眉登录
  • 网站维护中 源码网站为什么要改版
  • 商城网站需要注意事项网站开发技术写什么内容
  • 如何撰写网站建设方案书网站 设计 电商
  • 网站单页在线中英互译网站怎么做
  • 做网站做图电脑需要什么配置南宁网站建设培训有哪些
  • 区块链网站开发资金php电商网站开发流程
  • 房天下官方网站网站icp备案证明文件
  • 本地企业网站建设如何查看网站架构
  • 高度重视机关门户网站建设wordpress 翻译 每页
  • 有哪些做兼职的设计网站有哪些工作内容海南代理注册公司费用
  • 青岛做网站企业哪些网站可以做招商广告