单片机课程设计报告交通灯

合集下载

单片机课程设计交通灯(完整版)

单片机课程设计交通灯(完整版)
3.5.3.特性
门控串行数据输入
异步中央复位
符合 JEDEC 标准 no.7A
静电放电 (ESD) 保护:
·HBM EIA/JESD22-A114-B 超过 2000 V
·MM EIA/JESD22-A115-A 超过 200 V 。
多种封装形式
额定从-40 °C至 +85 °C和-40 °C至 +125 °C。
设计思想基于完成以上任务分析结合所学有关知识尤其是本学期所学关于单片机的中断系统和定时计数器的相关知识及应用我们知道对于15红绿黄四组各三盏灯的控制可以通过把这十二盏灯分别接到单片机的六个输出引脚若用p1口进行输出则分配如下at89c51l1l2l3l4l5l6东西红东西黄东西绿南北红南北黄南北绿led显示分布1642
亮灯规律:东西绿灯亮25s,南北红灯亮25s
东西绿灯闪5s,南北红灯亮5s
东西黄灯亮2s,南北红灯亮2s
东西红灯亮25s,南北绿灯亮25s
东西红灯亮5s,南北绿灯闪5s
东西红灯亮2s,南北黄灯亮2s
2.2.
(1)加强对单片机和汇编语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。
3.2.LED
3.2.1.七段数码显示器:
七段发光线段分别用a、b、c、d、e、f、g七个小写字母表示。
3.2.2.LED数码管:
半导体数码管又称LED数码管,是一种广泛使用的显示器件。LED有两种:共阳极型和共阴极型。
LED优点:亮度高、字形清晰,工作电压低(1.5~3V)、体积小、可靠性高、寿命长,响应速度极快。
1.引言
交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

单片机实训报告交通灯

单片机实训报告交通灯

一、实训背景与目的随着城市化进程的加快,交通流量日益增大,传统的交通灯控制系统已经无法满足日益复杂的交通需求。

为了提高交通效率,减少交通拥堵,本实训项目旨在设计并实现一套基于单片机的智能交通灯控制系统。

通过本实训,学生可以深入了解单片机原理,掌握单片机编程与调试技巧,同时锻炼动手实践能力和团队协作精神。

二、系统设计1. 系统组成本系统主要由以下模块组成:单片机模块:采用AT89C52单片机作为核心控制单元,负责接收传感器信号、处理数据、控制交通灯状态等。

传感器模块:包括红外传感器、地磁传感器等,用于检测车辆和行人,实时获取交通信息。

执行模块:包括LED灯、继电器等,用于驱动交通灯和信号灯。

显示模块:采用LCD显示屏,用于显示交通灯状态、倒计时等信息。

电源模块:为系统提供稳定电源。

2. 工作原理系统工作原理如下:(1)单片机初始化,设置各模块参数。

(2)单片机通过传感器模块检测交通情况,如车辆和行人数量。

(3)单片机根据检测到的交通情况,控制交通灯和信号灯的亮灯状态。

(4)LCD显示屏显示交通灯状态和倒计时信息。

(5)当系统检测到紧急情况时,如行人过马路,系统自动切换到紧急模式,确保行人安全。

三、硬件设计1. 单片机模块选用AT89C52单片机作为核心控制单元,具有以下特点:内置8K字节闪存,可存储程序和数据。

内置8位定时器/计数器,可进行定时或计数操作。

内置串行通信接口,可进行数据通信。

2. 传感器模块红外传感器:用于检测车辆和行人,实现自动控制。

地磁传感器:用于检测车辆行驶方向,实现左转和直行控制。

3. 执行模块LED灯:用于显示交通灯状态。

继电器:用于驱动信号灯。

4. 显示模块采用LCD显示屏,用于显示交通灯状态、倒计时等信息。

5. 电源模块采用DC 12V电源,为系统提供稳定电源。

四、软件设计1. 编程语言采用C语言进行编程,具有以下优点:语法简单,易于理解。

可移植性好,可在不同平台上运行。

单片机电子课程设计交通灯

单片机电子课程设计交通灯

单片机电子课程设计交通灯交通灯常见于城市道路、车站、机场、海港等交通要冲,是一种用信号灯控制各车辆行驶、停车的交通工具。

而单片机技术正是为了实现智能交通而应运而生的,因此,我们可以通过设计交通灯的单片机电路来实现流程自动化,避免了人工操作不方便的弊端。

一、需求分析交通灯在不同场合下有不同的物理参数要求,不同的拓扑结构也会影响其电气参数的差异。

为了更好的符合实际需求,我们先进行需求分析:1. 主控芯片:采用单片机STC89C52,因为这款单片机要比其它的芯片更加亲民,支持到C语言,所以很受工程师们的欢迎。

2. 输入电压:12V左右,输入电压需要与单片机匹配。

3. 信号灯:使用三个LED灯组成信号灯,包括红、绿、黄三个灯,这也是所有交通灯的通用范式。

4. 播放器:交通灯需要有一个提示音来唤醒周围乘客的注意,使用一个嗡嗡声的蜂鸣器来实现这个功能。

二、硬件设计主要包括电源部分,人机交互部分和输出部分。

1. 电源部分:整个交通灯主要由一个电源进行供电,这个电源需要输入片内的电路以及输出到LED灯、蜂鸣器等。

2. 人机交互部分:由于本交通灯是一种提示型的交通工具,因此需要设计一个LED灯和蜂鸣器与主控单片机相连,当在运行时,单片机向蜂鸣器发送数据,嗡嗡声为“开始”,当交通灯需要改变状态时,再次发送数据,交通灯会判断状态,根据状态切换LED灯颜色。

3. 输出部分:输出部分主要是三个LED灯,分别为红、黄、绿色,蜂鸣器则是用于提示音的唤醒。

三、软件设计在软件设计中,我们主要是用C语言编写交通灯的驱动程序,并将其应用于单片机的开发板之上。

1.驱动程序设计:我们需要在单片机上编制驱动程序。

该驱动程序主要包括交通灯的启动和状态轮询。

当驱动程序启动时,单片机会向蜂鸣器发送几个分别代表交通灯状态的字符。

状态的不同时,LED灯的颜色也会发生变化,同时蜂鸣器会再次响起提示音。

2.调试程序:调试交通灯程序时,我们需要模拟各种交通状态,并通过改变状态的方式对交通灯进行测试,确保其在各种状态下都能够正常工作,避免了交通事故发生后,将灯的控制交给交警的尴尬做法。

交通灯单片机课程设计报告

交通灯单片机课程设计报告

课程设计报告:交通灯单片机控制系统1. 设计目的本课程设计旨在让学生通过使用单片机开发一个简单的交通灯控制系统来加深对单片机编程和控制原理的理解。

该系统可以模拟道路上的交通灯,实现红灯、绿灯和黄灯的循环控制,并可以通过按键进行手动控制。

2. 设计原理2.1 交通灯状态交通灯状态包括红灯、黄灯和绿灯,它们按照固定的时间间隔循环切换。

2.2 按键控制设计中使用一个按键用于手动控制交通灯状态切换。

按下按键时,会切换到下一个灯状态。

3. 硬件方案3.1 单片机本设计采用ATmega328P单片机,它具有足够的GPIO引脚用于控制交通灯的LED。

3.2 LED使用红色、黄色和绿色LED模拟交通灯的三种状态。

3.3 按键一个按键连接到单片机的GPIO引脚,用于手动切换交通灯状态。

4. 软件方案4.1 控制逻辑编写单片机程序,实现交通灯状态的循环切换和按键控制逻辑。

4.2 定时器使用定时器来控制交通灯状态切换的时间间隔。

4.3 中断配置按键的中断,以便在按下按键时进行状态切换。

5. 实施过程连接硬件组件,包括LED、按键和单片机。

编写单片机程序,包括交通灯状态切换逻辑、定时器配置和按键中断处理。

编译并烧录程序到单片机。

运行程序,观察交通灯的状态切换和按键控制是否正常。

6. 测试结果经过测试,交通灯控制系统能够正常运行。

交通灯状态按照预定的时间间隔循环切换,同时按下按键可以手动切换状态,符合设计要求。

7. 问题解决在实施过程中,遇到了一些问题,如硬件连接错误和程序逻辑错误。

通过仔细检查和调试,成功解决了这些问题。

8. 总结本课程设计使我深入了解了单片机编程和控制系统的原理,通过实际动手操作,更好地掌握了这些概念。

设计交通灯控制系统是一个有趣且教育性的项目,我对单片机编程有了更深入的理解,这对我的学习和职业发展都有所帮助。

这个示例课程设计报告可以作为参考,你可以根据具体的课程设计要求和硬件平台的不同来进行调整和扩展。

单片机课程设计报告1 交通灯

单片机课程设计报告1 交通灯

单片机课程设计报告1 交通灯1. 引言本文档是单片机课程设计的报告,主题为交通灯。

交通灯是城市交通管理的重要组成部分,合理的交通灯设置可以提高交通效率、保障交通安全。

本文将介绍交通灯的设计方案、实现过程以及遇到的问题及解决方法。

2. 设计方案2.1 总体设计思路本次交通灯设计采用的是基于单片机的控制系统。

通过在单片机上编程设计,控制交通灯的状态和时间,实现交通灯的自动切换,并保证交通流畅。

2.2 硬件设备本次设计所需的硬件设备包括:•单片机:采用STC89C52型单片机•交通灯信号灯模块:包括红灯、黄灯、绿灯三个灯泡及控制电路板•电源模块:用于提供电力供给2.3 软件设计本次设计的软件部分主要包括:•交通灯控制程序:通过编写程序控制单片机,实现交通灯的自动切换3. 实现过程3.1 准备工作在开始设计之前,我们首先进行了一些准备工作。

包括准备好所需的硬件设备,如单片机、交通灯信号灯模块和电源模块;同时也对单片机进行了初始化配置,以及编写好了交通灯控制程序的框架。

3.2 硬件连接我们将单片机与交通灯模块进行连接。

具体的连接方式如下:1.将单片机的IO口与交通灯模块的各个灯泡的控制引脚相连,以实现对灯泡亮灭的控制。

2.将电源模块与单片机进行连接,以提供电力供给。

3.3 软件设计与编程在硬件连接完成后,我们开始着手进行软件设计和编程。

主要的步骤包括:1.定义交通灯的状态:根据交通灯的信号变化规律定义交通灯状态,如红灯亮、黄灯亮、绿灯亮等。

2.编写控制程序的逻辑:根据交通灯的状态定义,编写控制程序的逻辑,实现不同状态之间的切换和持续时间的控制。

3.编程实现:根据以上设计,在单片机上编写程序,并通过烧录将程序烧录到单片机上。

3.4 测试与调试在程序编写完成后,我们进行了测试与调试。

通过在交通灯工作状态下的观察与测试,我们可以判断出程序是否符合设计要求,并进行必要的调试。

4. 遇到的问题与解决方法在设计与实现过程中,我们遇到了一些问题,具体包括:•问题1:单片机与交通灯模块的连接出现问题,导致交通灯无法正常工作。

单片机课程设计(交通灯程序)

单片机课程设计(交通灯程序)

单片机课程设计基于单片机的交通灯设计2007.07.05 一.设计目的:1、通过交通信号灯控制系统的设计,掌握8255A并行口传输数据的方法,以控制发光二极管的亮与灭;2、用8255作为输出口,控制十二个发光二极管熄灭,模拟交通灯管理.3、通过单片机课程设计,熟练掌握汇编语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力;4、完成控制系统的硬件设计、软件设计、仿真调试。

二.设计要求:交通信号灯模拟控制系统设计利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并且用LED数码管显示时间。

用8051做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。

在一个交通十字路口有一条主干道(东西方向),一条从干道(南北方向),主干道的通行时间比从干道通行时间长,四个路口安装红,黄,蓝,灯各一盏;1、设计一个十字路口的交通灯控制电路,要求南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,时间可设置修改。

2、在绿灯转为红灯时,要求黄灯先亮,才能变换运行车道3、黄灯亮时,要求每秒闪亮一次。

4、东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法)。

5、同步设置人行横道红、绿灯指示。

三.设计任务和内容:任务:设计一个能够控制十二盏交通信号灯的模拟系统。

并且要求交通信号灯按照交通规则的模试来运行。

内容:因为本课程设计是交通灯的控制设计,所以要了解实际交通灯的变化情况和规律。

假设一个十字路口为东西南北走向。

初始状态0为东西红灯,南北红灯。

然后转状态1东西红灯,南北绿灯通车,。

过一段时间转状态2南北绿灯灭,黄灯闪烁几次,东西仍然红灯。

再转状态3,东西绿灯通车,南北红灯。

过一段时间转状态4,东西绿灯灭,闪几次黄灯,南北仍然红灯。

最后循环至状态1。

四.控制系统的总体要求:1.执行程序时,初始态为四个路口的红灯全亮之后;2.东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车;3.延时一段时间后,东西路口的绿灯熄灭,黄灯开始延时并且开始闪烁,闪烁5次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车;4.延时一段时间之后,南北路口的绿灯熄灭,黄灯开始延时并且开始闪烁,闪烁3次之后,再切换到东西路口方向;之后重复2到4过程。

单片机课程设计交通灯总结

单片机课程设计交通灯总结

单片机课程设计交通灯总结在单片机课程设计中设计交通灯控制系统是一个常见而有趣的项目。

以下是一个关于交通灯控制系统单片机课程设计的总结:设计目标:实现一个模拟交通路口的交通灯控制系统,包括红灯、绿灯、黄灯状态的切换,考虑不同方向车辆的通行情况。

硬件与软件要求:1.使用单片机(如AT89C51)作为主控制器。

2.连接LED灯模拟交通灯的红、黄、绿三个状态。

3.设置按钮或传感器来模拟车辆和行人的触发信号。

4.使用编程语言(如C语言)编写单片机程序,实现交通灯的状态切换逻辑。

设计步骤:1.确定交通灯状态:定义红、黄、绿三个状态,确定每个状态的持续时间。

2.设计状态切换逻辑:编写程序逻辑,根据不同的触发条件切换交通灯的状态。

例如,通过按钮触发或设置定时器来模拟车辆和行人的触发。

3.处理不同方向的通行:考虑路口不同方向的车辆通行情况,确保交通灯切换的合理性。

可以设置不同方向的灯的状态互斥。

4.实现程序代码:使用C语言等编写程序代码,并通过编译器将代码烧录到单片机中。

5.调试与优化:在实际硬件上进行调试,确保交通灯的状态切换和触发条件的逻辑正确。

根据实际情况优化代码,提高系统的稳定性和可靠性。

设计成果:成功设计并实现了一个交通灯控制系统,具有良好的交互性和可扩展性。

系统能够模拟真实路口的交通流量情况,通过合理的状态切换实现车辆和行人的有序通行。

学到的知识与技能:1.掌握单片机编程技能,包括IO口控制、定时器使用等。

2.熟悉硬件与软件协同设计的过程。

3.提高了系统设计和调试的能力。

4.学习了如何考虑不同方向车辆通行情况,提高了系统的实用性。

反思与展望:通过这个项目,我更深入地理解了单片机的工作原理和编程技术。

在未来,可以考虑增加更多的功能,如紧急情况下的交通灯切换、LED显示屏显示等,以提高系统的智能化和实用性。

这个课程设计不仅锻炼了我的技术能力,也培养了我对系统设计的整体思考能力。

单片机课程设计报告 交通灯控制

单片机课程设计报告 交通灯控制

ORG 0H ;入口地址LJMP MAINORG 0013HLJMP INTMAIN: SETB EA ;开中断SETB EX1 ;外部中断1SETB PX1SETB IT1 ;允许定时器T1MOV TMOD,#10H ;设置工作方式LOOP31:MOV R3,#2DHMOV R1,#00HMOV DPTR,#TABMOV A,R1MOVC A,@A+DPTR ;查表MOV R5,#05HMOV R4,#00HMOV 7AH,R5 ;显示缓冲区首地址MOV 79H,R4MOV P1,A ;P1口显示LCALL DISP ;显示程序LOOP: LCALL DISPMOV R2,#0AHLOOP2:LCALL DISPMOV TH1,#3CH ;设置计数初值MOV TL1,#0B0HSETB TR1 ;启动LOOP1:LCALL DISPJNB TF1,LOOP1CLR TF1DJNZ R2,LOOP2 ;1s定时MOV A,R4MOV R7,AINC R7DEC R4DJNZ R7,LOOP40MOV R4,#09HDEC R5LOOP40:MOV 7AH,R5 ;数码管显示MOV 79H,R4LCALL DISPDJNZ R3,LOOPINC R1MOV A,R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P1,A ;黄灯亮数码管显示5s MOV R5,#00HMOV R4,#05HMOV 7AH,R5MOV 79H,R4LCALL DISPLCALL DISPMOV R2,#0AHLOOP20:LCALL DISP ;100ms定时MOV TH1,#3CHMOV TL1,#0B0HLOOP3:LCALL DISPJNB TF1,LOOP3CLR TF1DJNZ R2,LOOP20 ;1s定时MOV R5,#00H ;MOV R4,#04HMOV 7AH,R5MOV 79H,R4LCALL DISPINC R1MOV A,R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P1,A ;黄灯闪烁MOV R2,#0AHLOOP21:LCALL DISPMOV TH1,#3CHMOV TL1,#0B0HLOOP4:LCALL DISPJNB TF1,LOOP4CLR TF1DJNZ R2,LOOP21MOV R5,#00H ;MOV R4,#03HMOV 7AH,R5MOV 79H,R4LCALL DISPINC R1MOV A,R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P1,ALOOP22:LCALL DISPMOV TH1,#3CHMOV TL1,#0B0HLOOP5:LCALL DISP ;显示两秒,黄灯灭JNB TF1,LOOP5CLR TF1DJNZ R2,LOOP22MOV R5,#00H ;MOV R4,#02HMOV 7AH,R5MOV 79H,R4LCALL DISPINC R1MOV A,R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P1,AMOV R2,#0AHLOOP23:LCALL DISPMOV TH1,#3CHMOV TL1,#0B0HLOOP6:LCALL DISP ;黄灯亮JNB TF1,LOOP6CLR TF1DJNZ R2,LOOP23MOV R5,#00H ;MOV R4,#01HMOV 7AH,R5MOV 79H,R4LCALL DISPINC R1MOV A,R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P1,AMOV R2,#0AHLOOP24:LCALL DISPMOV TH1,#3CHMOV TL1,#0B0HLOOP7: LCALL DISPJNB TF1,LOOP7CLR TF1DJNZ R2,LOOP24MOV R4,#00HMOV 7AH,R5MOV 79H,R4LCALL DISP ;数码管显示0INC R1MOV A,R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P1,A ;查表,黄灯灭MOV R5,#05H ;MOV R4,#00H ;循环MOV 7AH,R5MOV 79H,R4LCALL DISPMOV R3,#2DHLOOP25:LCALL DISPMOV R2,#0AHLOOP8:LCALL DISPMOV TH1,#3CHMOV TL1,#0B0HLOOP9:LCALL DISPJNB TF1,LOOP9CLR TF1DJNZ R2,LOOP8 ;1s计时MOV A,R4MOV R7,AINC R7DEC R4DJNZ R7,LOOP41MOV R4,#09HDEC R5LOOP41:MOV 7AH,R5MOV 79H,R4LCALL DISPDJNZ R3,LOOP25 ;50递减至45 INC R1MOV A,R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P1,A ;黄灯亮MOV R5,#00H ;MOV R4,#05HMOV 7AH,R5MOV 79H,R4LCALL DISPMOV R2,#0AHLOOP26:LCALL DISPMOV TH1,#3CHMOV TL1,#0B0HLOOP10:LCALL DISPJNB TF1,LOOP10CLR TF1DJNZ R2,LOOP26INC R1MOV A,R1 ;黄灯闪烁MOV DPTR,#TABMOVC A,@A+DPTRMOV P1,AMOV R5,#00H ;MOV R4,#04HMOV 7AH,R5MOV 79H,R4LCALL DISPMOV R2,#0AHLOOP27:LCALL DISPMOV TH1,#3CHMOV TL1,#0B0HLOOP11:LCALL DISP ;1s定时,黄灯亮显示3s JNB TF1,LOOP11CLR TF1DJNZ R2,LOOP27INC R1MOV A,R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P1,AMOV R5,#00H ;MOV R4,#03HMOV 7AH,R5MOV 79H,R4LCALL DISPMOV R2,#0AHLOOP28:LCALL DISPMOV TH1,#3CHMOV TL1,#0B0HLOOP12:LCALL DISP ;定时1s黄灯交替闪烁JNB TF1,LOOP12CLR TF1DJNZ R2,LOOP28INC R1MOV A,R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P1,AMOV R5,#00H ;MOV R4,#02HMOV 7AH,R5MOV 79H,R4LCALL DISP ;数码管显示MOV R2,#0AHLOOP29:LCALL DISPMOV TH1,#3CHMOV TL1,#0B0HLOOP13:LCALL DISPJNB TF1,LOOP13CLR TF1DJNZ R2,LOOP29 ;1s定时INC R1MOV A,R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P1,AMOV R5,#00H ;MOV R4,#01HMOV 7AH,R5MOV 79H,R4LCALL DISP ;显示MOV R2,#0AHLOOP30:LCALL DISPMOV TH1,#3CHMOV TL1,#0B0HLOOP14:LCALL DISPJNB TF1,LOOP14CLR TF1DJNZ R2,LOOP30INC R1MOV A,R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P1,AMOV R5,#00H ;MOV R4,#00HMOV 7AH,R5MOV 79H,R4LCALL DISPLJMP LOOP31TAB:DB 0CH,14H,04H,14H,04H,14H,21H,22H,20H,22H,20H,22H ;P1口控制INT: MOV A,P1ZT: JB P3.0,HF ;开关控制MOV P1,#24HSJMP ZTHF: MOV P1,ARETIDISP:MOV DPTR,#0FF20H ;命令口MOV A,#03HMOVX @DPTR,AMOV R6,#01HMOV R0,#79HMOV A,@R0MOV DPTR,#TAB1MOVC A,@A+DPTRMOV DPTR,#0FF22H ;段选MOVX @DPTR,AMOV DPTR,#0FF21HMOV A,R6MOVX @DPTR,A ;位选LCALL DELLINC R0MOV A,@R0MOV DPTR,#TAB1MOVC A,@A+DPTRMOV DPTR,#0FF22HMOVX @DPTR,AMOV DPTR,#0FF21HMOV A,R6RL AMOVX @DPTR,ALCALL DELLRETDELL:MOV 32H,#0FFH ;延时程序LOOP36:DJNZ 32H,LOOP36RETTAB1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END。

单片机课程设计(交通灯、秒表)

单片机课程设计(交通灯、秒表)

单片机课程设计
在单片机课程设计中,学生通常会接触到各种实际的应用场景,比如交通灯控
制和秒表功能。

这些实际项目既能帮助学生巩固所学的理论知识,又能培养他们的实际动手能力和解决问题的能力。

交通灯设计
项目简介
交通灯控制是一个常见的单片机应用项目,通过控制红绿灯的亮灭顺序,模拟
实际道路的交通流量控制。

学生可以通过这个项目了解控制流程和时序控制。

设计思路
在这个项目中,学生可以设计一个简单的交通灯系统,包括红灯、黄灯和绿灯。

他们需要考虑如何控制各个灯的亮灭顺序,以及红绿灯的时间间隔。

实现步骤
1.设计红绿灯的控制逻辑,确定各个灯的亮灭顺序。

2.编写程序,实现控制逻辑。

3.测试程序,检查红绿灯的切换顺序和时间间隔是否符合要求。

秒表设计
项目简介
秒表是用来计时的工具,通常用于测量短暂时间间隔。

在单片机课程设计中,
学生可以通过设计秒表项目来巩固定时器的使用和计时逻辑。

设计思路
学生可以设计一个简单的秒表系统,通过单片机的定时器功能实现计时功能。

他们需要考虑如何初始化计时器、开始计时、暂停计时和重置计时。

实现步骤
1.初始化定时器,设置时间间隔。

2.编写计时功能的程序,包括开始、暂停和重置功能。

3.测试程序,检查计时功能是否准确。

总结
通过交通灯和秒表项目的设计,学生可以巩固单片机的编程技能和实际应用能力。

这些项目不仅有助于加深对单片机工作原理的理解,还可以培养学生解决实际问题的能力。

希望学生在完成这些项目的过程中,能够不断学习和进步,成为优秀的单片机工程师。

单片机交通灯实验报告

单片机交通灯实验报告

单片机交通灯实验报告交通灯是城市交通管理的重要组成部分,它能够规范车辆和行人的通行秩序,保障交通安全。

为了进一步学习交通灯的原理和掌握其设计,我们进行了一次单片机交通灯实验。

本次实验使用单片机和几个LED灯,通过对单片机的编程控制来实现交通灯的自动切换。

下面是我对该实验进行的详细记录和分析。

首先,我们需要连接电路。

我们采用的是STC89C52单片机,使用3个LED灯来模拟红灯、黄灯和绿灯。

利用杜邦线将LED灯连接到单片机的GPIO口,另外还需要连接一个电位器到单片机的模拟口,用来控制红灯亮灭的时间。

接下来,我们进行了单片机的编程。

我们使用C语言编写程序,利用单片机提供的GPIO口控制LED灯的亮灭,从而实现交通灯的控制。

我们通过控制红灯、黄灯和绿灯的亮灭时间,模拟真实交通灯的工作。

在编写程序的过程中,我们首先做了一些准备工作。

我们初始化了单片机的GPIO口,设定了红灯、黄灯和绿灯的引脚。

然后,我们使用一个循环语句不断地进行交通灯的切换。

具体来说,我们将交通灯控制划分为红灯、绿灯和黄灯三个状态,利用if-else语句对不同状态进行判断并进行相应的控制。

通过对红灯亮灭时间的控制,我们能够实现交通灯的自动切换。

在程序设计的过程中,我们还考虑了交通灯的变化时间。

我们在红灯和绿灯之间设置了一个黄灯过渡时间,以模拟真实交通灯的工作。

同时,我们还设置了一个迟滞时间,使得每个状态之间的切换更加顺滑。

通过这次实验,我们进一步了解了交通灯的工作原理和掌握了单片机的编程技巧。

通过对交通灯的模拟,我们成功地实现了交通灯的自动切换。

总结起来,这次实验不仅提高了我们对交通灯的认识,还锻炼了我们的动手能力和创新思维。

在今后的学习和工作中,我们将继续学以致用,将所学的知识应用到实际问题中。

让我们共同努力,为交通安全做出贡献。

基于单片机的交通灯设计报告

基于单片机的交通灯设计报告

基于单片机的交通灯设计报告交通灯是指示交通流动规则的电子设备,它在道路交叉口上起到了至关重要的作用。

为了更好地控制交通流量,减少交通事故的发生,本文介绍了一个基于单片机的交通灯设计。

首先,整个系统采用STM32单片机作为控制器,具有较强的处理能力和稳定性。

该单片机集成了丰富的外设资源,包括GPIO口、定时器和串口等,能够实现交通灯的各种功能。

系统中的交通灯分为红、黄、绿三种信号灯,分别代表停车、准备出发和通行的指示。

这三种信号灯按照交通信号灯的规定顺序进行切换,使司机和行人能够清晰地知晓当前的交通状态。

为了实现交通灯的控制,系统采用了定时器中断来实现定时切换信号灯。

通过设置定时器,可以控制每种信号灯亮的时间,从而模拟真实道路上的交通流动。

在每个定时器中断中,通过改变GPIO口的电平来控制信号灯的亮灭。

在交通灯系统中,还加入了对交通流量的检测,并根据流量大小来调整信号灯的显示时间。

通过设置红、黄、绿灯的显示时间来平衡各个方向上的交通流量,保证交通流畅和安全。

此外,系统还具备手动控制的功能,可以通过串口或者按键来手动切换信号灯。

这样在特殊情况下,如施工、事故等,交通灯可以手动控制,提高路面的通行效率。

在设计交通灯系统时,还要考虑到系统的稳定性和可靠性。

通过设置合适的硬件电路和软件程序,防止因噪声、干扰和其他因素引起的系统故障和误操作。

总之,基于单片机的交通灯设计可以实现有效的交通流控制,提高交通安全和通行效率。

在实际应用中,还可以加入更多的功能和优化算法来适应不同的交通场景。

这种设计不仅仅可以用于道路交通,还可以应用于地铁、机场、停车场等各种交通场所。

单片机交通灯实验报告

单片机交通灯实验报告

引言:随着城市交通的发展,交通灯作为交通管理的重要组成部分,起着至关重要的作用。

为了研究和实践交通灯的基本原理和实现方法,本文进行了单片机交通灯实验。

本实验通过使用单片机来模拟和控制交通灯的运行,以实现交通流畅和安全。

概述:交通灯是城市交通管理的重要组成部分,通过控制交通灯的信号变化,可以实现不同车辆和行人的交通流畅和安全。

单片机作为实验的控制器,可编程控制交通灯的运行,增强交通流畅性。

正文:一、单片机交通灯实验的背景和意义1.单片机交通灯实验的背景交通灯在城市交通管理中具有重要的地位和作用,通过控制交通灯的信号变化,可以实现车辆和行人的有序通行。

单片机交通灯实验为进一步研究交通灯原理和实现方式提供了实践基础。

2.单片机交通灯实验的意义单片机交通灯实验可以帮助学生理解并掌握交通灯的基本原理和控制方式,培养学生的创新思维和动手能力,并为进一步研究和改进交通灯系统提供参考。

二、单片机交通灯实验的设计和实施1.设计交通灯的硬件结构a.硬件元件选择和连接方式b.单片机选择和编程2.实施交通灯的控制逻辑和操作a.基本的交通灯控制逻辑b.交通灯的运行和状态转换三、单片机交通灯实验的分析和评价1.对交通流畅性的影响分析a.不同信号时间间隔对交通流量的影响b.交通灯控制方式对交通流畅性的影响2.对交通安全性的评价a.不同交通灯参数对交通安全的影响b.交通灯设施对行人安全的影响3.对实验结果的分析和总结a.实验数据的收集和处理b.结果的呈现和解释四、单片机交通灯实验的改进和优化方向1.优化交通灯的控制算法a.基于流量的自适应控制算法b.基于信号的智能预测算法2.改进交通灯的硬件设计a.使用更高效的电子元件和材料b.结合无线通信技术和传感器技术进行实时监测和控制五、单片机交通灯实验的应用和展望1.在城市交通管理中的应用前景a.提高交通流畅性和安全性的需求b.单片机交通灯技术的潜在优势2.可能的进一步研究方向a.基于互联网的智能化交通灯系统b.基于算法的全自动交通控制系统总结:通过本次单片机交通灯实验,我们对交通灯的原理和实现方法有了更深入的了解。

单片机课程设计报告(交通灯)

单片机课程设计报告(交通灯)

单片机课程设计交通灯引言:课程设计为我们提供很好的实践机会,能更好的让我们了解芯片的作用和功效。

熟悉单片机的编程,PCB设计和印刷板的设计和制作。

让理论知识结合实践,更好的巩固平时的所学。

也可以让我们学会细心认真的检查错误。

更能提高自己的专业素能。

任务:设计一个能够控制六盏交通信号灯的单片机模拟系统要求:利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并用LED灯显示倒计时间。

并有延时设置。

方案一:74LS240 TTL是八反相三态缓冲器/线驱动器,加电阻用于驱动LED,最高一排电阻上的5V电源通过电阻和LED相连,保证了LED有足够的电压又不会被烧毁。

采用89C51只支持并行写入,同时需要VPP烧写高压。

低于4.8V和高于5.3V的时候则无法正常工作。

工作频率范围最高只支持到24M。

输入程序并检查无误,对程序进行汇编、调试,然后烧写程序到89c51单片机。

方案二:用AT89C51来控制红绿灯的工作,通过MD 74LS164N来控制显示部分。

其缺点是没有外接上拉电阻和5V电源。

这样灯可能不够亮。

三、硬件设计(一)首先了解实际交通灯的变化情况和规律。

假设一个十字路口如上图所以,为东南西北走向。

主干道为东西绿灯通车60秒,次干道南北红灯亮64秒,其中4秒是延迟时间,避免车会相撞。

黄灯各亮4秒,次干绿灯道亮40秒。

详细的状态描述如下:主干道为转状态1东西绿灯通车,次干道南北红灯亮。

过一段时间后,转状态2,东西绿灯灭,黄灯亮,南北还是红灯。

再转状态3,南北绿灯通车,东西红灯亮。

过一段时间后转状态4,南北绿灯灭,亮4秒黄灯,东西还是为红灯亮,一段时间后,又循环至状态1。

列出交通信号灯的状态表如下:(其中,1代表灯亮,0代表灯灭)1、P1口:做为输出口,与发光二极管相连接,其状态及对应的十六进制值如下:2、对于交通信号灯来说,应该有东西南北共四组灯,但由于同一道上的两组的信号灯的显示情况是相同的,所以只要用两组就行了,因此,采用单片机内部的I/O 口上的P1口中的6个引脚即可来控制6个信号灯。

单片机课程设计报告交通灯

单片机课程设计报告交通灯

单片机课程设计报告交通灯一、前言单片机技术是计算机科学与技术中一个重要领域,我们在学习单片机技术时,不仅需要了解单片机的硬件结构,还需要熟悉单片机的编程流程以及掌握基本的编程语言。

这次的课程设计是关于交通灯的设计,这个小项目更好地帮助我们了解了如何在单片机中实现一个简单的控制程序,同时也增强了我们的动手实践能力。

二、设计思路交通灯的设计原理比较简单,交通灯根据一定的时间规律不断地循环变化,所以,在单片机中实现交通灯控制的主要思路就是利用定时器来实现时间的计算和状态的改变。

本次设计的交通灯需要实现红灯、黄灯和绿灯之间的循环变化。

首先,我们需要了解交通灯的时序图,即红灯的时间、黄灯的时间和绿灯的时间。

红灯:亮红灯5秒、灭红灯1秒黄灯:亮黄灯3秒、灭黄灯1秒绿灯:亮绿灯5秒、灭绿灯1秒在这个基础上,我们需要梳理出主要的元件和功能模块:1. AT89C51单片机2. 七段数码显示管3. 蜂鸣器4. 光敏电阻5. LED灯6. 电位器7. 电路板8. 电源等三、程序设计在硬件部分准备好之后,我们开始进行程序设计。

程序的主要思路是通过在AT89C51单片机中的计数器,实现红绿灯的控制,同时,在七段数码管和蜂鸣器方面,也需要通过控制IO口进行控制。

具体步骤:步骤1:确认编译软件。

本次程序设计采用的是KeiluVision4,每一步的编写同学们需要认真进行,严格按照手册中的操作进行。

步骤2:确认程序框架。

程序的框架结构是主程序和定时器中断程序。

定时器中断路由用于计时和状态的转换,在main函数中执行初始化程序和控制程序,其中控制程序是根据定时器中断程序的控制来控制灯的状态。

步骤3:确认各个变量和IO口。

确认好计时器、IO口等变量的定义,以及相应的端口和引脚的定义。

步骤4:设置定时器中断。

在程序中,我们实现了循环的主要功能,那么就需要使用中断来实现。

具体的实现方法是利用定时器中断,在中断程序中进行计时、状态转换和IO输出。

单片机交通信号灯设计报告

单片机交通信号灯设计报告

单片机交通信号灯设计报告引言交通信号灯作为现代交通管理的重要组成部分,对于提高交通效率、保障交通安全具有重要意义。

本报告旨在介绍一种基于单片机技术的交通信号灯设计方案,通过控制信号灯的颜色变化实现交通流量的管理和交通安全的提升。

设计方案本设计采用基于单片机的交通信号灯设计方案,主要由硬件和软件两部分组成。

硬件设计硬件设计主要考虑到信号灯的控制电路和显示部分。

1. 控制电路:采用安装于交通信号灯控制塔中的单片机,例如常用的Arduino 或者Raspberry Pi。

单片机通过控制继电器或者晶体管等元件来实现信号灯的颜色控制。

2. 显示部分:交通信号灯由红、黄、绿三种颜色的灯组成。

每个灯都是由LED 发光二极管组成,通过驱动电路控制LED的亮灭来实现颜色的变化。

软件设计软件设计主要考虑到单片机的程序设计。

1. 时序控制:单片机程序通过控制交通信号灯的切换时序来实现灯颜色的变化。

2. 亮灭控制:通过控制LED灯亮灭的方式来实现不同颜色的灯显示。

例如,亮红灯时只有红灯亮,其他灯灭,亮绿灯时则只有绿灯亮,其他灯灭。

工作原理交通信号灯设计方案的工作原理如下:1. 初始化:单片机启动时初始化程序,设置初始状态为红灯亮。

2. 时序控制:程序根据预设的时间,控制交通信号灯按照一定顺序和时间切换,例如红灯持续亮15秒,然后切换到绿灯亮10秒,再切换到黄灯亮5秒,最后再切换到红灯亮。

3. 亮灭控制:程序控制LED的亮灭状态来实现不同颜色灯的显示。

例如,当程序需要亮红灯时,控制红灯LED亮,其他灯LED灭。

4. 循环执行:程序循环执行上述步骤,使交通信号灯不断切换颜色,达到交通流量管理和交通安全的目的。

实施计划本设计的实施计划如下:1. 硬件准备:采购所需的单片机、LED等元件,组装好交通信号灯硬件部分。

2. 软件编写:根据设计方案,编写单片机程序,并进行测试和调试,确保程序的正常运行。

3. 系统整合:将单片机和交通信号灯的硬件部分进行整合,确保程序可以正确地控制LED灯的亮灭。

单片机课程设计-交通灯

单片机课程设计-交通灯

单片机课程设计——交通灯姓名:学院:专业:班级:学号:第一章绪论随着我国社会经济的发展,城市化、城镇化进程的加快,道路交通堵塞问题日趋严重,如何对交通进行合理的管理和调度而尽可能减少堵车现象成为目前我国很多地方尤其是特大城市急需解决的问题,显然交通灯在其中起着不可或缺的作用。

本文就控制交通灯的方法进行了讨论,分析了各种方案的性价比,并用软、硬件加以实现。

而后,对六车道以上道路的“十字交叉路口交通灯控制”进行了分析。

最后,还对城市交通灯网的控制进行了展望。

希望能给有关政府部门一些参考,更好地改善我们的城市交通。

现今的交通发展迅速,车辆极具增加,马路不断扩宽,人行横道相对较少。

在车流量较大的地段即便有人行横道,行人也很难通过马路。

行人自控指示灯系统可以有效的改善这种状况。

特别是像北京这样的大都市,经济飞速发展,车辆繁多,人口密集。

缓解交通已成为当务之急.例如在我们新校区西门口(塔南路)就是这种情况,每天进出校门的学生特别多,大多还需要穿过这条繁忙的高速公路,这为学校师生带来大大的不便.该系统主要应用于交通领域,具有较高的实用价值。

该系统利用红灯,黄灯,绿灯来指挥车辆和行人,以达到车辆停止,行人通行的目的,减少了交通拥挤现象,为行人节省了时间,即保证行人过马路时的安全,也减轻了交管部门的负担。

本产品面对公共交通设施,并不注重经济收益,而是注重以后潜在的发展,从而带动相关产业。

用户可以完全掌握行人自控指示灯系统的操作方法,以及各个按键的作用科学技术的突飞猛进直接把我们带进了信息化的社会,计算机的应用已普及到经济和社会生活的各个领域.第二章设计要求与任务第一节目的和要求:1、实验要求:编写程序,以89c52的端口作为输出口,控制4个双色LED灯(可发红、绿、黄光),模拟十字路口交通灯管理。

2、实验目的:(1)学习I/0口扩展方法;掌握89c52的工作原理以及编程方法,了解软件与硬件的调试技术。

(2)学习模拟交通灯控制方法;(3)学习双色LED灯的使用;第二节设计任务和设计内容: (CPU均采用89c52)1.软件延时实现模拟路口交通灯控制:(如图1)实验效果: 软件延时控制A﹑C路口红灯,B﹑D路口绿灯亮60秒;然后A﹑C路口不变,B﹑D 路口绿灯闪5下,然后B﹑D路口黄灯亮;再变为A﹑C路口绿灯,B﹑D红灯延时3秒;然后A﹑C 路口绿灯闪5下,再黄灯亮,B﹑D不变。

单片机课程设计报告(交通灯)

单片机课程设计报告(交通灯)

第一章微控制器应用系统综合课程设计的目的意义1.1 设计目的自动化工程训练是为自动化专业开设的课程设计教学环节,其目的在于培养学生综合运用理论知识来分析和解决实际问题的能力,是通过设计以微控制器为核心的单片机检测系统,加深学生对微控制器技术的了解,进一步掌握其程序设计与硬件接口技术。

本课程的主要任务是运用所学微控制器技术、微机原理等方面的知识,设计出一台以80C32MCU为核心的单片机数据采集、通讯或测控系统,完成信息的采集、处理、输出及人机接口电路等部分的软、硬件设计。

1.2 课程设计的基本要求本课程设计涉及《微控制器技术》课程的基本概念和理论,主要要求学生掌握微控制器的指令系统、中断技术、总线扩展、模拟与数字I/O接口技术与通讯技术等,重点是培养学生掌握微控制器在自动化测控应用系统中的设计与开发方法。

课程设计的基本要求如下:1.掌握单片微控制器硬件结构和工作原理、中断与定时系统、嵌入式应用、现场总线等基本概念和原理;2.熟悉8/16位单片微控制器(8X51/196系列)的主要功能单元和指令系统;3.熟悉测控网络中嵌入式微控制器的应用和现场总线应用技术。

4.利用微控制器的接口技术进行简单的测控及自动化应用系统设计;5.每人提交系统设计报告一份,现场演示验收设计系统。

第二章交通信号灯实时控制系统设计任务2.1 设计内容及要求本课题是设计制作一个交通信号灯实时控制系统。

①在一个十字路口的一条主干道和一条支干道上分别装上一套红、黄、绿3种信号灯:用按键开关模拟十字路口的车辆检测传感器信号。

在一般情况下,主干道上的绿灯常亮,而支干道总是红灯。

②当检测到支干道上来车时(用按键开关模拟),主干道的绿灯转为黄灯,持续4S后,又变为红灯,同时支干道由红灯变为绿灯。

③支干道绿灯亮后,或者检测到主干道上来了3辆(用3个按键开关模拟),或者虽未来3辆车,但支干道绿灯已经持续了25s,则支干道立即变为黄灯,4s 后转为红灯,同时主干道由红灯变为绿灯。

单片机课程设计—十字路口交通灯

单片机课程设计—十字路口交通灯

十字路口交通灯控制一、设计任务及题目要求利用JD51开发板上彩色LED灯做出符合普通十字路口通行逻辑的交通灯,1.东西绿-南北红、东西红-南北绿;2.LED绿-红切换时,黄灯亮并延时3秒;3.数码管前两位显示东西向量倒计时,后两位显示南北向量倒计时。

二、工作原理及设计思路在JD51电路板上有红、绿、黄三种颜色LED灯,自定义选取两组彩灯对其进行逻辑控制。

工作时,先南北绿灯16S、东西红灯19S,然后,南北绿灯转黄灯3S;接着,东西绿灯15S,南北红灯18S,东西绿灯转黄灯3S。

在LED亮的同时两个方向的数码管显示倒计时,东西向一组数码管,南北向一组数码管。

三、硬件电路设计及描述使用JD51电路板上P1^7口的红色LED,P1^6口的黄色LED,P1^5口的绿色LED表示东西向指示灯,P1^4口的红色LED,P1^3口的黄色LED,P1^2口的绿色LED表示南北向指示灯,四位数码管的前两位显示东西向量倒计时,后两位显示南北向量倒计时。

四、软件设计流程及描述五、程序和注释C语言程序:#include<reg52.h>#define uchar unsigned char#define uint unsigned int//定义位变量sbit RED_A=P1^7; //东西向指示灯sbit YELLOW_A=P1^6;sbit GREEN_A=P1^5;sbit RED_B=P1^4; //南北向指示灯sbit YELLOW_B=P1^3;sbit GREEN_B=P1^2;sbit en=P2^5; //573片选使能uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳0-9不带小数点数表uchar code table_d[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; //共阳0-9带小数点数表uchar time[4]={0,0,0,0};//数码管显示00.00初值uchar timec[4]={1,6,1,9};//南北绿初值 16.19uchar timeb[4]={1,5,1,8};//东西绿初值15.18 红灯比绿灯长三秒uchar cp=0;//计数初值int n=0;//C语言延时程序void DelayMS(uint x){ uchar i;while(x--)for(i=0;i<120;i++);//数码管动态扫描程序void display(uchar *p){int i,j=0xFE;//第一位选通for(i=0;i<4;i++){P2=j;P0=*p;DelayMS(3);j=(j<<1)|0x01;//第二位选通if(j==0xEF);p++;}}//中断初始化函数void timer0_initialize(void){ EA=0;//关闭中断TR0=0;//停止计数TMOD=0x01;//T0工作在方式一TL0=0x00;//装入低八位初值TH0=0xEE;//装入低八位初值,定时器溢出产生中断5msPT0=1;//T0中断优先级调制最高ET0=1;//开启T0中断EA=1;//开启总中断TR0=1;//开始计数}//中断服务函数void timer0_isr(void) interrupt 1{ int k;//控制亮灯时间k++;if ((k>=200)&&(k<200*(16+1)))//1秒到16秒,东西绿16秒,南北红16秒{ RED_A=1;YELLOW_A=1;GREEN_A=0;RED_B=0;YELLOW_B=1;GREEN_B=1;}if ((k>=200*(16+1))&&(k<200*(16+4+1)))//16秒到19秒,东西黄3秒,南北红3秒{ RED_A=1;YELLOW_A=0;GREEN_A=1;RED_B=0;YELLOW_B=1;GREEN_B=1;}if ((k>=200*(16+4+1))&&(k<200*(16+4+1+15))) //接下来15秒,东西红15秒,南北绿15秒{ RED_A=0;YELLOW_A=1;GREEN_A=1;RED_B=1;YELLOW_B=1;GREEN_B=0;}if ((k>=200*(16+4+1+15)))//接下来3秒,东西红3秒,南北黄3秒{ RED_A=0;YELLOW_A=1;GREEN_A=1;RED_B=1;YELLOW_B=0;GREEN_B=1;if ((k==200*(16+4+1+18))){ k=0;}}TR0=0;cp++;//数码管逻辑判断if(cp==200){cp=0;if( (time[0]!=0)&&(time[2]!=0)&&(time[1]==0)&&(time[3]==0) ) //非0位-1,为0位变9{time[1]=9;time[3]=9;time[0]--;time[2]--;}else if((time[0]!=0)&&(time[2]!=0)&&(time[1]==0)&&(time[3]!=0)){time[1]=9;time[3]--;time[0]--;}else if((time[0]!=0)&&(time[2]!=0)&&(time[1]!=0)&&(time[3]==0)) {time[1]--;time[3]=9;time[2]--;}else if((time[1]!=0)&&(time[3]!=0)){time[1]--;time[3]--;}else if((time[3]!=0)&&(time[0]==0)&&(time[1]==0)&&(time[2]==0))//熄灭的灯为3. 0变成3{time[0]=0;time[1]=3;time[1]--;time[3]--;}else if((time[3]!=0)&&(time[0]!=0)&&(time[1]==0)&&(time[2]==0)){time[0]--;time[1]=9;time[2]=0;time[3]--;}else if((time[3]!=0)&&(time[0]!=0)&&(time[1]==0)&&(time[2]==0)){time[0]--;time[1]=9;time[2]=0;time[3]--;}else if((time[3]==0)&&(time[0]==0)&&(time[1]!=0)&&(time[2]!=0)){time[0]=0;time[1]--;time[2]--;time[3]=9;}else if((time[3]==0)&&(time[0]==0)&&(time[1]!=0)&&(time[2]==0)) {time[1]--;time[3]=3;time[3]--;}//东西绿与南北绿的转换else if((time[3]==0)&&(time[0]==0)&&(time[1]==0)&&(time[2]==0)) {if(n==0){ time[0]=timec[0];time[1]=timec[1];time[2]=timec[2];time[3]=timec[3];n++;}else if(n==1){time[0]=timeb[0];time[1]=timeb[1];time[2]=timeb[2];time[3]=timeb[3];n=0;}}else{while(1);}}timer0_initialize();}//主函数void main (void){uchar i,dpldata[4];timer0_initialize();en=1;while(1){ for(i=0;i<4;i++) //数码管第二位用带小数点的数表,隔开东西与南北的倒计时{ if(i==1){dpldata[i]=table_d[time[i]];}else{dpldata[i]=table[time[i]];}}display(dpldata);}}汇编语言程序:ORG 0000HJMP MAIN//中断入口地址ORG 000BHMOV TL0,#0B0H//装入初值MOV TH0,#3CHDJNZ R2,EXIT_T0//用寄存器R2装溢出的次数MOV R2,#20 //溢出20次为1秒DEC R3//东西方向计数寄存器DEC R4 //南北方向计数寄存器EXIT_T0:RETIMAIN:MOV TMOD,#01H//T0工作在方式一MOV TH0,#3CH//装入初值MOV TL0,#0B0HMOV R2,#20//设置R2初值为20SETB TR0 //开始计数SETB ET0 //开启T0中断SETB EA//开启总中断MOV SP,#60H//堆栈指针的地址N_B:MOV P1,#0CFH//设置P1口的值MOV R3,#16 //南北绿16SMOV R4,#19 //东西红19SNB_W1:CJNE R3,#0,NB_DISP//判断南北方向绿灯倒计时是否结束,不为0跳到数码管显示SJMP N_B_YNB_DISP:CALL DISPLAYSJMP NB_W1N_B_Y:CPL P1.5//熄灭南北绿灯NB_W2:MOV R3,#0CJNE R4,#0,NB_DISP2//判断东西红灯是否结束JMP D_XNB_DISP2:CPL P1.6CALL DISPLAYSJMP NB_W2D_X:MOV P1,#07BHMOV R3,#18 //东西红18sMOV R4,#15 //南北绿15SDX_W1:CJNE R4,#0,DX_DISPSJMP D_X_YDX_DISP:CALL DISPLAYSJMP DX_W1D_X_Y:CPL P1.2DX_W2:MOV R4,#0CJNE R3,#0,DX_DISP2JMP N_BDX_DISP2:CPL P1.3CALL DISPLAYSJMP DX_W2DISPLAY:MOV DPTR,#TAB1 //数表中的值送入DPTR MOV A,R3MOV B,#10DIV AB//倒计时/10MOVC A,@A+DPTR//数表送到A中MOV P0,A//A送到P0SETB p2^0//实现位选SETB p2^2MOV P2,#0FEHMOV P2,#0FFHMOV A,BMOVC A,@A+DPTRMOV P0,ASETB p2^0SETB p2^2MOV P2,#0FDHMOV P2,#0FFHMOV A,R4MOV B,#10DIV ABMOVC A,@A+DPTRMOV P0,ASETB p2^0SETB p2^2MOV P2,#0FBHMOV P2,#0FFHMOV A,BMOVC A,@A+DPTRMOV P0,ASETB p2^0SETB p2^2MOV P2,#0F7HMOV P2,#0FFHSETB p2^0SETB p2^2RETTAB1://数码管数表DB 0C0H,0F9H,0A4H,0B0H,99HDB 92H,82H,0F8H,80H,90HEND六、实验结果七、实验心得“纸上得来终觉浅,绝知此事要躬行。

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

单片机交通灯设计洛阳理工学院电气工程与其自动化系专业:自动化班级:自动化八班姓名:01白彦芳02何一婷11靳亚磊指导老师:姚惠林目录1 设计任务和性能指标 (3)1.1设计任务 (4)1.2性能指标 (4)2 设计方案 (4)2.1任务分析 (4)2.2方案设计 (4)2.2.1硬件方案 (4)2.2.2软件方案 (4)3 系统硬件设计 (6)3.1单片机的最小系统 (6)3.2电源电路 (6)3.3数码管显示时间电路 (6)3.4系统原理图 (7)3.5系统元件 (8)4 系统软件设计 (8)4.1主程序设计 (9)4.2系统程序 (9)5 调试及性能分析 (9)5.1调试分析 (9)5.1.1软件调试 (9)5.1.2硬件调试 (9)5.1.3系统功能调试 (9)6心得体会 (9)附录一 (10)参考文献 (18)摘要交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。

交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

本系统采用单片机80C51为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。

本设计就是采用单片机模拟十字路口交通灯的各种状态显示以及倒计时时间。

本设计系统由单片机I/O口扩展系统、交通灯状态显示系统、LED数码显示系统、复位电路等几大部分组成。

系统除基本的交通灯功能外,还具有倒计时等功能,较好的模拟实现了十字路口可能出现的状况。

软件上采用C52编程,主要编写了主程序,LED数码管显示程序,中断程序延时程序等。

经过整机调试,实现了对十字路口交通灯的模拟。

关键字:电子线路;80C51;LED;交通灯。

1 设计任务和性能指标1.1设计任务模拟图利用单片机完成交通信号灯控制器的设计,该交通信号灯控制器由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。

用红、绿、黄发光二极管作信号灯。

如图上图所示。

1.2性能指标(1)两路口是同等的。

处于允许通行的状态,有车来时允许通行。

东西道亮绿灯时,南北道亮红灯;南北道亮绿灯时,东西道亮红灯。

绿红灯之间以黄灯间隔。

(2)两个方向均有车时,两者交替允许通行,均每次放行15秒,设立15秒计时、显示电路。

红灯10秒。

(3)通行时间及黄灯亮的时间均可在0~99秒内任意设置。

2 设计方案 2.1任务分析模拟交通灯控制器就是使用单片机来控制一些LED 和数码管,模拟真实交通灯的功能。

红、黄、绿交替点亮,利用数码管倒计数显示间隔等,用于管理十字路口的车辆及行人交通,计时牌显示路口通行转换剩余时间等。

2.2方案设计2.2.1硬件方案根据设计的要求可知,系统的硬件原理框图如下图所示系统硬件框图单片机可选用80C51,它与8051系列单片机全兼容,但其内部带有8KB 的FLASH ROM ,设计时无需外接程序存储器,为设计和调试带来极大的方便。

南北向和东西向各采用2个数码管计时,同时需要对该方向的指示灯的点亮时间进行倒计时。

按键可以根据系统的需要进行复位。

用三极管驱动数码管显示,三极管控制共阳位选端,控制数码管的显示。

2.2.2 软件方案首先南北方向红灯、东西方向绿灯亮,南北方向红灯15秒、东西方向绿灯10秒,相应的数码管显示对应的数字并读秒,同时南北方向红色的二极管和东西方向的绿色二极管接通STC80C51单片机数码管显示 LED 数码管显示晶振电路复位电路点亮显示,当东西方向的绿灯时间到,则东西方向的绿灯转为黄灯,同时数码管显示黄灯的时间5秒,东西方向的黄色二极管接通点亮,此时南北方向的红灯不变。

南北方向的红灯和东西方向的黄灯时间同时到,此时南北方向的红灯跳转为绿灯,时间同样为10秒,东西方向有黄灯跳转为红灯,时间为15秒。

当南北方向的绿灯时间到,南北绿灯跳转为黄灯,东西方向的红灯不变,当南北方向的黄灯和东西方向的红灯时间到,南北方向的黄灯跳转为红灯,东西方向的红灯跳转为绿灯。

进入开始的状态,循环执行。

根据设计要求,程序框图如图所示。

软件可由汇编语言完成,也可由C语言完成。

软件设计可以分为以下几个功能模块:数码管显示模块动态显示方式:动态显示方式是指一位一位地轮流点亮每位显示器(称为扫描),即每个数码管的位选被轮流选中,多个数码管公用一组段选,段选数据仅对位选选中的数码管有效。

对于每一位显示器来说,每隔一段时间点亮一次。

显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。

通过调整电流和时间参数,可以既保证亮度,又保证显示。

若显示器的位数不大于8位,则显示器的公共端只需一个8位I/O口进行动态扫描(称为扫描口),控制每位显示器所显示的字形也需一个8位口(称为段码输出)。

LED红绿灯显示模块状态1,东西绿灯亮,南北红灯亮状态2,东西黄灯亮,南北红灯亮状态3,东西红灯亮,南北绿灯亮状态4,东西红灯亮,南北黄灯亮程序初始化状态1(S1)状态2 (S2)状态3(S3)状态4(S4)结构框图3 系统硬件设计3.1单片机的最小系统STC公司生产的80C51单片机它是硬件电路的核心部分,时钟电路晶振使用12MHz,复位电路采取按键复位方式。

单片机系统的时钟电路单片机系统的复位电路及显示单元3.2电源电路设计电源用5V直流变压器直接供电,usb接口供电。

3.3数码管显示电路显示电路采用4个共阳数码管,用74HC244做驱动器,P0口作为数码管的输入,ULN2803作为控制位选端,P2.0,P2.1,P2.2,P2.3分别作为东西,南北四路数码管的位选端。

数码管显示电路图3.4系统原理图系统原理图3.5指示单元3.6系统元件去电子市场按原件清单购买所需原件,检测所购元件的性能是否达到所需标准,然后按照系统原理图接好硬件图,检查接线是否正确,是否有漏接,短接等。

并用测试程序检查元器件是否能正常工作,以便修改,一切就绪后,就将写好的程序下载进单片机。

以下是元器件清单列表。

元器件名称元器件属性元器件个数电源接口5v 一个电源指示灯红色一个电源开关带自锁一个电阻10kΩ一个300Ω一个电容电解电容10uf 一个瓷片电容30pf 两个瓷片电容0.1uf 四个晶振12MHZ 一个复位按键不带自锁一个下载端口集成块MAX232 一片带插槽单片机stc 89c51 一片带插槽8线驱动74HC244 一片带插槽达林顿驱动电路ULN2803 一片带插槽数码管共阳极四个三色发光二极管红,黄,绿各四个4 系统软件设计4.1 主程序设计系统程序流程图开始参数初始化显示子程序中断处理4.2系统程序根据设计方案,设计满足要求的程序,并将程序烧写进单片机,运行程序,观察现象是否符合要求,若不符合要求继续修改程序。

直至能达到要求。

程序清单见附录一。

5 调试及性能分析5.1 调试分析5.1.1软件调试软件调试主要是利用protus仿真软件完成电路的搭建,运行以发现设计中的错误及时改正。

5.1.2硬件调试硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。

具体步骤及测试结果如下:(1)检查电源与地线是否全部连接上,用万用表对照电路原理图测试各导线是否完全连接,对未连接的进行修复。

(2)参照原理图,检查各个器件之间的连接是否连接正确,是否存在虚焊,经测试,各连接不存在问题。

(3)以上两项检查并修复完后,给该硬件电路上电,电源指示灯点亮。

5.1.3系统功能调试通过通电调试系统的功能,观察系统是否正常运行,是否达到设计指标,通过修改软件完成系统的系能指标,也可以通过仿真软件进行仿真运行,调试并修改系统,以便达到最佳水准。

让系统最大限度的发挥其功效。

6 心得体会这次单片机课程设计历时三个星期的时间,在这次设计过程里我们体验了从总体方案设计、画原理图、设计程序、焊电路板到调试完善的整个过程。

我学会了用更多的工具去查阅资料,获取所需的知识,解决了很多我在之前的学习中没有弄懂的问题。

了解了很多元件的作用和用法。

熟悉了单片机的使用,熟悉了单片机的各个管脚的功能。

这可以说是给我上了深刻的复习课,在我即将忘记单片机知识的时候,又让我加深了我对它的认识,而且了解了更多以前没有注意的问题。

通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。

使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步。

本次课程设计的过程是艰辛的,不过收获却是很大的。

在设计过程中,会出现了一些问题,但都是常见的小问题,如:代码中双引号的使用并不是在英语书写状态下,输入字母出错等,在调试时出现异常,不过这些都是经常性错误,经过调试修改都一一解决,程序顺利完成,并实现了其功能。

综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识。

在此,由于自身能力有限,在课程设计中碰到了很多的问题,我通过查阅相关书籍、资料以及和周围同学交流。

由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。

但是在我们设计和调试的过程中,也发现了一些问题,譬如红灯和绿灯的切换还不够迅速,红绿灯规则不完善效率还不是很高等等,这需要在实践中进一步完善。

当然,通过这次课程设计,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我。

通过这次课程设计,对以前学过的知识进行了巩固,加深了理解,提高了应用的能力,而且提高了我们的发现、分析、解决问题的能力。

经历了从最初的设计到最后做出产品的开发过程,提高了对专业的认识及兴趣,对于我们工科来说,对以后就业有及其重大的影响。

附录一SECOND1 EQU 30H ;东西路口计时寄存器SECOND2 EQU 31H ;南北路口计时寄存器DBUF EQU 40H ;显示码缓冲区1TEMP EQU 44H ;显示码缓冲区2LED_G1 BIT P2.1 ;东西路口绿灯LED_Y1 BIT P2.2 ;东西路口黄灯LED_R1 BIT P2.3 ;东西路口红灯LED_G2 BIT P2.4 ;南北路口绿灯LED_Y2 BIT P2.5 ;南北路口黄灯LED_R2 BIT P2.6 ;南北路口红灯ORG 0000HLJMP STARTORG 0100HSTART: MOV TMOD,#01H ;置T0为工作方式1MOV TH0,#3CH ;置T0定时初值50msMOV TL0,#0B0HCLR TF0SETB TR0 ;启动T0CLR AMOV P1,A ;关闭不相关的LED;***************************************************LOOP: MOV R2,#20 ;置1s计数初值,50ms*20=1s MOV R3,#20 ;红灯亮20sMOV SECOND1,#25 ;东西路口计时显示初值25sMOV SECOND2,#25 ;南北路口计时显示初值25sLCALL DISPLAYLCALL STATE1 ;调用状态1WAIT1: JNB TF0,WAIT1 ;查询50ms到否CLR TF0MOV TH0,#3CH ;恢复T0定时初值50msMOV TL0,#0B0HDJNZ R2,WAIT1 ;判断1s到否?未到继续状态1MOV R2,#20 ;置50ms计数初值DEC SECOND1 ;东西路口显示时间减1sDEC SECOND2 ;南北路口显示时间减1sLCALL DISPLAYDJNZ R3,WAIT1 ;状态1维持20s;*******************************************MOV R2,#5 ;置50ms计数初值5*4=20MOV R3,#3 ;绿灯闪3sMOV R4,#4 ;闪烁间隔200msMOV SECOND1,#5 ;东西路口计时显示初值5sMOV SECOND2,#5 ;南北路口计时显示初值5sLCALL DISPLAYWAIT2: LCALL STATE2 ;调用状态2JNB TF0,WAIT2 ;查询50ms到否CLR TF0MOV TH0,#3CH ;恢复T0定时初值50msMOV TL0,#0B0HDJNZ R4,WAIT2 ;判断200ms到否?未到继续状态2CPL LED_G1 ;东西绿灯闪MOV R4,#4 ;闪烁间隔200msDJNZ R2,WAIT2 ;判1s到否?未到继续状态2MOV R2,#5 ;置50ms计数初值DEC SECOND1 ;东西路口显示时间减1sDEC SECOND2 ;南北路口显示时间减1sLCALL DISPLAYDJNZ R3,WAIT2 ;状态2维持3s;****************************************MOV R2,#20 ;置50ms计数初值MOV R3,#2 ;黄灯闪2sMOV SECOND1,#2 ;东西路口计时显示初值2sMOV SECOND2,#2 ;南北路口计时显示初值2sLCALL DISPLAYWAIT3: LCALL STATE3 ;调用状态3JNB TF0,WAIT3 ;查询100ms到否CLR TF0MOV TH0,#3CH ;恢复T0定时初值100msMOV TL0,#0B0HDJNZ R2,WAIT3 ;判断1s到否?未到继续状态3MOV R2,#20 ;置100ms计数初值DEC SECOND1 ;东西路口显示时间减1sDEC SECOND2 ;南北路口显示时间减1sLCALL DISPLAYDJNZ R3,WAIT3 ;状态3维持2s;*******************************************MOV R2,#20 ;置50ms计数初值MOV R3,#20 ;红灯闪20sMOV SECOND1,#25 ;东西路口计时显示初值25sMOV SECOND2,#25 ;南北路口计时显示初值25sLCALL DISPLAYWAIT4: LCALL STATE4 ;调用状态4JNB TF0,WAIT4 ;查询100ms到否CLR TF0MOV TH0,#3CH ;恢复T0定时初值100msMOV TL0,#0B0HDJNZ R2,WAIT4 ;判断1s到否?未到继续状态4MOV R2,#20 ;置100ms计数初值DEC SECOND1 ;东西路口显示时间减1sDEC SECOND2 ;南北路口显示时间减1sLCALL DISPLAYDJNZ R3,WAIT4 ;状态4维持20s;*******************************************MOV R2,#5 ;置50ms计数初值MOV R4,#4 ;红灯闪20msMOV R3,#3 ;绿灯闪3sMOV SECOND1,#5 ;东西路口计时显示初值5sMOV SECOND2,#5 ;南北路口计时显示初值5sLCALL DISPLAYWAIT5: LCALL STATE5 ;调用状态5JNB TF0,WAIT5 ;查询100ms到否CLR TF0MOV TH0,#3CH ;恢复T0定时初值100msMOV TL0,#0B0HDJNZ R4,WAIT5 ;判断200ms到否?未到继续状态5CPL LED_G2 ;南北绿灯闪MOV R4,#4 ;闪烁200msDJNZ R2,WAIT5 ;判断1s到否?未到继续状态5MOV R2,#5 ;置100ms计数初值DEC SECOND1 ;东西路口显示时间减1sDEC SECOND2 ;南北路口显示时间减1sLCALL DISPLAYDJNZ R3,WAIT5 ;状态5维持3s;****************************************MOV R2,#20 ;置50ms计数初值MOV R3,#2 ;红灯闪2sMOV SECOND1,#2 ;东西路口计时显示初值2sMOV SECOND2,#2 ;南北路口计时显示初值2sLCALL DISPLAYWAIT6: LCALL STATE6 ;调用状态6JNB TF0,WAIT6 ;查询100ms到否MOV TH0,#3CH ;恢复T0定时初值100msMOV TL0,#0B0HDJNZ R2,WAIT6 ;判断1s到否?未到继续状态6MOV R2,#20 ;置100ms计数初值DEC SECOND1 ;东西路口显示时间减1sDEC SECOND2 ;南北路口显示时间减1sLCALL DISPLAYDJNZ R3,WAIT6 ;状态6维持2sLJMP LOOP ;大循环;**********************************************STATE1: ;状态1SETB LED_G1 ;东西路口绿灯亮CLR LED_Y1CLR LED_R1CLR LED_G2CLR LED_Y2SETB LED_R2 ;南北路口红灯亮RETSTATE2: ;状态2CLR LED_Y1CLR LED_R1CLR LED_G2CLR LED_Y2SETB LED_R2 ;南北路口红灯亮RETSTATE3: ;状态3CLR LED_R1CLR LED_G2CLR LED_Y2SETB LED_R2 ;南北路口红灯亮SETB LED_Y1 ;东西路口绿灯亮RETSTATE4: ;状态4CLR LED_G1CLR LED_Y1SETB LED_R1 ;东西路口红灯亮SETB LED_G2 ;南北路口绿灯亮CLR LED_Y2CLR LED_R2RETSTATE5: ;状态5CLR LED_G1CLR LED_Y1SETB LED_R1 ;东西路口红灯亮CLR LED_Y2CLR LED_R2RETSTATE6: ;状态6CLR LED_G1CLR LED_Y1SETB LED_R1 ;东西路口红灯亮CLR LED_G2SETB LED_Y2 ;南北路口红灯亮RETDISPLAY: ;数码显示MOV A,SECOND1 ;东西路口计时寄存器MOV B,#10 ;16进制数拆成两个10进制数DIV ABMOV DBUF+3,AMOV A,BMOV DBUF+2,AMOV A,SECOND2 ;南北路口计时寄存器MOV B,#10 ;16进制数拆成两个10进制数DIV ABMOV DBUF+1,AMOV A,BMOV DBUF,AMOV R0,#DBUFMOV R1,#TEMPMOV R7,#4DP10: MOV DPTR,#LEDMAPMOV A,@R0MOVC A,@A+DPTRMOV @R1,AINC R0INC R1DJNZ R7,DP10MOV R0,#TEMPMOV R1,#4DP12: MOV R7,#8MOV A,@R0DP13: RLC AMOV P3.0,CCLR P3.1SETB P3.1DJNZ R7,DP13INC R0DJNZ R1,DP12RETLEDMAP:DB 3FH,06H,5BH,4FH,66H,6DH ;0,1,2,3,4,5DB 7DH,07H,7FH,6FH,77H,7CH ;6,7,8,9,A,BDB 58H,5EH,7BH,71H,0,40H ;C,D,E,F,,-END参考文献[1] 徐维祥.单片微型机原理及应用大连理工大学出版社,2006.12[2] 胡汉才.单片机原理与接口技术[M].北京: 清华大学大学出版社,2004.1-505.[3] 闫胜利.Altium Designer 6.X中文版使用教程电子工业出版社2007.6[4] 朝青.单片机原理及接口技术(第3版).2005年10月[5] 张迎新.单片微型计算机原理、应用及接口技术(修订版)北京:国防工业出版社,2004.1.[6] 房小翠.单片微型计算机与机电接口技术.北京:国防工业出版社,2002.3。

相关文档
最新文档