单片机——交通信号灯控制

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

直行显示数字为X(X>19)
原南北通行
原东西通行
南北停止x-19s 东西直行x-19s 南北停止19s 东西直行19s
东西黄灯5s 南北黄灯5s 东西停止x-19s 南北直行x-19s 南北左转19s 东西停止19s 东西黄灯5s 南北黄灯5s 东西黄灯5s 南北黄灯5s 南北停止19s 东西左转19s 南北停止x-19s 东西直行x-19s 东西黄灯5s 南北黄灯5s 南北左转19s 东西停止19s 南北直行x-19s 东西停止x-19s
1.3程序实现功能 东西南北路口直行与转弯交替通行,数码管显示直行通行
倒计时,红绿黄灯显示包括人行道在内的道路交通状态。 某一方向道路拥挤时,可以人工控制调节东西南北方向通
行时间。 紧急情况时,各路口交通灯显示红灯,数码管保持数据不
变。
二:工作寄存器及存储单元分配
2.1.工作寄存器
R2设置为定时器定时中断次数,R6、R7用于延时程序中的寄 存器
单片机课程设计
课题名称: 基于51单片机大型交通灯控制 指导教师: 班 级:
完 成 人:
基于51单片机大型交通灯控制
一:总体设计
1.1 设计要求
通过对本课题的设计,进一步熟悉单片机控制系统,并了 解系统设计的一般规律。
设计一个交通灯控制系统,该控制系统工作后,交通灯按 照下列规律变化:初始态东南西北均为红灯,持续一段时间; 然后转为状态1,为东西红、南北绿;状态2:东西红灯不变、 南北绿灯灭、黄灯闪烁两次;状态3:为东西绿、南北红;状 态4:为东西绿灯灭、黄灯闪烁两次、南北红灯不变;最后回 到状态1,依次循环。如遇到特殊情况,可拨动应急开关,使 各各向均为红灯,特殊车辆不受红灯限制,待其顺利通过后将 开关拨回原位,系统恢复原状态运行。
东西
南北
绿红 黄
绿红黄
P1.7 P1.6 P1.5
P1.4 P1.3 P1.2 P1.1
P1.0 状态字
全红
010
0 1 0 00
48H

西红南北绿 0 1
0
10
000
50H
东西红南北黄 0 1
0
00
100
55H
东西红南北灭 0 1
0
00
000
40H
东西绿南北红 1 0
0
东西黄南北红 0 0
1
东西灭南北红 0 0
1.2设计方案:
选用89C51、89S51或其他与51系列兼容的带片内存储器的单片机均 可。本方案采用的是P1.2、P1.3、P1.4控制南北的黄红绿灯,P1.5、 P1.6、P1.7控制的是东西的黄红绿灯。当P1口的某位输出为逻辑“1”时, 经74LS595驱动后发光二极管亮,反之就不亮。8只电阻为74LS595的上 拉电阻,起到限流作用。应急开关接外部中断INT0,这样可以用中断或 查询的方式获取应急开关的状态,编程较为灵活。
可以看出共有五个状态,每个状态持续不同的时间,如果每个
状态用相应的子程序来表达。五个状态中都包含送状态字和调用
延时程序这ห้องสมุดไป่ตู้个内容。首先要确定状态字,状态字的形成取决
于接线。P1.7、P1.6、P1.5控制东西的红黄绿灯,P1.4、
P1.3、P1.2控制的是南北的红黄绿灯,口线为“1”时对应的
灯发光,这样根据接线可得出各个状态的状态字如下:
3.2:74LS595
74LS595,74HC595引脚图,管脚图
________
QB--|1
16|--Vcc
QC--|2
15|--QA
QD--|3
14|--SI
QE--|4
13|--/G
QF--|5
12|--RCK
QG--|6
11|--SRCK
QH--|7
10|--/SRCLR
GND- |8
9|--QH'
3.1:AT89C51
VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电
流。当P0口的管脚第一次写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口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 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口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周 期的高电平时间。
2.2.片内存储单元
30H、31H作为两组数码管显示数据存储单元;32H、33H作 为交通灯初始状态存储单元;40H、41H作为交通灯显示数据存储单 元
2.3标志位
00H:南北通行标志位 ; 01H:东西通行标志位;02H:紧急 事件标志位
三:用到的芯片以及器件
AT89C51单片机,计数器74HC163,锁存器74LS595,10K的上拉电 阻,30PF的电容以及电解电容,开关控制器,12MHZ时钟晶振,带公共 端的8电阻排,数码管。 芯片简介以及说明
0
五:整体电路设计
01
000
88H
01
000
28H
01
000
08H
六:联合调试
在protues上进行仿真实验。首先使用KeilC将编写完成的程序编译 生成HEX文件,将HEX文件烧录到两片单片机中,进行仿真实验,结果如 下图所示。东西红灯60秒,南北绿灯40秒。36秒后南北黄灯各闪烁2次 共4秒,然后东西方向的车可以向南北转弯通行,北面的车可以向西 转,南面的车可以向东转,20秒后东西方向的车可以通行,南北方向全 是红灯。40秒后南北方向的车可以向东西转弯,西面的车可以向南转,
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:来自反向振荡器的输出。 振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可 以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时 钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个 二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证 脉冲的高低电平要求的宽度。
|________|
74595的数据端:
QA--QH: 八位并行输出端,可以直接控制数码管的8个段。
QH': 级联输出端。我将它接下一个595的SI端。
SI: 串行数据输入端。
74595的控制端说明:
SRCLR(10脚): 低点平时将移位寄存器的数据清零。通常我将它接Vcc。
SRCK(11脚):上升沿时数据寄存器的数据移位。
QA-->QB-->QC-->...-->QH;下降沿移位寄存器数据不变。(脉冲宽 度:5V时,大于10纳秒就行了。我通常都选微秒级)
RCK(12脚):上升沿时移位寄存器的数据进入数据存储寄存器,下降沿 时存储寄存器数据不变。(通常我将RCK置为低电平,) 当移位结束后, 在RCK端产生一个正脉冲(5V时,大于几十纳秒就行了。我通常都选微 秒级),更新显示数据。
这个简单交通灯的设计,具有方便控制,简单易行等优点。但对于日益复杂 的交通道路实况来说显然是不行的,对此我们可以加上时间显示、左拐右拐 等程序加以控制。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理 论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中 得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考 的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次 做,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足 之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
通过这次课程设计,加强了我们动手、思考和解决问题的能力。在整个 设计过程中,我们通过这个方案包括设计了一套电路原理和电路连接图,和 芯片上的选择。
在设计过程中,经常会遇到这样那样的情况,就是心里老想着这样的接 法可以行得通,但实际接上电路,总是实现不了,因此耗费在这上面的时间 用去很多。
我趁着做课程设计的同时也对课本知识有了巩固和加强,由于课本上的 知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且 考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能, 并且对于其在电路中的使用有了更多的认识。
东面的车可以向北转,依次循环。如遇到特殊情况,可拨动应急开 关,使各各向均为红灯,特殊车辆不受红灯限制,待其顺利通 过后将开关拨回原位,系统恢复原状态运行。
七:心得体会
将近一个月的准备,这篇报告终于要完成了,心里真有许多说不出 的滋味。突然发现自己所掌握的知识是那么的有限,有那么多需要改进 的不足的地方。我想通过这次实验报告的设计,我想我更加清楚自己以 后发展及学习的方向。
G(13脚): 高电平时禁止输出(高阻态)。如果单片机的引脚不紧张, 用一个引脚控制它,可以方便地产生闪烁和熄灭效果。比通过数据端移 位控制要省时省力。
四:程序流程图
开始
设定时间 否
此次计数完成后
原东西通行
繁忙
南北停止30s 东西直行30s 南北直行30s 东西停止30s 南北停止15s 东西直行15s 南北左转15s 东西停止15s 东西停止30s 南北直行30s 东西黄灯5s 南北黄灯5s 南北左转15s 东西停止15s 南北停止30s 东西直行30s 南北停止15s 东西左转15s 东西黄灯5s 南北黄灯5s 南北直行40s 东西停止40s 南北左转19s 东西停止19s 东西黄灯5s 南北黄灯5s 南北停止40s 东西直行40s 南北停止19s 东西左转19s 东西黄灯5s 南北黄灯5s 东西黄灯5s 南北黄灯5s 东西黄灯5s 南北黄灯5s 此次计数完成后
相关文档
最新文档