项目1: 基于单片机的路口红黄绿交通灯的设计
-
- 实践任务
1.1.1实践目的
分析路口红黄绿交通灯的设计要求,设计路口红黄绿交通灯的原理图,并完成路口红黄绿交通灯线路的搭建与调试,培养学生电子电路图的分析、设计、搭建与调试能力,培养团队协作能力与创新意识,增强学生的劳动观念和社会责任感。
1.1.2 实践内容
分析根据路口红黄绿交通灯的设计要求,设计路口红黄绿交通灯的原理图,并进行功能分析;
运用单片机、电阻、二极管、7段LED、导线等材料,并进行路口红黄绿交通灯电子电路的搭建与焊接;
完成路口红黄绿交通灯的电路的调试;
④对路口红黄绿交通灯电路调试结果的分析与总结,并提出改进建议。
1.1.3 实现目标
东西向红灯33秒,南北向绿灯27秒,绿灯闪烁3秒(占空比50%),黄灯3秒;南北向红灯33秒,东西向绿灯27秒,绿灯闪烁3秒(占空比50%),黄灯3秒;循环动作。2)能在7段码上显示时间;
-
- 硬件设计
1.2.1电路图
图 1红黄绿交通灯电路图
1.2.2 控制原理
由单片机、交通灯、数码管组成的控制系统。
1. 单片机控制:单片机是整个系统核心,内部预编程逻辑决定运行方式。它依据编写好的程序,周期性改变输出端口电平状态,以控制交通灯亮灭和数码管显示内容。
2. 交通灯控制:电路中有红(D4 - D6、D10 - D12 )、黄(D3、D9 )、绿(D1、D2、D7、D8 )色LED指示灯。单片机对应端口输出高电平,经限流电阻(R2 - R8、R10、R13 )驱动三极管导通,相应颜色LED灯亮;输出低电平,三极管截止,灯灭 。不同时刻单片机控制各端口电平,实现交通灯按“绿 - 黄 - 红”顺序切换。
3. 数码管显示控制:两个数码管用于显示倒计时时间。单片机通过端口输出段选信号(控制数码管各段如a - g是否点亮)和位选信号(确定哪个数码管显示) 。段选信号经电阻连接数码管段引脚,位选信号经三极管驱动,控制数码管公共端,动态扫描方式下快速切换,完成控制需求。
1.2.3 元器件清单
数码管:2个
排阻:1个( RP1)
单片机:AT89C51
LED指示灯:12个 绿色LED(D1.D4.D7.D10)红色LED(D2 D6 D8.D11)黄色LED(D3 D5.D9.D12)
电阻:16个,R1 5.1KΩ R2-R13 100Ω R14-R17 1KΩ
电容:3个 ,C1,C2 27pF C3 10uF
三极管:4个 Q1-Q4
开关:2个
电源:8个
晶振:X1 1个
接地点:3个
-
- 软件设计
- 流程图
- 流程图
- 软件设计
图 2红黄绿交通灯代码原理图
-
-
- 软件代码
-
图 3红黄绿交通灯代码
4图 5
图 6红黄绿交通灯代码
图 7红黄绿交通灯代码
-
-
- 程序说明:
-
代码首先进行系统初始化,配置定时器 0 为 50ms 定时(初值 0x3CB0,模式 1),使能定时器中断并启动,同时将外部中断 0(P3.2)和 1(P3.3)设为下降沿触发并使能,打开总中断。主循环中根据当前状态 num 更新数码管显示内容,东西方向时间在 num=0/1 时显示在左两位、南北在右两位,反之则交换,通过动态扫描(i 索引循环选通 4 位数码管,段码送 P0 口、位选送 P2 口,延时 1ms)实现数字显示。灯控函数 light () 根据 num 值设置 P1 口输出,如 num=0 为东西绿灯南北红灯、num=1 为东西黄灯闪烁(tick<8 时亮黄灯,否则灭),num=4 为紧急状态全黄灯闪烁等。定时器 0 中断每 50ms 触发一次,tick 计数到 34(1.7 秒)时重置并让 time 和 time1 减 1,time 为 - 1 时触发状态切换标志 NUM_F。外部中断 0 用于手动切换状态,num 递增后根据不同状态设置对应时间(如 num=2 时南北绿灯时间 27、东西红灯 33),外部中断 1 触发紧急状态,设置 URGENT_F 标志、num=4、时间 3 秒使全黄灯闪烁。
-
- 系统调试与结论
一开始是无法检测单片机,然后用同学的单片机检测了之后就可以检测到本组焊的单片机,烧录程序进去后,发现LED没有两灭转换和数码管计数关系不大,后来经过重复调试,调整接线,成功实现了LED灯的两灭转换关系
图 8硬件