




免费预览已结束,剩余13页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
交通灯控制系统设计目 录摘要 .1 一、 方案比较设计与论证. 2 二、AT89S51单片机的简介.32.1单片机的概述.3 2.2芯片简介.3 2.3单片机交通灯程序.52.4单片机的内部结构 . 8三、理论分析与计算 .9 3.1交通灯显示时序的理论分析与计算 .93.2交通灯显示时间的理论分析与计算 .10四、电路图及设计文件.11 4.1灯控制电路设 .11 4.2倒计时显示电路设计 .11 五、程序设计思路与流程图 .135.1主程序流程图 .13 5.2按键子程序流程图 .13 六、测试、数据及结果.146.1状态灯显示测试.14 6.2数码管的测试 .14 6.3整体电路测试 .14 七、总结 .15 八、附录 系统总体电路图 .15九、参考文献 .16十、致词 .16摘要本系统由单片机系统、键盘、LED 显示、交通灯演示系统组成。系统包括人行道、左转、右转、以及基本的交通灯的功能。系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间以及根据具体情况手动控制等功能。AbstractThis system is made up of single-chip microcomputer ,keyboard,lcd displaying module and Traffic lights system.The system includes pavement,left truning,right truning,and the basic traffic lights function.Excepting the basic traffic lights function,italso includes couting,time installing,emergency disposaling,speech cluing,lcd information displaying,adjusting the lighting time of lights based on different time and controlling with hand in accordance with circumstances and so on.关键词:AT89S51,交通规则一、 方案比较、设计与论证1.1电源提供方案为使模块稳定工作,须有可靠电源。我们考虑了两种电源方案方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。方案二:采用单片机控制模块提供电源。改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。综上所述,我们选择第二种方案。1.2 显示界面方案该系统要求完成倒计时、状态灯等功能。基于上述原因,我们考虑了三种方案:方案一:完全采用数码管显示。这种方案只显示有限的符号和数码字苻,无法胜任题目要求。方案二:完全采用点阵式LED 显示。这种方案实现复杂,且须完成大量的软件工作;但功能强大,可方便的显示各种英文字符,汉字,图形等。方案三:采用数码管与点阵LED 相结合的方法因为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况,用数码管与LED灯分别显示时间与提示信息。这种方案既满足系统功能要求,又减少了系统实现的复杂度。权衡利弊,第三种方案可互补一二方案的优缺,我们决定采用方案三以实现系统的显示功能。1.3输入方案:题目要求系统能手动设灯亮时间、紧急情况处理,我们讨论了两种方案:方案一:采用8155扩展I/O 口及键盘,显示等。该方案的优点是:使用灵活可编程,并且有RAM,及计数器。若用该方案,可提供较多I/O 口,但操作起来稍显复杂。方案二: 直接在IO口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的口资源还比较多,我们使用四个按键,分别是K1、K2、K3、K4。由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用,故选择方案二。二、AT89S51单片机的简介2.1单片机的概述单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。 单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。2.2芯片简介AT89S51是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。 AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。1主要特性: 8031 CPU与MCS-51 兼容 4K字节可编程FLASH存储器(寿命:1000写/擦循环) 全静态工作:0Hz-24KHz 三级程序存储器保密锁定 128*8位内部RAM 32条可编程I/O线 两个16位定时器/计数器 6个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路2管脚说明: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.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。I/O口作为输入口时有两种工作方式即所谓的读端口与读引脚读端口时实际上并不从外部读入数据而是把端口锁存器的内容读入到内部总线经过某种运算或变换后再写回到端口锁存器只有读端口时才真正地把外部的数据读入到内部总线上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作这是由硬件自动完成的不需要我们操心1然后再实行读引脚操作否则就可能读入出错为什么看上面的图如果不对端口置1端口锁存器原来的状态有可能为0Q端为0Q为1加到场效应管栅极的信号为1该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1若先执行置1操作则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入由于在输入操作时还必须附加一个准备动作所以这类I/O口被称为准双向口89C51的P0/P1/P2/P3口作为输入时都是准双向口接下来让我们再看另一个问题从图中可以看出这四个端口还有一个差别除了P1口外P0P2P3口都还有其他的功能 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。AT89SXX系列单片机实现了ISP下载功能,故而取代了89CXX系列的下载方式,也是因为这样,ATMEL公司已经停止生产89CXX系列的单片机,现在市面上的AT89CXX多是停产前的库存产品。2.3单片机交通灯程序/* * * * * Keil C 89S51 交通信号控制程序 * * (C) 版权所有 Dai_W * * * * */ #include reg51.h #define UINT unsigned int #define ULONG unsigned long #define UCHAR unsigned char /* 信号灯变量 南北方向绿灯 sbit n_bike_g = P10; /自行车 sbit n_right_g = P11; /右转 sbit n_up_g = P12; /直行 sbit n_left_g = P13; /左转 调头 南北方向红灯 sbit n_bike_r = P14; /自行车 sbit n_right_r = P15; /右转 sbit n_up_r = P16; /直行 sbit n_left_r = P17; /左转 调头 南北方向黄灯 sbit n_bike_y = P30; /自行车 sbit n_right_y = P31; /右转 sbit n_up_y = P32; /直行 sbit n_left_y = P33; /左转 调头 东西方向绿灯 sbit e_bike_g = P20; /自行车 sbit e_right_g = P21; /右转 sbit e_up_g = P22; /直行 东西方向红灯 sbit e_bike_r = P24; /自行车 sbit e_right_r = P25; /右转 sbit e_up_r = P26; /直行 东西方向黄灯 sbit e_bike_y = P34; /自行车 sbit e_right_y = P35; /右转 sbit e_up_y = P36; /直行 */ /延时 void delay(UINT t, UINT s) while (t) UINT i; for (i = 0; i s; i+) t -; /信号灯状态 void time_x(UCHAR P_P1, UCHAR P_P2, UCHAR P_P3) P1 = P_P1; P2 = P_P2; P3 = P_P3; delay(150, 65535); void time_s(UCHAR P_P1, UCHAR P_P2, UCHAR P_P3, UCHAR P_P11, UCHAR P_P22) UINT i; for (i = 0; i 3; i +) P1 = P_P1; P2 = P_P2; delay(5, 65535); P1 = P_P11; P2 = P_P22; delay(5, 65535); P1 = P_P1; P2 = P_P2; P3 = P_P3; delay(10, 65535); /主程序 void main() P1 = P2 = P3 = 0x0; while (1) time_x(0xA5, 0x38, 0x0); time_s(0xA4, 0x38, 0x1, 0xA5, 0x38); time_x(0x96, 0x52, 0x0); time_s(0x92, 0x52, 0x4, 0x96, 0x52); time_x(0x5A, 0x52, 0x0); time_s(0x50, 0x50, 0x2A, 0x5A, 0x52); time_x(0xF0, 0x25, 0x0); time_s(0xF0, 0x24, 0x20, 0xF0, 0x25); time_x(0xD2, 0x16, 0x0); time_s(0xD0, 0x10, 0x62, 0xD2, 0x16); 给你一个定时控制的信号系统,我只做的简单的测试,至于延时我用的软件,你自己想办法。Dai_Weis 于 2005-5-4 13:43:23 重新给你说明 * * Keil C AT89S51 交通信号控制程序 * * (C) 版权所有 Dai_W * * 开发说明: 固定时间信号变换,南北设置调头、左传、直行、右转、自行车。 东西设置左传、直行、右转、自行车。 时序状态: 红 绿 红 绿 序号 左 前 右 自 左 前 右 自 前 右 自 前 右 自 1 1 0 1 0 0 1 0 1 1 1 1 0 0 0 2 1 0 0 1 0 1 1 0 1 0 1 0 1 0 3 0 1 0 1 1 0 1 0 1 0 1 0 1 0 4 1 1 1 1 0 0 0 0 0 1 0 1 0 1 5 1 1 0 1 0 0 1 0 0 0 1 1 1 0 */ 另外修正个错误 while (1) time_x(0xA5, 0x70, 0x0); time_s(0xA4, 0x70, 0x1, 0xA5, 0x70);2.4单片机的内部结构单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。下图是MCS-51系列单片机的内部结构示意图2。三、理论分析与计算3.1交通灯显示时序的理论分析与计算对于一个交通路口来说,能在最短的时间内达到最大的车流量,就算是达到了最佳的性能我们称在单位时间内多能达到的最大车流为车流量,用公式:车流量= 车流 / 时间 来表先设定一些标号如图21 所示。 说明:此图为直方图,上边为北路口灯,右边为东路口灯,下边为南路口灯,左边为西路口灯。图22 所示为一种红绿灯规则的状态图,分别设定为S1、S2、S3、S4,交通灯以这四的状态为一个周期,循环执行(见图23)。 请注意图21b和图21d,它们在一个时间段中四个方向都可以通车,这种状态能在一定的时间内达到较大的车流量,效率特别高。依据上述的车辆行驶的状态图,可以列出各个路口灯的逻辑表,由于相向的灯的状态图是一样的,所以只需写出相邻路口的灯的逻辑表;根据图23 可以看出,相邻路口的灯它们的状态在相位上相差180。因此最终只需写出一组S1、S2、S3、S4的逻辑状态表。如表21 所示。表中的“”代表是红灯亮(也代表逻辑上的0),“”是代表绿灯亮(也代表逻辑上的1),依上表,就可以向相应的端口送逻辑值。3.2交通灯显示时间的理论分析与计算东西和南北方向的放行时间的长短是依据路口的各个方向平时的车流量来设定,并且S1、S2、S3、S4各个状态保持的时间之有严格的对应关系,其公式如下所示。T-S1+T-S2=T-S3T-S2=T-S4T-S1=T-S3我们可以依据上述的标准来改变车辆的放行时间。按照一般的规则,一个十字路口可分为主干道和次干道,主干道的放行时间大于次干道的放行时间,我们设定值时也应以此为参考。四、电路图及设计文件4.1灯控制电路设计由于32个LED 来实现红绿灯状态,若直接接在单片机的口线,路口倒计时的显示就不能实现,所以本次设计中采用一种新型的电路如图31 所示。 图中74LS04的作用是倒相和驱动,它输出的电流大约48mA,实际测试发现足以满足要求,而且发光管也能达到足够的亮度。观察图可以看出:两组发光管(一组红、一组绿)由于反相器的作用,其逻辑状态恰恰相反。图中和电阻串联的二极管的作用是为了分压,防止因上下两组发光管分压不同导致逻辑的错误。共四组和上述相同的电路分别代表东西南北四个方向的红绿灯,使用两片74LS04 作为驱动。4.2倒计时显示电路设计前面已经分析过相向的灯的状态和倒计时都是相同的,所以为了节省,采用两组四个数码管作为倒计时的显示;同时为了节省口资源,采用串口显示的方式驱动数码管。见图32 所示。五、程序设计思路与流程图5.1主程序流程图主程序中主要是一个死循环,不停的循环四个状态,如图41 所示。5.2按键子程序流程图它包含倒计时调整和紧急状态两个状态。主程序中放了一个按键的判断指令,当有按键按下的时候,程序就自动的跳转到按键子程序处理。当检测到K2键按下的时候就自动返回到主程序。当出现紧急的情况的时候,按下K3或者K4 就切换到紧急状态,当紧急事件处理完毕的时候,按下K2,就可以返回正常状态。六、测试、数据及结果分析6.1状态灯显示测试当电路连接完毕后,将写好的测试程序刷写到芯片内,K1 和K2分别给端口送高电平和低电平,通电即可检测。6.2数码管的测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基金从业资格考试 百科及答案解析
- 2025年国家开放大学(电大)《供应链金融与风险管理》期末考试备考试题及答案解析
- 2025年国家开放大学(电大)《宗教学概论》期末考试备考试题及答案解析
- 银行从业考试付款页面及答案解析
- 2025年国家开放大学(电大)《数据库管理系统》期末考试备考试题及答案解析
- 湖北企业安全员考试题库及答案解析
- 2025年国家开放大学(电大)《教育经济学导论》期末考试备考试题及答案解析
- 2025年国家开放大学(电大)《西方经济学原理》期末考试备考试题及答案解析
- 小学生数学问题解决能力培养策略
- 物业费缴纳流程与法律维权文书
- 生物力学正畸方案优化-洞察及研究
- 《中职工程测量技术专业《GNSS测量技术与应用》课程标准》
- 公安部门大数据管理办法
- 污废水减污降碳协同评估指南
- 骨科患者围手术期营养管理
- 2025年上海市(秋季)高考语文真题详解
- 水厂培训课件
- 类风湿关节炎达标治疗
- 变电运行与检修考试题(附答案解析)
- 电力工程电缆设计课件
- 衢州学院十五五校园及校园文化建设规划
评论
0/150
提交评论