C51单片机设计红绿灯五种通行方式
大学生C51单片机红绿灯开发流程思路:
观察十字路口红绿灯工作流程,设计交通灯。
1、初始时:南北向、东西向直行左转均为红灯
2、南北向直行:
①南北向直行绿灯亮,延时若干秒
②启动南北向左转数码管显示:倒计时6秒;同时南北向直行绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后南北向直行绿灯灭,南北向直行黄灯亮,延时3秒
③南北向左转数码管倒计时显示结束,关闭;同时南北向直行黄灯灭,南北向直行红灯亮
3、南北向左转:
①南北向左转绿灯亮,延时若干秒
②启动东西向直行数码管显示:倒计时6秒;同时南北向左转绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后南北向左转绿灯灭,南北向左转黄灯亮,延时3秒
③东西向直行数码管倒计时显示结束,关闭;同时南北向左转黄灯灭,南北向左转红灯亮
4、东西向直行:
①东西向直行绿灯亮,延时若干秒
②启动东西向左转数码管显示:倒计时6秒;同时东西向直行绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后东西向直行绿灯灭,东西向直行黄灯亮,延时3秒
③东西向左转数码管倒计时显示结束,关闭;同时东西向直行黄灯灭,东西向直行红灯亮
5、东西向左转:
①东西向左转绿灯亮,延时若干秒
②启动南北向直行数码管显示:倒计时6秒;同时东西向左转绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后东西向左转绿灯灭,东西向左转黄灯亮,延时3秒
③南北向直行数码管倒计时显示结束,关闭;同时东西向左转黄灯灭,东西向左转红灯亮
观察十字路口红绿灯工作流程,设计交通灯。
1、初始时:南北向、东西向直行左转均为红灯
2、南北向直行:
①南北向直行绿灯亮,延时若干秒
②启动南北向左转数码管显示:倒计时6秒;同时南北向直行绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后南北向直行绿灯灭,南北向直行黄灯亮,延时3秒
③南北向左转数码管倒计时显示结束,关闭;同时南北向直行黄灯灭,南北向直行红灯亮
3、南北向左转:
①南北向左转绿灯亮,延时若干秒
②启动东西向直行数码管显示:倒计时6秒;同时南北向左转绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后南北向左转绿灯灭,南北向左转黄灯亮,延时3秒
③东西向直行数码管倒计时显示结束,关闭;同时南北向左转黄灯灭,南北向左转红灯亮
4、东西向直行:
①东西向直行绿灯亮,延时若干秒
②启动东西向左转数码管显示:倒计时6秒;同时东西向直行绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后东西向直行绿灯灭,东西向直行黄灯亮,延时3秒
③东西向左转数码管倒计时显示结束,关闭;同时东西向直行黄灯灭,东西向直行红灯亮
5、东西向左转:
①东西向左转绿灯亮,延时若干秒
②启动南北向直行数码管显示:倒计时6秒;同时东西向左转绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后东西向左转绿灯灭,东西向左转黄灯亮,延时3秒
③南北向直行数码管倒计时显示结束,关闭;同时东西向左转黄灯灭,东西向左转红灯亮
proteus主要图片
51单片机主要核心参考代码
#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;//南北,低4位控制直行,高四位控制左转向
sbit DX=P2^1;//东西,低4位控制直行,高四位控制左转向
int i;
void main()
{NB=1;P1=0X88;NB=0;DX=1;P1=0X88;DX=0;P0=0X00;/*1、南北向、东西向直行左转均为红灯*/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;//东西直、左红灯灭 /*2、南北向直行(NB)*/NB=1;P1=0X84;NB=0;//南北直绿灯亮delay(3000);//南北向左转数码管显示:倒计时6秒for(i=6;i>=4;i--) //南北向直行绿灯闪烁3下{NB=1;P1=0X0C;NB=0;//南北直绿灯亮 P0=table[i];delay(500);NB=1;P1=0X08;NB=0;//南北直绿灯灭delay(500);}NB=1;P1=0X0C;NB=0;//南北直绿灯亮for(i=3;i>=0;i--){P0=table[i];delay(1000);}NB=1;P1=0X8A;NB=0;//南北直黄灯亮delay(3000);NB=1;P1=0X88;NB=0;//南北直黄灯灭,左转数码管倒计时显示结束/*3、南北向左转(NB)*/NB=1;P1=0X48;NB=0;//南北左绿灯亮delay(3000);//南北向直行数码管显示:倒计时6秒for(i=6;i>=4;i--) //南北向左转绿灯闪烁3下{NB=1;P1=0XC0;NB=0;//南北左转绿灯亮 P0=table[i];delay(500);NB=1;P1=0X80;NB=0;//南北左转绿灯灭delay(500);}NB=1;P1=0XC0;NB=0;//南北左转绿灯亮for(i=3;i>=0;i--){P0=table[i];delay(1000);}NB=1;P1=0XA8;NB=0;//南北左转黄灯亮delay(3000);NB=1;P1=0X88;NB=0;//南北左转黄灯灭,直行数码管倒计时显示结束delay(1000);NB=1;P1=0X99;NB=0;/*4、东西向直行(NB)*/DX=1;P1=0X84;DX=0;//东西北直绿灯亮delay(3000);//东西向左转数码管显示:倒计时6秒for(i=6;i>=4;i--) //东西向直行绿灯闪烁3下{DX=1;P1=0X0C;DX=0;//东西直绿灯亮 P0=table[i];delay(500);DX=1;P1=0X08;DX=0;//东西直绿灯灭delay(500);}DX=1;P1=0X0C;DX=0;//东西直绿灯亮for(i=3;i>=0;i--){P0=table[i];delay(1000);}DX=1;P1=0X8A;DX=0;//东西直黄灯亮delay(3000);DX=1;P1=0X88;DX=0;//东西直黄灯灭,左转数码管倒计时显示结束/*5、东西向左转(NB)*/DX=1;P1=0X48;DX=0;//南北左绿灯亮delay(3000);//东西向直行数码管显示:倒计时6秒for(i=6;i>=4;i--) //东西向左转绿灯闪烁3下{DX=1;P1=0XC0;DX=0;//东西左转绿灯亮 P0=table[i];delay(500);DX=1;P1=0X80;DX=0;//东西左转绿灯灭delay(500);}DX=1;P1=0XC0;DX=0;//东西左转绿灯亮for(i=3;i>=0;i--){P0=table[i];delay(1000);}DX=1;P1=0XA8;DX=0;//东西左转黄灯亮delay(3000);DX=1;P1=0X88;DX=0;//东西左转黄灯灭,直行数码管倒计时显示结束delay(1000);DX=1;P1=0X99;DX=0;
}
C51单片机设计红绿灯五种通行方式相关推荐
- 5个流水灯c语言程序,五种编程方式实现流水灯的单片机C程序
<五种编程方式实现流水灯的单片机C程序>由会员分享,可在线阅读,更多相关<五种编程方式实现流水灯的单片机C程序(5页珍藏版)>请在人人文库网上搜索. 1.五种编程方式实现流水灯 ...
- 谈表达式树的缓存(7):五种缓存方式的总体分析及改进方案
终于到了这个系列的最后一篇文章了,这个系列的文章本是许多话题的基础,却拖了那么长时间还没有完结.这篇文章主要讨论五种缓存方式各自的优劣,以及他们的性能关键在什么地方,如果要进行改进又有什么可选方案.在 ...
- 后端技术:Java定时任务的五种创建方式
Quartz表达式生成地址:http://cron.qqe2.com/ 支持生成定时任务表达式和反解析,使用Quartz表达式的定时任务如下 xxl-job springboot 的 @Schedul ...
- lfu算法实现java_LFU五种实现方式,从简单到复杂
前言 最近刷力扣题,对于我这种 0 基础来说,真的是脑壳疼啊.这个月我估计都是中等和困难题,没有简单题了. 幸好,力扣上有各种大牛给写题解.看着他们行云流水的代码,真的是羡慕不已.让我印象最深刻的就是 ...
- 单例对象会被jvm的gc时回收吗_设计模式专题02-单例五种创建方式
单例五种创建方式(下一篇:工厂模式) 什么是单例 保证一个类只有一个实例,并且提供一个访问该全局访问点 单例应用场景 1. Windows的Task Manager(任务管理器)就是很典型的单例模式( ...
- 谈表达式树的缓存(6):五种缓存方式的性能比较
开始还债,因为还有至少两个可写的重要话题依赖在这个系列上,不解决就难以前进. 目前我们已经涉及了五种不同的缓存实现,它们分别是: SimpleKeyCache:构造字符串作为Key,使用字典作为存储. ...
- lfu实现 java_LFU五种实现方式,从简单到复杂
前言 最近刷力扣题,对于我这种 0 基础来说,真的是脑壳疼啊.这个月我估计都是中等和困难题,没有简单题了. 幸好,力扣上有各种大牛给写题解.看着他们行云流水的代码,真的是羡慕不已.让我印象最深刻的就是 ...
- JS 跨域问题常见的五种解决方式
JS 跨域问题常见的五种解决方式 一.什么是跨域? 要理解跨域问题,就先理解好概念.跨域问题是由于javascript语言安全限制中的同源策略造成的. 简单来说,同源策略是指一段脚本只能读取来自同一来 ...
- 前端百题斩【024】——我从浏览器控制台看到了五种存储方式
写该系列文章的初衷是"让每位前端工程师掌握高频知识点,为工作助力".这是前端百题斩的第24斩,希望朋友们关注公众号"执鸢者",用知识武装自己的头脑. 打开浏览器 ...
最新文章
- eclipse注释模板设置(未整理)
- Ubuntu12.04LTS添加broadcom 802.11g无线网卡驱动
- 计算机应用基础作业北语,北语计算机应用基础作业.doc
- Bytom的链式交易和花费未确认的交易
- 32位系统安装oracle11g,windows系统下 32位 安装Oracle 11g R2(11.2.0.1.0)图文安装教程
- Android 几种解析XML文件方式的区别
- 由SELECT ... FROM ... FOR UPDATE想到的
- C# Winform关于控件TabControl闪烁的问题
- maven 加入第三方库_项目pom里引入第三方库的四个方法
- 启动Delphi2010就出现‘displayNotification: 堆栈溢出’
- NFine框架踩过的坑
- Android Studio安装教程
- C语言之编程规范及细节知识(学C必看)
- OSChina 周六乱弹 —— 成功的解决了发现问题的人
- (附源码)php积极心理学交流网站 毕业设计 100623
- 拍频和混频 PD拍频
- android studio报错Error occurred during initialization of VM Could not reserve enough space
- 使用Google Colab对PUBG的玩家死亡数据集进行可视化分析
- php ubound,VBA UBound()函数
- 批量处理 | 起点和终点交叉配对进行路线查询