硬件设计

(末尾附文件)

仿真文件1: 功能如下图所示

原理图

仿真文件2:

程序设计

                /******定义头文件**************/
#include<reg52.h>
#include <INTRINS.H>
#include"lcd.h"
#include "ds1302.h"
/******类型重定义*************/
typedef unsigned char uchar;
typedef unsigned int  uint;
/******引脚定义***************/
sbit key_1 = P1^0;         //定义4个按键
sbit key_2 = P1^1;
sbit key_3 = P1^2;
sbit key_4 = P1^3;
sbit key_5=P3^0;//手动/自动模式切换
sbit key_6=P3^1;//手动模式路灯开关sbit led_1 = P1^4;
sbit Beep = P2^3;                  //定义声光报警
sbit AD_clk = P3^4;                    //定义ADC0832
sbit AD_do = P3^5;
sbit AD_di = P3^5;
sbit AD_cs = P3^6;
sbit red_sr = P3^7;                    //红外检测/******定义变量***************/
char hour,min,sec;                      //定义小时、分钟、秒变量
char time;
char work_time_Start = 16,work_time_End = 5;      //设定起始、结束时间
bit light_flag;
uchar light;                            //定义光照强度
uchar light_limit;                      //定义光照阈值
uchar Data;
/******声明函数***************/
void delayms(unsigned int x);           //延时函数
void display();                         //显示
void Read_time();
void set_work_time();                   //设定工作时间
void set_limit_light();                 //设定光照阈值
void work();                            //工作状态
void set_time();                        //设定时间
void delay10ms(int d);
void InitTimer0(void);                  //T0定时器初始化程序
uchar AD(bit Channel);                  //ADC0832程序void kongzhi()
{if(key_6==0)
{led_1=1;
}
else{led_1=0;}
}void qiehaun(){if(key_5==0)
{kongzhi();
}
else{work();
//      if(red_sr==1)
//  {
//  led_1=1;
//  }
//  if(red_sr==0)
//  {
//  led_1=0;
//  }
}
}
void main()
{Beep = led_1 = 0;                    //声光报警,LED关闭InitTimer0();                        //T0定时器初始化程序LcdInit();                          //lcd1602初始化while(1){Ds1302ReadTime();              //读取时间set_work_time();              //设定工作时间set_limit_light();              //设定光照阈值set_time();light = AD(0);                  //读取ADC0832数值                   display();                      //显示qiehaun();
//      work();                         //工作状态}
}
void Timer0Interrupt(void) interrupt 1
{static uchar count;TH0 = 0x0D8;TL0 = 0x0F0;count ++;if(count>=100){time ++;count = 0;}//add your code here
}
/*******************************************************************************
* 函数名         : InitTimer0()
* 函数功能       : T0定时器初始化程序
* 输入           : 无
* 输出             : 无
*******************************************************************************/
void InitTimer0(void)
{TMOD = 0x01;TH0 = 0x0D8;TL0 = 0x0F0;EA = 0;ET0 = 1;TR0 = 1;
}
/*******************************************************************************
* 函数名         : work()
* 函数功能       : 工作状态
* 输入           : 无
* 输出             : 无
*******************************************************************************/
void work()
{Read_time();                   //转换时间if(work_time_End!=0 && work_time_Start!=0)          //工作时间已设置{if(hour >= work_time_Start)                       //当前时间大于起始时间,如起始时间为19:00,当前时间为21:00。{Data = AD(1);led_1 = 1;                                  //点亮LEDif(Data < 50)                             //未检测到LED点亮Beep = 1;                               //声光报警else                                      //检测到Led点亮Beep = 0;                                //停止报警}else if(hour < work_time_End)     //当前时间小于结束时间,如结束时间为06:00,当前时间为04:00。{if(red_sr)                 //检测到人或车{time = 0;light_flag = 1;         //LED标志置1,开始T0定时器计时,点亮LED,10s后LED标志清零,LED熄灭}if(light_flag)                  //LED标志置1,检测到人或车{led_1 = 1;                 //点亮LEDEA = 1;                     //开启中断if(time > 10)              //10s后{light_flag = 0;         //LED标志清零EA = 0;                   //关中断time = 0;             //计时清零}Data = AD(1);if(Data < 50)               //未检测到LED点亮Beep = 1;               //声光报警else                      //检测到Led点亮Beep = 0;                //停止报警      }elseled_1 = 0;}else{if(light < light_limit){led_1 = 1;Data = AD(1);if(Data < 50)                              //未检测到LED点亮Beep = 1;                               //声光报警else                                      //检测到Led点亮Beep = 0;                                //停止报警}elseled_1 = Beep = 0;}}
}
/*******************************************************************************
* 函数名         : set_work_time()
* 函数功能       : 设定工作时间
* 输入           : 无
* 输出             : 无
*******************************************************************************/

.

文件仅供参考

链接:https://pan.baidu.com/s/1Sl6u_BGjrjMKFC8JS90O-A
提取码:67xo

.

基于51单片机的智能路灯照明控制系统proteus仿真原理图程序设计相关推荐

  1. T027基于51单片机的智能窗帘窗户控制系统proteus仿真原理图PCB

    功能: 0.本系统采用单片机STC89C52作为系统的主控芯片 1.系统采用LCD1602液晶实时显示当前时间/窗帘状态/光照强度 2.系统具有四个功能按键,支持手动按键/定时/遥控三种模式控制窗帘 ...

  2. 基于51单片机的汽车灯光报警控制系统proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.模拟汽车灯光控制系统,支持双闪,转向灯光控制 2.上锁后,非法进入,灯光双闪,喇叭报警,报警电路采用的LED和蜂鸣器组成的声光报警系统 3.本系统 ...

  3. 基于51单片机的水箱水位监测控制系统proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.通过传感器监测水位,当水位低于水位下限时,接通加水水泵,直到水位达到水位上限,停止加水 2.水位低于水位下限时,声光报警 3.可按键手动加水, ...

  4. 基于51单片机的衣柜鞋柜湿度控制系统proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前湿度值 2.当湿度超过设定湿度阈值范围时,启动加热和风机控制继电器,否则关闭 3.按键可设定湿度阈值 4.采用D ...

  5. 基于51单片机的16x32点阵滚动广告牌 proteus仿真原理图程序设计

    硬件设计 仿真图: 支持左右轮动 程序设计 #include <REG51.H> #define FOSC 12 //定义晶振频率 #define INIT_TH0 0x3C //定时器T ...

  6. 基于51单片机自动数字电压表PCF8591 TLC2543 TL548 proteus仿真汇编程序设计

    硬件设计1 基于51单片机+PCF8591 ADC的仿真电路图: A. 基于51单片机和PCF8591的电压表,具有仿真图/源程序: B. 由数码管作为显示器: C.测试电压范围为0~5V,精度约为0 ...

  7. protues里报警c语言程序,基于51单片机的智能火灾报警系统-(Proteus仿真图+源程序+论文)...

    摘要 近些年来,因火灾造成的人民生命和财产损失的事件时有发生,对于火灾的防控情况不容乐观.除了对于火灾隐患的排查和人们防灾减灾意识提升之外,利用科技手段对火灾进行实时监控报警十分必要而且非常有效.国内 ...

  8. 基于51单片机的两相步进电机控制系统proteus仿真

    硬件设计 (末尾附文件) 代码设计 #include "MAIN.H" #include "LCD1602.h" #include "PCF8591. ...

  9. T045基于51单片机温湿度检测系统无线蓝牙传输Proteus仿真原理图PCB

    功能: 0.本项目采用STC89C52作为单片机系统的控制MCU 1.系统内采用DHT11作为湿度传感器,支持温湿度检测上传 2.系统具备无线蓝牙模块,支持定时循环发送手机端当前的温湿度状态 3.采用 ...

  10. 基于51单片机的八路抢答器汇编语言Proteus仿真原理图程序

    功能: 0.本项目采用STC89C52作为单片机系统的控制MCU 1.'开始'按键按下后,进入抢答倒计时,倒计时结束前,按下抢答键,完成抢答,并进入作答时间,作答时间结束返回初始状态,若无人抢答,返回 ...

最新文章

  1. 【数据结构】堆,大根堆,小根堆,优先队列 详解
  2. 我们使用Leangoo敏捷实践分享
  3. python课堂笔记手抄图片_超简单又漂亮的手抄报图片
  4. Apache Shiro第3部分–密码学
  5. springboot 禁用tomcat_Spring Boot 面试的十个问题
  6. mysql explain ref列_mysql explain中的列
  7. MD5 与 Base64一起使用 加密,计算原理
  8. html包含头尾文件_Html介绍及工具下载
  9. 神技能!在上司靠近座位时,用人脸识别技术及时屏幕切换
  10. podman,ctr镜像导入导出
  11. router单页面多个标签tags的用法router-view/router-view
  12. java文件读取路径_java文件读取路径问与答
  13. cocos creator入门教程(十八)—— creator_Director对象与资源加载策略
  14. Python实现的图片转字符画,附源码
  15. 如何解决电脑横屏问题
  16. 天猫订单详情页应该如何查看呢?
  17. python实现图片找不同游戏_用Python实现QQ游戏大家来找茬辅助工具
  18. 游戏服务器是干什么的(大话、浅析)
  19. STM32绝对地址赋值
  20. 天琴协议_天琴座:新秀背后

热门文章

  1. Tool for FMEA
  2. 计算机ip地址和用户名和密码忘记了怎么办,192.168.1.112这是IP地址 我把密码忘了 怎么处理啊 电脑室现在还...
  3. 微软补丁导致填制凭证右侧滚动条消失
  4. 商业杂志图表的经典用色
  5. 华硕afudos刷bios_ASUS主板刷BIOS详细图解方法 包含windows和DOS两种环境
  6. Qt qml listview刷新
  7. 一文带你掌握抓包工具的使用-科来
  8. android opengl教程
  9. 边框虚线html代码是,网页虚线代码/表格边框虚线代码大全
  10. flash做动画教程(基础篇)