1、功能描述

观察十字路口红绿灯工作流程,设计交通灯。

1、初始时:南北向、东西向直行左转均为红灯

2、南北向直行:

①南北向直行绿灯亮,延时若干秒

②启动南北向左转数码管显示:倒计时6秒;同时南北向直行绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后南北向直行绿灯灭,南北向直行黄灯亮,延时3秒

③南北向左转数码管倒计时显示结束,关闭;同时南北向直行黄灯灭,南北向直行红灯亮

3、南北向左转:

①南北向左转绿灯亮,延时若干秒

②启动东西向直行数码管显示:倒计时6秒;同时南北向左转绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后南北向左转绿灯灭,南北向左转黄灯亮,延时3秒

③东西向直行数码管倒计时显示结束,关闭;同时南北向左转黄灯灭,南北向左转红灯亮

4、东西向直行:

①东西向直行绿灯亮,延时若干秒

②启动东西向左转数码管显示:倒计时6秒;同时东西向直行绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后东西向直行绿灯灭,东西向直行黄灯亮,延时3秒

③东西向左转数码管倒计时显示结束,关闭;同时东西向直行黄灯灭,东西向直行红灯亮

5、东西向左转:

①东西向左转绿灯亮,延时若干秒

②启动南北向直行数码管显示:倒计时6秒;同时东西向左转绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后东西向左转绿灯灭,东西向左转黄灯亮,延时3秒

③南北向直行数码管倒计时显示结束,关闭;同时东西向左转黄灯灭,东西向左转红灯亮

2、PROTEUS中设计的电路图

3、源代码

#include <reg51.h>
unsigned char code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};void delay(int t)
{int i,j;for(i=0;i<=t;i++)for(j=0;j<=110;j++);
}sbit NB=P2^0;//南北
sbit DX=P2^1;//东西
int i;/*南北向、东西向直行左转均为红灯*/
void state1()
{NB=1;P1=0X99;NB=0;//南北直、左红灯亮DX=1;P1=0X99;DX=0;//东西直、左红灯亮delay(3000);//NB=1;P1=0X88;NB=0;//南北直、左红灯灭
//  DX=1;P1=0X88;DX=0;//东西直、左红灯灭 }/*南北向直行(NB)*/
void state2(){P0=0X00;NB=1;P1=0X9C;NB=0;//南北直绿灯亮delay(3000);//南北向左转数码管显示:倒计时6秒for(i=6;i>=4;i--) //南北向直行绿灯闪烁3下{NB=1;P1=0X1C;NB=0;//南北直绿灯亮 P0=table[i];delay(500);NB=1;P1=0X18;NB=0;//南北直绿灯灭delay(500);}
//  NB=1;P1=0X0C;NB=0;//南北直绿灯亮for(i=3;i>=1;i--){NB=1;P1=0X1A;NB=0;//南北直黄灯亮P0=table[i];delay(1000);}//NB=1;P1=0X8A;NB=0;//南北直黄灯亮//delay(3000);NB=1;P1=0Xc9;NB=0;//南北直黄灯灭,左转数码管倒计时显示结束}/*南北向左转(NB)*/
void state3(){NB=1;P1=0Xc9;NB=0;//南北左绿灯亮delay(3000);//南北向直行数码管显示:倒计时6秒for(i=6;i>=4;i--) //南北向左转绿灯闪烁3下{DX=1;P1=0X91;DX=0;//东西直行数码管打开NB=1;P1=0XC9;NB=0;//南北左转绿灯亮,直行红灯亮    P0=table[i];delay(500);NB=1;P1=0X89;NB=0;//南北左转绿灯灭delay(500);}for(i=3;i>=1;i--){NB=1;P1=0XA9;NB=0;//南北左转黄灯亮P0=table[i];delay(1000);}NB=1;P1=0X99;NB=0;DX=1;P1=0X9c;DX=0;//东西直行数码管打开}/*东西向直行(NB)*/
void state4()
{DX=1;P1=0X9c;DX=0;//东西北直绿灯亮,数码管关闭delay(3000);//东西向左转数码管显示:倒计时6秒for(i=6;i>=4;i--) //东西向直行绿灯闪烁3下{DX=1;P1=0X1C;DX=0;//东西直绿灯亮    P0=table[i];delay(500);DX=1;P1=0X18;DX=0;//东西直绿灯灭delay(500);}//DX=1;P1=0X0C;DX=0;//东西直绿灯亮for(i=3;i>=1;i--){DX=1;P1=0X1A;DX=0;//东西直黄灯亮P0=table[i];delay(1000);}DX=1;P1=0Xc9;DX=0;//东西直黄灯灭,左转数码管倒计时显示结束
}/*东西向左转(NB)*/
void state5()
{DX=1;P1=0Xc9;DX=0;//南北左绿灯亮delay(3000);//东西向直行数码管显示:倒计时6秒for(i=6;i>=4;i--) //东西向左转绿灯闪烁3下{NB=1;P1=0X91;NB=0;//南北红灯,直行数码管打开DX=1;P1=0XC9;DX=0;//东西左转绿灯亮P0=table[i];delay(500);DX=1;P1=0X89;DX=0;//东西左转绿灯灭delay(500);}for(i=3;i>=1;i--){   DX=1;P1=0XA9;DX=0;//东西左转黄灯亮P0=table[i];delay(1000);}NB=1;P1=0X1C;NB=0;DX=1;P1=0X99;DX=0;}
void main()
{NB=1;P1=0X88;NB=0;DX=1;P1=0X88;DX=0;P0=0X00;state1();while(1){state2();state3();state4();state5();}
}

4、实验效果

效果视频展示

问题咨询及项目源码请加群:

QQ群

名称:IT项目交流群

群号:245022761

【C51单片机】交通红绿灯设计(仿真)相关推荐

  1. C51单片机 简单的交通红绿灯设计一

    各位读者朋友们你们好,感谢你们能点开这篇文章,作为一个非硬件专业的学生,我没有扎实的硬件基础,很担心自己所写内容没有理论基础或者存有漏洞,如果有不对的地方,期待您能指正,一起学习.交通红绿灯的设计算是 ...

  2. 基于51单片机数字电压表的设计 仿真、程序、原理图(转发)

    摘 要 数字电压表简称DVM,数字电压表基本原理是将输入的模拟电压信号转化为数字信号,再进行输出显示.而A/D转换器的作用是将连续变化的模拟信号量转化为离散的数字信号,器基本结构是由采样保持,量化,编 ...

  3. 基于C51单片机的万年历设计(LCD1602显示)

    C51单片机万年历设计 注:该程序基于普中科技C51 V2.2开发板设计,库函数和硬件资料均来自普中科技,侵删.main.c大部分为原创,如有雷同,纯属巧合. 名称:C51万年历. 硬件:以C51芯片 ...

  4. 【c51单片机】交通红绿灯设计

    观察十字路口红绿灯工作流程,设计交通灯. 1.初始时:南北向.东西向直行左转均为红灯 2.南北向直行: ①南北向直行绿灯亮,延时若干秒 ②启动南北向左转数码管显示:倒计时6秒:同时南北向直行绿灯闪烁3 ...

  5. 基于51单片机交通灯设计时间可设置仿真红绿灯十字路口

    演示视频:https://www.bilibili.com/video/BV1Tt4y1y7s8/ 将链接复制至IE浏览器打开!!! 功能操作说明: 从上到下,设置键,加键,减键,特殊键.单独一个按键 ...

  6. 红绿灯c语言程序及仿真图,AT89C51单片机十字路口交通灯设计(仿真、keil源代码以及实物图)...

    /***************************************************** *   王瑾毕设-交通灯 * * * ************************** ...

  7. 基于51单片机的红绿灯设计

    寒假项目最后一个,基于STC/AT89C51的红路灯设计 实现十效果具体为:南北通行42秒,南北闪烁3秒,南北黄灯4秒,禁止通行1秒,东西黄灯4秒,东西通行27秒,东西闪烁3秒,东西黄灯4秒.同时具备 ...

  8. c51单片机汇编语言语法错误,关于c51单片机交通灯汇编程序怎么加一个紧急状态按键的问题...

    能不能在这个交通灯系统里,加上一个紧急状态按键,使所有红灯亮. 单片机程序在下面: ORG 0000H ;主函数地址 LJMP MAIN ORG 000BH ;中断定时器0 地址 LJMP INTER ...

  9. 【C51单片机】数字电压表设计

    数字电压表要求:在AT89C52系统中采用PCF8591芯片,测量0-5V范围内的直流电压,并在2位数码管上显示电压值. 问题咨询请联系->群名:IT项目交流群    群号:245022761 ...

最新文章

  1. webform repeater
  2. 网络新高速:T比特网络技术实现成功测试
  3. [转载]Eclipse SVN插件比较 Subclipse vs Subversive
  4. 从啤酒尿布到自动驾驶,零售行业如何再创营销神话?
  5. android setContentView处理流程
  6. 通过Spring的BeanPostProcessor的 bean的后置处理器会拦截所有bean创建过程
  7. 【使用注意】以后定义变量类型利用父类定义
  8. 计算机密码学奖,上海交通大学计算机科学与工程系(CSE)
  9. vue中使用FullCalendar日历组件
  10. integer比较_Java中的整型包装类值的比较为什么不能用==比较?原因是因为缓存
  11. sqlserver得到行号
  12. System类的概述和方法使用
  13. 比较器应用一:滞回比较器
  14. 世界知名游戏公司简介(国内,欧美,日韩)
  15. 团体标准的意义,办理团体标准的好处
  16. 2月14,情人节双语送祝福!
  17. Object-based superresolution land cover Mapping From Remotely sensed imagery
  18. Omdia 表示,智能手机出货量下降 12.9%
  19. 基于android点餐系统需求分析,基于Android的点餐系统的设计及实现
  20. maters鸿蒙系统,【华为MateRS保时捷版评测】系统:多元素化集合EMUI 8.1体验很棒-中关村在线...

热门文章

  1. 一条短信致倾家荡产?手机验证码安全吗
  2. 前端开发练习——包含了计时功能的动画时钟
  3. 如何做服务器安全维护
  4. 在egret中自制帧动画
  5. 迭代法求一元三次方程
  6. 携程 Apollo 配置中心 | 学习笔记(七) | 如何将配置文件敏感信息加密?
  7. latex 波浪线 ~
  8. 推荐系统之NFM原理与实现学习
  9. spring-retry
  10. 【阅读笔记】Towards Personalized Federated Learning个性化联邦综述