找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1633|回复: 0
收起左侧

单片机交通灯的设计

[复制链接]
ID:1022407 发表于 2022-4-28 15:11 | 显示全部楼层 |阅读模式
  1. #include <REGX51.H>

  2. void delay(unsigned int a)                //@12.000MHz
  3. {
  4.         unsigned char i, j;
  5.         while(a)
  6.         {
  7.                 i = 2;
  8.                 j = 239;
  9.                 do
  10.                 {
  11.                         while (--j);
  12.                
  13.                 } while (--i);
  14.                 a--;
  15.         }
  16. }

  17. void main()
  18. {
  19.         int b;
  20.         while(1)
  21.         {
  22.                 P1_0=0;                                                 //南北绿灯
  23.                 P1_4=0;                                                 //东西红灯
  24.                 while(1)
  25.                 {
  26.                         if(P1_6==1)                                 //东西通行
  27.                         {
  28.                                 delay(20);                        //按键消抖
  29.                                 while(P1_6==1);           
  30.                                 delay(20);
  31.                                 P1_0=1;                                //南北绿灯熄灭
  32.                                 for(b=0;b<5;b++)        //黄灯闪烁
  33.                                 {
  34.                                         P1_2=0;
  35.                                         delay(500);
  36.                                         P1_2=1;
  37.                                         delay(500);
  38.                                 }
  39.                                 P1_4=1;                                 //东西红灯熄灭
  40.                                 P1_1=0;                                 //南北红灯
  41.                                 P1_5=0;                                 //东西绿灯
  42.                         }
  43.                         if(P1_7==1)                                //南北同行
  44.                         {
  45.                                 delay(20);
  46.                                 while(P1_7==1);
  47.                                 delay(20);                        //按键消抖
  48.                                 P1_5=1;                                //东西绿灯熄灭
  49.                                 for(b=0;b<5;b++)        //黄灯闪烁
  50.                                 {
  51.                                         P1_3=0;
  52.                                         delay(500);
  53.                                         P1_3=1;
  54.                                         delay(500);
  55.                                 }
  56.                                 P1_1=1;                                 //南北红灯熄灭
  57.                                 P1_0=0;                                 //南北绿灯
  58.                                 P1_4=0;                                 //东西红灯
  59.                         }
  60.                 }
  61.         }
  62. }
复制代码


仿真图

仿真图
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表