一般通过男网友,seo对网店推广的作用,厦门网站建设网站制作,浏览器下载免费安装按键控制LED
按键抖动#xff0c;电平发生变化#xff0c;可用延时函数抵消按键抖动对系统的影响 传感器电路图 按键电路图 c语言对应类型
“_t”后缀表示使用typedef重命名的数据类型 枚举类型 #includeiostream
using namespace std;
//定义枚举类型
typedef enu…按键控制LED
按键抖动电平发生变化可用延时函数抵消按键抖动对系统的影响 传感器电路图 按键电路图 c语言对应类型
“_t”后缀表示使用typedef重命名的数据类型 枚举类型 #includeiostream
using namespace std;
//定义枚举类型
typedef enum{Mon1,Tue2,Wed3
} week_t;
int main(){week_t w;wWed; //对星期类型设定指定量cout w endl;return 0;
}
按键控制LED灯
主函数
#include stm32f10x.h // Device header
#include MyDelay.h //自定义延时函数
#include Delay.h //官方延迟函数
#include Button.h //按键Led驱动
#include stdio.huint8_t KeyNum ;
int main(void){//初始化Led_Init();Button_Init();//按键控制led灯while(1){KeyNum Key_GetNum();if(KeyNum1) {Led_One_Turn();}if(KeyNum2){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 KeyNum0;//按键1if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)0){ //按键按下读取输入数据Delay_ms(20); //按下抖动while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1) 0 ); //等待度过按键触底期Delay_ms(20); //弹起抖动KeyNum1; //按键一}//按键11if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11)0){ //读取输入数据Delay_ms(20); //按下抖动while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11) 0); //等待度过按键触底期Delay_ms(20); //弹起抖动KeyNum2; //按键二}return KeyNum; //返回按键号码
}
//灯1
void Led_One_Turn(void){uint8_t Light_Status GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0);if(Light_Status0) 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_Status0) 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(RP1) Buzzer_Ring();else Buzzer_Slient();
}项目结构