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

基于51单片机的红绿灯设计寒假项目最后一个,基于STC/AT89C51的红路灯设计实现十效果具体为:南北通行42秒,南北闪烁3秒,南北黄灯4秒,禁止通行1秒,东西黄灯4秒,东西通行27秒,东西闪烁3秒,东西黄灯4秒。同时具备特殊放行模式:南北自由通行;东西自由通行;全部禁行。所有时间可以修改。貌似和平时的红路灯不一样,但是由于想凑齐八个状态,就整了这神奇的控制步骤。黄灯多,安全第一!!原理图:本来是想设计一个蓝牙或者……

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

寒假项目最后一个,基于STC/AT89C51的红路灯设计

实现十效果具体为:南北通行42秒,南北闪烁3秒,南北黄灯4秒,禁止通行1秒,东西黄灯4秒,东西通行27秒,东西闪烁3秒,东西黄灯4秒。同时具备特殊放行模式:南北自由通行;东西自由通行;全部禁行。所有时间可以修改。貌似和平时的红路灯不一样,但是由于想凑齐八个状态,就整了这神奇的控制步骤。黄灯多,安全第一!!

原理图:原理图
本来是想设计一个蓝牙或者WiFi模块,然后弄一个手持控制器,但是由于技术原因没实现,就只能把控制按键用IO口直接接出来了。数码管采用了七段四联共阳数码管,分成两段使用,分别显示南北方向和东西方向的倒计时。

原理图则侧重于模拟红绿灯控制,因而画到了一块板子上。

在这里插入图片描述
在这里插入图片描述

主函数如下所示:

void main()//主函数
{ 
   
 P0=0xff;
 P1=0xff;
 P2=0xff;
 P3=0xff;
 while(1)
 { 
   
  uchar flag1=0,flag2=0;
  if(key1==0)
  { 
   
   delay(10);
   if(key1==0)
   { 
   
    stop();
    P1=0xff;
    while(!key1);
   }
  }
  if(key2==0)
  { 
   
   delay(10);
   if(key2==0)
   { 
   
    nanbei();
    P1=0xff;
    while(!key2);
   }
  }
  if(key3==0)
  { 
   
   delay(10);
   if(key3==0)
   { 
   
    dongxi();
    P1=0xff;
    while(!key3);
   }
  }
  if(key1==1&&key2==1&&key3==1)
  { 
   
   state1();
   state2();
   state3();
   state4();
   state5();
   state6();
   state7();
   state8();
  }
 }
}

Jetbrains全家桶1年46,售后保障稳定

资源包含:proteus仿真+原理图;keil编写的C语言程序;ad原理图+PCB;产品说明书。
资源链接:
加我QQ:2430687381
资源有偿,谢绝白嫖

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234870.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 移动端fastClick使用

    移动端fastClick使用作为一个新手,插件原理什么的研究不透,看的也是似懂非懂的,网上有很多大牛写的博文相当的好   在这里我只是简单的记录下简单的用法,还请大牛们不吝赐教     为什么存在延迟?     从点击屏幕上的元素到触发元素的 click 事件,移动浏览器会有大约300毫秒的等待时间。为什么这么设计呢?因为它想看看你是不是要进行双击(doubletap)操作。1、引入插件的jav…

    2022年6月19日
    44
  • JAVA增强for循环

    JAVA增强for循环增强for循环为什么需要增强for循环呢?简化数组和集合的遍历。想要使用增强for循环必须先要了解它的格式增强for循环的格式for(数据类型变量名:数组或者集合对象){ //循环体,变量即元素}下边我们通过案例演示一下://需求通过增强for遍历list集合。publicstaticvoidmain(String[]args){ //复习一下如何创建List集合 //1.创建元素对象 Listlist=newArrayList(); }…

    2022年6月16日
    40
  • 使用CAShapeLayer与UIBezierPath画出想要的图形「建议收藏」

    使用CAShapeLayer与UIBezierPath画出想要的图形「建议收藏」怪哈哈,ACG游戏,ACG和谐区,足控福利,里番漫画,里番动漫,里番库,里番吧,本子库使用CAShapeLayer与UIBezierPath可以实现不在view的drawRect方法中就画出一些想要的图形步骤:1、新建UIBezierPath对象bezierPath2、新建CAShapeLayer对象caShapeLayer3、将bezierPa

    2022年8月23日
    6
  • 解析Java中文乱码的处理方法

    解析Java中文乱码的处理方法【引自程序犹如人生的博客】为什么说乱码是中国程序员无法避免的话题呢?这个首先要从编码机制上说起,大家都是中文和英文的编码格式不是一样,解码也是不一样的!如果中国的程序员不会遇到乱码,那么只有使用汉语编程。汉语编程是怎么回事,我也不大清楚,应该是前年吧!我一朋友给我介绍汉语编程,怎么不错不错?当时因为学习忙没去关注这个,等我闲了,那个朋友不弄这个,问他,他也不说不大清楚,最后自己对这个学习也不了了之

    2022年7月7日
    47
  • PHP 基础篇 – PHP 中 DES 加解密详解

    PHP 基础篇 – PHP 中 DES 加解密详解

    2022年2月9日
    39
  • mysql 取模分区_MySQL分区

    mysql 取模分区_MySQL分区分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实体表,app读写的时候根据事先定义好的规则得到对应的子表名,然后去操作它。而分区是将数据分段划分在多个位置存放,分区后,表面上还是一张表,但数据散列到多个位置了。app读写的时候操作的还是大表名字,db自动去组织分区的数据。分区类型主要有range、list、hash、key以常规hash举例说明分区是如何创建的常规hash是取模运算创建…

    2022年4月29日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号