安徽工程大学机电学院毕业设计(论文)
第2章 系统设计简介
本文介绍基于单片机的太阳能路灯控制器的设计,对12 V和24 V蓄电池可自动识别,可实现对蓄电池的科学管理,指示蓄电池过压、欠压等运行状态,同时具有负载过流、短路保护功能;具有较高的自动化和智能化水平。 2.1 单片机简介及选择
单片机是集成电路技术与微型计算机技术高速发展的产物。体积小、价格低、应用方便、稳定可靠,因此,给工业自动化等领域带来了一场重大革命和技术进步。 由于体积小,很容易地嵌入到系统之中,以实现各种方式的检测、计算或控制,这一点,一般微机根本做不到。 由于单片机本身就是一个微型计算机,因此只要在单片机的外部适当增加一些必要的外围扩展电路,就可以灵活地构成各种应用系统,如工业自动检测监视系统、数据采集系统、自动控制系统、智能仪器仪表等。
20世纪80年代以来,发展迅速,世界一些著名厂商投放市场的产品就有几十个系列,数百个品种,Intel公司的MCS-48、MCS-51,Motorola公司的6801、6802,Zilog公司的Z8系列,Rockwell公司的6501、6502等。此外,荷兰的Philips公司、日本的NEC公司、日立公司等也相继推出了各自的产品。 尽管机型很多,但是在20世纪80年代以及90年代,在我国使用最多的8位单片机还是Intel公司的MCS-51系列单片机以及与其兼容的单片机(称为51系列单片机)MCS-51系列单片机主要包括
基本型:8031/8051/8751(低功耗型80C31/80C51/87C51); 增强型:8032/8052/8752。
已为我国广大技术人员所熟悉和掌握。在上世纪80年代和90年代,MCS-51系列是在我国应用最为广泛的单片机机型之一。表2-1列出了基本型和增强型的MCS-51系列单片机片内的基本硬件资源。
表2-1:基本型和增强型的MCS-51系列单片机片内的基本硬件资源
片内数据存储器 (B) 128 128 128 256 256 256 中断源个数 (个) 5 5 5 6 6 6 型号 片内程序 存储器 无 4KB ROM 4KB EPROM 无 8KB ROM 8KB EPROM I/0口线 (位) 32 32 32 32 32 32 定时器计数器 (个) 2 2 2 2 2 2 8031 基本型 8051 8751 8032 增强型 8052 8752 AT89C52 ATMEL公司生产的低电压,高性能CMOS 8位单片机.片内含8KbyTES的可反复擦写的只读程序存储器(PEROM)和256 byTES的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,
- 5 -
汪婷婷:基于单片机的太阳能路灯控制器设计
与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和FLASH由存储单元,功能强大AT89C52单片机适用于许多较为复杂控制应用场合。
本设计中我们采用AT89C52单片机作为控制电路的核心器件。 2.1.1 AT89S52单片机
AT89C52为40 脚双列直插封装的8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0~P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(32~39 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。
·P0 口:P0 口是一组8 位漏极开路型双向I/O 口, 也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
·P1 口:P1 是一个带内部上拉电阻的8 位双向I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51 不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。
P2 口:P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16 位地址的外部数据存储器(例如执行MOVX @DPTR 指令)时,P2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX @RI 指令)时,P2 口输出P2 锁存器的内容。Flash 编程或校验时,P2亦接收高位地址和一些控制信号。
·P3 口:P3 口是一组带有内部上拉电阻的8 位双向I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。P3 口除了作为一般的I/O 口线外,更重要的用途
- 6 -
安徽工程大学机电学院毕业设计(论文)
是它的第二功能,P3 口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。
·RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
·ALE/PROG: 当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。一般情况下,ALE 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲。对Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条MOVX 和MOVC指令才能将ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 禁止位无效。
·PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
·EA/VPP:外部访问允许。欲使CPU 仅访问外部程序存储器(地址为0000H—FFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU 则执行内部程序存储器中的指令。Flash 存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用12V 编程电压Vpp。 ·XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。 ·XTAL2:振荡器反相放大器的输出端。 ·特殊功能寄存器:
在AT89C52 片内存储器中,80H-FFH 共128 个单元为特殊功能寄存器(SFE),SFR 的地址空间映象。并非所有的地址都被定义,从80H—FFH 共128 个字节只有一部分被定义,还有相当一部分没有定义。对没有定义的单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。不应将数据“1”写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。AT89C52除了与AT89C51所有的定时/计数器0 和定时/计数器1 外,还增加了一个定时/计数器2。定时/计数器2 的控制和状态位位于T2CON(参见表3)T2MOD(参见表4),寄存器对(RCAO2H、RCAP2L)是定时器2 在16 位捕获方式或16 位自动重装载方式下的捕获/自动重装载寄存器。
·数据存储器:
AT89C52 有256 个字节的内部RAM,80H-FFH 高128 个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128字节的RAM 和特殊功能寄存器的地址是相同的,但物理上它们是分开的。当一条指令访问7FH 以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高128 字节RAM 还是访问特殊功能寄存器。如果指令是直接寻址方式则为访问特殊功能寄存器[19]。 2.2路灯系统简介
- 7 -
汪婷婷:基于单片机的太阳能路灯控制器设计
太阳能LED路灯系统总框图如图2-1:
主要由太阳能电池,充电POWER MOSFET控制管,放电POWER MOSFET扼流管LED发光板,POWE MOSFET控制管等组成。
太阳能电池传感器充电控制PWM信号发生器放电控制开关信号发生器LED发光驱动控制PMW信号发生器控制逻辑(硬件/固件程序组合)图2-1太阳能LED路灯系统总框图
太阳能LED路灯系统主要包括三大部分:
1、充电电路,其控制方式为脉宽调制信号(PWM)调制恒流电流进行斩波输出向蓄电池充电,根据蓄电池剩余荷电容量(SOC)来确定充电方式。当蓄电池剩余荷电容量在10%(本文在SOC达到40%以下时候,为了避免过放和系统停止,而采用特殊的放电/驱动方式来驱动LED路灯)以下时就可被确定为蓄电池深度放电,此时POWERMOSFET管被给定的脉宽信号(PWM)为全开,此刻相当于恒流充电,这被称为快充阶段。当门限电压超过阈值(SOC>40%)后,就转换为过充阶段,充电电压略高于蓄电池电压,电流大小由脉宽信号(PWM)占空比决定,脉宽信号的大小要随着电池电压的升高而逐渐变窄。当剩余荷电容量(SOC)超过95%以后(根据不同种类的电池具体数值不相同)就可进入浮充阶段,此时PWM信号宽度固定在一个很小的范围。
2、放电控制电路,这部分主要由一个POWER MOSFET管来控制蓄电池是否放电,当蓄电池10% 3、LED路灯驱动与亮度调节电路,这部分的主要控制思路是,在多点驱动过程中,在到达电池过放点之前,将蓄电池的容量分成几个阶段,根据蓄电池每个阶段的SOC大小来决定PWM输出信号的脉宽,尽量保持比较长的路灯点亮的时间,而又有效的避免了过放。但是由于LED器件过热后会发生发光衰减, - 8 - 安徽工程大学机电学院毕业设计(论文) 所以在输出PWM控制信号时候要把温度补偿加进来。热度超过阈值(LED节温度接近90℃~120℃)则适当减低一点亮度。 时钟芯片时钟芯片DS1307 太阳能电池 蓄电池电压检测分压电阻网络 电源管理 测量元件:LM331模块 电压检测芯片温度测量电路微 控 晶振制驱动部分传感部分电路器 复位电路充电PWM信号发生器 放电PWM开关信号发生器 LED路灯驱动与亮度调节PWM信号 发生器 CPU、电源、晶振、I/O接口部分(传感器采 复位电路部分样与驱动部分)图2-2路灯控制器的结构框图 2.3太阳能LED路灯控制器功能模块概述 太阳能LED路灯控制器主要分成两大部分: 1.CPU、电源、复位电路。其中电源、晶振和复位电路是必备,一般都是标准配置,但有时候根据不同的复位方式(外触发复位、上电复位)的不同,电路的设计上有所不同。单片机不仅仅是这一部分的主要部件,也是整个系统的核心部件。 2.I/O接口部分(传感器采样与驱动部分)主要是完成相关传感器的采样,为控制逻辑提供控制参数和依据,另外的一部分就是驱动部分,分为上述的充/放电控制以及LED路灯的驱动与亮度调节。以上硬件和相关的固件程序的实现在以下部分进行详细的讨论和设计实现[19]。 2.4 电源、晶振、复位硬件电路 2.4.1电源模块设计 根据控制器的功能要求,本系统需要把12V蓄电池的电压转换成系统所需的电压信号。系统需两种电压类型10V,5V,我们可采用以下方案来实现。 - 9 -