编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

如何用51单片机做十字路口交通信号灯的设计?

wxchong 2025-08-02 22:23:22 开源技术 4 ℃ 0 评论

任务描述:

某企业承担了一个十字路口交通灯控制系统设计任务,控制要求:东西向绿灯亮 5s 后,黄灯闪烁,闪烁5次亮红灯,红灯亮后,南北向由红灯变成绿灯,5s 后南北向黄灯闪烁,闪烁5次后亮红灯,东西向绿灯亮,如此往复。请用单片机设计其控制系统并调试运行。

电路原理图

元件清单

C语言程序

#include<reg51.h>  //包含头文件reg51.h,定义51单片机中的专用寄存器
void delay0_5s();
void delay5s();
void main()
{
 unsigned char k;
 TMOD=0x10;		//设置T1为工作方式1
 while(1)
 {
  P1=0x09;  //东西绿灯亮5秒&南北红灯亮	   
   delay5s();
  for(k=0;k<5;k++) //东西黄灯闪烁&南北红灯
  {
   P1=0x11;	  //东西黄灯亮&南北红灯亮
   delay0_5s();
  P1=0x01;	  //东西黄灯灭&南北红灯亮
  delay0_5s();
   }
     P1=0x24;  //东西红灯亮&南北绿灯亮5秒
   delay5s();
     for(k=0;k<5;k++)  //东西红灯&南北黄灯闪烁
    {
    P1=0x22;	 //东西红灯&南北黄灯亮
     delay0_5s();
     P1=0x20;	   //东西红灯&南北黄灯灭
      delay0_5s();
   }
   }
   }
  void delay0_5s() //0.5秒延时
  {
  unsigned char i;
  for(i=0;i<10;i++)
  {
   TH1=0X3C;
   TL1=0xb0;
   TR1=1;
   while(!TF1);
   TF1=0;
   }
   }
 void delay5s()	 //5秒延时
  {
  unsigned char i;
  for(i=0;i<50;i++)
  {
   TH1=0X3C;
   TL1=0xb0;
   TR1=1;
   while(!TF1);
   TF1=0;
   }
   }

模拟仿真视频

51单片机十字路口交通信号灯的设计仿真视频(点击蓝色字体可查看)

#C语言##单片机##51单片机##电子#

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表