久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3535|回復: 9
收起左側

C語言switch語句問題,請單片機大蝦門幫忙看看代碼

  [復制鏈接]
回帖獎勵 20 黑幣 回復本帖可獲得 20 黑幣獎勵! 每人限 1 次
ID:295535 發表于 2019-3-1 09:58 | 顯示全部樓層 |閱讀模式
#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();
  }
}





這個是簡單交通燈實驗  在開發板上沒有現象  請大蝦們指點指點不勝感激

回復

使用道具 舉報

ID:94031 發表于 2019-3-1 11:33 | 顯示全部樓層
switch()括號里要有判斷的變量名。
回復

使用道具 舉報

ID:96682 發表于 2019-3-1 11:52 | 顯示全部樓層
沒電路圖怎么知道哪錯
回復

使用道具 舉報

ID:91114 發表于 2019-3-1 11:57 | 顯示全部樓層
switch(表達式) case 值
回復

使用道具 舉報

ID:473159 發表于 2019-3-1 14:10 | 顯示全部樓層
看看這個,簡單明了
http://www.zg4o1577.cn/bbs/dpj-146299-1.html

評分

參與人數 1黑幣 +10 收起 理由
zhengchong60 + 10 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:370231 發表于 2019-3-1 14:28 | 顯示全部樓層
switch的一般形式如下:
switch (表達式)
{
    case 常量表達式1:    語句1
    case 常量表達式2:    語句2
       ┇
    case 常量表達式n:    語句n
    default:        語句n+1
}
說明:
1) switch 后面括號內的“表達式”必須是整數類型。也就是說可以是 int 型變量、char 型變量,也可以直接是整數或字符常量,哪怕是負數都可以。但絕對不可以是實數,float 型變量、double 型變量、小數常量通通不行,全部都是語法錯誤。

2) switch 下的 case 和 default 必須用一對大括號{}括起來。

3) 當switch后面括號內“表達式”的值與某個case后面的“常量表達式”的值相等時,就執行此case后面的語句。執行完一個case后面的語句后,流程控制轉移到下一個case繼續執行。如果你只想執行這一個case語句,不想執行其他case,那么就需要在這個case語句后面加上break,跳出switch語句。

再重申一下:switch是“選擇”語句,不是“循環”語句。很多新手看到break就以為是循環語句,因為break一般給我們的印象都是跳出“循環”,但break還有一個用法,就是跳出switch。

4) 若所有的 case 中的常量表達式的值都沒有與 switch 后面括號內“表達式”的值相等的,就執行 default 后面的語句,default 是“默認”的意思。如果 default 是最后一條語句的話,那么其后就可以不加 break,因為既然已經是最后一句了,則執行完后自然就退出 switch 了。

5) 每個 case 后面“常量表達式”的值必須互不相同,否則就會出現互相矛盾的現象,而且這樣寫造成語法錯誤。

6) “case常量表達式”只是起語句標號的作用,并不是在該處進行判斷。在執行 switch 語句時,根據 switch 后面表達式的值找到匹配的入口標號,就從此標號開始執行下去,不再進行判斷。

7) 各個 case 和 default 的出現次序不影響執行結果。但從閱讀的角度最好是按字母或數字的順序寫。

8) 當然你也可以不要 default 語句,就跟 if…else 最后不要 else 語句一樣。但最好是加上,后面可以什么都不寫。這樣可以避免別人誤以為你忘了進行 default 處理,而且可以提醒別人 switch 到此結束了。

但是需要注意的是,default 后面可以什么都不寫,但是后面的冒號和分號千萬不能省略,省略了就是語法錯誤。很多新手在這個地方很容易出錯,要么忘了分號,要么忘了冒號,所以要注意!

評分

參與人數 1黑幣 +10 收起 理由
leng + 10 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:342197 發表于 2019-3-1 14:48 | 顯示全部樓層
你所用的switch()語句中并無具體參數變量,無法進行case判斷

評分

參與人數 1黑幣 +5 收起 理由
leng + 5 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:471066 發表于 2019-3-1 21:58 | 顯示全部樓層
這是調好的,拿去吧


#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;
u8 i=1;
void delay5s(void)   //誤差 0us
{
        u8 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
{
    u8 a,b,c;
    for(c=254;c>0;c--)
        for(b=232;b>0;b--)
            for(a=253;a>0;a--);
                       
}
void jiaotongdeng()
{
       
        switch(i)
        {
        case 1:      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;
               
    case 2:  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;
                if(i==2) i=0;
               
        }
}
void main()
{
        while(1)
        {
                jiaotongdeng();
                if(i==2)i=1;
                else  i++;
        }
}
回復

使用道具 舉報

ID:471066 發表于 2019-3-1 22:09 | 顯示全部樓層
        這里還改一下if(i==2)i=1;改為if(i==3)i=1;

評分

參與人數 1黑幣 +8 收起 理由
嘉立創AAA + 8 很給力!

查看全部評分

回復

使用道具 舉報

ID:472242 發表于 2019-3-2 11:24 | 顯示全部樓層
這個不是很難咯,怎么就迷糊了呢
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜视频在线观看一区二区 | 欧美激情在线精品一区二区三区 | 男人的天堂亚洲 | 久久伊人一区二区 | 久久久久国产一区二区三区四区 | 日本中文在线视频 | 久久国品片 | 99re66在线观看精品热 | 久久国产欧美日韩精品 | 99亚洲精品| 欧美精品久久久 | 欧美激情久久久 | 欧美理论片在线观看 | 久久久久久久av麻豆果冻 | 一区二区三区免费在线观看 | 欧美韩一区二区 | 久久久久久久久久久久久9999 | 成人影院网站ww555久久精品 | 在线观看视频h | 国产精品视频在线播放 | 亚洲精品久久久久久国产精华液 | 日本不卡一区 | 日日艹夜夜艹 | 国产欧美视频一区二区三区 | 天天操天天射综合网 | 天堂在线中文 | 国产视频精品在线观看 | 亚洲不卡在线视频 | 91新视频 | 在线欧美亚洲 | 午夜一区 | 精品久久久久一区二区国产 | 久草久 | 久久国产精品视频 | 日本成人在线观看网站 | av福利网站 | 欧美成人二区 | 皇色视频在线 | 亚洲精品一二区 | 免费观看色 | 91久久精品国产91久久性色tv |