本次课程设计题目是《基于单片机智能路灯的设计》,此课题要求以路灯控制器为对象,完成硬件接线系统和软件系统程序的设计,实现以传统手动和行人通过控制两种方式来控制路灯的亮灭功能,属于软硬件结合的题目。
其中单片机体积小,功耗小,价格低,用途灵活,无处不在,属专用计算机。
是一种特殊器件,需经过专门学习方能掌握应用,应用中要设计专用的硬件和软件。
近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。
与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。
影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。
其中系统的抗干扰性能是系统可靠性的重要指标。
随着夜晚的来临,城市里华灯初上,人们消除了白天的繁忙,漫步于城市的街道。
在城市照明中发挥着举足轻重的作用,而其所依靠的就是路灯自动控制系统。
路灯控制方式很多,本系统采用AT89S52系列的单片机和相关的传感器设备来设计智能路灯控制器,实现了根据实际行人情况通过8052芯片的P1口来控制路灯开关的功能。
利用单片机控制路灯,达到了节能、自动控制的目的,避免了传统电路对能源的浪费,且方便了工作人员的管理。
本系统实用性强,操作简单,而且路灯采用LED灯,LED是目前最为节能的发光元件,可以节省大量电能,而且LED发光柔和,亮度适中,对环境无污染,已经用于各种照明场合。
因此,智能光控节能路灯必将在未来得到广泛应用。
1 引言 (1)1.1 设计思路 (1)2 最小系统 (4)2.1 硬件接线图 (4)2.2 电路及元件介绍 (4)2.3 软件程序 (6)3 路灯控制 (7)3.1电路设计原理图及说明 (7)4 行人检测 (8)4.1电路设计原理图及说明 (9)5 手动控制 (10)5.1电路设计原理图及说明 (10)6 智能路灯 (11)6.1电路设计原理图及说明 (11)7 流程图 (12)7.1主流程图 (12)7.2 中断流程图 (13)8 总程序 (14)结束语 (15)谢辞 (16)参考文献 (17)元件清单 (18)1 引言1.1 设计思路本次设计的题目是《基于单片机的智能路灯的设计》。
要求实现以路灯为控制对象,完成软件和硬件的设计,以手动和行人控制两种方式实现路灯的亮灭功能。
其中硬件电路部分主要包括以下部分:单片机最小系统、路灯控制电路部分、行人检测电路部分。
工作原理简图如下:本系统需要如下电路元器件,其中电路元器件及相关参数如下:(1) AT89S52实验板一块;(2)单片机最小系统所需的12M晶振一个;(3)路灯控制电路部分所需的LED灯八个,470欧姆电阻八个,单刀单置开关两个;(4)行人检测电路所需的2K电阻八个,红外传感器一个;(5) +5V直流电源一个。
系统总框图如下:Proteus软件介绍:英国Labcenter公司推出的Proteus软件是一款极好的单片机应用开发平台,它以其特有的虚拟仿真技术很好地解决了单片机及其外围电路的设计和协同仿真问题,可以在没有单片机实际硬件的条件下,利用PC以虚拟仿真方式实现单片机系统的软、硬件同步仿真调试,使单片机应用系统设计变得简单容易。
Proteus软件涵盖了PIC、AVR、MCS8051、68HC11、ARM等微处理器模型,以及多种常用电子元器件,包括74系列、CMOS 4000系列集成电路、A/D和D/A转换器、键盘、LCD显示器、LED显示器,还提供示波器、逻辑分析仪、通信终端、电压/电流表等各种虚拟仪表,这些都可以直接用于仿真设计,极大地提高了设计效率和设计水平。
Proteus软件已有20多年的历史,在国外应用较为普遍,尤其在教育界的口碑极佳。
近年来Proteus软件被引入国内,在多所高等工科院校中得到成功应用。
在单片机教学中采用Proteus软件,使单片机的学习过程变得直观形象,可以直接在基于原理图的虚拟模型上进行编程,并实现源码级的程序仿真调试,如有显示及输出,还能看到程序运行后的输出效果,配合各种虚拟仪表来展现整个单片机系统的运行过程,很好地解决了长期以来困扰单片机教学过程中软件和硬件无法很好结合的难题。
Proteus软件已有20多年的历史,在国外应用较为普遍,尤其在教育界的口碑极佳。
近年来Proteus软件被引入国内,在多所高等工科院校中得到成功应用。
在单片机教学中采用Proteus软件,使单片机的学习过程变得直观形象,可以直接在基于原理图的虚拟模型上进行编程,并实现源码级的程序仿真调试,如有显示及输出,还能看到程序运行后的输出效果,配合各种虚拟仪表来展现整个单片机系统的运行过程,很好地解决了长期以来困扰单片机教学过程中软件和硬件无法很好结合的难题。
在Proteus软件平台上学习单片机知识,比以往单纯学习书本知识更易于接受,以原理图虚拟模型进行程序仿真调试,更易于提高单片机编程能力,还可以通过绘制和修改原理电路图增加很多实践经验。
Keil C51软件介绍:Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。
如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会有很好的效果。
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows 界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
下面详细介绍Keil C51开发系统各部分功能和使用。
C51工具包的整体结构,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及A51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
使用独立的Keil仿真器时,注意事项:* 仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。
* 仿真器上的复位按钮只复位仿真芯片,不复位目标系统。
* 仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。
2 最小系统2.1 硬件接线图图2-1 最小系统硬件接线图最小系统组成:电源电路、晶振电路、复位电路、单片机2.2 电路及元件介绍晶振电路:单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。
其中XYAL1接外部晶体的一个引脚,在单片机内部,它是一个反向放大器的输入端。
若采用外部振荡器,该引脚接收振荡器的信号,即八次信号直接接到内部时钟发生器的输入端;XTAL2节外部晶体的另一端,在单片机内部接到反向放大器的输入端,当采用外接晶体振荡器时,此引脚可以不接。
复位电路:复位操作有两种基本形式:一种是上电复位,另一种是按键复位。
按键复位具有上电复位功能外,若要复位,只要按图中的RESET键,电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。
上电复位电路要求接通电源后,通过外部电容充电来实现单片机自动复位操作。
上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。
RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。
AT89S52AT89S52单片机:AT89S52是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-52指令集合输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S52是一种高效微控器,为很多嵌入式控制系统提供了一种灵活性且廉价的方案单片机各引脚功能说明:VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH进行。
校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL 门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89S52的一些特殊功能口,P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。