• 基于51单片机的智能路灯控制系统(lunwen+设计说明+仿真+程序)


    目录
    第一章 绪论 1
    1.1研究背景 1
    1.2国内外研究现状和发展趋势 1
    1.3本文的主要研究内容 2
    第二章 方案论证 3
    2.1 设计要求 3
    2.2 方案选择 3
    第三章 系统总体框图 5
    第四章 系统硬件设计 6
    4.1 电源电路 6
    4.2 太阳能电池板组件 6
    4.3 蓄电池 7
    4.4 照明负载 8
    4.5 蓄电池和太阳能板的选用 9
    4.6 显示电路 10
    4.7 过充、过放控制电路 11
    4.8 DS1302的结构及工作原理 12
    4.9 存储器AT24C02简介 13
    第五章 系统软件设计 15
    结束语 19
    参考文献 20
    致谢 21
    附录1 22
    1.3本文的主要研究内容
    本文主要研究方向是太阳能路灯照明控制器的研究,太阳能控制器全称为太阳能充放电控制器.是控制太阳能电池方阵对蓄电池充电以及蓄电池给负载供电的自动控制设备.能自动防止蓄电池过充电和过放电。它对蓄电池的充、放电条件加以规定和控制,并按照负载的电源需求控制太阳电池组件和蓄电池对负载的电能输出,是整个系统的核心控制部分。
    在一个太阳能路灯中,必不可少的一个组成部分就是太阳能控制器。太阳能控制器的主要作用是为了保护蓄电池,通过限制蓄电池充放电条件来防止蓄电池深度充放电。在温差比较大的地方,太阳能控制器还要具备温度补偿功能。太阳能控制器在设计上还要兼顾光控、时控、过充保护、过放保护和反接保护等功能与成本的控制,实现高性价比。
    控制系统是照明系统的核心,承担系统的充放电、过充过放保护、光控、时控和逆变等功能。

    第二章 方案论证
    2.1 设计要求
    (1)电池板功率的计算和选用;
    (2)蓄电池容量、充放电控制和充放电状态显示;
    (3)连续阴雨天三天路灯仍能照明;
    (4)光线暗时路灯自动点亮,为节省电能晚上24点熄灭,早上5点路灯点亮,早上光线强时路灯自动熄灭(开关灯时间点可调);
    (5)系统断电时可以保存用户所设定的各种参数。
    2.2 方案选择
    太阳能路灯跟普通路灯控制电路功能基本一样,都是为了完成晚上亮灯,早晨熄灯的作用,还有就是对蓄电池的充电管理。国内外常用的控制器有单独的光控制型、时钟控器型、经纬型控制器型等,但由于其工作原理不同,各有优缺点。
    单独的光控型一般采用感光探头,当晚上光线弱时,自动开启路灯;早上光线较强时,自动关闭路灯,达到自动控制的作用。为节省电力,早期的光控开关,使用分立半导体器件,电路复杂,元器件较多,体积也较大,并且故障率高。随着半导体技术的发展,出现了时基集成电路,如NE555等,使光控开关电路简化。感光探头是影响光控开关性能的关键元器件,同时对它安装位置也有一定要求,力求避免各种干扰光线,但在实际使用中,感光探头难以判断各种干扰光线,经常会产生误动作[2]。
    采用时钟控器型的路灯控制器,要预先设定开关时间,使路灯按时亮灯、准时熄灯,从而达到自动控制的目的。优点是定时开关预先设定的开关时间不受外界干扰,除本身故障外不会产生误动作。缺点是不能根据季节变化和特殊的天气情况自动变换开关时间,需人工经常调整开关时间,费时费力,不利于节省电力。定时开关又分为机械钟表型和电子钟表型,机械钟表型以石英钟为主,走时精准,但是由于机芯内使用塑料齿轮在高温下会变形,从而导致停机现象。电子钟表型定时开关使用的也较多,常用LR6818、LM8650、LM8561等集成块为中心的电子钟电路。近几年还出现将电子钟LED液晶显示为一体的集成块,体积小、外围元器件少,可设六组开关点,有星期功能,许多厂家大量生产该产品,现在大多用于路灯控制中[3]。
    经纬型控制器采用单片机技术,模拟日照规律,晚上能自动开灯、早晨能自动关灯。它采取光控开关时间的优点,克服了光控开关易受干扰的缺点,取钟控器时间准确之长处,克服了定时开关不会自动变换开关时间之短处[4]。目前路灯控制常采用这种控制方式,但其价格较高,在路灯中使用将会增加不必要的成本。
    路灯的智能控制这一课题己有研究者,但目前尚未有成熟的产品上市。本设计是结合以上几种控制方式的优点,综合从节电、经济和实用等方面考虑,利用定时控制和光敏电阻控制相结合的方式,实现太阳能路灯的设计[5]。

    程序:    BITCNT   EQU  30H
    BYTECNT  EQU  31H
    COMMAND  EQU  32H
    RCUDAT  EQU  33H      ;  定义1302 读出地址
    XMTDAT  EQU  3BH     ;  定义1302 写入地址
    IO_DATA  BIT  P1.4      ;  定义1302数据输入/输出端
    SCLK  BIT  P1.3         ;   定义1302串行时钟
    RST  BIT  P1.5          ;    定义1302复位
    SCL  BIT  P1.6          ;    定义24c02串行时钟
    SDA  BIT  P1.7          ;    定义24c02串行数据
    XSJ   BIT  P3.2           ;    定义显示开关键
    GNJ  BIT  P3.3          ; 定义功能键
    JYJ  BIT  P3.4         ;  定义加1键
    GM  BIT  P3.5         ;  定义光敏电阻输入端
    TS2  BIT  P1.0        ; 定义调时钟指示发光二极管
    TGLD  BIT  P1.1      ;定义调关路灯指示发光二极管
    TKLD  BIT  P1.2      ;定义调开路灯指示发光二极管
    ORG  0000H
    AJMP  MAIN    ;主程序入口地址
    ORG  000BH
    AJMP  T0INT    ;T0中断入口地址
    ORG   001BH
    AJMP  T1INT    ;T1中断入口地址
    ORG  0030H  
    MAIN:  MOV  TMOD,#11H  ;设置定时器T0,T1工作于模式1
                SETB  30H
                CLR   31H
                MOV  73H,#0     ;    功能键标志位
                MOV  72H,#0     ;   闪烁标志位
                CLR   32H 
                CLR   33H        ;     闪烁标志位
                MOV  70H,#0
                MOV  TH0,#0D8H
                MOV  TL0,#0F0H
                MOV  TH1,#0D8H  
                MOV  TL1,#0F0H      ;  定时10ms初值
                MOV  R3 ,#0AIH 
                MOV  R4 ,#00H
                MOV  R1 ,#76H 
                MOV  R7 ,#04H          ;  读出24c02操作
                LCALL  EEPR
                LCALL  OSC_ENABLE      ;   初始化1302时钟启动操作
                LCALL  WRIT_ENABLE      ;    初始化1302允许数据输入
             LCALL  R_MANY          ;    调1302多字节读出程序
                     SETB  TR0
    KGXS: LCALL  R_MANY
                 *******按键扫描程序*******
                      JB  XSJ ,XSBZ
                      LCALL  YS10MS
                      JB  XSJ, XSBZ          ;  判断显示开关键
                      CPL  30H                 ;   显示标志位
    MOV  7BH ,75H
    MOV  7AH ,74H
    LCALL  XS
    XSBZ: JB30H ,PDGX           ;  判断标志位
                      SETB  TR1
                      JB  GNJ ,PDGX         ;  判断功能键
                      LCALL  YS10MS
                      JB  GNJ , PDGX
                      INC  73H                 ; 功能键标志位加1
                      MOV  A ,  #1 , POTS;      ;  调时钟时
                      CLR   TSZ
                      JB  JYJ ,  PDGX 
                      LCALL  TS10MS
                      JB  JYJ ,  PDGX           ;    加一键
                      INC  75H   ;1302          ;  1302时加一
                      MOV  A , 75H 
                      CJNE  A , #2 , PDTS
                      MOV  75H ,#0        ;   判断是否调到24时
    PDTS: CJNE  A , #2 , POTF
                      JB  JYJ ,  PDTF
                      LCALL  YS10MS
                      JB  JYJ ,  PDTF
                      INC   74H              ;    1302分加一
                      MOV  A , 74H 
                      CJNE  A , #60 ,PDTF
                      MOV  74H  ,#0
    PDTF: CJNE  A , #3  ,PDGS
                      SETB  TSZ 
                      CLR  TGLD
                      LCALL  W_MANY       ;   存1302时、分
                      JB  JYJ , PDGS
                      LCALL  YS 10MS
                      JB  JYJ , PDGS
                      INC  79H         ;   关路灯时加一
                      MOV  A , #24 , PDGS
                      MOV  79H ,#0
    PDGS: CJNE  A , #4 , PDKS
                      JB  JYJ , PDKS
                      LCALL  YS10MS  
                      JB  JYJ  PDKS 
                      INC  78H             ;   关路灯分加一
                      CJNE  A ,#60 , PDKS
                      MOV  78H , #0
    PDKS: CJNE  A , #5 , PDKF
                      SETB  TGLD
                      CLR  TKLD
                      JB  JYJ PDKF
                      LCALL  YS10MS
                      JB  JYJ  , PDKF
                      INC  77H            ;  开路灯时加一
                      MOV  A , #77H
                      CJNE  A ,#24 , PDKF
                      MOV  77H , #0
    PDKF: CJNE  A , #6 , PDJS
                      JB  JYJ  , PDJS
                      LCALL  YS10MS
                      JB  JYJ , PDJS
                      INC  76H              ;  开路灯分加一 
                      MOV  A , #76H
                      CJNE  A ,#60 , PDJS
                      MOV  76H ,#0
    PDJS: CJNE  A , #7 ,  PDGX
                      MOV  73H  ,#0
                      MOV  R3 , #0A0H
                      MOV  R4 , #00H
                      MOV  R1 , #76H
                      MOV  R7 , #04H
                      LCALL  EEPW      ;  向24c02存内容
                      SETB   TKLD 
                      SETB   TR0
    PDGX :JB 30H  , KGXS
                      CLR  TR1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    Qt——对话框详解
    Kafka 生产者、消费者命令行操作
    自动化测试框架(二)读取配置文件中内容
    如何解决跨域问题
    day49【动态规划】买卖股票的最佳时机问题
    Eth - Trunk链路聚合
    分词算法----正向和逆向最大匹配算法(含Python代码实现)
    数据结构:队列详解 c++信息学奥赛基础知识讲解
    Spring MVC中@Controller和@RequestMapping注解详解
    HashSet的存储机制
  • 原文地址:https://blog.csdn.net/sheziqiong/article/details/127783831