




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录摘 要 2第一章 概述 31.1 交通灯的发展及现状 . 31.2 单片机说明 3第二章 智能交通灯的设计原理 62.1 智能交通灯的设计框图 62.2 智能交通灯的设计方案及改进措施 6第三章 智能交通灯电路设计 6!未定义书签3.1 控制器的系统框图 . 73.2 智能交通灯控制系统电路图 错误3.3 工作原理 8第四章 智能交通灯软件系统设计 144.1 智能交通灯的软件设计流程图 144.2 程序源代码 14第五章 智能交通灯方案的仿真 14小结 18致谢词 18参考文献 18附 录 21附录 A:智能交通灯控制程序: 21摘要本文介绍的是一个基于 PROTEU的S 智能交通灯控制
2、系统的设计与仿真, 系统 根据交通十字路口双车道车流量的情况控制交通信号灯按特定的规律变化。本文首先对智能交通灯的研究意义和智能交通灯的研究现状进行了分析, 指 出了现状交通灯存在的缺点, 并提出了改进方法。 智能交通灯控制系统通常要实 现自动控制和在紧急情况下能够手动切换信号灯让特殊车辆优先通行。 本文还对 AT89C51单片机的结构特点和重要引脚功能进行了介绍, 同时对智能交通灯控制 系统的设计进行了详细的分析。 最后利用 PROTEU软S 件,通过其平台对交通灯控 制系统进行了仿真,仿真结果表明系统工作性能良好。关 键 词 :PROTEU、SAT89C51单片机、智能交通灯;第一章 概述
3、1.1 交通灯的发展及现状中国车辆数量不断增加,交通管制的工作量越来越大,利用计算机代替人进 行高效交通管理是必然的发展趋势, 而让计算机控制的交通灯拥有类似人类的感 知智能,具有很强的现实意义, 比如通过摄像机让交通灯控制系统获得视觉感知 功能,就可以代替人类的眼睛,使系统根据所“看到”交通情况自适应改变管制 策略,提高了交通管理的自动化水平,使得交通更高效、更顺畅。目前设计交通灯的方案有很多,有应用 CPLD设计实现交通信号灯控制器方 法; 有应用 PLC 实现对交通灯控制系统的设计 ;有应用单片机实现对交通信号灯 设计的方法。目前,国内的交通灯一般设在十字路门,在醒目位置用红、绿、黄 三
4、种颜色的指示灯。 加上一个倒计时的显示计时器来控制行车。 对于一般情况下 的安全行车, 车辆分流尚能发挥作用, 但根据实际行车过程中出现的情况, 还存 在以下缺点: 1两车道的车辆轮流放行时间相同且固定, 在十字路口,经常一 个车道为主干道, 车辆较多, 放行时间应该长些; 另一车道为副干道, 车辆较少, 放行时间应该短些。 2没有考虑紧急车通过时,两车道应采取的措施,臂如, 消防车执行紧急任务通过时,两车道的车都应停止,让紧急车通过。1. 2 单片机说明按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系 统、最小功耗系统及典型系统等。 AT89C51单片机是美国 ATMEL公司生产
5、的 低电压、高性能 CMOS8 位单片机,具有丰富的内部资源: 4kB 闪存、128BRAM、 32 根 I/O 口线、 2 个 16 位定时 / 计数器、 5 个向量两级中断结构、 2 个全双 工的串行口,具有 4.25 5.50V 的电压工作范围和 024MHz工作频率,使 用 AT89C51 单片机时无须外扩存储器。因此,本流水灯实际上就是一个带 有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复 位、电源等电路和必要的软件组成的单个单片机。1. 2.1 AT89C51 单片机硬件结构AT89C51是一种带 4K 字节闪存可编程可擦除只读存储器 (FPEROMFlashPr
6、ogrammable and Erasable Read Only Memory )的单片机芯片,它采用静态 CMOS 工艺制造 8 位微处理器,最高工作频率位 24MHZ 。AT89C5 外形及引 脚排列如图 1 所示:图1RST脚两个机器周期的1.2.2 管脚说明RST:复位输入。当振荡器复位器件时,要保持高电平时间。P0口: P0口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL门电 流。当 P1口的管脚第一次写 1 时,被定义为高阻输入。 P0能够用于外部程 序数据存储器,它可以被定义为数据 / 地址的第八位。在 FIASH 编程时, P0 口作为原码输入口,当 FIASH
7、进行校验时, 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 口的管脚被外部拉低,将输出 电流。这是由于内部上拉的缘故。 P
8、2口当用于外部程序存储器或16 位地址外部数据存储器进行存取时, P2口输出地址的高八位。 在给出地址“ 1”时, 它利用内部上拉优势,当对外部八位地址数据存储器进行读写时, P2 口输 出其特殊功能寄存器的内容。 P2 口在 FLASH编程和校验时接收高八位地址 信号和控制信号。P3口: P3口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“ 1”后,它们被内部上拉为高电平,并用作 输入。作为输入,由于外部下拉为低电平,P3 口将输出电流( ILL )这是由于上拉的缘故。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存
9、 地址的地位字节。在 FLASH编程期间,此引脚用于输入编程脉冲。在平时, ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6 。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用 作外部数据存储器时,将跳过一个 ALE脉冲。如想禁止 ALE 的输出可在 SFR8EH地址上置 0。此时, ALE 只有在执行 MOVX,MOVC指令是 ALE 才起作 用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE 禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间, 每个机器周期两次 PSEN有效。但在访问外部数据存储器时,这两次有效的
10、 PSEN信号将不出现。EA/VPP:当 EA 保持低电平时,则在此期间外部程序存储器( 0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1 时,EA将内部锁定为 RESET;当 EA 端保持高电平时,此间内部程序存储器。XTAL1 和 XTAL2:反向振荡放大器的输入及内部时钟工作电路的输入。第二章 智能交通灯的设计原理2.1 智能交通灯的设计框图2.2 智能交通灯的设计方案及改进措施交通灯系统由四部分组成:车检测电路,信号灯电路,时间显示电路,紧急 转换开关。针对道路交通拥挤, 交叉路口经常出现拥堵的情况利用单片机控制技术提出 了软件和硬件设计方案及两点改进措施。1、根据各
11、道路路口车流量的大小自动调节通行时间。2、考虑特殊车辆通行情况,设计紧急切换开关。AT89S51单片机有 2 计数器, 6 个中断源,能满足系统的设计要求。用其设 计的交通灯也满足了要求,所以本文采用单片机设计交通灯。第三章 智能交通灯电路设计根据设计任务和要求 , 可画出该控制器的原理框图 , 为确保十字路口的交通 安全,往往都采用交通灯自动控制系统来控制交通信号。其中红灯( R)亮,表 示禁止通行;黄灯( Y)亮表示暂停;绿灯( G)亮表示允许通行。3.1 控制器的系统框图如图 3 所示图33.2 智能交通灯控制系统电路图智能交通灯电路图如图 4 所示:图4交通灯系统由四部分组成:车检测电
12、路,信号灯电路,时间显示电路,紧急转换开关。3.3 工作原理绿灯的放行时间与车辆通过数量不成正比。比如说 20 秒内每车道可以通过 20 辆车, 40秒内每车道却可以通过 45辆车。因为这有一个起步的问题, 还有一 个黄灯等待问题。 也就是说, 绿灯放行时间越长, 单位时间通过车辆的数量就越 多。我们来计算一下, 每车道通行 20 秒内可以通过 20辆车,一个红绿灯循环是 40 秒(单交叉路口 ),加上每次状态转换的黄灯 5 秒(一个循环要两次转换) ,即 一个红绿黄灯循环要 50 秒,即 50 秒内通行的车辆为 40 辆。通过一辆车的平均 时间是 1.25 秒。如果每次车辆通行的时间改为 4
13、0 秒, 40 秒内每车道可以通过 45 辆,一个红绿灯循环是 80秒(单交叉路口 ),加上每次状态转换的黄灯 5 秒(一 个循环要两次转换) ,即一个红绿黄灯循环要 90秒,即 90 秒内通行的车辆为 90 辆。通过一辆车的平均时间只需 1 秒。显然在车辆拥挤的情况下绿灯的通行时间 越长,单位时间内通行的车辆越多, 可以有效缓解车辆拥堵问题。 我设定了绿灯 通行时间的上限为 40 秒。在非拥挤时段绿灯的通行时间的下限为 20秒,当交叉 路口双方车辆较少时通行时间设为 20 秒,这样可以大大缩短车辆在红灯面前的 等待时间。当交叉路口双方车辆较多时通行时间设为 40 秒。3.3.1 车检测电路用
14、来判断各方向车辆状况 , 比如: 20秒内可以通过的车辆为 20辆,当 20秒内 南往北方向车辆通过车辆达不到 20辆时,判断该方向为少车, 当20秒内北往南方 向车辆通过车辆也达不到 20辆时,判断该方向也为少车,下一次通行仍为 20秒, 当 20秒时间内南往北或北往南任意一个方向通过的车辆达 20辆时证明该状态车 辆较多,下一次该方向绿灯放行时间改为 40秒,当 40秒内通过的车辆数达 45辆时 车辆判断为拥挤, 下一次绿灯放行时间改仍为 40秒,当40秒车辆上通过车辆达不 到 45辆时,判断为少车,下次绿灯放行时间改为 20秒, 依此类推。绿灯下限时 间为20秒,上限值为40秒,初始时间
15、为 20秒。这样检测,某次可能不准确,但下 次肯定能弥补回来,累积计算是很准确的,这就是人们常说的“模糊控制”。因 为路上的车不可能突然增多, 塞车都有一个累积过程。 这样控制可以把不断增多 的车辆一步一步消化, 虽然最后由于每个路口的绿灯放行时间延长而使等候的时 间变长,但比塞车等候的时间短得多。本系统的特点是成本低,控制准确。十字 路口车辆通行顺序如图 5所示:图 5 十字路口车辆通行顺序由于南往北, 北往南时间显示相同, 所以只要一个方向多车, 下次时间就要 加长东往西,西往东也一样,显示时间选择如表 1。表1 显示时间选择车辆情况本次该方下次该方向本次该方本次该向通行时 间通行时间向通
16、行时 间方向通 行时间南往北少车,北往南少 车20秒20秒40秒20秒南往北少车,北往南多 车20秒40秒40秒40秒南往北多车,北往南少 车20秒40秒40秒40秒南往北多车,北往南多 车20秒40秒40秒40秒东往西少车,西往东少 车20秒20秒40秒20秒东往西少车,西往东多 车20秒40秒40秒40秒东往西多车,西往东少 车20秒40秒40秒40秒东往西多车,西往东多20秒40秒40秒40秒车3.3.2 信号灯电路信号灯用来显示车辆通行状况, 下面以一个十字路口为例, 说明一个交通灯 的四种状态见图 6。每个路口的信号的的转换顺序为:绿 黄 红 绿灯表 示允许通行, 黄灯表示禁止通行,
17、 但已经驶过安全线的车辆可以继续通行, 是绿 灯过渡到红灯提示灯。红灯表示禁止通行。绿灯的最短时间为 20 秒,最长时间 为 40 秒,红红最短时间为 25 秒,最长时间为 45 秒,黄灯时间为 5 秒。图 6 交通信号灯运行状态3.3.3时间显示电路 在交通信号灯的正上方安装一个可以显示绿灯通行时间,红灯等待时间的 显示电路, 采用数码管显示电路是一种很好的方法。 由于东往西方向和西往东方 向显示的时间相同, 南往北方向和北往南方向显示的时间也相同, 所以只需要考 虑四位数码管显示电路, 其中东西方向两位, 南北方向两位, 两位数码管可以时 间的时间为 0-99 秒完全可以满足系统的要求,数
18、码管连接方法如图 7 所示。图7 数码管连接方法下面我们用这种方法显示交通灯的时间,南北方向要显示 20 秒,东西方向要显示 25秒,那么我们先给 P0口送 2的共阴极码即 5BH,让第一位 2 要显示的10位码 GND段为低电平,其它三位的控制端都接高电平,那么第一位就显示2,其它三位不亮。让其显示 1MS后再给 P0口送 0 的共阴极码即 3FH,让第二位要显 示 0 的位码 GND段为低电平, 其它三位的控制端都接高电平, 那么第二位就显示 0,其它三位不亮。依此类推分别送完第一位 2,第二位 0,第三位 2,第四位 5, 每一位点亮 1MS一个扫描周期为 4MS,一秒时间就要扫描 25
19、0 次其程序如下:MOV R6,#250;显扫描次数LOOP:MOV P0,#5BH ; 送 2 的共阴极码CLR P2.0;第一位显示 2ACALL D1MS 延; 时 1MSSETB P2.0 ; 灭第一位MOV P0,#3FH ; 送 0 的共阴极码CLR P2.1;第二位显示 0ACALL D1MS 延; 时 1MSSETB P2.1 ; 灭第二位MOV P0,#5BH ; 送 2 的共阴极码CLR P2.2;第三位显示 2ACALL D1MS 延; 时 1MSSETB P2.2 ; 灭第三位MOV P0,#6DH ; 送 5 的共阴极码CLR P2.3;第四位显示 5ACALL D1
20、MS 延; 时 1MSSETB P2.3 ; 灭第四位DJNZ R7,LOOP;不够一秒,继续扫描NEXTNUMB;ER到一秒显示下一个数D1MS: ;1MS延时程序STAT1:MOV R,4 #2MOV R3,#250DJNZ R3,$DJNZ R4,STAT1RET3.3.4 紧急转换开关电路 一般情况下交通灯按照车流量大小合理分配通行时间, 按一定规律变化, 但考虑紧急车通行车况,设计紧急通行开关 , 下面简述单片机的中断原理。 1、Mcs51 的中断源8051 有 5 个中断源,它们是两个外中断 INT0(P3.2)和 INT1(P3.3)、两 个片内定时 / 计数器溢出中断 TF0
21、和 TF1,一个是片内串行口中断 TI 或 RI,这几 个中断源由 TCON和 SCON两个特殊功能寄存器进行控制 , 其中 5 个中断源的程序11入口地址如表 2 所示:表 2 中断源程序入口中断源的服务程序入口地址中断源入口地址外中断 00003H定时/ 计数器 0000BH外中断 10013H定时/ 计数器 0001BH串行口中断0023H2、中断的处理流程CPU响应中断请求后,就立即转入执行中断服务程序。不同的中断源、不同 的中断要求可能有不同的中断处理方法,但它们的处理流程一般都如下所述:1)现场保护和现场恢复: 中断是在执行其它任务的过程中转去执行临时的任务,为了在执行完中断 服务
22、程序后, 回头执行原先的程序时, 知道程序原来在何处打断的, 各有关寄存 器的内容如何, 就必须在转入执行中断服务程序前, 将这些内容和状态进行备份 即保护现场。 中断开始前需将有关寄存器的内容压入堆栈进行保存, 以便在 恢复原来程序时使用。 中断服务程序完成后, 继续执行原先的程序, 就需把保存 的现场内容从堆栈中弹出,恢复积存器和存储单元的原有内容,这就是现场恢 复。 如果在执行中断服务时不是按上述方法进行现场保护和恢复现场, 就会是 程序运行紊乱,单片机不能正常工作。2)中断打开和中断关闭:在中断处理进行过程中, 可能又有新的中断请求到来, 这里规定, 现场保护 和现场恢复的操作是不允许
23、打扰的,否则保护和恢复的过程就可能使数据出错, 为此在进行现场保护和现场恢复的过程中, 必须关闭总中断, 屏蔽其它所有的中 断,待这个操作完成后再打开总中断,以便实现中断嵌套。3)中断服务程序: 既然有中断产生,就必然有其具体的需执行的任务,中断服务程序就是执 行中断处理的具体内容, 一般以子程序的形式出现, 所有的中断都要转去执行中 断服务程序,进行中断服务。124)中断返回:执行完中断服务程序后, 必然要返回, 中断返回就是被程序运行从中断服务 程序转回到原工作程序上来。在 MCS-51单片机中,中断返回是通过一条专门的 指令实现的,自然这条指令是中断服务程序的最后一条指令。5)交通灯中的
24、中断处理流程:(1)现场保护和现场恢复: 有特殊车辆要通过时就要进行中断,在中断之前,先将交通灯中断前情况 保护好,当中断执行后再恢复现场,包括信号灯和时间显示电路。(2)中断打开和中断关闭: 为了使特殊车辆通行按一下打开中断开关就可以打开中断,关闭中断开关 就关闭中断。(3)中断服务程序: 有中断产生,就必然有其具体的需执行的任务,中断服务程序就是执行中 断处理的具体内容: 即如果南北方向有特殊车辆要求通过, 南北方向转换为绿灯, 东西方向为红灯; 如果东西方向有特殊车辆要求通过, 东西方向转换为绿灯, 南 北方向为红灯。(4)中断返回: 执行完中断服务程序后,必然要返回,即回交通灯信号回到
25、中断前状态, 显示时间也和中断前一样。13第四章 智能交通灯软件系统设计4.1 智能交通灯的软件设计流程图智能交通灯的软件设计流程图如图 8 所示:图 8 交通灯的软件设计流程图4.2 程序源代码见附录第五章 智能交通灯方案的仿真PROTEU嵌S入式系统仿真软件在设计时已经注意到和单片机各种编译程序的 整合了,如它可以和 Keil ,Wave6000 等编译模拟软件结合使用。由于 Wave6000 使用方便,具备强大的软件仿真和硬件仿真功能。把 Proteus 和Wave6000结合起 来调试硬件就方便多了,这里就是采用“ Proteus+Wave6000”的仿真方法,具体 步骤如下:141)
26、首先运行 PROTEUS VSM的 ISIS ,选择 Source Define Code GenerationTool 菜单项,将出现如图 8所示定义代码生成工具对话框图 9 定义代码生成工具对话框在Tool 下拉列表框中选择代码生成工具, 在这一示例中, 电路中的微处理器 为8051系列单片机, 因此选择 ASEM51, 单击Browse按钮,选取Wave6000的安装路 径。单击 OK按钮,结束代码生成工具的定义。选择 SourceAdd/RemoveS ource File 菜单项,将出现 Add/Remove Source Code Files 对话框,如图 10所示:图10添加 /
27、 删除源文件对话框2)在Code Generation Tool 选项区,单击下三角按钮,选择 ASEM5工1 具 单击 New按钮,将出现如图 11所示对话框。15图 11 创建源代码对话框选择用Wave6000创建好的 AA.ASM文件,即完成了文件的创建。就这样当用 Wave6000对AA.ASM文 件进行更改时每一次运行 PROTEUS VSM的 ISIS 对电路进行 仿真时Wave6000都会对AA.ASM进行编译, AA.HEX文件也会随时更新。电路图绘制完成后 , 再添加 AT89C51 的应用程序。将鼠标移至 AT89C51 上, 单击鼠标右键使之处于选中状态 , 在该器件上单
28、击左键 , 打开如图 12所示的对 话框。在 Program File 栏添加编译好的十六进制格式的程序文件 AA.hex( 可以 接受3 种格式的文件 ) ,给AT89C51输入晶振频率,此处默认为 12MHZ,单击OK 按 钮完成程序添加工作 , 下面就可以进行系统仿真了。 单击主界面下方的按钮开始 系统仿真。 PROTEUVSS M所 进行的是一种交互式仿真 , 在仿真进行中可以对各控 制按钮、开关等进行操作 , 系统对输入的响应会被真实的反映出来如图 13。图 12 AT89C51添加程序文件16图 13 交通灯仿真界面17小结在毕业设计的整个过程中,我深切地体会到 : 实践是理论运用
29、的最好检验。 毕业设计是对我们 3 年所学知识的一次综合性测试和考验, 无论是在动手能力方 面还是理论知识的运用能力方面,都使得我有了很大的提高。经过总结和分析,我意识到在设计程序之前,对所用单片机的内部结构有 一个系统的了解, 知道该单片机内有哪些资源; 要有一个清晰的思路和一个完整 的的软件流程图; 在设计程序时,不能妄想一次就将整个程序设计好, 反复修改、 不断改进是程序设计的必经之路; 要养成注释程序的好习惯, 一个程序的完美与 否不仅仅是实现功能, 而应该让人一看就能明白你的思路, 这样也为资料的保存 和交流提供了方便;在设计课程过程中遇到问题是很正常 , 但我们应该将每次遇 到的问
30、题记录下来,并分析清楚,以免下次再碰到同样的问题。 本次毕业设计 为我的大学生活画上了圆满的句号,为我即将的工作和生活奠定了坚实的基础。18致谢词在整个毕业设计中, 我得到了学校电子实验室的大力支持, 为我提供了各种 所需的仪器设备。 感谢学校为我们安排了本次毕业设计, 让我们的理论知识和实 际操作经验更加紧密的结合了在一起; 同时又拓展了我们的知识面。 同时十分感 激夏老师对我的悉心指导和帮助, 使我能够顺利的完成此次毕业设计。 此次毕业 设计让我从中受益匪浅,最后再次感谢老师对我的培养和教育!19参考文献1 徐爱钧 智能化测量控制仪表原理与设计 (第二版) M. 北京:北京航空 航天大学出
31、版社, 2004 年;2 吴金戌、沈庆阳、郭庭吉 8051 单片机实践与应用 M. 北京:清华大学 出版社, 2002年;3 谢自美 电子线路设计实验测试 (第三版) M. 武汉:华中科技大学 出版社, 2006年;4 谢维成、杨加国 主编 单片机原理与应用及 C51程序设计 M. 北京:清 华大学出版社, 2006 年;5 杨立、邓振杰、荆淑霞 微型计算机原理与接口技术 M. 中国铁道出版 社,2006 年;6 黄智伟 全国大学生电子设计竞赛技能训练 M. 北京:北京航空航天大 学出版社, 2007 年7 高峰,单片微型计算机与接口技术 M. 北京:科学出版社, 2003;8 华成英、童诗白
32、 主编,模拟电子技术基础 (第四版) M. 高等教育出版 社,2006年.9 黄海萍、陈用昌 编 微机原理与接口技术实验指导 M. 北京:国防工业 出版社 ,2004 年10 黄智伟: 凌阳单片机设计指导 ,北京: 北京航空航天大学出 版社, 2007 年20附录附录 A:智能交通灯控制程序:ORG 0000HA_BIT EQU 20H ; 用于存放南北十位数B_BIT EQU 21H ; 用于存放南北十位数C_BIT EQU 22H ;用于存放东西十位数D_BIT EQU 23H ; 用于存放东西位数TEMP1 EQU 24H ;用于存放第一二南北状态要显示的时间TEMP2 EQU 25H
33、;用于存放第一二东西状态要显示的时间TEMP3 EQU 26H 用; 于存放第三第四南北状态要显示的时间TEMP4 EQU 27H用; 于存放第三第四南北状态要显示的时间LJMP MAINORG 0003H ; 外部中断 0 入口LJMP INT0 ; 跳转到外部 0 中断ORG 0013H ; 外部中断 1 入口LJMP INT1 ; 跳转到外部 1 中断INT0: MOV A,P1 ; 外部 0 中断PUSH ACCMOV A,P2 ; 中断保护PUSH ACCMOV P1,#0FFH ; 清除先前状态MOV P2,#0FFHCLR P1.0CLR P1.4 ; 南北通行,东西禁止通行CL
34、R P1.6CLR P2.3JNB P3.2 ,$ ; 判断是否还在中断状态POP ACCMOV P2,A ; 返回中断前状态POP ACCMOV P1,ACCRETI ; 中断返回INT1:MOV A,P1 ; 外部 1 中断PUSH ACC ; 中断保护MOV A,P2PUSH ACCMOV P1,#0FFH ; 清除先前状态MOV P2,#0FFHCLR P1.2CLR P2.1CLR P1.3 ; 东西通行,南北禁止通行CLR P1.521JNB P3.3 ,$ ; 判断是否还在中断状态POP ACCMOV P2,A ; 返回中断前状态POP ACCMOV P1,ARETI ; 中断返
35、回MAIN:ORG 0100H ; 初始情况MOV P1,#0FFHMOV P2,#0FFH ; 灭所有灯MOV TMOD,#55H 计; 数方式方式 1MOV IE,#85H ; 开中断MOV TEMP1,#20 ;MOV TEMP2,#25MOV TEMP3,#25MOV TEMP4,#20STAR:MOV P1,#0FFHMOV P2,#0FFH ; 灭所有灯MOV A,24H ; 将显示时间送 ACJNE A,#20,T40T ; 判断时间,选初始值T20T: ; 南北通行要显示的时间为 20 的计数器初始值 CLR TF0 ; 清 TF0CLR TF1 ;清 TF1MOV TH1 ,
36、#0FFH ;送 20 秒时的初始值MOV TL1 ,#0FCH ;在些设计 20 秒 6 辆为多车MOV TH0 ,#0FFHMOV TL0 ,#0FCHLJMP TEMP20 ;跳到 20 秒T40T: ; 南北通行要显示的时间为 40 的计数器初始值CLR TF0 ;清 TF0CLR TF1 ;清 TF1MOV TH1,#0FFH ;送 40 秒时的初始值MOV TL1 ,#0F8H ;在些设计 40秒 8辆为多车MOV TH0 ,#0FFHMOV TL0 ,#0F8HLJMP TEMP40 ;跳到 40 秒TEMP20: ;TEMP1=20 情况SETB TR0 ; 开始计数SETB
37、TR1CLR P1.2CLR P2.1 ; 南北通行,东西禁止通行CLR P1.3CLR P1.5MOV TEMP1,#20 ;南北要显示的时间,MOV TEMP2,#25 东; 西要显示的时间22STLOP:ACALL DISPLAY1 ; 调用显示DEC TEMP1 ; 时间够一秒显示时间减 1DEC TEMP2MOV A,TEMP1CJNE A,#0,NEXT ;若显示时间不为 0 保持现在状态LJMP STAR2 ; 若显示时间为 0 跳到第二状态NEXT: LJMP STLOPSTAR2: ; 状态 1SETB P1.2CLR P1.1 ; 南北黄灯,东西禁止通行SETB P1.3C
38、LR P1.4MOV TEMP1,#05 ;南北要显示的时间,MOV TEMP2,#05 东; 西要显示的时间,STLOP2:ACALL DISPLAY1 ; 调用显示DEC TEMP1 ; 时间够一秒显示时间减 1DEC TEMP2MOV A,TEMP1CJNE A,#0,NEXT2 ; 若显示时间不为 0 保持现在状态JB TF1 ,T40 ; 判断南北是否多车JB TF0 ,T40 ; 判断北南是否多车MOV TEMP1,#20 ; 少车下次显示时间为 20 秒LJMP STAR3 ; 跳到状态 3T40:MOV TEMP1,#40 ; 多车下次显示时间为 40 秒 LJMP STAR3
39、 ; 若显示时间为 0 跳到第三状态 NEXT2:LJMP STLOP2TEMP40:;TEM=40程 序SETB TR0 ; 开始计数SETB TR1CLR P1.2CLR P2.1 ; 南北通行,东西禁止通行CLR P1.3CLR P1.5MOV TEMP1,#40 ;南北要显示的时间,MOV TEMP2,#45 东; 西要显示的时间STLOP11:ACALL DISPLAY1 ; 调用显示DEC TEMP1 ; 时间够一秒显示时间减 1DEC TEMP2MOV A,TEMP1CJNE A,#0,NEXT11 ; 若显示时间不为 0 保持现在状态LJMP STAR22 ; 若显示时间为 0
40、 跳到第二状态 NEXT11: LJMP STLOP1123STAR22: ; 状态 1SETB P1.2CLR P1.1 ; 南北黄灯,东西禁止通行SETB P1.3CLR P1.4MOV TEMP1,#05 ;南北要显示的时间,MOV TEMP2,#05 东; 西要显示的时间,STLOP22:ACALL DISPLAY1 ; 调用显示DEC TEMP1 ; 时间够一秒显示时间减 1DEC TEMP2MOV A,TEMP1CJNE A,#0,NEXT22 ; 若显示时间不为 0 保持现在状态JB TF1 ,T401 ; 判断是否多车JB TF0 ,T401MOV TEMP1,#20 ;少车下
41、次显示时间为 20 秒LJMP STAR3T401:MOV TEMP1,#40 ;多车下次显示时间为 40 秒LJMP STAR3 ; 若显示时间为 0 跳到第三状态NEXT22:LJMP STLOP22STAR3:MOV A,26HCJNE A,#25,T40T1 ; 判断时间,选初始值T20T1: ; 南北通行要显示的时间为 20 的计数器初始值CLR TF0 ; 清溢出位CLR TF1MOV TH1 ,#0FFH ; 给初值MOV TL1 ,#0FCHMOV TH0 ,#0FFHMOV TL0 ,#0FCHLJMP TEMP320T40T1: ; 南北通行要显示的时间为 40 的计数器初
42、始值CLR TF0 ;CLR TF1MOV TH1,#0FFH ;给初值MOV TL1 ,#0F8HMOV TH0 ,#0FFHMOV TL0 ,#0F8HLJMP TEMP340TEMP320:;状态三SETB TR1 ; 南北停止计数SETB TR0 ; 东西开始计数SETB P1.1 ; 东西通行,南北禁止通行CLR P1.0SETB P1.1CLR P1.024SETB P1.5CLR P1.6SETB P2.1CLR P2.3MOV TEMP3,#25 ;南北要显示的时间,MOV TEMP4,#20 东; 西要显示的时间,STLOP33:ACALL DISPLAY ; 调用显示DEC
43、 TEMP3 ; 时间够一秒显示时间减 1DEC TEMP4MOV A,TEMP4CJNE A,#0,NEXT33 ; 若显示时间不为 0 保持现在状态LJMP STAR34 ; 若显示时间为 0 跳到第四状态 NEXT33:LJMP STLOP33STAR34: ; 状态四SETB P2.3CLR P2.2SETB P1.6 ; 东西黄灯,南北禁止通行CLR P1.5MOV TEMP3,#05 ; 南北要显示的时间,MOV TEMP4,#05 ; 东西要显示的时间,STLOP34:ACALL DISPLAY ; 调用显示DEC TEMP3 ; 时间够一秒显示时间减 1DEC TEMP4MOV
44、 A,TEMP4CJNE A,#0,NEXT34 ; 若显示时间不为 0 保持现在状态JB TF1 ,T402JB TF0 ,T402MOV TEMP3,#25LJMP START402:MOV TEMP3,#45LJMP STARNEXT34: LJMP STLOP34TEMP340 :SETB TR1 ; 南北停止计数SETB TR0 ; 东西开始计数SETB P1.1 ; 东西通行,南北禁止通行CLR P1.0SETB P1.1CLR P1.0SETB P1.5CLR P1.6SETB P2.1CLR P2.325MOV TEMP3,#45 ; 南北要显示的时间,MOV TEMP4,#4
45、0 ;东西要显示的时间,STLOP43:ACALL DISPLAY ; 调用显示DEC TEMP3 ; 时间够一秒显示时间减 1DEC TEMP4MOV A,TEMP4CJNE A,#0,NEXT43 ; 若显示时间不为 0 保持现在状态LJMP STAR44 ; 若显示时间为 0 跳到第四状态 NEXT43:LJMP STLOP43STAR44: ; 状态四SETB P2.3CLR P2.2SETB P1.6 ; 东西黄灯,南北禁止通行CLR P1.5MOV TEMP3,#05 ; 南北要显示的时间,MOV TEMP4,#05 ; 东西要显示的时间,STLOP44:ACALL DISPLAY
46、 ; 调用显示DEC TEMP3 ; 时间够一秒显示时间减 1DEC TEMP4MOV A,TEMP3CJNE A,#0,NEXT44 ; 若显示时间不为 0 保持现在状态JB TF1 ,T403JB TF0 ,T403MOV TEMP3,#25LJMP START403:MOV TEMP3,#45LJMP STARNEXT44: LJMP STLOP44; 显示DISPLAY1:MOV A,TEMP1 ; 将南北要显示的数存放到 AMOV B,#10 ;B=10DIV AB ;A 除以 B 商存 A,余数 BMOV B_BIT,A ; 将 A 放到 20HMOV A_BIT,B ; 将 B
47、放到 21HMOV A,TEMP2 ;将东西要显示的数存放到 AMOV B,#10 ;B=10DIV AB ;A 除以 B 商存 A,余数 BMOV C_BIT,A ; 将 A 放到 22HMOV D_BIT,B ; 将 B 放到 23HMOV DPTR ,#NUMT ;MOV R0,#2 ;R0=2DPL11: MOV R1,#250 ;R1=25026DPLOP1:MOV A,A_BIT ; 将南北要显示的 10 位数送 AMOVC A,A+DPTR查 ; 表MOV P0,A ; 显示南北 10 位数CLR P2.7ACALL D1MS延; 时 1MSSETB P2.7 ; 灭南北 10
48、位数MOV A,B_BIT ; 将南北要显示的个位数送 AMOVC A,A+DPTR ;查表MOV P0,A ; 显示南北个位数CLR P2.6ACALL D1MS ;延时 1MSSETB P2.6 ; 灭南北个位数MOV A,C_BIT ; 将东西要显示的 10 位数送 AMOVC A,A+DPTR 查; 表MOV P0,A ; 显示东西 10 位数CLR P2.5ACALL D1MS ;延时 1MSSETB P2.5 ; 灭东西 10 位数MOV A,D_BIT ; 将东西要显示的个位数送 AMOVC A,A+DPTR查 ; 表MOV P0,A ; 显示东西东西位数CLR P2.4ACAL
49、L D1MS ;延时 1MSSETB P2.4 ; 灭东西个位数DJNZ R1,DPLOP ; 循环扫描DJNZ R0,DPL1RET; ; 等待 1 秒返回显示DISPLAY:MOV A,TEMP3 ; 将南北要显示的数存放到 AMOV B,#10 ;B=10DIV AB ;A 除以 B 商存 A,余数 BMOV B_BIT,A ; 将 A 放到 20HMOV A_BIT,B ; 将 B 放到 21HMOV A,TEMP4 ;将东西要显示的数存放到 AMOV B,#10 ;B=10DIV AB ;A 除以 B 商存 A,余数 BMOV C_BIT,A ; 将 A 放到 22HMOV D_BI
50、T,B ; 将 B 放到 23HMOV DPTR ,#NUMT ;MOV R0,#2 ;R0=2DPL1: MOV R1,#250 ;R1=250DPLOP:MOV A,A_BIT ; 将南北要显示的 10 位数送 AMOVC A,A+DPTR查 ; 表27MOV P0,A ; 显示南北 10 位数CLR P2.7ACALL D1MS延; 时 1MSSETB P2.7 ; 灭南北 10 位数MOV A,B_BIT ; 将南北要显示的个位数送 AMOVC A,A+DPTR ;查表MOV P0,A ; 显示南北个位数CLR P2.6ACALL D1MS ;延时 1MSSETB P2.6 ; 灭南北
51、个位数MOV A,C_BIT ; 将东西要显示的 10 位数送 AMOVC A,A+DPTR 查; 表MOV P0,A ; 显示东西 10 位数CLR P2.5ACALL D1MS ;延时 1MSSETB P2.5 ; 灭东西 10 位数MOV A,D_BIT ; 将东西要显示的个位数送 AMOVC A,A+DPTR查 ; 表MOV P0,A ; 显示东西东西位数CLR P2.4ACALL D1MS ;延时 1MSSETB P2.4 ; 灭东西个位数DJNZ R1,DPLOP ; 循环扫描DJNZ R0,DPL1RET ; 等待 1 秒返回D1MS: MOV R7,#250 ;1MS 延时程序
52、DJNZ R7,$RET;1 到 10 对应电路图数码管表NUMT: DB 7EH,48H,67H,6BH,59HDB 3BH,3FH,68H,7FH,7BH中英文摘要 -目录-引言研究现状 -背景思路-整体原理-部分电路介绍-程序介绍 总结 谢词=参考文献 =附件可以联系我,有程序。仿真,原理图,等. 南北方向绿灯和东西方向绿灯不能同时亮,如果同时亮,则立刻关闭信号灯系 统,并报警。同理,东西向绿灯与南北向转弯灯也不能同时亮。2. 南北及南北转弯红灯亮并保持 40 秒,同时东西绿灯亮,但只保持 35 秒,到35 秒时东西绿灯闪 3次(每周期为 1 秒)后熄灭,继而东西黄灯亮,并保持 2 秒,
53、到 2 秒后,东西黄灯灭,东西红灯亮,同时南北红灯熄灭和南北绿灯亮;南 北转弯红灯继续亮着。283. 东西及南北转弯红灯亮并保持 30 秒,同时南北绿灯亮,但只保持 25 秒,到25 秒时南北绿灯闪亮 3 次(每周期 1 秒)后熄灭,继而南北黄灯亮,并保持 2 秒,到 2 秒后,南北黄灯灭,南北红灯亮,同时南北向转弯红灯灭,绿灯亮。4. 南北向转弯绿灯亮 25 秒,同时南北向和东西向红灯亮并保持 25 秒,待南北 向转弯绿灯亮 25 秒后,红灯亮起,东西向红灯灭,绿灯亮,并保持 35 秒,南 北向红灯继续亮着,后接 2.中继续循环。5. 各灯能手动控制也能自动转换,并且能周而复始的进行工作。1
54、 绪论1.1 道路交通控制的发展背景随着经济发展, 城市化速度加快, 机动车辆占有量急剧增加, 由此引发出日益严重的交 通问题:交通拥挤甚至堵塞,交通事故频繁, 空气和噪声污染严重,公共运输系统效率下降 等。解决这一问题通常有两种办法, 一种是修路造桥, 这对道路交通状况的改善是一种最直 接的办法, 但它需要巨额的投资,且在城市中心区受拆迁的限制, 很难实施另一种是在现 有的道路交通条件下, 实施交通控制和管理, 充分发挥现有道路的通行能力, 大量事实已经 证明这种方法的有效性。通常,一个经验丰富的交通警察能在极短的时间内把一个交叉路口的交通阻塞缓解或 解除, 但他的作用范围往往局限于单个交叉
55、路口。 而现代的道路交通非常复杂, 常常是几个 或几十个甚至是成百上千个路口互相关联, 在这种情况下, 任何一个经验丰富的交通警察都 无能为力了 因此, 人们越来越关注把先进的科学技术用于交通管理,从而促进了交通自动控制技术的不断发展。1.2 道路交通控制的目的和作用道路交通控制的目的可定义为:在确定的行政规定约束下,采用合适的营运 方法来确 保公共和私人运输方式具有最佳的交通运行状态。围绕这一目的研制出的道路交通控制系 统,把受控对象看成一个整体, 采用对交通流科学地时间分割的方法, 最大限度地保证交通 流运动的连续性,使受控区域的交通流减少冲突, 同时平稳地、有规则地运动。道路交通控 制的作用主要表现为以下几个方面:(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025近距离沙石运输合同样本
- 网络安全设备配置与防护题库 (信息安全领域实战项目)
- 幼儿园课件-认识蔬菜
- 肺癌放疗饮食护理
- 人教版小学一年级数学下册期中试题
- 眩晕护理方案及护理常规
- 三角形全等的判定(复习)教学任务分析
- 视网膜毛细血管前小动脉阻塞的临床护理
- 山东省济宁市2025年高考模拟考试地理试题及答案(济宁三模)
- 浙江省宁波市镇海中学2025年5月第二次模拟考试语文试卷+答案
- 馅料间管理制度
- 2025年消防知识培训
- 上海健康医学院《SpringSpringMVCMyBais》2023-2024学年第二学期期末试卷
- 马尔代夫旅游介绍
- 保险行业档案管理培训
- 无废城市知识培训课件
- 2025煤炭矿区水土保持监测技术服务合同书
- 五金产品购销合同清单
- 2024年全国高中数学联赛(四川预赛)试题含答案
- 东北三省精准教学联盟2024-2025学年高三下学期3月联考地理试题(含答案)
- 2024北京西城区初一(下)期末道法试题和答案
评论
0/150
提交评论