【C51单片机】交通红绿灯设计(仿真)
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单片机】交通红绿灯设计(仿真)相关推荐
- C51单片机 简单的交通红绿灯设计一
各位读者朋友们你们好,感谢你们能点开这篇文章,作为一个非硬件专业的学生,我没有扎实的硬件基础,很担心自己所写内容没有理论基础或者存有漏洞,如果有不对的地方,期待您能指正,一起学习.交通红绿灯的设计算是 ...
- 基于51单片机数字电压表的设计 仿真、程序、原理图(转发)
摘 要 数字电压表简称DVM,数字电压表基本原理是将输入的模拟电压信号转化为数字信号,再进行输出显示.而A/D转换器的作用是将连续变化的模拟信号量转化为离散的数字信号,器基本结构是由采样保持,量化,编 ...
- 基于C51单片机的万年历设计(LCD1602显示)
C51单片机万年历设计 注:该程序基于普中科技C51 V2.2开发板设计,库函数和硬件资料均来自普中科技,侵删.main.c大部分为原创,如有雷同,纯属巧合. 名称:C51万年历. 硬件:以C51芯片 ...
- 【c51单片机】交通红绿灯设计
观察十字路口红绿灯工作流程,设计交通灯. 1.初始时:南北向.东西向直行左转均为红灯 2.南北向直行: ①南北向直行绿灯亮,延时若干秒 ②启动南北向左转数码管显示:倒计时6秒:同时南北向直行绿灯闪烁3 ...
- 基于51单片机交通灯设计时间可设置仿真红绿灯十字路口
演示视频:https://www.bilibili.com/video/BV1Tt4y1y7s8/ 将链接复制至IE浏览器打开!!! 功能操作说明: 从上到下,设置键,加键,减键,特殊键.单独一个按键 ...
- 红绿灯c语言程序及仿真图,AT89C51单片机十字路口交通灯设计(仿真、keil源代码以及实物图)...
/***************************************************** * 王瑾毕设-交通灯 * * * ************************** ...
- 基于51单片机的红绿灯设计
寒假项目最后一个,基于STC/AT89C51的红路灯设计 实现十效果具体为:南北通行42秒,南北闪烁3秒,南北黄灯4秒,禁止通行1秒,东西黄灯4秒,东西通行27秒,东西闪烁3秒,东西黄灯4秒.同时具备 ...
- c51单片机汇编语言语法错误,关于c51单片机交通灯汇编程序怎么加一个紧急状态按键的问题...
能不能在这个交通灯系统里,加上一个紧急状态按键,使所有红灯亮. 单片机程序在下面: ORG 0000H ;主函数地址 LJMP MAIN ORG 000BH ;中断定时器0 地址 LJMP INTER ...
- 【C51单片机】数字电压表设计
数字电压表要求:在AT89C52系统中采用PCF8591芯片,测量0-5V范围内的直流电压,并在2位数码管上显示电压值. 问题咨询请联系->群名:IT项目交流群 群号:245022761 ...
最新文章
- webform repeater
- 网络新高速:T比特网络技术实现成功测试
- [转载]Eclipse SVN插件比较 Subclipse vs Subversive
- 从啤酒尿布到自动驾驶,零售行业如何再创营销神话?
- android setContentView处理流程
- 通过Spring的BeanPostProcessor的 bean的后置处理器会拦截所有bean创建过程
- 【使用注意】以后定义变量类型利用父类定义
- 计算机密码学奖,上海交通大学计算机科学与工程系(CSE)
- vue中使用FullCalendar日历组件
- integer比较_Java中的整型包装类值的比较为什么不能用==比较?原因是因为缓存
- sqlserver得到行号
- System类的概述和方法使用
- 比较器应用一:滞回比较器
- 世界知名游戏公司简介(国内,欧美,日韩)
- 团体标准的意义,办理团体标准的好处
- 2月14,情人节双语送祝福!
- Object-based superresolution land cover Mapping From Remotely sensed imagery
- Omdia 表示,智能手机出货量下降 12.9%
- 基于android点餐系统需求分析,基于Android的点餐系统的设计及实现
- maters鸿蒙系统,【华为MateRS保时捷版评测】系统:多元素化集合EMUI 8.1体验很棒-中关村在线...