单片机C语言交通灯设计
基于单片机C语言交通灯数码管显示的设计完整版

基于单片机C语言交通灯数码管显示的设计完整版/* P2口位控口,P0口段控口, P1口按键,P3口发光二极管*/#include<reg52.h>#define uchar unsigned char#define uint unsigned int/*共阳数码管字型码数组*//*0,1,2,3,4,5,6,7,8,9,P.,灭*/char code dis_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0x21,0xff};/*共阳数码管位控码数组〔从右往左点亮,反向驱动〕*/char code weikong_code[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};char find_code[8];sbit S2=P1^0; //S1键启动交通灯控制器sbit S3=P1^1; //S2键回归“P.”状态sbit S4=P1^2; //S3键处理紧急状况uchar time;void DelayX1ms(uint count) //1ms延时函数{uint j;while(count--!=0){for(j=0;j<80;j++);}}/*********************显示函数*****************************/void disp(){char i;char k;for(i=0;i<8;i++){P2=weikong_code[i];k=find_code[i];P0=dis_code[k];DelayX1ms(1);}}/********************1s延时********************************/void delay1s(){TMOD=0X01;EA=1;ET0=1;TH0=0x3C; //定时器定时50MsTL0=0XB0;TR0=1;PT0=1;do{disp();} while(time!=20&&S3&&S4); //有条件转移TR0=0;time=0;}void time_() interrupt 1 //中断程序{time++;TH0=0x3C;TL0=0XB0;}/********************500ms函数********************************/ void delay500ms(){ TMOD=0X01;EA=1;ET0=1;TH0=0x3C;TL0=0XB0;TR0=1;PT0=1;do{disp();} while(time!=10); //有条件转移TR0=0;time=0;}/**************************紧急函数**************************/ void jinji(){uchar f;for(f=10;f>0;f--){P3=0x6F;find_code[1]=f/10;find_code[0]=f%10;delay500ms();delay500ms();disp();}}/**********************主函数******************************/ void main(){while(1){ char m,a; //上电显示“班级、学号”状态find_code[0]=9;find_code[1]=0;find_code[2]=10;find_code[3]=4;find_code[4]=0;find_code[5]=0;find_code[6]=1;find_code[7]=11;disp();while(!S2){while(S3){P3=0XAF;for(m=60;m>0&&(S3);m--){if(!S4)jinji();find_code[1]=m/10;find_code[0]=m%10;delay1s();disp();}for(a=3;a>0&&S3;a--){ if(!S4)jinji();find_code[1]=a/10;find_code[0]=a%10;P3=0xeF;delay500ms();P3=0xcF;delay500ms();disp();}P3=0X77;for(m=30;m>0&&(S3);m--){if(!S4)jinji();find_code[1]=m/10;find_code[0]=m%10;disp();delay1s();}for(a=3;a>0&&S3;a--)学习文档仅供参考{ if(!S4)jinji();find_code[1]=a/10;find_code[0]=a%10;P3=0X7F;delay500ms();P3=0X7B;delay500ms();disp();}}P3=0xFF;}}}。
基于80C51单片机的交通灯C语言源程序

#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit SH_CP=P2^0;sbit DS=P2^1;sbit ST_CP=P2^2;uchar temp;uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; void NB_tong();void DX_tong();void NBY_show();void DXY_show();sbit RED_A=P1^0;//A代表NB南北sbit YELLOW_A=P1^1;sbit GREEN_A=P1^2;sbit RED_B=P1^3;//B代表DX东西sbit YELLOW_B=P1^4;sbit GREEN_B=P1^5;sbit K1=P3^0;sbit K2=P3^1;sbit K3=P3^3;sbit SPK=P3^7;//蜂鸣器uchar time=0,Count=0;//--------------------------------//延时//--------------------------------void DelayMS(uint x){uchar t;while(x--) for(t=0;t<120;t++);}//---------------------------------------//74HC595的驱动//---------------------------------------void In_595(){uchar i;for(i=0;i<8;i++){temp<<=1;DS=CY;SH_CP=1;_nop_();_nop_();SH_CP=0;}void Out_595(){ST_CP=0;_nop_();ST_CP=1;_nop_();ST_CP=0;}//---------------------------------------//T0定时器定时及各种情况下灯亮的调用//---------------------------------------void Timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;Count++;time=time%60;if(Count==20){time++;Count=0;}if(time<=30) NB_tong();if((time>30)&&(time<=35)) NBY_show();if((time>35)&&(time<=55)) DX_tong();if((time>55)&&(time<=60)) DXY_show();}//------------------------------------//按键处理//------------------------------------void EX_INT0() interrupt 0{if(K1==0) //K1按下强制NB南北通行,倒计时黑屏暂停;断开继续以前动作。
基于AT89C51单片机交通灯控制系统的设计(27页)

0随着微控技术的口益完菩和发展,单片机的应用不断走向深 入。它的 应用必定导致传统的控制技术从根本上发生变革。 它在工业控制、 数据采集、智能仪表、机电一体化、家用电 器等领域得到广泛的应 用,极大地提髙了这些领域的技术水 平和自动化控制。同时,伴随 着我国经济的髙速发展,私家 车、公交车的増加,无疑会给我国的道路交通系统带乘沉重 的压力、 很多大城市都不同程度地受到交通堵塞问题的困扰。 下面以€51单片 机为核心,设计出以人性化、智能化为 目的的交通灯控制系统,
;20、知刊淋代袖什 :退找恢®现场
1X)1、 IV
“咏]卞1阳
上-贞卜一贞返凶
1.5软件设计
1X0'!: (丄11 № 川1
1^>11 11.1 :*4/111
40
性0.【阶
5|0\
1亂1 朽.1, [2<1『
.\10\
IX).#01^19
⑴上]:
1(5. #30 人<: 人1」_
1)^/
开中№ 人通无4:转1二】0 人邁梂灯,0遒红灯 ^■1-1 15、辻时 11 3尤牢赵,'11屮利 .4扛灯缄灯 € 0. 5、湖坏初儁(
。1.4.2元件清单
0基子1单片机的交通信号灯控制系统元件清单如表1.2 所示•
卜--见返凶
1.5软件设计
0主程序采用査询方式定时,由112寄存器调用0,5$延时子程序 的次数,从 而获取交通灯的各种时间。子程序采用定时器1方 式1査询定时,定时 器定时501115,寄存器确定循环10 次,从而获得*).5 «的延时时间,
0单片机系统的硬件调试和软件调试是不能分开的,许多硬件 错误是在 软件调试过程中被发现和纠正的,但通常是先排除 明显的硬件故障 以后,再和软件结合起来调试以进一步排除 故障,可见硬件的调试 是基础,如果硬件调试不通过,软件 设计则无从谈起,
单片机电子课程设计交通灯

单片机电子课程设计交通灯交通灯常见于城市道路、车站、机场、海港等交通要冲,是一种用信号灯控制各车辆行驶、停车的交通工具。
而单片机技术正是为了实现智能交通而应运而生的,因此,我们可以通过设计交通灯的单片机电路来实现流程自动化,避免了人工操作不方便的弊端。
一、需求分析交通灯在不同场合下有不同的物理参数要求,不同的拓扑结构也会影响其电气参数的差异。
为了更好的符合实际需求,我们先进行需求分析:1. 主控芯片:采用单片机STC89C52,因为这款单片机要比其它的芯片更加亲民,支持到C语言,所以很受工程师们的欢迎。
2. 输入电压:12V左右,输入电压需要与单片机匹配。
3. 信号灯:使用三个LED灯组成信号灯,包括红、绿、黄三个灯,这也是所有交通灯的通用范式。
4. 播放器:交通灯需要有一个提示音来唤醒周围乘客的注意,使用一个嗡嗡声的蜂鸣器来实现这个功能。
二、硬件设计主要包括电源部分,人机交互部分和输出部分。
1. 电源部分:整个交通灯主要由一个电源进行供电,这个电源需要输入片内的电路以及输出到LED灯、蜂鸣器等。
2. 人机交互部分:由于本交通灯是一种提示型的交通工具,因此需要设计一个LED灯和蜂鸣器与主控单片机相连,当在运行时,单片机向蜂鸣器发送数据,嗡嗡声为“开始”,当交通灯需要改变状态时,再次发送数据,交通灯会判断状态,根据状态切换LED灯颜色。
3. 输出部分:输出部分主要是三个LED灯,分别为红、黄、绿色,蜂鸣器则是用于提示音的唤醒。
三、软件设计在软件设计中,我们主要是用C语言编写交通灯的驱动程序,并将其应用于单片机的开发板之上。
1.驱动程序设计:我们需要在单片机上编制驱动程序。
该驱动程序主要包括交通灯的启动和状态轮询。
当驱动程序启动时,单片机会向蜂鸣器发送几个分别代表交通灯状态的字符。
状态的不同时,LED灯的颜色也会发生变化,同时蜂鸣器会再次响起提示音。
2.调试程序:调试交通灯程序时,我们需要模拟各种交通状态,并通过改变状态的方式对交通灯进行测试,确保其在各种状态下都能够正常工作,避免了交通事故发生后,将灯的控制交给交警的尴尬做法。
单片机C语言红绿灯

摘要我所做的就是在一个51单片机开发板上模拟出一个简易的十字路口的交通灯,包含了时间,红灯,黄灯,绿灯等信息。
What I did was (to) on a 51 MCU development board to simulate a simple traffic lights at an intersection, contains the time, the red light, yellow light, green light and other information.关键词定时器中断的用法编程的逻辑位选控制段码控制目录摘要 (1)关键词 (1)正文: (3)1.功能 (3)2.硬件电路 (3)3.软件编写 (5)4.结论 (8)5.对课程建议 (9)正文1.功能交通灯通常指由红、黄、绿三种颜色灯组成用来指挥交通的信号灯。
绿灯亮时,准许车辆通行,黄灯亮时,已越过停止线的车辆可以继续通行;红灯亮时,禁止车辆通行。
2.硬件电路3.软件编写4.结论本系统就是利用了AT90C51芯片的I/O引脚。
系统采用美国ATMEL公司生产的单片机AT90C51,以及其它芯片(如:74HC164、74LS04六位反向器、L7805三端稳压电源)来设计交通灯控制器,实现了红灯亮40秒,绿灯亮20秒,黄灯亮3秒。
并通过AT90C51来控制74LS04芯片的输出口设置红、绿灯燃亮的功能和控制74HC164来实现在七段数码管上的时间显示;为了系统稳定可靠系统内集成了“看门狗”芯片,避免了系统因为死机而停止工作的情况发生。
系统设计简便、实用性强、操作简单、程序设计简便。
系统不足:只有横纵双向,没有转向灯。
还没有充分考虑的把现代管理、人工智能运用到交通的控制中,来计算交通控制点之间的距离,来更合理的安排红、绿灯的持续时间,使城市的交通管理更加人性化。
使人们远离目前的交通拥塞的现象。
5.对课程建议感谢老师对我们的教导,希望老师能够讲得生动一点,最好再带有实物的讲解,以便我们更能直观的了解。
单片机交通灯设计思路

单片机交通灯设计思路
单片机交通灯设计思路
单片机交通灯的设计是利用单片机控制灯的变化,以实现交通灯的控制。
首先,我们可以根据实际情况,计算不同交通灯所需要的时间,并将其映射到单片机中,以便更好地控制交通灯。
其次,要设计一个单片机程序,来控制交通灯的变化。
一般来说,在单片机程序中会使用一个循环来控制交通灯的变化,比如:在红灯时,每隔一段时间就会切换到绿灯,然后又会切换回红灯,以此类推。
这样的循环就能够保证交通灯可以正常工作。
在设计程序之前,还需要先确定输入和输出的类型。
输入可以是开关、按钮等,而输出则是灯,可以使用红绿灯或者其他形式的灯。
接下来,就是设计程序了,我们可以使用C语言或者其他语言编写程序,来控制交通灯的变化。
具体来说,我们可以首先定义一个时间变量,用来表示交通灯的变化时间,比如5秒、10秒等,然后通过一个for循环,来控制灯的变化,比如:当时间变量为0时,绿灯亮,当时间变量加1时,灯就变成红灯。
最后,在程序编写完成后,就可以将程序烧入单片机中,使之生效,实现控制交通灯的功能。
以上就是单片机交通灯设计思路的详细说明。
在实际运用中,需要根据实际情况,把上面提到的思路进行细化,以确保单片机交通灯系统能够正常工作。
单片机控制交通灯(内含程序和实物图)

摘要随着经济发展,汽车数量急剧增加,城市道路日渐拥挤,交通拥塞已成为一个国际性的问题。
因此,设计可靠、安全、便捷的多功能交通灯控制系统有极大的现实必要性。
根据交通灯在实际控制中的特点,结合单片机的控制功能,提出了一种用单片机自动控制交通灯的简易方法。
设计中包括硬件电路的设计和程序设计两大步骤,对单片机学习中的几个重要内容都有涉足。
单片机的应用正在不断深入,单片机可以用来仿真各个系统。
在自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。
那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。
交通信号灯控制方式很多。
本系统采用单片机STC89C52为中心器件来设计交通灯控制器,实现了通过P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过P1口输出,显示时间通过P0口输出至双位数码管)。
本系统设计周期短、可靠性高、实用性强、操作简单、维护方便、扩展功能强。
关键词:单片机交通灯数码管Microcontroller to control traffic lights Abstract: With economic development, a sharp increase in the number of cars, increasingly crowded city roads, traffic congestion has become an international problem. Therefore, the design of reliable, safe, convenient and versatile traffic light control system of great practical necessity.According to the characteristics of the traffic lights in the actual control, combined with the microcontroller control functions, and easy with Auto Control traffic lights. The design includes two steps of the hardware circuit design and programming have to get involved in several important single-chip learning.The application of microcontroller is the deepening of the Microcontroller can be used to simulate systems. In the automatic control of microcomputer application system, the Microcontroller is often used as a core component to use only Microcontroller knowledge is not enough, but also according to the specific hardware architecture hardware and software, to be improved.Crossroads shuttle vehicles, pedestrians bustling Dealers lane, walkways, and orderly. Rely on to achieve this orderly order? Rely on automatic command system of traffic lights. Traffic signal control. The system uses the Microcontroller STC89C52-centric devices to design the traffic signal controller to achieve a set of red, green light to kindle through the P1 port function of time; traffic light cycle lights, countdown 5 seconds left flashing yellow warning (traffic light signals through the P1 the output port, and displays the time through the P0 port output to double-digit LED). The system design cycle, high reliability, practical, simple operation, easy maintenance, strong extensions.Key words:microcontroller traffic light digital tub目录第1章前言 (1)1.1交通灯发展概述 (1)1.2 课题背景及意义 (2)1.3课题任务及主要实现内容 (3)1.4 原理分析 (4)1.4.1交通灯显示时序的理论分析 (4)1.4.2 交通灯显示的理论分析 (5)第2章设计方案分析 (6)2.1 单片机与外围接口部件 (6)2.2 倒计时显示界面 (7)2.3 交通灯 (7)第3章硬件系统设计 (8)3.1 单片机的选择 (8)3.2 硬件电路实现 (11)3.2.1 最小系统设计 (11)3.2.2 显示设计 (13)3.2.3 发光二极管模拟红绿灯 (15)3.2.4 按键模块 (16)第4章软件电路设计 (17)4.1 软件编译环境测试 (17)4.1.1 C语言介绍 (17)4.1.2 Keil uVision4介绍 (17)4.2软件总体设计 (17)第5章电路检测 (21)结论 (24)致谢 (25)参考文献 (26)附录: (27)源程序: (29)第1章前言单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机课程设计交通灯总结

单片机课程设计交通灯总结在单片机课程设计中设计交通灯控制系统是一个常见而有趣的项目。
以下是一个关于交通灯控制系统单片机课程设计的总结:设计目标:实现一个模拟交通路口的交通灯控制系统,包括红灯、绿灯、黄灯状态的切换,考虑不同方向车辆的通行情况。
硬件与软件要求:1.使用单片机(如AT89C51)作为主控制器。
2.连接LED灯模拟交通灯的红、黄、绿三个状态。
3.设置按钮或传感器来模拟车辆和行人的触发信号。
4.使用编程语言(如C语言)编写单片机程序,实现交通灯的状态切换逻辑。
设计步骤:1.确定交通灯状态:定义红、黄、绿三个状态,确定每个状态的持续时间。
2.设计状态切换逻辑:编写程序逻辑,根据不同的触发条件切换交通灯的状态。
例如,通过按钮触发或设置定时器来模拟车辆和行人的触发。
3.处理不同方向的通行:考虑路口不同方向的车辆通行情况,确保交通灯切换的合理性。
可以设置不同方向的灯的状态互斥。
4.实现程序代码:使用C语言等编写程序代码,并通过编译器将代码烧录到单片机中。
5.调试与优化:在实际硬件上进行调试,确保交通灯的状态切换和触发条件的逻辑正确。
根据实际情况优化代码,提高系统的稳定性和可靠性。
设计成果:成功设计并实现了一个交通灯控制系统,具有良好的交互性和可扩展性。
系统能够模拟真实路口的交通流量情况,通过合理的状态切换实现车辆和行人的有序通行。
学到的知识与技能:1.掌握单片机编程技能,包括IO口控制、定时器使用等。
2.熟悉硬件与软件协同设计的过程。
3.提高了系统设计和调试的能力。
4.学习了如何考虑不同方向车辆通行情况,提高了系统的实用性。
反思与展望:通过这个项目,我更深入地理解了单片机的工作原理和编程技术。
在未来,可以考虑增加更多的功能,如紧急情况下的交通灯切换、LED显示屏显示等,以提高系统的智能化和实用性。
这个课程设计不仅锻炼了我的技术能力,也培养了我对系统设计的整体思考能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机C语言交通灯设计
交通灯是城市中至关重要的设施之一,它可以引导车辆和行人的行为,并维持市民的出行秩序。
单片机C语言交通灯设计项目旨在使用C语言编程语言,通过单片机的控制,实现交通灯的开关并维护路面交通秩序。
本文将介绍单片机C语言交通灯设计的背景、基本原理以及设计过程。
一、背景
随着城市化的快速发展,交通流量急剧增加,城市中交通拥堵、交通安全等问题越来越严重。
为了能够有效维护交通秩序,交通灯成为城市交通管理中必不可缺的部分。
为了更好地控制交通灯的开关,我们需要借助单片机这个高效的控制设备。
二、基本原理
单片机指的是集成了中央处理器、存储器、输入输出端口、定时器/计数器、中断控制器等模块的芯片。
通过单片机的控制,可以对交通灯的开关进行精准控制,并实现不同路段之间的时序交替配合。
具体实现过程如下:
1. 单片机需要连接交通灯的各个灯组,包括红灯、黄灯、绿灯等。
2. 设计好程序后,单片机开始运作,不断循环,按照预
定的时间间隔实现各种信号灯的交替亮起。
3. 单片机可以根据交通灯的需求,设定不同的工作模式。
例如,可以在繁忙路段长亮绿灯,而在交通流量较少的路段则可以将绿灯调整为短亮,以节约能源。
4. 当有行人或车辆通过交通灯时,单片机可以自动检测,即时调整信号灯的亮灭状态,以避免事故发生。
三、设计过程
实现单片机C语言交通灯设计,需要进行以下步骤:
1. 确定交通灯需要工作的时间,例如绿灯需要亮的时间、红灯需要亮的时间等。
2. 编写程序,使用C语言完成程序设计。
可以通过调用
预先定义好的控制函数,实现对单片机的控制。
3. 程序编写完成后,将程序通过编译器编译,并将二进
制代码下载到单片机中,以实现程序运行。
4. 调试程序,确保程序可以正常运行,交通灯的不同信
号灯可以按照预定时间间隔交替亮灭。
5. 根据实际情况进行程序优化,例如可以增加灯光亮度
控制、检测模块和声音提示器等功能,以提高交通灯的安全性和可靠性。
四、总结
在现代城市中,交通灯成为了城市交通管理不可或缺的部分。
通过借助单片机这一高科技设备,使用C语言编程,我们可以设计出高效且准确的交通灯,使得市民的出行更为安全有
序。
而单片机C语言交通灯设计项目,就是在这一基础上,将理论和实践相结合,为城市交通管理提供了有益的技术支持。