找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2647|回复: 2
收起左侧

单片机智能路灯源程序Proteus仿真原理图 用按键代替人体感应模块

[复制链接]
ID:747677 发表于 2022-4-8 11:58 | 显示全部楼层 |阅读模式
附件包含:智能路灯的源代码、AD软件原理图、proteus仿真
用按键代替人体感应模块,按键按下代表热释电模块检测到人
LM393+电位器模拟光强,向左调代表光弱,向右调代表光强
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.gif

仿真

仿真


电路原理图如下:
51hei.png

单片机源程序如下:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #include<absacc.h>                //头文件

  4. #define uc unsigned char
  5. #define ui unsigned int//宏定义

  6. sbit GM=P1^0;        //光敏
  7. sbit RT=P1^5;        //人体红外
  8. sbit KZ=P3^5;        //继电器控制灯

  9. uc sec=0;

  10. void init()//初始化函数
  11. {
  12.         GM=0;//光敏置低
  13.         RT=0;//人体红外置低
  14.         TMOD=0x01;         //定时器工作方式
  15.         TH0=0x3c;
  16.         TL0=0xb0;         //赋初值50ms
  17.         ET0=1;                 //打开中断允许开关
  18.         TR0=1;                 //打开定时器定时开关
  19.         EA=1;                 //打开中断总开关
  20. }

  21. void main()//主函数
  22. {
  23.         init();//初始化函数
  24.         while(1);//空循环
  25. }
  26. void T0_time() interrupt 1        //定时器执行函数,热释电模块和光线感应和控制继电器都是在定时器里完成
  27. {
  28.         uc m;                                        //定义变量m
  29.         TH0=0x3c;
  30.         TL0=0xb0;                                //重新赋初值50ms
  31.         m++;                                        //m加一次是50ms
  32.         if(m>=20)                                //加到20次,就是一秒
  33.         {
  34.                 m=0;                                //m清零
  35.                 if(RT==0||GM==0)                //当热释电和光敏有一个不符合条件(符合条件就是热释电检测到人,光敏检测到环境光线弱)
  36.                 sec++;                                        //sec变量加
  37.                 if(RT==1&&GM==1&&sec<=5)//当热释电和光敏都符合条件并且sec变量小于等于5
  38.                 {
  39.                         sec=0;                                //sec清零
  40.                         KZ=0;                                //控制继电器打开
  41.                 }
  42.                 if((RT==0||GM==0)&&sec>5)//当热释电和光敏有一个不符合条件并且sec大于5时
  43.                 {
  44.                         sec=0;                                //sec清零
  45.                         KZ=1;                                //控制继电器关闭
  46.                 }
  47.         }
  48. }
复制代码

附件

附件

Keil代码与Proteus仿真下载:
智能路灯.7z (170.39 KB, 下载次数: 71)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:1055511 发表于 2022-12-5 18:10 | 显示全部楼层
求解继电器模块的讲解 继电器模块是用来做什么的呀
回复

使用道具 举报

ID:1057742 发表于 2022-12-18 23:29 | 显示全部楼层
原理图有proteus吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表