标题: 单片机交通灯没有现象 请大虾门帮忙看看 [打印本页]

作者: leng    时间: 2019-2-28 13:47
标题: 单片机交通灯没有现象 请大虾门帮忙看看
#include "reg52.h"
  typedef unsigned char u8 ;  //定义变量参//
  typedef unsigned int u16  ;
  sbit    RED_A=P0^2; //A方向红灯
  sbit    YELLOW_A=P0^3;//A方向黄灯
  sbit    GREEN_A=P0^4;//A方向绿灯
  sbit     REDC_A=P0^0;  //A方向人行道红灯
  sbit     GREENC_A=P0^1;  //A方向人行道绿灯
  sbit    RED_B=P0^5;
  sbit    YELLOW_B=P0^6;
  sbit    GREEN_B=P0^7;
  sbit     REDC_B=P2^0;
  sbit     GREENC_B=P2^1;
void delay5s(void)   //误差 0us
{
    unsigned char a,b,c;
    for(c=165;c>0;c--)
        for(b=100;b>0;b--)
            for(a=150;a>0;a--);
}
void delay30s(void)   //误差 0us
{
    unsigned char a,b,c,n;
    for(c=254;c>0;c--)
        for(b=232;b>0;b--)
            for(a=253;a>0;a--);
    for(n=2440;n>0;n--);
}
  void jiaotongdeng()
  {
   switch()
{
  case1      RED_A=1;GREEN_B=1;GREENC_B=1;REDC_A=0;
       //A方向红灯    B向绿灯 B向人行道绿灯 A向行道红灯 亮灯
        RED_B=0;YELLOW_B=0;REDC_B=0;GREEN_A=0;GREENC_A=0; YELLOW_A=0  ;
      //B向红灯 B黄灯 B向行道红灯  A向绿灯 A向黄灯 A向行道绿灯    熄灯
        delay30s;
        RED_A=~RED_A;GREEN_B=~GREEN_B;GREENC_B=~GREENC_B;REDC_A=~REDC_A
     //A方向红灯 B向绿灯 B向人行道绿灯 A向行道绿灯 闪亮灯
      YELLOW_A=0;GREEN_A=0;GREENC_A= 0;RED_B=0;YELLOW_B=0;REDC_B=0
      //A方向黄灯 绿灯 行道绿灯   B方向红灯 黄灯  行道红灯 熄灯
     delay5s;
        break;
    case2  RED_B=1;GREEN_A=1;GREENC_A=1;REDC_B=0; //B向红灯亮灯
       RED_A=0;YELLOW_B=0;REDC_A=0;GREEN_B=0;GREENC_B=0; YELLOW_B=0  ;  //熄灯
       delay30s;
        RED_B=~RED_B;GREEN_A=~GREEN_A;GREENC_A=~GREENC_A;REDC_B=~REDC_B;
     //A方向红灯 B向绿灯 B向人行道绿灯 A向行道绿灯 闪亮灯
      YELLOW_B=0;GREEN_B=0;GREENC_B= 0;RED_A=0;YELLOW_A=0;REDC_A=0
      //A方向黄灯 绿灯 行道绿灯   B方向红灯 黄灯  行道红灯 熄灯
     delay5s;
     break;
   
}
  }
void main()
{
  while(1)
  {
   jiaotongdeng();
  }
}





这个是简单交通灯实验  在开发板上没有现象  请大虾们指点指点不胜感激


作者: jiangkeqin_sy    时间: 2019-2-28 17:56
switch()没有参数啊
作者: 随风飘远    时间: 2019-2-28 19:42
这个代码 看起来不规范,  这样的例程和 书籍有很多,还是先找例程学习逐渐积累。
作者: BlackCloud    时间: 2019-3-1 01:11
switch() 要有参数,case  1:要有空格和冒号
switch(a)
{
case 1:break;
case 2:break;
default:break;
}
作者: samugari    时间: 2019-3-1 10:59
switch case语句有问题啊,你得规定条件选择哪个case,case完了还要跳出去吧。
再好好研究研究C语言的语法吧。
作者: qzrqq    时间: 2020-6-25 22:33
这个有图吗,想参考参考

作者: SURUBU1976    时间: 2020-6-26 08:15
这与晶振,与硬件也有关系,你这样发问题别人很难回复
作者: 魏海龙    时间: 2020-7-7 11:54
看他们一说  好像是switch里面没有判断条件 说明的呢程序在空跑。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1