基于51单片机的模拟自动感应门 系统protues仿真

2023-05-16

硬件设计

(末尾附文件)
在这里插入图片描述

代码设计

#include<reg51.h> //调用头文件
#define uchar unsigned char  //宏定义
#define uint unsigned int    //宏定义

/********    端口定义      **********/

sbit k1=P2^6;//手动开接口
sbit k2=P2^7;//手动关接口

sbit led=P3^4;//人体感应指示灯
sbit ir=P3^2;//人体感应

uchar code fan[4]={0xf8,0xf4,0xf2,0xf1};//反转
uchar code zheng[4]={0xf1,0xf2,0xf4,0xf8};//正转

uchar num,num1;
uint quan;
bit flag;//开关标志位,0为关,1为开

/***************延时函数*******************/

void delay(uint time)//延时函数	 延时Time ms
{
	uint j;
	for(;time>0;time--)
	   for(j=150;j>0;j--);
}

/***************主函数*********************/
void main()
{
	
	TMOD=0x11;//设置定时器1为16位计时模式
	TH0=(65536-50000)/256;  //定时器0高八位装初值
	TL0=(65536-50000)%256;  //定时器0低八位装初值
	EA=1;//开启总中断
	ET0=1;//开启定时器中断0
	TR0=0;//关闭定时器0

	TH1=(65536-4000)/256;    //定时器1高八位装初值
	TL1=(65536-4000)%256;    //定时器1低八位装初值
	ET1=1;//开启定时器中断1
	TR1=0;//关闭定时器1
	flag=0;//门关闭状态
	P2=0xf0;
	while(1)
	{	
		while(flag==0)//门关闭状态
		{							  
			if(TR1==0)P2=0xf0;
			if((ir==1)||(k1==0))//检测到人体信号或者手动开门按键按下模拟开门
			{
				if(ir==1)led=0;
				TR1=1;
				num=0;
			}
			else led=1;
		}
		//门开启状态 延时5S检测不到人  自动关闭	 延时5S检测到人  延时清零继续
		//关闭时检测到人  反方向自动开启
		while(flag==1) 
		{
			if(TR1==0)P2=0xf0;
			if(ir==1){num=0;led=0;}//门开启检测到人体信号定时清零
			else led=1;
			if((num>=100)||(k2==0))//5S 或者手动关门按键按下执行关门
			{
				TR0=0;//关闭定时器
				TR1=1;
				num=0;
			}
		}
	}
}
void time0() interrupt 1	 //中断函数
{
	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
	num++;
}
void time1() interrupt 3	 //中断函数
{
	TH1=(65536-4000)/256;
	TL1=(65536-4000)%256;
	num1++;
	if((flag==0)&&(TR1==1))
	{
		if(num1==4)
		{
			lp:
			num1=0;
			quan++;
		}
		P2=zheng[num1];
		if(quan>=125){TR1=0;flag=1;TR0=1;P2=0xf0;}//90°	
	}
	if((flag==1)&&(TR1==1))
	{
		if(num1==4)
		{
			num1=0;
			if((ir==1)||(k1==0))//检测到人体信号或者手动开门按键按下模拟开门
			{
				flag=0;
				if(ir==1)led=0;
				TR1=0;
				delay(1000);
				TR1=1;
				goto lp;
			}
			quan--;
		}

链接:https://pan.baidu.com/s/1Z642ByafeUX6xdWPYLWKTg
提取码:092l

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于51单片机的模拟自动感应门 系统protues仿真 的相关文章

  • PHP如何使用strrev()函数反转字符串?(代码示例)

    反转字符串是最基本的字符串操作之一 xff0c 在PHP中可以使用内置函数strrev 来实现字符串的反转 下面本篇文章就来带大家了解一下PHP strrev 函数怎么用 xff0c 希望对大家有所帮助 PHP strrev 函数 strr
  • 离线安装Linux包的方法--以imblearn为例

    包的 whl文件直接在https pypi org 上搜索下载就好 xff0c 注意要搜索全名scikit learn xff01 你搜sklearn是找不到合适的包的 如图 xff0c 选择第一个就好 xff1a 接着要匹配你的系统架构和
  • px4 EKF中Q、R阵设置的思考

    关于Q R的讨论 Q阵 xff0c 状态转移误差矩阵 xff0c 代表从Xt 1到Xt过程中 xff0c 状态转移和真实过程之间的误差 xff0c 具体其中变量可能是对状态转移有影响的变量 xff0c 比如在有一些场景下 xff0c 可能为
  • Ubuntu查看硬盘信息

    lsscsi包默认是不安装的 xff0c 可以使用以下命令安装lsscsi span class token function sudo span span class token function apt get span span cl
  • 在Python3环境中使用ROS的cv_bridge

    之前使用ROS的时候只用了C 43 43 xff0c 没有发现cv bridge这个坑 xff0c 最近增加了一个使用tensorflow2的节点 xff0c 为此使用Anaconda配置了一个只有Python3 7的环境 xff0c 运行
  • 解决mac安装完torch_geometric,import的时候报错的问题。

    问题描述 使用torch geometric官方的命令安装好了torch geometric xff0c 安装的过程非常丝滑流畅 xff0c 但是安装好了import的时候就报错OSerror 注意事项 不要用他生成的命令安装 xff1a
  • CXF内容总结

    CXF 61 XFire webservice框架 43 Celtrix ESB框架 http cxf apache org 内置jettyweb服务器 服务器端 xff1a 1 开发webservice接口 xff0c 要用 64 web
  • Could NOT find UV (missing: UV_LIBRARY UV_INCLUDE_DIR)

    cd var tmp git clone https github com libuv libuv git cd libuv autogen sh configure make make install 注 xff1a 下不来直接去网页下载
  • 【STM32】HAL库开发教程(四)—串口FIFO使用

    前言 不必害怕未知 xff0c 无需恐惧犯错 xff0c 做一个Creator xff01 本文主要介绍STM32 HAL库开发中串口 FIFO的使用 一 开发步骤 1 Cubemx配置 在左侧引脚配置栏选择目标串口号在串口模式处配置串口模
  • 【STM32】串口数据帧接收与分析处理算法

    基于对串口FIFO的通信数据帧进行接收和分析处理 xff08 关于串口FIFO使用可以参见作者另一篇博文 xff09 算法流程 xff1a 串口中断函数接收数据到FIFO 根据通信协议GetInterUARTMessage 函数对数据帧进行
  • 【STM32】HAL库开发教程(三)—定时器使用

    前言 不必害怕未知 xff0c 无需恐惧犯错 xff0c 做一个Creator xff01 本文主要介绍STM32 HAL库开发中定时器的使用 一 开发步骤 1 STM32CubeMX配置 在左侧引脚配置处勾选TIM2进行配置在TIM2模式
  • 直立车想节能——2020全国大学生智能车车竞赛经验记录之我想要直立(平衡小车串级pid调参经验)

    平衡车我相信很多电赛测控的入门的玩家都也玩过 xff0c 很多朋友们也都听说过平衡小车之家这家淘宝店铺 而串级PID也是一个经典且牛批的方案而广为人知 xff0c 所以在这样的比赛结束之后作为俩套方案都试过的我 xff0c 谈一谈平衡小车之
  • 慎用apt autoremove

    1 remove 卸载软件包 2 autoremove 卸载所有自动安装且不再使用的软件包 3 purge 卸载并清除软件包的配置 平时经常会卸载或删除一些东西 xff0c 系统也会友好提示你进行自动删除一些相关的文件 xff0c 但是有可
  • 推送镜像到DockerHub报无访问权限

    推送镜像到DockerHub 我们推送镜像到DockerHub时会遇到没有访问资源权限的问题 requested access to the resource is deni ed 这是因为dockerhub不知道是谁推送的镜像 xff0c
  • mysql5主从配置教程

    mysql5主从配置 同学们会有mysql主从配置的需求吗 xff1f 这里我给大家讲一下mysql5 7的主从配置教程 我们通过docker来安装mysql 这样会方便很多 拉取镜像 docker pull docker pull mys
  • 解决ubuntu下kazam录制视频无法在windows播放问题

    记录贴 Kazam是ubuntu下一个功能性截屏软件 xff0c 但是在使用的过程中 xff0c 发现Kazam录屏的视频能够在QQ发送 xff0c 但是只能播放 xff0c 不能下载 xff0c window下也不能播放 查找了一些资料发
  • 深入理解以太网PHY自协商及调试心得

    最近调某个phy芯片 xff0c 心态爆炸 xff0c 不过好歹最后有个好结果 自协商基本原理 自动协商模式是端口根据另一端设备的连接速度和双工模式 xff0c 自动把它的速度调节到最高的公共水平 xff0c 即线路两端能具有的最快速度和双
  • 平衡小车的资料

    根据网上平衡小车之家的资料引脚需要用 xff1a LED PA12 Key PA15 OLED RST Clr PC13 RS Clr PB4 SCLK Clr PC15 SDIN Clr PC14 ADC PA4 TIM3 PB0 PB1
  • 注解

    好处 把问题暴露在编译时期 xff1b 增强程序健壮性 xff1b 可以让JVM检查除了语法错误以外的其他的自定义检查 xff1b 位置 可以加到包 xff0c 类 xff0c 方法 xff0c 字段 xff0c 局部变量等位置 xff1b
  • 【知识图谱】课程笔记1---知识图谱简介

    1 知识图谱 知识图谱是一种基于图的数据结构 由节点 point 和边 Edge 组成 每个节点表示一个 实体 每条边为实体与实体之间的 关系 知识图谱本质上是语义网络 通过这种先验的知识网络 xff0c 让机器像人类一样可以联想 推理 它

随机推荐

  • 特征检测+SIFT点匹配+PNP位姿确定

    SIFT特征检测 43 FLANN点匹配 43 PNP位姿确定 软件环境 windows 10 vs2013 opencv3 1 0 43 opencv3 1 0 contrib 基本原理 1 SIFT 特征点检测 43 匹配 2 PNP位
  • STM32CUBEIDE(MX续)学习笔记(七)——FREERTOS+DMA+队列+循环数组方式进行串口收发

    一 收发主要逻辑 1 接收 xff1a 利用DMA和空闲中断一次接收一帧的不定长数据 xff0c 接收到数据后 暂停 xff08 之后分析为何要暂停而不是停止 xff09 DMA xff0c 快速利用结构体存储接收到数据的地址和长度 xff
  • C语言 malloc() + 结构体指针定义结构体变量

    之前在学习链表的过程中 xff0c 笔者认为新节点必须如下定义 xff1a struct Node p struct Node int val p pNext int main Node Node1 Node Node2 Node Node
  • Windows JDK8 安装

    Windows JDK8 安装 准备步骤安装完成 准备 准备jdk8 官网下载 xff1a https www oracle com java technologies javase javase jdk8 downloads html 根
  • openmv与其他单片双向串口通信

    Openmv与其他单片双向串口通信 目的 为了让openmv进行阈值切换或者只运行某一部分代码 xff0c 因此需要openmv与其他单片建立双向通信进行更改内部参数 起因 openmv自带接收函数uart read 进行接收 xff0c
  • 树莓派学习笔记4-opencv网络图传-1

    前记 为了实现QT编写的上位机显示下位机树莓派的opencv实时画面 xff0c 因此需要进行opencv的网络图传 xff0c 包括以下内容 1 QT编写TCP服务端并配置opencv显示摄像头画面 2 python网络编程客户端发送op
  • Ubuntu学习笔记5-安装Arduino及ros配置

    Ubuntu学习笔记5 安装Arduino及ros配置 前言 由于需要编写ESP32代码作为ros下位机使用 xff0c 顺带想体验一下ubuntu下开发 xff0c 因此在ubutnu20 04上安装Arduino并测试 xff0c 不过
  • OpenStack部署(五)

    部署版本 xff1a pike 部署环境 xff1a CentOS7 6 配置文件中所有controller可修改为控制节点ip地址 配置过程中使用 echo 验证命令执行情况 Networking service 安装与配置neutron
  • 爬虫要违法了吗?小编告诉大家:守住规则,大胆去爬

    最近我学习和实践网络爬虫 xff0c 总想着在这儿抓点数据在那儿抓点数据 但不知为什么 xff0c 抓取别人网站数据时 xff0c 总会产生莫名恐慌生怕自己一不小心就侵权了 xff0c 然后被关在监狱摩擦 所以我想现在这个时候 xff0c
  • CXF开发总结

    CXF开发总结 xff08 3种模式 xff09 基于SOAP Server端开发 导包 xff0c 下载cxf包 xff0c 地址http cxf apache org xff0c 导入eclipse为web service服务提供类定义
  • 年度最受欢迎的Python的书籍,还不来看看!

    Python是一种通用的解释型编程 xff0c 主要用于Web开发 机器学习和复杂数据分析 Python对初学者来说是一种完美的语言 xff0c 因为它易于学习和理解 xff0c 随着这种语言的普及 xff0c Python程序员的机会也越
  • Html5下载功能实现

    downloader模块管理网络文件下载任务 xff0c 用于从服务器下载各种文件 xff0c 并支持跨域访问操作 通过plus downloader获取下载管理对象 Downloader下载使用HTTP的GET POST方式请求下载文件
  • 卡尔曼滤波总结(KF、EKF、UKF)

    1 马尔科夫 参考 xff1a https zhuanlan zhihu com p 489239366 2 协方差矩阵 1 xff09 对于一个样本集合S xff0c 如果每个样本是一个n维空间中的一个列向量 xff0c 则使用协方差矩阵
  • Centos7搭建Squid代理服务器

    Centos7搭建Squid代理服务器 sumu s home 1 无需验证版 http 1 1 安装 yum install squid 1 2 修改配置文件 打开文件 vim etc squid squid conf修改 http ac
  • Python 3.6解决报错:'NoneType' object has no attribute 'decode'的办法

    for repo dict in repo dicts names append repo dict 39 name 39 plot dict 61 39 value 39 repo dict 39 stargazers count 39
  • 手把手教你实现ROS依赖任意第三方库+lpsolve求解整数线性规划问题为例

    How to link dynamic libraries use third party libraries in ROS lpsolve solver as examples 喜欢的话请关注 xff0c 欢迎github 给个小星星 g
  • UCOS-III

    一 UCOSIII 简介 UCOSIII 是一个可裁剪 可固化 可剥夺 的多任务系统 xff0c 没有任务数目的限制 xff0c 是 UCOS 的第三代内核 xff0c UCOSIII 有以下几个重要的特性 xff1a 可剥夺多任务管理 x
  • 【Python】词频统计(written in python and Mapreduce)

    一 利用Python进行词频统计 xff08 一 xff09 计算机等级考试中常用的方法 首先是一个比较标准的考试中使用的方法 xff0c 针对英文文本 xff1a span class token keyword def span spa
  • 数据处理技巧(5):MATLAB 读取txt中的数据

    全是数字的类型 txt 的数据是有数字的 xff0c 如下图 xff1a 读取结点坐标 xff0c 保存在 NodeCoor 数组当中 xff0c 共1331行3列 filename span class token operator 61
  • 基于51单片机的模拟自动感应门 系统protues仿真

    硬件设计 xff08 末尾附文件 xff09 代码设计 include lt reg51 h gt 调用头文件 define uchar unsigned char 宏定义 define uint unsigned int 宏定义 端口定义