交通信号灯控制器课程设计
课程设计六 交通信号灯控制系统

课程设计六交通信号灯控制系统一、实验目的1、掌握综合应用理论知识和中规模集成电路设计方法2、掌握调试及电路主要技术指标的测试方法二、设计任务设计一个十字路口交通灯信号控制器,要求如下:(1)十字路口设有红、黄、绿、左拐指示灯;有数字显示通行时间,以秒单位作减法计数。
(2)主、支干道交替通行,主干道每次绿灯亮40S,左拐指示灯15S;支干道每次绿灯亮20S,左拐指示灯亮10S。
(3)每次绿灯变左拐时,黄灯先亮5S(此时另一干道上的红灯不变),每次左拐指示变红灯时,黄灯先亮5S(此时另一干道上的红灯不变)。
(4)当主、支干道任意干道出现特殊情况时,进入特殊运行状态,两干道上所有车辆都禁止通行,红灯全亮,时钟停止工作。
(5)要求主、支干道通行时间及黄灯亮的时间均可在0~99S内任意设定。
三、设计提示及参考电路某交通灯控制系统的组成框图如图4.6.1所示。
状态控制器主要用于纪录十字路口交通灯的工作状态,通过状态译码器分别点亮相应状态的信号灯。
秒信号发生器产生整个定时系统的时基脉冲,通过减法计数器对秒脉冲减计数,达到控制每一种工作状态的持续时间。
减法计数器的回零脉冲使状态控制器完成状态转换,同时状态译码器根据系统下一个工作状态决定计数器下一次减计数的初始值。
减法计数器的状态由BCD译码器译码、数码管显示。
在黄灯亮期间,状态译码器将秒脉冲引入红灯控制电路,使红灯闪烁。
图4.6.1 交通灯控制系统的组成框图1、状态控制器设计根据设计要求,各信号灯的工作顺序流程如图4.6.2所示。
信号灯四种不同的状态分别用S0(主绿灯亮、支红灯亮)、S1(主黄灯亮、支红灯闪烁)、S2(主红灯亮、支绿灯亮)、S3(主红灯闪烁、支黄灯亮)表示,其状态编码及状态转换图如图4.6.3所示。
图4.6.3图4.6.3 状态编码及状态转换图显然,这是一个二位二进制计数器。
可采用中规模集成计数器CD4029构成状态控制器,电路如图4.6.4。
交通信号灯控制器课程设计报告

交通信号灯控制器课程设计报交通信号灯控制器课程报告一.设计要求1、设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行, 绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。
2、主、支干道交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25 秒计时、显示电路。
3、在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡。
提示:选择1HZ时钟脉冲作为系统时钟。
45秒、25秒、5秒定时信号用倒计时,计控制。
根据交通灯的亮的规则,在初始状态下四个方向的都为红灯亮启,进入正常工作状态后,当主干道上绿灯亮时,支干道上红灯亮,持续45S后,主干道和支干道上的黄灯都亮启,持续5S后,主干道上红灯亮启,支干道上绿灯亮启持续25S,之后主干道和支干道上的黄灯都亮启5s, 一个循环完成。
循环往复的执行这个过程。
设计中用两组红黄绿LED模拟两个方向上的交通灯,用4个7段数码管分别显示两个方向上的交通灯剩余时间,控制时钟由试验箱上频率信号1、2、时起始信号由主控电路给出,每当计满所需时间,计数器清零,由主控电路启、闭三色信号灯或启动另一计时电路。
二.设计思路本设计针对一条主干道和一条支干道汇合成的十字路口,进行南北和东西直行情况下交通灯提供。
根据状态机的设计规范,本次设计了四个状态之间的循环转化,其真值表及状态转化图如下所示三.程序说明1 •各输入输出变量说明:elk:计数时钟qclk:扫描显示时钟rst:复位信号,当rst为1时,控制器和计数器回到初始状态en:使能信号,当en为1时控制器开始工作,en为0时hold:特殊情况控制信号,hold为1时,主、支干道方向无条件显示为红灯seg:用于数码管的译码输出dig:用于选择显示的数码管(片选)numl:用于主干道方向灯的时间显示num2:用于支干道方向灯的时间显示light 1:控制主干道方向四盏灯的亮灭,其中,lightl[O卜lightl[2]分别控制主干道方向的绿灯、黄灯和红灯Hght2;控制支干道方向四盏灯的亮灭,其中,Hght2[0]-light2[2]分别控制支干道方向的绿灯、黄灯和红灯2 •输入输出及中间变量设置:module traffic(en,clk9qclk,rst,hold,numl,num2Jightl Jig ht2,seg,dig;input en,clk,qclk,rst9hold;output [5:0]dig;output[7:0] numl9num2;output[6:0]seg;output[2:0]lightl,light2;reg timl,tim2;reg [3:0]disp_dat;reg[6:0]seg;reg[7:0]numl,num2;reg [7:0] red 1 ,red2,green 1 ,green2,y ello wl ,y ello w2 reg[5:0]dig;reg [l:0]count;reg [ 1: OJstate 1 ,state2;reg [2: OJlight 1 Jight2;always @(en)if(!en) begingreenl<=8*b01000101;redl<=8fb00100101; yellow 1 <=8' bOOOOO 101; green2<=8*b00100101; red2<=8f b01000101; yellow2<=8,b00000101; end4 •主干道方向点亮顺序:always @ (posedge elk) //主干道 begin if(rst) beginlightl<=3f b001; numl<=greenl; end else if(hold) begin3 •初始状态设flightl<=3fbl00; numl<=greenl; end else if(en)begin if(!timl) begin case(statel)2fb00:begin numl<=greenl; statel<=2f b01; end2f b01: begin num 1 <=yellowl; statel<=2f bll; end 2'bll:b£gin numl<=redl; statel<=2f bl0; end2' b 10: begin num 1 <=yellow 1;statel<=2f b00; end default:lightl<=3,bl00; endcase endelse 〃主干道倒数计时 begin if(numl>0)if(numl[3:0]==0) begin numl[3:0]<=4,bl001; numl[7:4]<=numl[7:4]-l;lightl<=3,b001; lightlv=3'b010; lightl<=3f bl00;lightl<=3f b0X0;endelse numl[3:0]<=numl[3:0]-l;if(numl==l)timl<=0;endendelsebegin lightl<=3,b010; numl=2T b00; timl<=0; endend5 •支干道方向点亮顺序:always @ (posedge elk) //支干道beginif(rst)beginlight2v=3'bl00;num2<=red2;endelse if(hold)beginlight2v=3'bl00; num2<=red2; endelse if(en)beginif(!tim2)begintim2<=l;case(statel)2!b00:begin num2<=red2; state2<=2 f b01; end 2f b01: beginnum2<=yellow2; state2<=2f bll; end 2f bll: begin num2<=green2;state2<=2 *blO; end2' b 10: begin num2<=yellow2; state2<=2' bOO; end light2<=3f bl00; light2<=3,b010; light2<=3f b001; light2<=3f b010;default:light2<=3,bl00;endcaseendelse 〃支干道倒数计时beginif(num2>0)if(num2 [3:0]==0)beginnum2[3:0]<=4,bl001;num2 [7:4] <=num2 [7:4]-l; end else num2[3:0]<=num2[3:0] -1; if(num2==l)tim2<=0;end endelsebeginlight2<=3f b010; state2v=2'b00; tim2<=0;endend6 •数码管译码及显示:always @(posedge qclk) 〃定义上升沿触发进程begincount <= count +l T bl;end always @ (count) begincase(count)〃选择扫描显示数据2'dO : disp_dat <= numl[3:0]; 〃第一个数码管2'dl : disp_dat <= numl[7:4]; 〃第二个数码管2'd2 : disp_dat <= num2[3:0]; 〃第三个数码管2'd3 : disp_dat <= num2[7:4]; 〃第四default: disp_dat <= 0; endcaseendalways @ (count) begin case(count)数码管显示位2f d0 : dig<= 6P011111;//选择第一个数码 管显示 2f dl : dig<= 6P101111;//选择第二个数码 管显示 2P2 : dig <= 6P110111;//选择第三个数码 管显示2P3 : dig<= 6P111011;//选择第四个数码管显示default: dig<= 6^111111;endcase endalw 町s @ (disp_dat) begincase (disp_dat)〃七段译码个数码管〃选择4f b0000 : seg<= 7^0111111;〃显示” (T4'b0001 : seg <= 7^0000110; //显示T”4'b0010 : seg<= 7^1011011;〃显示”2”4f b0011 : seg<= 7^1001111;〃显示'3'4'b0100 : seg <=7^1100110; 〃显示”4”4^0101 : seg<= 7^1101101;〃显示”5”4^0110 : seg<= 7^1111101;〃显示”6”4'b0111 : seg<= 7^0000111;〃显示”7”4'bl000 : seg <= 7^1111111;4'bl001 seg <=g 曲*CW ulaion Kg LeC«l Hoti<Sxwiai Jlc XU*Sirrdat^rSatlioxiO Situldli (Brer w 釘| ◎ Ccrrc45boftRew!•... | 色 Ek.w* >•・ V«vef«r»sS>«ol*l i ・e ・od« TiaincI E *:.w7^1101111; // 显示”9”default:7P0111111;//不显示endcaseend endmodule三.仿真波形图IT - D;/t fic2/traffic - traffic 一 (Siaiolat ion Report - Sivulst ion曹 Z>Lo RdiQ vier "ojce, £s5i«rr-an« I«ol5 J>r 如生”seg<=1041kYiooiLin 1】10】1】 1】IO 】LomulOllll J10H1COO(01ICC010D 」I1UI0JumocjijuuvwuuuumifinwiRnjuinmfuuuiiifinnwuuuinjinmnjuu ififimuuuuuinnnjvuuuiJiG BOil Mil=3to 订“co 贩no»3 nca2 QClk r»t rst]38 <j>?TMoslcs Trr^Bar271邛 StatIcteivd 1205 m272MQ licl.il Q ltxhiz9:fl四.实物图。
课程设计---交通信号灯控制器

课程设计课程名称数字电子技术基础课题名称交通信号灯控制器专业应用物理班级学号课程设计任务书课程名称:数字电子技术题目:交通信号灯控制器专业班级:应用物理0801学生姓名:学号:指导老师:审批:任务书下达日期2011年6月06日星期一设计完成日期2011年6月17日星期五目录一、总体设计 (1)1.基本原理与设计思路 (1)2.总电路图 (3)二、单元电路分析 (4)1.用74LS160计数器构成5、21进制计数器 (4)2.D型锁存器构成控制电路 (6)三、故障分析与电路改进 (8)四、调试体会与总结 (9)五、附录 (10)1.元件器件清单 (10)2.课程设计成绩评分表 (11)一、总体设计1.基本原理与设计思路图1 交通控制灯电路设计& 如图1所示为交通控制电路设计方案图,根据概述中的设计思想及方法来实现下图(图2)的交通指示灯状态转换图中描述的指示灯的转换及每种状态维持的时间(用数码显示管来显示)。
南北向(主干道)绿灯亮时,东西向(支干道)红灯亮。
此时南北向上的车辆允许通行,东西向禁止通行。
绿灯亮足规定时间TL后,控制器发出状态转换信号ST,转到下一工作状态。
& 南北向(主干道)黄灯亮时,东西向(支干道)红灯亮。
此时东西向上的车辆禁止通行,南北向上已过停车线的车辆允许通行,未过停车线的车辆禁止通行。
黄灯亮足规定时间TY后,控制器发出状态转换信号ST ,转到下一工作状态。
& 南北向(主干道)红灯亮时,东西向(支干道)绿灯亮。
支干道上的车辆允许通行;绿灯亮足规定时间TL 后,控制器发出状态转换信号ST ,转到下一工作状态。
&南北向(主干道)红灯亮时,东西向(支干道)黄灯亮。
此时主干道上的车辆禁止通行,此时支干道上已过停车线的车辆允许通行,未过停车线的车辆禁止通行。
黄灯亮足规定时间TY 后,控制器发出状态转换信号ST ,转到第一种工作状态。
图2 交通指示灯状态转换图2.总电路图二、单元电路与分析1.用74LS160计数器构成5、21进制计数器图74LS160构成的5、21进制计数器计数器选用74LS160进行设计。
十字路口交通信号灯plc课程设计

十字路口交通信号灯plc课程设计一、课程目标知识目标:1. 让学生理解十字路口交通信号灯的工作原理,掌握PLC(可编程逻辑控制器)的基本概念和功能。
2. 培养学生运用PLC对交通信号灯进行编程控制的能力,了解相关传感器和执行器的应用。
3. 使学生掌握基本的电路图绘制方法,并能分析十字路口交通信号灯电路图。
技能目标:1. 培养学生运用PLC编程软件进行程序设计和调试的能力。
2. 培养学生动手实践操作,完成十字路口交通信号灯PLC控制系统的搭建和测试。
3. 培养学生团队协作和沟通能力,通过小组讨论、分析问题,共同解决实际问题。
情感态度价值观目标:1. 培养学生对PLC技术及其在交通控制领域应用的兴趣,激发学生探索新技术、新方法的热情。
2. 培养学生关注交通安全,提高社会责任感和道德素养,认识到科技在交通安全中的重要作用。
3. 培养学生勇于面对困难,善于分析问题,积极寻求解决方案的精神风貌。
本课程针对高年级学生,结合PLC技术原理和实践应用,以十字路口交通信号灯为载体,注重理论知识与实践技能的结合。
课程目标旨在使学生掌握PLC技术的基本知识和应用,培养实际操作能力,同时激发学生对交通安全和科技发展的关注,提高学生的综合素质。
通过分解课程目标为具体的学习成果,为后续教学设计和评估提供明确依据。
二、教学内容1. 理论知识:- PLC基本概念、结构、工作原理及分类- 交通信号灯系统组成及工作原理- 常用传感器和执行器的原理与应用- 交通信号灯控制逻辑及程序设计方法2. 实践操作:- PLC编程软件的使用及编程方法- 十字路口交通信号灯电路图的绘制与分析- PLC控制系统的搭建、调试与优化- 小组合作完成交通信号灯PLC控制系统的设计、实施与评价3. 教学大纲:- 第一阶段:PLC基本原理学习,交通信号灯系统认知(1课时)- 第二阶段:常用传感器、执行器原理学习,控制逻辑分析(2课时)- 第三阶段:PLC编程软件操作,交通信号灯编程方法(2课时)- 第四阶段:实践操作,小组合作完成交通信号灯PLC控制系统设计(3课时)4. 教材关联:- 《PLC原理与应用》第1章、第3章、第5章- 《自动化控制技术》第2章、第4章- 《交通信号控制系统》第3章、第4章教学内容根据课程目标进行选择和组织,确保科学性和系统性。
课程设计 交通信号灯控制器

目录1 选题背景 (3)1.1 指导思想 (3)1.2 方案论证 (3)1.3 基本设计任务 (3)1.4电路特点 (3)2 电路设计 (4)2.1 总体方框图 (4)2.2 工作原理 (4)3 各主要电路及部件工作原理 (5)3.1 555单稳态触发电路 (5)3.2计数器电路 (5)3.3控制电路 (6)3.4显示电路 (7)4 原理总图 (8)5 元器件清单 (9)6 调试过程及测试数据(或者仿真结果) (9)6.1 通电前检查 (9)6.2 通电检查 (9)6.2.1按钮开关的检查 (9)6.2.2 NE555单元电路的调试 (9)6.2.3计数器电路和显示电路的调试 (10)6.2.4 74LS112控制电路的调试 (10)6.2.5发光二极管的调试 (10)6.3 结果分析 (10)7 小结 (10)8 设计体会及今后的改进意见 (11)8.1 体会 (11)8.2 本方案特点及存在的问题 (11)8.3 改进意见 (11)参考文献 (12)正文1 选题背景随着人们生活水平的提高,私家车逐渐成为很多人首选的代步工具,然而如何解决私家车给交通带来的巨大压力,特别是如何保证十字路口车辆的通行有条不紊,这就需要设计出比较符合实际要求的、人性化的交通信号灯控制器。
1.1 指导思想通过555电路产生秒脉冲信号,计时器开始计数,再设计主控电路实现不同状态信号灯以及计数时间的转换,最后通过显示电路将信号灯以及计数时间显示出来。
1.2 方案论证方案一:通过脉冲驱动电路将秒脉冲信号转换成所需要的三种脉冲,即45s,5s,25s,然后通过74LS138译码器和主控电路在三种信号中进行转换和译码。
方案二:通过JK触发器和门电路实现控制信号的转换。
达到设定时间后反馈信号会给JK触发器一个脉冲使触发器的输出状态进行变化,继而通过门电路将输出信号进行处理使下个计数状态工作。
综合考虑,我们采用方案二。
方案一中将秒脉冲转换成45s,5s,25s三种信号需要大量的门电路,并且后面的计数和主控部分共同实现,逻辑性很强电路也很复杂。
交通灯控制器课程设计

目录
1 设计任务及要求 2 总体设计方案 3 控制电路设计
3.1 控制电路工作原理 3.2控制电路设计过程
4 倒计时电路设计
4.1具有同步置数功能的十进制减法计数器设计 4.2主干道和支干道倒计时电路设计
5 译码显示电路设计
5.1动态显示工作原理 5.2动态显示及译码电路设计
共阴极数码管:将每个数码管的公共端(阴极)分别接三-八译码器的输出, 三-八译码器的输入为位选信号;将多个数码管的相同段接在一起,作为段码 输入端。
七段译码
报告要求
CONTENTS
01 封面
02 目录:四号 宋体
03
正文:小四 宋体 1.5 倍行距
04 参考文献 :五号 宋体
一号 宋体
四号 宋体
由具有同步置数功能的十进制减法计数器实现。
将2片级联实现2位十进制减法计数器。
当主干道或者支干道减法计数器值为01时,产生同步置数信 号,将下一状态计数初值置入。
状态
S0
00
S1
01
S2
10
S3
11
主干道预置数
D7D6 D5D4
D3D2 D1D0
0000
0101
0101
0000
0000
0101
0110
○ 黄灯每秒闪亮一次。
总体方案
时钟
红绿 灯
控制器
交通灯控 制器的功 能框图
倒计时 计数器
数码 显示扫描
管
、译码
设主干道绿灯、黄灯、红灯分别为G1、Y1、R1;支 干道绿灯、黄灯、红灯分别为G2、Y2、R2,并且 均用0表示灭,1表示亮,则交通灯有如下四种输出 状态:
状态
简易交通信号灯控制器课程设计

简易交通信号灯控制器课程设计一、引言随着现代交通的发展,交通信号灯已经成为城市道路交通管制的重要手段,而交通信号灯控制器则是控制信号灯进行交通管制的核心设备。
为了培养具有较强通信工程和交通路面工程背景的人才,将通信工程、交通路面工程、信息处理等学科有机地结合,研究设计交通信号灯控制器是一项很有意义的学术探索。
本课程设计旨在通过深入研究交通灯控制原理、掌握交通信号灯控制器的硬件组成和软件设计方法,使学生深刻理解交通灯控制器的原理和应用,培养学生独立分析、解决问题和创新思维能力,为未来从事交通路面工程、通信工程等相关领域提供实用的技术知识和经验。
二、课程设计目标本次课程设计旨在使学生通过理论学习和实践操作,达到以下要求:1. 掌握交通信号灯控制器的工作原理和常见的控制策略;2. 熟悉AT89S52单片机结构和软件开发环境,通过实验充分了解单片机驱动硬件和编程方法;3. 了解交通信号灯控制器的硬件组成,掌握电路设计和PCB制作的方法;4. 掌握C语言编程方法,能够独立完成交通信号灯控制器的控制程序设计;5. 发扬团队合作精神,以小组形式完成课程设计,锻炼沟通协作能力。
三、课程内容本次课程设计分三个阶段,主要内容如下:1、理论学习学生首先需要了解交通信号灯的控制原理和常见的控制策略,包括定时控制、检测控制、人工控制和自适应控制等。
学生需要熟悉各种控制策略的特点、适用范围和优缺点,掌握交通信号灯控制器的工作原理和运作过程。
同时,学生还需要了解AT89S52单片机的硬件结构和编程环境,掌握单片机的驱动原理和编程方法。
2、硬件设计在课程的第二阶段,学生需要对交通信号灯控制器的硬件进行设计。
首先,学生需要根据需求设计整个系统的电路结构,包括时钟电路、外设控制电路、干扰电路等。
然后,学生需要使用PCB设计软件制作板子,对电路进行布线和制版,并对板子进行测试和调试,以保证电路正常运作。
3、软件开发在硬件设计完成后,学生需要对交通信号灯控制器的软件进行开发。
交通灯控制器数电课程设计

交通灯控制器数电课程设计交通灯控制器是一个常见的数电课程设计项目,下面是一个简单的交通灯控制器的设计方案:1. 需求分析:- 交通灯要能够按照规定的时间间隔不断切换状态。
- 交通灯的状态包括红灯、黄灯和绿灯,分别对应停止、警告和通行状态。
- 红灯、黄灯和绿灯的时间间隔可以根据实际需要进行调整。
2. 设计方案:- 使用数字时钟芯片,如NE555,来生成固定频率的时钟信号。
- 使用多路选择器,如74LS151,来选择不同的灯的状态输出。
- 使用逻辑门电路,如与门和或门,来实现灯的状态切换。
3. 设计步骤:- 使用时钟芯片来产生一个频率为1Hz的时钟信号。
- 使用分频器电路,如74LS90,将时钟信号的频率分为三等份,分别用于控制红灯、黄灯和绿灯的持续时间。
- 使用多路选择器74LS151,根据时钟信号的状态与分频器的控制信号,选择对应的灯输出高电平或低电平。
- 使用逻辑门电路,通过组合逻辑将时钟信号和选择器输出的灯状态进行控制,实现交通灯的状态切换。
4. 硬件设计:- 使用电路实验板、面包板或PCB板等硬件平台进行电路连接。
- 导入时钟芯片、分频器、多路选择器和逻辑门等器件。
- 连接器件之间的引脚,构建交通灯控制器电路。
5. 软件设计:- 使用VHDL、Verilog或其他HDL语言进行交通灯控制器的逻辑设计和仿真。
- 根据交通灯的时序要求设置时钟频率、分频器的初始状态和选择器的状态等参数。
- 通过仿真软件进行功能验证和时序分析,优化电路设计。
6. 实现与调试:- 将硬件连接完成后,使用示波器、逻辑分析仪等仪器对电路进行调试。
- 观察交通灯的状态是否按照预期进行切换。
- 根据实际需要调整各个灯的持续时间和时钟频率等参数,进行效果调试。
7. 总结:- 对交通灯控制器的设计进行总结和评估,包括可靠性、灵活性和可扩展性等方面。
- 提出改进方案,进一步优化交通灯控制器的设计。
注意事项:- 在设计过程中,要遵守相关的电路布线规范和安全操作规程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
燕山大学课程设计说明书题目:交通信号灯控制器学院(系):电气工程学院年级专业: 11级检测一班学号:学生姓名:指导教师:教师职称:燕山大学课程设计(论文)任务书院(系):电气工程学院基层教学单位:仪器科学与工程系说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。
年月日摘要日常交通对于人们的生活有极大的影响,因此对交通的控制也有很高的要求。
交通信号灯已不仅仅被看成一种用来指挥交通的工具,在很多实际应用中它还需要能够实现更多其它功能。
高精度、多功能、小体积、低功耗,是现代交通信号灯发展的趋势。
本课题设计正是基于这个方向设计一个符合指标要求的模拟交通信号灯控制器。
单片机特别是51系列的单片机,由于其使用方便、价格低廉等优势,在电子产品中的应用越来越广泛,在市场上占有很大的份额。
AT89C51就是51系列中的一个比较成熟的型号,它完全兼容51单片机的指令。
本课题设计是基于单片机技术原理,以单片机芯片AT89S51作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计出的一个模拟交通信号灯控制系统。
该控制系统包括了。
设计以硬件和软件相结合为指导思想,通过软件编程实现系统大部分功能,电路简单明了,系统稳定性高。
主要硬件有:AT89C51单片机、八段数码管、LED和按键等。
软件采用C语言编写实现,并依据程序应用Keil、Protues进行了调试,对出现的问题进行分析和反复修改,最终得到正确并符合设计要求的结果。
设计完成的模拟交通信号灯控制器能够准确指挥交通,控制精确、体积小、功耗低,具有很强的实用性。
目录第一章、课题简介 .............................. 错误!未定义书签。
1.1引言 (1)1.2课设内容 (1)第二章、AT89C51单片机简介 (2)2.1单片机引脚介绍 (2)2.2定时器介绍 (3)2.3定时器初值的计算 (4)第三章、硬件总体结构设计 (5)3.1单片机最小系统 (5)3.2LED灯显示原理 ................................ 错误!未定义书签。
3.3数码管显示原理 (7)3.4芯片介绍...................................... 错误!未定义书签。
第四章、软件设计 (10)4.1单片机程序开发流程 (10)4.2程序流程图 (11)4.仿真电路 (12)4.5电路仿真结果 (14)总结 (15)参考文献 (16)附录源程序 (17)第一章课设简介1.1 引言我国经济的快速发展,车辆的增多,交通拥挤问题日益严重。
在不断拓宽交通道路以及修建新的交通要道的同时,交通信号灯的用途变得更加明显。
随着科学技术发展的日新月异、不断发展,自动化、智能化、功能多样化越来越成为电气控制的主流。
“ 交通信号灯控制系统”就是在单片机的基础上开发出来的。
我们也应当适当地改善信号灯的功能,使其日益完善,满足现在交通的要求。
在以往的交通信号灯中,东西南北方向的通行时间是固定的,不论路上的车辆是多是少。
现在为了使交通更加流畅,更有秩序,我们可以在以往得基础上,加上按键,用以控制突发事件和交通拥挤等。
基于以上考虑,我们提出了这个课题要求,进行设计,并模拟和仿真。
1.2课设内容该控制器能实现城市“十字”路口正常情况下以及特殊情况和紧急情况下交通信号灯的模拟控制。
1、在十字路口东西南北各设置红、黄、绿三种信号灯,正常情况下,东西(A线)、南北(B线)方向轮流放行。
当东西方向(A线)放行、南北方向(B线)禁行时,东西方向(A线)绿灯亮10秒,然后黄灯亮5秒,南北方向(B线)红灯亮15秒;当南北方向(B线)放行、东西方向(A线)禁行时,南北方向(B线)绿灯亮10秒,然后黄灯闪烁5秒,东西方向(A线)红灯亮15秒。
如此循环,实现交通灯定时控制,其示意图如图1.1所示。
当有救护车通过时,所有的红灯亮起,数码管熄灭,同时蜂鸣器触发响起。
10秒后,交通灯恢复原状,并重新开始倒计时。
第二章、AT89C51单片机简介2.1引脚简介单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。
⒈电源:⑴ VCC - 芯片电源,接+5V;⑵ VSS - 接地端;⒉时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。
⒊控制线:控制线共有4根,⑴ ALE/PROG:地址锁存允许/片内EPROM编程脉冲① ALE功能:用来锁存P0口送出的低8位地址② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
⑵ PSEN:外ROM读选通信号。
⑶ RST/VPD:复位/备用电源。
① RST(Reset)功能:复位信号输入端。
② VPD功能:在Vcc掉电情况下,接备用电源。
⑷ EA/Vpp:内外ROM选择/片内EPROM编程电源。
① EA功能:内外ROM选择端。
② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
⒋ I/O线80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。
P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。
2.2定时器/计数器简介定时器/计数器模式控制寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址,其字节地址为89H。
其格式为:其中低四位定义定时器/计数器C/T0,高四位定义定时器/计数器C/T1,各位的说明:GATE——门控制。
GATE=1时,由外部中断引脚INT0、INT1来启动定时器T0、T1。
当INT0引脚为高电平时TR0置位,启动定时器T0;当INT1引脚为高电平时TR1置位,启动定时器T1。
GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。
C/T——功能选择位C/T=0时为定时功能,C/T=1时为计数功能。
置位时选择计数功能,清零时选择定时功能。
M0、M1——方式选择功能由于有2位,因此有4种工作方式:M1M0 工作方式计数器模式 TMOD(设置定时器模式)0 0 方式0 13位计数器 TMOD=0x000 1 方式1 16位计数器 TMOD=0x011 0 方式2 自动重装8位计数器 TMOD=0x021 1 方式 3 T0分为2个8位独立计数器,T1为无中断重装8位计数器TMOD=0x03单片机定时器0设置为工作方式1为TMOD=0x01TCON: 定时器/计数器控制寄存器(TIMER/COUNTER CONTROL REGISTER)TMOD分成2段,TCON控制更加精细,分成四段,在本文中只要用到高四段。
TF0(TF1)——计数溢出标志位,当计数器计数溢出时,该位置1。
TR0(TR1)——定时器运行控制位当TR0(TR1)=0 停止定时器/计数器工作当TR0(TR1)=1 启动定时器/计数器工作IE0(IE1)——外中断请求标志位当CPU采样到P3.2(P3.3)出现有效中断请求时,此位由硬件置1。
在中断响应完成后转向中断服务时,再由硬件自动清0。
IT0(IT1)——外中断请求信号方式控制位当IT0(IT1)=1 脉冲方式(后沿负跳有效)当IT0(IT1)=0 电平方式(低电平有效)此位由软件置1或清0。
TF0(TF1)——计数溢出标志位当计数器产生计数溢出时,此位由硬件置1。
当转向中断服务时,再有硬件自动清0。
计数溢出的标志位的使用有两种情况:采用中断方式时,作中断请求标志位来使用;采用查询方式时,作查询状态位来使用。
2.3定时初值的计算如果是16位的计数器,16位最大值是65535,共可计数65536次。
基本的常数一定要记住,还要记住8位最大值是255,共可计数256次,还要记住8位上每位代表的数值。
12 * 65536/11059200 = 0.0711 s,也就是,71 ms内的定时可以单次定时就完成。
如果定时时间超过71 ms,就要循环了。
一次定时需要几次机器周期:计算公式:定时秒数/机器周期比如我要定时1秒, 1/(12/11059200)= 921600次,16位计数器最大可计数65536次,921600次早就益出了。
我们可以每次定时10 ms,循环100次就可以定时1秒了,1 s缩小100百倍就是10 ms, 也就是每次需要计数9216次。
确实计数器初始值:定时10 ms时,如果计数器从0开始计数,我们就不知道什么时候到了9216次。
所以应该计数了9216次,16位计数器最多计数95536次,然后就溢出,一溢出TCON的TF位就会置1,我们只要经常检测TF位就可以知道什么时候完成10ms的定时了。
计算公式:计数器初始值=最大计数次数 - 需要计数次数如果定时10 ms,计数器的初始值就是 65536 - 9216计算计数器的高位和低位:16位的计数器,也就是两个8位组成,8位的最大计数次数是256。
所以: 计数器高位 = 初始值/256计数器低位 = 初始值%256第三章、系统硬件电路设计硬件设计是整个系统的基础,要考虑的方面很多。
除了实现本设计基本功能以外,还要考虑如下几个因素:①系统稳定度;②器件的通用性或易选购性;③软件编程的易实现性;④系统其它功能及性能指标。
好的硬件设计会节省程序步骤。
3.1 单片机最小系统单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。
它由单片机、时钟电路、复位电路等组成。
为了简化电路、降低成本、提高可靠性,本设计采用AT89S51作为主控制器,外加一些控制电路来实现时钟的基本功能。
通常, 将完成单片机最基本功能, 没有外围器件及外设接口扩展的系统称之为单片机最小系统, 简称最小系统。
根据系统设计要求,结合性能分析,设计的单片机最小系统如图3.1所示。
AT89C51单片机有一个用于构成内部振荡器的反相放大器,反相放大器的输入端为XTAL1,输出端为XTAL2,两端连接石英晶体及两个瓷片电容形成稳定的自激振荡器。
在本次设计中电容均取22pF,石英晶体的振荡频率选12MHz。
复位是单片机的初始化操作,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。
复位电路则是实现这一功能的实际执行者, 它应该使高电平的复位信号持续两个机器周期以上。
常用的复位电路有上电复位和手动复位两种,本设计中的复位电路集手动复位及上电复位于一体:1、上电复位是通过外部复位电路的22uF电容的充电来实现的,这样只要电源VCC的上升时间不超过1ms,就可以实现自动上电复位。
2、按键手动复位是通过使复位端经电阻与VCC接通而实现的。
图3.1 单片机最小系统3.2 LED灯电路显示部分主要是数码管和LED灯。
LED是一种注入式电致发光器件,它由P型和N型半导体组合而成。