路灯控制系统的设计(毕业设计)

上传人:无*** 文档编号:116658116 上传时间:2022-07-06 格式:DOC 页数:40 大小:541KB
返回 下载 相关 举报
路灯控制系统的设计(毕业设计)_第1页
第1页 / 共40页
路灯控制系统的设计(毕业设计)_第2页
第2页 / 共40页
路灯控制系统的设计(毕业设计)_第3页
第3页 / 共40页
点击查看更多>>
资源描述
扬州大学广陵学院本科生毕业设计(论文)路灯控制系统的设计 摘要 随着中国经济的快速发展,人类对电力能源的需求日益增大,电力资源日益缺乏。因此如何节能降耗已成为近几年来人们关注讨论和研究的话题。本文研究的路灯控制系统是针对我国城市在路灯照明的控制方面产生的巨大能源消耗和浪费而开发出的新的智能型的路灯控制系统。本文详细介绍了该系统的设计与实现。本文详细介绍并分析了以单片机芯片AT89S52、时钟芯片DS1302、光敏电阻为主要部件的硬件电路和在以keil 软件为主要编程环境的软件部分。通过时间控制和环境参数控制相结合的方法去控制路灯。实现随着光照强度的大小和在一定时间段内路灯都有着的不同表现,午夜路灯间隔开以节省电源,光照很足时路灯全部自动断开不工作等功能。实验表明,该路灯控制系统是一种智能型控制系统。电力资源既能够得到合理利用也不会影响人类的交通安全。随着社会的发展,路灯控制系统会得到更广泛的应用。关键词:路灯控制、单片机、时钟芯片、光敏电阻Abstract With Chinas rapid economic development, human electricity demand growing, the power resource-scarce. Therefore, how energy consumption has become a topic of discussion and research attention. In this paper, the street light control system for street lighting in the Chinese cities control the enormous energy consumption and waste and to develop new intelligent street lights control system. This paper describes the design and implementation of the system. This paper introduced and analyzed in single chip AT89S51, clock chip DS1302, photosensitive resistance as the main components of hardware circuitry and with keil as the main programming environment software. Time control and the environment through the combination of parameter control methods to control the lights. As the light intensity to achieve a certain period of time the size and all have different performance lamps, night lights spaced to save power, light is enough to automatically disconnect when the lights do not work all the functions. Experiments show that the street light control system is an intelligent control system. Power can be both rational utilization of resources will not affect the safety of mankind. With the social development, street lighting control system will be more widely used.Key words: street lighting control, single-chip, clock chips, light resistance 目 录第一章 绪 论51.1 路灯控制器系统设计的意义51.2 路灯控制器系统设计的前景6第二章 路灯控制系统设计的总体方案7第三章 路灯控制系统的硬件设计8 3.1 光照信号测量电路的设计93.2 时钟信号测量电路的设计133.3 单片机控制部分173.3.1 AT89S52的介绍173.3.2 复位电路的设计203.3.3 晶振电路的设计203.4 显示电路的设计21第四章 路灯控制器的软件设计234.1 Keil软件的介绍234.2路灯控制器设计的功能264.3路灯控制器的流程图27第五章 路灯控制系统的调试295.1电路调试295.1.1 硬件调试295.1.2 软件调试295.2 调试过程中出现的问题和解决方法30第六章 自己的心得体会31致谢32参考文献33附录34第一章 绪论随着社会的不断发展,人类的生活水平不断提高,电力能源已经成为人们日常生活中不可缺少的部分。展望未来,再用50年的时间,在本世纪中叶我国基本实现现代化,使人民享有更高的物质与精神文明。这一宏伟目标能否顺利实现,在相当大的程度上取决于电力能源在未来50年稳健的发展。 在我国电力能源应用方面,城市路灯所消耗的能源占用了很大的比重。据不完全统计,城市公共照明在我国照明耗电中占30的比例。目前,全国660多座城市约有各种路灯400万盏,为了提高路面亮度,若平均每盏灯增加50W。则共需增容20万千瓦,全年多耗电约7亿千瓦时由于多增加光源、灯具、灯杆等照明设施,带来的初次购置费及日常的维护费也会明显增加。从绿色照明角度考虑,多发出7亿千瓦时的电力,增排的二氧化碳和二氧化硫等有害气体对空气质量会产生巨大的影响,将破坏空气质量,不利于环保。但是城市的发展离不开路灯照明,它服务于交通安全和人们的生活,美化了城市容貌,为创造良好的投资环境起着举足轻重的作用。随着我国经济的快速发展,城市市政建设步伐加快,城市道理照明工程建设受到越来越多的重视而在城市夜晚变得灯火辉煌、绚丽多彩的同时,电能消耗也逐年攀升。作为城市道路的路灯照明,一方面耗能增大,另一方面维护量也增大。因此如何采取节能技术,降低城市公共照明能耗,成为人们关注讨论和研究的问题。1.1 路灯控制器系统设计的意义目前各大城市的交通路灯的能源利用率存在一个普遍的问题,这就是路灯的能源利用率不高,我国小型城市在夜晚9点后,我国大中型城市在午夜12点后,道路上几乎空无一人,可城市照明从这一时段直至清晨6点路灯熄灭。即使是在北京、上海等大城市的繁华地点,凌晨2点以后,道路上也是人烟稀少。在这样低交通流量的道路上仍然保持较高的照度是明显没有必要的。因此,设计出一种智能型的路灯控制系统是相当重要的,它不但要求能够在节能的同时也要求对人们的出行和对城市的发展没有大的影响。本设计是以单片机AT89S51、时钟芯片DS1302、光敏电阻为主要控制单元的硬件电路,采用了时间控制和环境参数控制相结合的控制策略。实现了路灯定时开关,根据天气情况光照强度决定路灯的开启,午夜12点以后路灯隔着开启。此控制系统大大节省了电力资源使其充分利用,具有可靠、使用寿命长、稳定性高、价格便宜的特点,能满足路灯控制的需要,具有广泛的应用前景。1.2 路灯控制器系统设计的前景跟传统的路灯控制系统相比,传统路灯控制系统就是采用人工控制,到了一定时间就拉电开启路灯,到了一定时间关闭路灯,完全是人工控制路灯的开关。一个国家路灯市场规模与当地道路长度与种类、国民生活水平有关。理论上道路长度愈长、愈宽、重要道路(如高速公路)比率愈高,路灯需求数量将随之增长。不过路灯需求与实际装置数量,会受到国民生活水平影响。国民生活水平愈高国家,民众对于道路使用频率与道路安全要求越高,相对的路灯装置数量也较多。中国基本上是能源缺乏国家,随着经济发展,能源供给问题更加严重。2008年10月中国政府启动“公共机构节能条例”,要求各级政府单位应当将节能产品、设备纳入政府集中采购目录,并严格监控能源消耗状况。同时,也公布了“民用建筑节能条例”规定建设单位应当选择合适的可再生能源,用于采暖、制冷、照明和热水供应等。正因为这两项法规的实行,提供地方政府采购LED等相关节能产品的法源依据。虽然国家积极地在倡导节能环保也采取了许多措施,例如采用人工控制手动进行开关灯的工作,还有采用定时控制的措施:天天定时开定时关不论气候季节变化,还有的在夜晚降低路灯的供电电压使其变暗来减小能源消耗。这些控制方式明显存在着较大的问题,人工控制不仅浪费了人力资源,而且还容易引起不必要的安全隐患。定时控制存在着在天气不好或季节变化天黑的早或晚的情况下光照条件没得到及时改善。降低供电电压会影响路灯的使用寿命和出行安全。所以说,设计出一个智能型的路灯控制系统在社会会有个广泛的应用前景。第二章 路灯控制系统设计的总体方案本设计以单片机芯片AT89S52、时钟芯片DS1302、光敏电阻为主控单元的硬件电路和以keil 软件为编程环境下的软件部分组成。采用了时间控制和环境参数控制相结合的策略,实现了光照不好的情况下路灯自动开启、深夜路灯隔着开启、白天路灯熄灭停止工作、随着季节的变化改变路灯的开关时间等功能。光测电路部分。一年四季天气状况都在不断变化着,天气情况的变化影响着光照强度的变化,我们希望在光照强度不够好时路灯能自动开启。因此我们需要一个传感器来感应光照强度从而做出相应变化,光敏电阻是一种很优良的感应光照强度的传感器。时钟电路部分。天气的变化是不可预测的,因此有时我们有时需要根据每个季节的天黑的迟早人工的去修改预先设定的时间控制路灯的开关,从而我们会使用到专用的时钟芯片。最后可以由单片机系统对这两部分进行不同的控制。根据以上分析以及设计要求得出本设计硬件构成框图如图2-1所示:图2-1 硬件构成 硬件电路主要由光照信号测量电路和时钟信号测量电路组成,它们均通过单片机去对数码管显示和路灯开关进行控制,从而达到预想的要求。第三章 路灯控制系统的硬件设计整体硬件设计原理图见图3-1该设计电路主要通过单片机和按键对时钟芯片DS1302进行时间设置控制路灯的开关时间,和通过光敏电阻感应外界的光照情况从而控制路灯的开关,还有构成复位和晶振电路对该系统进行初始化和起振电路让其运行,通过电阻和三极管驱动路灯点亮,再经过单片机后通过驱动器SN7404驱动数码管显示时间。路灯断电后,充电电池给时钟芯片DS1302供电让其继续工作,让时间继续走下去,等其再次通电后,时间显示当前时间。根据当前时间路灯会作出不同的响应。下面就对硬件的各个部分进行详细的分析3.1 光照信号测量电路的设计光照信号测量电路如图3.1.2所示: 图3.1.2该电路主要由光敏电阻和比较器LM358组成。电路中有两个分压电路,其中R1和光敏电阻组成一个,R2和滑阻组成另外一个。在光照强度正好达到需要打开路灯的时候,调节电位器R3,使比较器LM358同向端(3脚)电压等于反相端(2脚)电压,由于光敏电阻会随着光照强度的变化而改变电阻值,当光照强度高时,光敏电阻的阻值就会降低,就会引起LM324的(2脚)电压变小,低于所设定的(2脚)电压,使输出端(1脚)输出高电平;当光照强度低时,光敏电阻的阻值就会变大,就会引起LM324的(2脚)电压变大,比较器LM324中(2脚)电压高于(3脚)电压,(1脚)脚输出低电压。从而输出端(1脚)上的高低电平的改变,就能反应为光照亮暗的变化。进而作为单片机的一路输入信号,控制路灯的点亮和关闭。输出端连在单片机P1.3口上。LM358: LM358内部包括有两个独立的、高增益、内部频率补偿的双运算放大器, 适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与 电源电压无关。它的使用范围包括传感放大器、直流增模组,音频放大器、工业控制、DC增益部件和其他所有可用单电源供电的使用运放的地方使用。LM358的封装形式有塑封8引线双列直插式和贴片式。LM358的特性:特性(Features): 内部频率补偿。 直流电压增益高(约100dB) 。 单位增益频带宽(约1MHz) 。 电源电压范围宽:单电源(330V);双电源(1.5一15V) 。 低功耗电流,适合于电池供电。 低输入偏流。 低输入失调电压和失调电流。 共模输入电压范围宽,包括接地。 差模输入电压范围宽,等于电源电压范围。 输出电压摆幅大(0至Vcc-1.5V) 参数 输入偏置电流45 nA 输入失调电流50 nA 输入失调电压2.9mV 输入共模电压最大值VCC1.5 V 共模抑制比80dB 电源抑制比100dB 引脚图如图3.1.3所示:图3.1.3光敏电阻: 光敏电阻器(photovaristor)又叫光感电阻,是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。常用的光敏电阻器硫化镉光敏电阻器,它是由半导体材料制成的。光敏电阻器的阻值随入射光线(可见光)的强弱变化而变化,在黑暗条件下,它的阻值(暗阻)可达110M欧,在强光条件(100LX)下,它阻值(亮阻)仅有几百至数千欧姆。光敏电阻器对光的敏感性(即光谱特性)与人眼对可见光(0.40.76)m的响应很接近,只要人眼可感受的光,都会引起它的阻值变化。设计光控电路时,都用白炽灯泡泡(小电珠)光线或自然光线作控制光源,使设计大为简化。光敏电阻的工作原理:光敏电阻的工作原理是基于内光电效应。在半导体光敏材料两端装上电极引线,将其封装在带有透明窗的管壳里就构成光敏电阻,为了增加灵敏度,两电极常做成梳状。用于制造光敏电阻的材料主要是金属的硫化物、硒化物和碲化物等半导体。通常采用涂敷、喷涂、烧结等方法在绝缘衬底上制作很薄的光敏电阻体及梳状欧姆电极,接出引线,封装在具有透光镜的密封壳体内,以免受潮影响其灵敏度。在黑暗环境里,它的电阻值很高,当受到光照时,只要光子能量大于半导体材料的禁带宽度,则价带中的电子吸收一个光子的能量后可跃迁到导带,并在价带中产生一个带正电荷的空穴,这种由光照产生的电子空穴对了半导体材料中载流子的数目,使其电阻率变小,从而造成光敏电阻阻值下降。光照愈强,阻值愈低。入射光消失后,由光子激发产生的电子空穴对将复合,光敏电阻的阻值也就恢复原值。在光敏电阻两端的金属电极加上电压,其中便有电流通过,受到波长的光线照射时,电流就会随光强的而变大,从而实现光电转换。光敏电阻没有极性,纯粹是一个电阻器件,使用时既可加直流电压,也加交流电压。半导体的导电能力取决于半导体导带内载流子数目的多少。光敏电阻的特性:一 温度特性 光敏电阻和其他半导体器件一样,受温度影响较大,当温度升高时,它的暗电阻会下降。温度的变化对光谱特性也有很大影响。因此,有时为了提高灵敏度,或为了能接受远红外光而采取降温措施。见图3.1.4图3.1.4二 伏安特性 伏安特性在一定照度下, 流过光敏电阻的电流与光敏电阻两端的电压的关系称为光敏电阻的伏安特性。图3-5 为硫化镉光敏电阻的伏安特性曲线。由图可见,光敏硫化镉光敏电阻的伏安特性曲线电阻在一定的电压范围内, 其I-U曲线为直线,说明其阻值与入射光量有关, 而与电压、电流无关。图3-5 硫化镉光敏电阻的伏安特性曲线图三 光谱特性 光谱特性光敏电阻的相对光敏灵敏度与入射波长的关系称为光谱特性, 亦称为光谱响应。 图 3-6 为几种不同材料光敏电阻的光谱特性。 对应于不同波长, 光敏电阻的灵敏度是不同的。从图中可见硫化镉光敏电阻的光谱响应的峰值在可见光区域, 常被用作光度量测量(照度计)的探头。而硫化铅光敏电阻响应于近红外和中红外区, 常用做火焰探测器的探头。图 36 光敏电阻的光谱特性3.2 时钟信号测量电路的设计时钟信号测量电路如图3.2.1所示:图3.2.1时钟信号测量电路主要由时钟芯片DS1302和晶振组成,通过按键对时钟芯片进行时间设置从而去控制路灯的开关时间,由2个电容和晶振构成的晶振电路在整个系统工作时起起振作用。DS1302与CPU的连接仅需要三条线,即SCLK(7)、I/O(6)、RST(5)。DS1302与CPU连接的电路原理图3.2.1所示。Vcc2在单电源与电池供电的系统中提供低电源并提供低功率的电池备份。Vcc2在双电源系统中提供主电源,在这种运用方式下Vcc1连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。DS1302 时钟芯片是该电路最主要的器件,现在流行的串行时钟电路很多,如DS1302、 DS1307、PCF8485等。这些电路的接口简单、价格低廉、使用方便,被广泛地采用。DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM,通过简单的串行接口与单片机进行通信实时时钟/日历电路。提供秒分时日日期.月年的信息,每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM 指示决定采用24 或12 小时格式.DS1302 与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:1 RES 复位,2 I/O 数据线,3 SCLK串行时钟。时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信。DS1302 工作时功耗很低,保持数据和时钟信息时功率小于1mW。DS1302 是由DS1202 改进而来,增加了以下的特性。双电源管脚用于主电源和备份电源供应Vcc1,为可编程涓流充电电源附加七个字节存储器。它广泛应用于电话传真便携式仪器以及电池供电的仪器仪表等产品领域。一 DS1302的结构及其引脚功能:DS1302的结构DS1302的引脚功能:X1 X2 32.768KHz 晶振管脚GND 地RST 复位脚I/O 数据输入/输出引脚SCLK 串行时钟Vcc1,Vcc2 电源供电管脚二 (1) DS1302的控制字DS1302 的控制字如图3.2.2所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 图3.2.2(2)DS1302的数据输出口I/O在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。(3)DS1302的寄存器DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表1。此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)FFH(读)。DS1302的内部寄存器CH: 时钟停止位 存器2 的第7 位12/24 小时标志CH=0 振荡器工作允许 bit7=1,12 小时模式CH=1 振荡器停止 bit7=0,24 小时模式WP: 写保护位 寄存器2 的第5 位:AM/PM定义WP=0 寄存器数据能够写入 AP=1 下午模式WP=1 寄存器数据不能写入 AP=0 上午模式TCS: 涓流充电选择 DS: 二极管选择位TCS=1010 使能涓流充电 DS=01 选择一个二极管TCS=其它 禁止涓流充电 DS=10 选择两个二极管DS=00 或11, 即使TCS=1010, 充电功能也被禁止3.3 单片机控制部分3.3.1 AT89S52的介绍AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS -51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个 全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 AT89S52的引脚图如图3.2.1.1所示图3.2.1.1AT89S52的引脚介绍:外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。在flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5 MOSI(在系统编程用)P1.6 MISO(在系统编程用)P1.7 SCK(在系统编程用)P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。引脚号第二功能P3.0 RXD(串行输入)P3.1 TXD(串行输出)P3.2 INT0(外部中断0)P3.3 INT0(外部中断0)P3.4 T0(定时器0外部输入)P3.5 T1(定时器1外部输入)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器写选通)RST: 复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。 在flash编程期间,EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。AT89S52的存储器结构:MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以64K寻址。程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。对于89S52,如果EA 接VCC,程序读写先从内部存储器(地址为0000H1FFFH)开始,接着从外部寻址,寻址地址为:2000HFFFFH。数据存储器:AT89S52 有256 字节片内数据存储器。高128 字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问高于7FH 的地址时,寻址方式决定CPU 访问高128 字节RAM 还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(SFR)。3.3.2 复位电路的设计复位电路的设计如图3.3.2.1所示:图3.3.2.1复位电路:主要由按键电解电容、和电阻构成。当按下按键时,9号脚会产生一个高电平送入RST端,产生复位信,从而达到复位的作用。3.3.3 晶振电路的设计晶振电路的设计如图3.3.2.2所示:图3.3.2.2晶振电路:主要由32.768的晶振和电容组成,单片机工作时能产生振荡,其特点是固有频率十分稳定,而且震动具有多谐性,除了其频震动外还有奇次谐波泛音震动。性能上,晶振的品质因素Q和特性阻抗都非常高,而且接入系数很小,因此具有很高的频率稳定度。3.4 显示电路的设计显示电路的设计如图3.4.1所示:显示电路主要由数码管、驱动器SN7407和二极管、三极管、LED显示灯、4.7K排阻等组成。图3.4.1在本设计中,显示电路用到的元件很多,二极管、三极管、电阻、数码管的原理和作用都很普通,在这我就不一一介绍。在这里我重点介绍一下SN7407。SN7407如图3.4.2所示图3.4.2LED的驱动问题是显示设计中的一个非常重要的环节。如果在电路中没有驱动或驱动过低,就会导致液晶数码管显示不够亮。SN7407能够改善这一缺点,它能够提供稳定的恒流源输出,保证数码管的驱动。本课题设计了2路LED路灯,分别接AT89S52单片机P2.0,P2.1口;2路都用4个LED灯并联模拟,一个灯分别连接一个三极管,三极管基极,发射极分别连一个电阻,电阻做限流作用。如图所示当P2.1口为高电平时,三极管Q1,Q2.Q3,Q4导通,驱动灯亮;当P2.1为低电平时,三极管Q1,Q2,Q3,Q4截止,达到断开作用,灯不亮。第四章 路灯控制器的软件设计4.1 Keil C 软件的介绍单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前己极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS -51单机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS -51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Kei1即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM 、 20M以上空闲的硬盘空间、WIN98、NT, WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。一) Keil工程文件的建立、设置与目标文件的获得首先启动Keil软件的集成开发环境,UVison启动后,程序窗口的左边有一个工程管理窗口,该窗口有3个标签,分别是Files、Regs和Books,这三个标签页分别显示当前项目的文件结构、CPU的寄存器及部分特殊功能寄存器的值(调试时才出现)和所选CPU的附加说明文件,如果是第一次启动Keil,那么这三个标签页全是空的。二) 源文件的建立使用菜单“File-New 或者点击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个新的文本编缉窗口,在该窗口中输入源程序。 保存文件,注意必须加上扩展名(汇编语言源程序一般用asm或a51为扩展名)。需要说明的是,源文件就是一般的文本文件,不一定使用Keil软件编写,可以使用任意文本编缉器编写,而且,Keil的编缉器对汉字的支持不好,建议使用U1traEdit之类的编缉软件进行源程序的输入。(1)建立工程文件 在项目开发中,并不是仅有一个源程序就行了,还要为这个项目选择CPU(Keil支持数百种CPU,而这些CPU的特性并不完全相同),确定编译、汇编、连接的参数,指定调试的方式,有一些项目还会有多个文件组成等,为管理和使用方便,Keil使用工程(Project)这一概念,将这些参数设置和所需的所有文件都加在一个工程中,只能对工程而不能对单一的源程序进行编译(汇编)和连接等操作。点击“Project-New Project.菜单,出现一个对话框,要求给将要建立的工程起一个名字,可以在编缉框中输入一个名字(设为examl,不需要扩展名。点击“保存”按钮,出现第二个对话框,这个对话框要求选择目标CPU(即你所用芯片的型号),Keil支持的CPU很多,我们选择Atmel公司的89C51芯片。点击ATMEL前ICI的“+”号,展开该层,点击其中的89C51,然后再点击“确定”按钮,回到主界面,此时,在工程窗口的文件页中,出现了“Target1”,前面有“+”号,点击“+”号展开,可以看到下一层的“Source Groupl,这时的工程还是一个空的工程,里面什么文件也没有,需要手动把刚才编写好的源程序加入,点击“Source Groupl”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单。选中其中的“Add file toGroupSource Groupl,出现一个对话框,要求寻找源文件,注意,该对话框下面的“文件类型”默认为C source file(*.c),也就是以C为扩展名的文件,而我们的文件是以asm为扩展名的,所以在列表框中找不到examl.asm,要将文件类型改掉,点击对话框中“文件类型”后的下拉列表,找到并选中“Asm Source File(*.a51,*.asm),这样,在列表框中就可以找到examl.asm文件了。双击exam l .rim文件,将文件加入项目,注意,在文件加入项目后,该对话框并不消失,等待继续加入其它文件,但初学时常会误认为操作没有成功而再次双击同一文件,这时会出现一对话框,提示你所选文件己在列表中,此时应点击“确定”,返回前一对话框,然后点击“Close即可返回主界面,返回后,点击“SourceGroup 1前的加号,会发现exam l .asm文件己在其中。双击文件名,即打开该源程序。三) 工程的详细设置工程建立好以后,还要对工程进行进一步的设置,以满足要求。首先点击左边Project窗口的Target 1,然后使用菜单“Project Option for targettargetl”即出现对工程设置的对话框,这个对话框可谓非常复杂,共有8个页面,要全部搞清可不容易,好在绝大部份设置项取默认值就行了。我们主要设置对话框中的Tayet页面,Xtal后面的数值是晶振频率值,默认值是所选目标CPU的最高可用频率值,对于我们所选的AT89C51而言是24M,该数值与最终产生的目标代码无关,仅用于软件模拟调试时显示程序执行时间。正确设置该数值可使显示时间与实际所用时间一致,一般将其设置成与硬件所用晶振频率相同,如果没必要了解程序执行的时间,也可以不设,这里设置为12。设置完成后按确认返回主界面,工程文件建立、设置完毕。四)编译与连接 在设置好工程后,即可进行编译、连接。选择菜单Project-Build target,对当前工程进行连接,如果当前文件己修改,软件会先对该文件进行编译,然后再连接以产生目标代码; 如果选择Rebuild All target files将会对当前工程中的所有文件重新进行编译然后再连接,确保最终生产的目标代码是最新的,而Translate.项则仅对该文件进行编译,不进行连接。 以上操作也可以通过工具栏按钮直接进行。编译过程中的信息将出现在输出窗口中的Build页中,如果源程序中有语法错误,会有错误报告出现,双击该行,可以定位到出错的位置,对源程序反复修改之后,最终会得到如图4-1所示的结果,提示获得了名为examl.hex的文件,该文件即可被编程器读入并写到芯片中,同时还产生了一些其它相关的文件,可被用于Keil的仿真与调试,这时可以进入下一步调试的工作。图4-1 正确编译、连接之后的结果4.2 路灯控制器软件设计所需要实现的功能一:能够根据光照强度从而去路灯的开启与关闭,天气的光照强度弱时路灯自动开启,光照强度强时路灯自动关闭。二:在夜晚12点的时候路上行人很少,为避免不必要的资源浪费,12过后采取路灯间隔开关的方式来节省资源。三:随着季节的不同变化,天气的不同,路灯控制器会自动改变路灯开启/关闭的时间,比如夏季开灯晚,关灯早;冬季开灯早,关灯晚。这样就能节约很多电能。具体软件设计功能见图4.1.1读DS1302开 始6:00-00:0000:00-6:00间隔点亮光照信号=0?路灯不亮路灯全亮NY路灯定时开关午夜12点间隔开关天气暗时开单片机系统图4.1.14.3 路灯控制器设计流程图:单片机AT89S52对时钟芯片DS1302的控制需要通过程序驱动来实现,程序主要完成两个方面的任务:利用单片机实现对DS1302寄存器的地址定义和控制字的写入,实现对DS1302的数据读取.路灯控制器的软件主流程图如图4.2.1所示开 始系统初始化:变量、时钟芯片 NYY点亮路灯天气暗?GXH=0?N关闭路灯路灯不亮Y间隔点亮00:00-6:00N正常点亮图 4.2.1由图4.2.1可知,程序开始运行时先判断电缆信号GXH是否为0,若为0,则关闭所有路灯,反之,打开所有路灯。同时判断时钟信号是否是00:00以后,是则间隔关闭路灯,不是则保持原来路灯的点亮状态。接着判断天气是否暗,若暗,则点亮路灯。第五章 路灯控制系统的调试5.1 电路调试在此设计中,电路调试包括硬件调试和软件调试。5.1.1 硬件调试电路焊接完成之后,就要进行硬件电路的调试。在做本次设计的过程中,遇到了一些故障并作了相应的排除:一:避免电路板虚焊 电路板的虚焊会导致电路不通,不能实现所需要的功能。二:要用电压表对数码管的每个脚进行识别,识别每个脚所控制的哪一位,以便进行与单片机的连线。三: 在系统上电之前先检查芯片的电源线是否与接进电源口的电源线相连,芯片的接地线是否与电源的地线相连,并确认没有出现电源线与地线短接的情况。然后给整个系统上电,检查各个芯片上的电源电压是否符合要求,如果出现芯片异常发热的情况,就必须立刻切断电源,重新检查电路,直至完全达到要求为止。5.1.2 软件调试在硬件电路完成之后,就要根据所需实现的功能去进行编程,首先要对各个芯片的引脚进行定义,在对每个模块所要实现的功能编写相应的主程序和子程序,在这里我们要用到KEIL软件环境下进行编程。编写好程序后要检查其是否有语法错误或者其它的错误,如有错误要进行改正,直到正确为止,再把编写好的程序烧到AT89S52芯片中,运行看是否能实现相应的功能。可以通过改变程序中的对硬件电路的某个设置来确定电路是否正常,例如改变定时的时间等等。经调试各个部分运行正常,这样整个电路接上电源就能脱机进行工作了,我们也就完成了个毕业设计。5.2 调试过程中出现的问题和解决方法在做此设计的过程中,硬件和软件部分都出现了相应的问题。硬件部分:一 系统上电之后,数码管没有显示。解决方法:数码管没有显示有可能是程序或数码管本身有问题,但最有可能的是电源接口部分出现问题。用万用表测量了下接口的电源线和地线的电压,发现其电压很小,说明没有足够的电压供数码管显示。查看硬件电路发现其他芯片的电源线没有与电源口的电源线相连。二 在电路断电后再插上电源数码管不显示现在的准确时间,总是显示设定的初始时间。解决方法:在直流电源不供电的情况下芯片DS1302不能正常工作,只有2个原因:芯片DS1302损坏、充电电池没有给其供电。经过检查发现充电电池的正极引脚与电路中全部芯片的电源引脚相连,消耗大部分电源,不能供DS1302工作。软件部分: 一 数码管的显示不正常解决方法:数码管显示不正常可能有硬件问题或软件的程序问题,经发现程序中设定的引脚与硬件电路的引脚不同,从而导致出现乱码。正确定义其引脚。二 数码管不按正常设置显示时间解决方法:在编写此程序中FOR循环嵌套的过多以至了程序的死循环。把此程序拆解成许多的子程序,每个子程序实现一部分功能。第六章 自己的心得体会在做此毕业设计之前,我对自己的专业文化知识学的有多好没有多大的了解,只懂得一些理论的知识。而此次的毕业设计是对我大学四年的一个检查和锻炼。我做的毕业设计是路控制系统的设计,起初选择这个题目的时候感觉应该很简单,就是通过单片机控制路灯的开关,但事实并非如此。为了节省电源而做出的路灯控制系统要求从节省电源的角度出发:午夜路灯间隔开关、天气暗时路灯开启等功能。这次最大的收获是锻炼了自己的动手能力,只有把学习到的理论知识和实际相结合,才能说你自己对这门专业是熟悉的。我觉得最难的就是编程部分了。在此设计过程中朱老师和同学给了我很大的帮助,达到了此设计的要求。我想此次毕业设计为我将来走上工作岗位打下了良好的基础。在此次毕业设计中我意识到自己还有很多不足的地方,比如动手能力方面,今后我将继续努力,增强自己的动手能力,争取让自己学习到的理论知识学有所用,不断提高自己的专业水平。致谢最后,我要感谢我的指导老师朱金荣副教授。他严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;他们循循善诱的教导和不拘一格的思路给予我无尽的启迪。在做此设计期间给予了我细心地教导和帮助,在他的耐心帮助下才顺利完成了毕业设计,也感谢为我们提供实验教室的老师。也要感谢跟我做一样毕业设计的张列峰同学,他在软件编程部分给与了我很多的帮助。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!即将踏入社会,我将以他们为榜样,用自己学到的专业知识和文化知识为社会的发展做出自己的一份贡献。参考文献1 窦振中基于单片机的嵌入式系统工程设计北京:中国电力出版社 2008.92 李全利仲伟峰徐军单片机原理及应用北京:清华大学出版社 2007.73 吴大正信号与线性系统分析北京:高等教育出版社 1997.54 李广军微机系统原理与接口技术成都:电子科技大学出版社 200855 郁有才,常健,程继红传感器原理及工程应用西安:西安电子科技大学出版社 2007.2附录程序设计:#include #include #define uchar unsigned char/引脚定义 sbit TIMERCLK=P10; /DS1302同步串行时钟引脚 sbit TIMERIO=P11; /DS1302数据输入输出引脚 sbit TIMERRST=P12; /DS1302RST引脚 sbit P2_0=P20; sbit P2_1=P21; sbit D1=P22; sbit D0=P21; sbit P1_3=P13; sbit P2_4=P24; sbit P2_5=P25; sbit P2_6=P26; sbit P2_7=P27; sbit D2=P33; sbit P3_5=P35; sbit P3_6=P36; sbit P3_7=P37; uchar code TABLE=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar bdata DS1302dat; /DS1302读写过程中的命令或数据 sbit ds1302datHbit=DS1302dat7; /位定义,用于数据写入 sbit ds1302datBit=DS1302dat0; /位定义,用于数据读出 uchar bdata DS1302adr; /DS1302读写过程中所访问的单元地址sbit ds1302adrBit=DS1302adr0; /uchar MIN; uchar HR; uchar h; uchar m; uchar disp1; uchar disp2; uchar disp3; uchar disp4; uchar disp5; uchar disp6; uchar disp7; uchar disp8; uchar tiao; uchar tt; uchar flag; void delay(uchar time) uchar i,j; for(i=0;itime;i+) for(j=0;jtime;j+) void writeDS1302(uchar dsRamAdr,uchar ds1302data) uchar i; TIMERCLK=0; delay(2); TIMERRST=1; delay(2); DS1302adr=dsRamAdr; DS1302dat=ds1302data; for(i=0;i1; for(i=0;i1; TIMERRST=0; delay(2); TIMERRST=0; uchar readDS1302(uchar DS1302Adr) uchar i; TIMERCLK=0; delay(2); TIMERRST=1; delay(2); DS1302adr=DS1302Adr; for(i=0;i8;i+
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!