通过电动车防盗系统来学习基本IO口
在进行小项目学习IO前,先来一个类似于编程语言的hello world,也就是点灯和灯闪烁,来简单来调试一下硬件和软件编程环境。
点灯 #include "reg52.h" sbit LED1 = P3^7; int main() { while(1){ LED1 = 0; } } led灯闪烁 #include "reg52.h" #include "intrins.h" sbit LED1 = P3^7; void Delay1000ms() //@11.0592MHz { unsigned char i, j, k; _nop_(); i = 8; j = 1; k = 243; do { do { while (--k); } while (--j); } while (--i); }
1.简单分析
设计一个电动车防盗系统,首先想到的是我们要有一个震动传感器模块,在我们被推车的时候能感知到,其次需要喇叭,但是单片机为喇叭供电会因为功率问题导致不能用单片机为喇叭供电,所以还需要电池,电池不能一直导通,还需要继电器,以及我们遥控用的遥控发送接收433M模块。
2.简单原理图
3.震动传感器
产品不震动,输出高电平
产品震动,输出低电平,绿色指示灯灯亮
震动传感器来控制led #include "reg52.h" #include "intrins.h" sbit LED1 = P3^7; sbit SS = P2^6; void Delay1000ms() //@11.0592MHz { unsigned char i, j, k; _nop_(); i = 8; j = 1; k = 243; do { do { while (--k); } while (--j); } while (--i); } int main() { while(1){ if(SS == 0){ LED1 = 0; Delay1000ms(); LED1 = 1; }else{ LED1 = 1; } } }
4.继电器
4.1实物
4.2原理图
4.3控制继电器
#include "reg52.h" #include "intrins.h" sbit SS = P2^6; sbit RELAY = P0^3; void Delay1000ms() //@11.0592MHz { unsigned char i, j, k; _nop_(); i = 8; j = 1; k = 243; do { do { while (--k); } while (--j); } while (--i); } int main() { while(1){ if(SS == 0){ RELAY = 0; Delay1000ms(); RELAY = 1; }else{ RELAY = 1; } } }
5.遥控发送接收433M
6.分析整合
遥控器有ABCD四个按键,只使用A,B来控制警报状态,做出如下分析:
1.按下A,喇叭长响,进入警戒模式
2.按下B,喇叭短响,退出警戒模式
3.在警戒模式中,产生震动,喇叭响一段时间,不产生震动,喇叭不响
4.不在警戒模式,不做出反应
#include "reg52.h" #include "intrins.h" sbit SS = P2^6; sbit RELAY = P0^3; sbit CONTROLA = P1^2; sbit CONTROLB = P1^3; void Delay1000ms() //@11.0592MHz { unsigned char i, j, k; _nop_(); i = 8; j = 1; k = 243; do { do { while (--k); } while (--j); } while (--i); } int main() { int mark = 0; while(1){ if(CONTROLA == 1){ RELAY = 0; Delay1000ms(); Delay1000ms(); RELAY = 1; mark = 1; } if(CONTROLB == 1){ RELAY = 0; Delay1000ms(); RELAY = 1; mark = 0; } if(mark == 1){ if(ss == 0){ RELAY = 0; Delay1000ms(); Delay1000ms(); Delay1000ms(); }else{ RELAY = 1; } } } }
但是有小bug,在产生震动的时候喇叭响,没办法解除警戒,需要引入中断。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)