单片机交通灯控制系统

这篇具有很好参考价值的文章主要介绍了单片机交通灯控制系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、实验目的

掌握单片机的综合应用设计。

二、实验仪器、材料

Keil软件、proteus软件

三、实验内容及要求

完成以下任务:十字路口的交通灯控制系统,四组灯对应十字路口的四个方向,用两位的数码管显示剩余的时间。

四、实验原理

单片机交通灯控制系统

五、实验过程及原始记录(包括原理图程序代码)

单片机交通灯控制系统

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar shuzi[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};  
//p0控制LED灯是否亮
sbit ew_red=P0^0;        //东西红灯,低电平亮
sbit ew_yellow=P0^1;   
sbit ew_green=P0^2;
sbit sn_red=P0^3;
sbit sn_yellow=P0^4;
sbit sn_green=P0^5;
//p2口控制段码
sbit P2_0=P2^0;  
sbit P2_1=P2^1;
sbit P2_2=P2^2;
sbit P2_3=P2^3;
sbit P2_4=P2^4;
sbit P2_5=P2^5;
sbit P2_6=P2^6;
sbit P2_7=P2^7; 
//控制数码管位码
sbit P1_0=P1^0; 
sbit P1_1=P1^1;	//p1_0,p1_1控制东西灯位码
sbit P1_2=P1^2; 
sbit P1_3=P1^3;	//p1_2,p1_3控制南北灯位码
//按键控制
sbit P3_3=P3^3; //南北通行按键
sbit P3_4=P3^4; //全部禁止按键
//定义变量
int s=0,n=0;

void time(void) interrupt 1 //中断,产生1s
{
     TH0=(65536-50000)/256;		//0.05s=50ms
	 TL0=(65536-50000)%256;
	 n++;
	 if(n==20)	//设置频率,即倒计时速率
	 {n=0;
	 s++;}
	 if(s==60)	 //设置交通灯循环一次的时间
	 s=0;
}

void ew_allow()		   //东西绿灯,南北红灯
{
	 ew_red=1;
	 ew_yellow=1;
	 ew_green=0;  //低电平亮
	 sn_red=0;
	 sn_yellow=1;
	 sn_green=1;
}
void ew_wait()		   //东西黄灯,南北红灯
{
	 ew_red=1;
	 ew_yellow=0;
	 ew_green=1;
	 sn_red=0;
	 sn_yellow=1;
	 sn_green=1;
}
void sn_allow()		   //东西红灯,南北绿灯
{
	 ew_red=0;
	 ew_yellow=1;
	 ew_green=1;
	 sn_red=1;
	 sn_yellow=1;
	 sn_green=0;
}
void sn_wait()			//东西红灯,南北黄灯
{
	 ew_red=0;  //低电平亮
	 ew_yellow=1;
	 ew_green=1;
	 sn_red=1;
	 sn_yellow=0;
	 sn_green=1;
}

void delay()
{	 int i;
     int j;
	 for(i=0;i<100;i++)
	    for(j=0;j<10;j++);
}
void chushi()			 //P1初始化
{
	 P1_0=0;
	 P1_1=0;
	 P1_2=0;
	 P1_3=0;
}
   
void jinzhi()			 //按下禁止按钮后四个方向都禁止(都为红灯),且时间显示为99
{
     chushi();
     P2=shuzi[9]; 
     P1_0=1;
     P1_2=1; 
	 delay();
	 chushi();
     P1_1=1;  
     P1_3=1;
	 ew_red=0;
	 ew_yellow=1;
	 ew_green=1;
	 sn_red=0;
	 sn_yellow=1;
	 sn_green=1;
	 delay();
}

void display_led()		  //LED灯显示
{
	 if(s<=27)	 //东西方向与南北方向时间间隔3s(即黄灯时间)
	 ew_allow();  //东西绿灯,南北红灯
	 else if(s<=30)   
	 ew_wait();		   //东西黄灯,南北红灯
	 else if(s<=57)	   //3s
	 sn_allow();	 //东西红灯,南北绿灯
	 else if(s<=60) 
	 sn_wait();
	 else
	  jinzhi();
}
void display_shuzi1()	   //绿灯以及黄灯的倒计时显示
{
    if(s<=27)
	{
	   chushi();
	   P2=shuzi[(27-s)/10];  
	   P1_1=0;
	   P1_0=1;
	   delay();
	   chushi();
	   P2=shuzi[(27-s)%10]; 
	   P1_1=1; //个位
	   P1_0=0; //十位
	   delay();
	 }
	 else if(s<=30)
	{
	   chushi();
	   P2=shuzi[(30-s)/10];
	   P1_1=0;
	   P1_0=1;
	   delay();
	   chushi();
	   P2=shuzi[(30-s)%10];
	   P1_1=1;
	   P1_0=0;
	   delay();
	 }
	 else if(s<=57)
	{
	   chushi();
	   P2=shuzi[(57-s)/10];
	   P1_3=0;
	   P1_2=1;
	   delay();
	   chushi();
	   P2=shuzi[(57-s)%10];
	   P1_3=1;
	   P1_2=0;
	   delay();
	 }
	 else if(s<=60)
	{
	   chushi();
	   P2=shuzi[(60-s)/10];
	   P1_3=0;
	   P1_2=1;
	   delay();
	   chushi();
	   P2=shuzi[(60-s)%10];
	   P1_3=1;
	   P1_2=0;
	   delay();
	 }
	 else
	   jinzhi();
}

void display_shuzi2()		//红灯的倒计时显示
{ 
	  if(s<=30)
	  {
	   chushi();
	   P2=shuzi[(30-s)/10];
	   P1_3=0;	  //个位
	   P1_2=1;	 //十位
	   chushi();
	   P2=shuzi[(30-s)%10];
	   P1_3=1;
	   P1_2=0;
	   delay();
	  }	   
	  else if(s<=60)
	  {
	   chushi();
	   P2=shuzi[(60-s)/10];
	   P1_1=0;
	   P1_0=1;
	   delay();
	   chushi();
	   P2=shuzi[(60-s)%10];
	   P1_1=1;
	   P1_0=0;
	   delay();
	 }
	 else
	  jinzhi();
}

void display_shuzi3()
{
	if(s<=60)
	{
	  chushi();
	  P2=0;
 	  delay();
	  chushi();
	  P2=0;
	  delay();
	}
	if(s==61)
	jinzhi();
}
  
void panduan()			       	//按键的判断
{
	  if(P3_3==0)				//按下时切换到南北绿灯刚亮起的时间段
	  s=31;
	  if(P3_4==0)				//按下时实现全部禁止(按下南北通行解除禁止)
	  s=61;
}

void main()
{
     TMOD=0x01;
	 TH0=(65536-50000)/256;	  //高8位
	 TL0=(65536-50000)%256;	  //低8位
	 EA=1;
	 ET0=1;
	 TR0=1;
	 while(1)
	 {		  
		  display_led();	 
		  display_shuzi1();
		  display_shuzi2();
		  display_shuzi3();
		  panduan();
	 }
}     

六、实验结果及分析(程序仿真分析)

单片机交通灯控制系统

 文章来源地址https://www.toymoban.com/news/detail-512191.html

到了这里,关于单片机交通灯控制系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【超详细】基于单片机控制的十字道路口交通灯控制

    目录 最终效果 一、设计任务 二、设计报告 1 设计说明    1.1功能分析 1.1.1整体系统功能分析 1.1.2显示状态功能分析 1.1.3设置状态功能分析 1.1.4紧急状态功能分析 1.2方案比选 1.2.1车辆LED数码管倒计时显示板块 1.2.2车辆信号灯显示板块 1.2.3行人信号灯显示板块 1.2.4键盘输入板块

    2024年02月04日
    浏览(54)
  • 【毕业设计】基于单片机控制的交通灯毕业设计(附源代码)

    目 录 摘   要 Abstract 前   言 一、工程简介 ( 一)、概述 ( 二 ) 、 工艺 流程图 二、工程设计 (一)、控制方案的确定 (二)、硬件部分 ( 1 )、交通灯控制系统的硬件设计 ( 2 )、硬件系统的设计具备以下原则 ( 3 ) 、硬件结构框图 (如图 3 所示) ( 4 ) 、交通灯控

    2024年04月23日
    浏览(80)
  • 基于51单片机交通灯控制器(东西通行_南北通行_按键启动)

    管制+启动+黄灯闪烁 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:J012 LED灯的定时控制;数码管的显示及闪烁;独立按键的读取与判断;定时器的设置与应用。 单片机控制东西、南北这两组交通灯LED,同时在数码管上显示剩余时间,当剩余时间少于5s时

    2024年02月04日
    浏览(60)
  • 51单片机——交通灯

      1、基本功能就是如同红绿灯一般,不做赘述。   2、红灯时长和绿灯时长可通过按键设置,即按键列中的上面4个,当这4个按键有一个按下后便进入时长设置功能,设置完成后按最下面两个按键(紧急控制按钮)任意一个便可退出该功能。   3、有紧急控制功能,按下

    2024年02月11日
    浏览(42)
  • 单片机交通灯设计实例

    目录 一、初步设计 二、实现过程 三、实现效果 一、初步设计 在Profession中设计一个交通灯的仿真图,结合Keil编写c语言代码实现十字路口的交通灯变化。设计的交通灯主要变化有如下五种情况:(可根据自身的交通灯变化情况进行相应的代码修改) 第一种情况:东西红灯,南

    2024年02月07日
    浏览(45)
  • 单片机8051设计交通灯

    目录 一、功能要求 要求实现的功能 二、设计方案 1.系统时钟 2. 红绿灯时长及夜间模式时间段的存储 3.紧急情况设计 4.夜间模式设计 5.夜间行人过路设计 6.系统时钟及系统参数设置显示 7.数码管显示倒计时 8.LED显示红绿灯 三、系统硬件设计 1.数码管显示 2.矩阵键盘 3.蜂鸣器

    2024年01月17日
    浏览(46)
  • 基于单片机的交通灯设计

    本系统由单片机系统、键盘、LED 显示、交通灯演示系统组成。系统包括人行道、左转、右转、以及基本的交通灯的功能。系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间以及根据具体情况手动控制等功能。随着社会经济的发

    2024年02月06日
    浏览(86)
  • 单片机——交通灯(定时器中断)

    1.基础知识 1.1、中断源 中断源符号 名称 中断引起原因 中断号 /INT0 外部中断0 P3.2引脚低电平或下降沿信号 0 T0 定时器0中断 定时,计数器0计数回0溢出 1 /INT01 外部中断1 P3.3引脚低电平或下降沿信号 2 T1 定时器1中断 定时/计数器1计数回0溢出 3 TI/RI 串行口中断 串行通信完成一帧

    2024年02月08日
    浏览(48)
  • 51单片机LED模拟交通灯

    实验软件 : Keil5 + Proteus7 实验元件 : AT89C51 * 1, LED-GRD * 3, LED-YELLOW * 3, LED-GREEN * 3, RES * 9 (用来限流可以不要)

    2024年02月11日
    浏览(49)
  • stm32单片机的智能交通灯设计

    一.硬件方案        stm32单片机的智能交通灯主要由stm32单片机核心板+74HC245芯片+数码管+LED指示灯+按键等构成。硬件框图如下: 二.设计功能 (1)本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,还能进行倒计时显示。 (2)按键可以控制

    2024年02月08日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包