/*****************************************************

*   王瑾毕设-交通灯

*

*

*

*****************************************************/

#include

sbit NS_GRE = P2^5;

sbit NS_YEL = P2^4;

sbit NS_RED = P2^3;

sbit EW_GRE = P2^2;

sbit EW_YEL = P2^1;

sbit EW_RED = P2^0;

uint8  EW_Timer = unused8;  //东西方向红灯定时器

uint8  NS_Timer = unused8;  //南北方向红灯定时器

uint8  YEL_Timer = unused8; //黄灯 5s定时器

int main(void)

{

Timer_Init();    //定时器初始化

INT0_Init();     //外部中断初始化

EA=1;            //打开全局中断

NS_GRE = OFF;    //所有的灯都灭

NS_YEL = OFF;

NS_RED = OFF;

EW_GRE = OFF;

EW_YEL = OFF;

EW_RED = OFF;

P3 = 0xFF;      //所有显示灭

//先让东西方向红灯亮 南北方向通行

EW_Timer = EWTime_Count;//东西方向开始计时

while(1)

{

if((EW_Timer != unused8) && (EW_Timer != 0)){ //东西方向做红灯倒计时

display1(EW_Timer/10, EW_Timer%10);      //东西方向显示时间 南北方向不显示

EW_RED_ON();                             //东西方向保持红灯

NS_GRE_ON();                             //南北方向保持绿灯

}

else if((EW_Timer != unused8) && (EW_Timer == 0) && (YEL_Timer == unused8)){//东西方向红灯计时到 东西方向保持红灯 南北方向变黄灯 开始黄灯5s计时

EW_RED_ON();                             //东西方向红灯

NS_YEL_ON();                             //南北方向黄灯

YEL_Timer = YELTime_Count;               //5s计时

}

if((EW_Timer != unused8) && (YEL_Timer != unused8) && (YEL_Timer != 0)){

display1(YEL_Timer/10, YEL_Timer%10);    //东西方向显示时间 南北方向不显示

}

if((EW_Timer != unused8) && (YEL_Timer == 0)){    //东西方向红-南北方向黄灯5s计时到 东西红灯定时器关 黄灯定时器关 南北红灯 东西绿灯 南北计时器开

EW_Timer = unused8;                      //东西红灯定时器关

YEL_Timer = unused8;                     //黄灯定时器关

NS_RED_ON();                             //南北变红灯

EW_GRE_ON();                             //东西变绿灯

NS_Timer = NSTime_Count;                 //南北红灯定时器开

}

if((NS_Timer != unused8) && (NS_Timer != 0)){ //南北红灯定时器正在计时

display2(NS_Timer/10, NS_Timer%10);      //南北方向显示时间 东西方向不显示

EW_GRE_ON();                             //东西保持绿灯

NS_RED_ON();                             //南北保持红灯

}

else if((NS_Timer != unused8) && (NS_Timer == 0) && (YEL_Timer == unused8)){ //南北方向红灯计时到 南北方向保持红灯 东西方向变黄灯 开始黄灯5s计时

NS_RED_ON();                             //南北方向保持红灯

EW_YEL_ON();                             //东西方向变黄灯

YEL_Timer = YELTime_Count;               //5s计时

}

if((NS_Timer != unused8) && (YEL_Timer != unused8) && (YEL_Timer != 0)){

display2(YEL_Timer/10, YEL_Timer%10);   //南北方向显示时间 东西方向不显示

}

if((NS_Timer != unused8) && (YEL_Timer == 0)){  //南北方向红-东西方向黄灯5s计时到 南北方向定时器关 黄灯定时器关 东西方向变红灯 南北方向变绿灯 东西方向红灯计时器开始计时

NS_Timer = unused8;

YEL_Timer = unused8;

EW_RED_ON();                           //东西方向变红灯

NS_GRE_ON();                           //南北方向变绿灯

EW_Timer = EWTime_Count;               //东西方向开始计时

}

if(Flag_Key == 1){        //如果急停按键按下 则全红灯 显示灭

P3 = 0xFF;           //所有显示灭

EW_RED_ON();         //东西方向红灯

NS_RED_ON();         //南北方向红灯

EW_Timer = unused8;  //关闭所有定时器

NS_Timer = unused8;

YEL_Timer = unused8;

……………………

…………限于本文篇幅 余下代码请从51黑下载附件…………

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

  1. J015基于AT89C51的十字路口交通灯紧急+夜间

    基于AT89C51的十字路口交通灯紧急+夜间 仿真图proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编号J015 目录标题 基于AT89C51的十字路口交通灯紧急+夜 ...

  2. 【交通灯】51单片机的交通灯Proteus仿真_带紧急开关+黄灯倒计时+可调时间

    功能说明: 设计下载链接 1.四路交通灯,带有红绿灯倒计时,绿灯倒计时结束后转黄灯5秒,再转红灯. 2.紧急情况下按键紧急按钮,四路黄灯快闪. 3.可以动态设置红绿灯时间. 涉及知识点:按键扫描,定时 ...

  3. 基于AT89C51单片机的交通灯控制系统的设计

    一.前言 本文中交通灯系统采用MSC-51单片机AT89C51核心来设计交通灯控制器,利用单片机的外围扩展,显示电路构成基本硬件,编程实现对定时.控制.显示电路的控制,调试仿真,完成设计.本系统实现了 ...

  4. 【019】基于51单片机的交通灯Proteus仿真设计

    一.资料内容 (1).基于51单片机的交通灯proteus仿真设计一份: (2).基于51单片机的交通灯proteus仿真设计keli源代码一份: (3).基于51单片机的交通灯proteus仿真设计 ...

  5. 基于单片机的交通灯设计c语言程序,基于单片机AT89C51控制的十字路口交通灯系统设计...

    摘要:本文设计一个单片机AT89C51控制的十字路口交通灯,通过硬件电路设计.元器件使用.软件设计.仿真等环节,实现主干道和支干道的分时控制,保证正常的交通秩序. 关键词:单片机 系统设计 交通灯 1 ...

  6. 基于at89c51单片机的交通灯控制设计

    ** 单片机自主学习项目*设计分析 -模拟LED交通灯 ** 一.开发背景与需求 1 开发背景 交通事业蓬勃发展,交通流量年年增长,道路交通繁忙,经常有严重堵车现象,特别是在交叉口,为了在叉口的各条干 ...

  7. 单片机c语言程序开发洗衣机,基于51单片机洗衣机控制器的设计(附程序)☆

    基于51单片机洗衣机控制器的设计(附程序)☆(任务书,开题报告,中期检查表,毕业论文21000字,程序) 摘  要 洗衣机是人们日常生活中常见的一种家电,已经成为人们生活中不可缺少的家用电器.在工业生 ...

  8. 51单片机STM32交通灯红绿灯十字路口信号灯类设计功能要求汇总

    51单片机STM32交通灯红绿灯十字路口信号灯类设计功能要求汇总 浏览必读: 使用关键词搜索可以达到事半功倍的效果. 电脑浏览器CTRL+F可以使用搜索查找 设计编号J000 功能说明: 1.四路交通 ...

  9. 8255A红绿灯c语言程序,微机原理十字路口红绿灯闪烁实验

    课程名称: 实验项目: 实验地点: 专业班级: 学 号: 学生姓名:指导教师: 本科实验报告 微机原理及接口技术 十字路口红绿灯闪烁实验 微机原理实验室 电子信息1001 2010001211 张 恒 ...

最新文章

  1. UA MATH566 统计理论7 还有一个例子:推导卡方检验
  2. mysql group by 别名_[转]为什么group by后面不能使用别名(除MySQL)
  3. 轻松看懂机器学习十大常用算法 - 基础知识
  4. java解析shell命令_Android中执行java命令的方法及java代码执行并解析shell命令
  5. linux系统声卡安装教程,Linux系统下如何安装声卡驱动?
  6. 【电路】简易的桥式整流电路---选取滤波电容
  7. python 批量查询网页导出结果_李亚涛:python批量查询网页收录情况并计算收录率...
  8. md5算法不可逆,为啥网上很多网站声称可以解密md5
  9. 不到 10 行代码完成抖音热门视频的爬取!
  10. 南京师范计算机科学研究生分数线,2020南京师范大学考研复试分数线已公布
  11. oracle datamodeler,查看您的 Oracle SQL Developer Data Modeler 设计
  12. 使用certbot自动续签ssl证书
  13. 一个08届毕业的学长写给即将毕业的09届的学弟学妹们
  14. 插板法、插空法、捆绑法
  15. 魔兽时间 一键宏 输出的原理与笔记
  16. 【宋红康 MySQL数据库】【基础版】【15】存储过程与存储函数
  17. 苹果cms V10添加修改播放器教程
  18. 深入计算机组成原理(十五)浮点数和定点数(上):怎么用有限的bit标识尽可能多的信息?
  19. Isolating Individual Trees in a Savanna Woodland Using Small Footprint Lidar Data
  20. 2021年美容师(中级)考试试卷及美容师(中级)模拟考试题

热门文章

  1. Databuscanal对比
  2. tzset()与localtime()
  3. Paper Writting4 - 礼貌用语
  4. MTKCam3流程学习 - openCamera
  5. css零到一基础教程042:CSS 谷歌字体
  6. Andriod TV 5555端口攻击方法
  7. 总结python中列表、元组、字典、集合的共同点和不同点
  8. 转载一份诚恳的互联网找工作总结和感想(附:怎样花两年时间去面试一个人)
  9. 【图像修复】基于matlab GUI FMM+Criminisi算法彩色图像修复【含Matlab源码 1507期】
  10. Windows命令行连接远程数据库