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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3508|回復: 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();
  }
}





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

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:94031 發表于 2019-3-1 11:33 | 只看該作者
switch()括號里要有判斷的變量名。
回復

使用道具 舉報

板凳
ID:96682 發表于 2019-3-1 11:52 | 只看該作者
沒電路圖怎么知道哪錯
回復

使用道具 舉報

地板
ID:91114 發表于 2019-3-1 11:57 | 只看該作者
switch(表達式) case 值
回復

使用道具 舉報

5#
ID:473159 發表于 2019-3-1 14:10 | 只看該作者
看看這個,簡單明了
http://www.zg4o1577.cn/bbs/dpj-146299-1.html

評分

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

查看全部評分

回復

使用道具 舉報

6#
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 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

7#
ID:342197 發表于 2019-3-1 14:48 | 只看該作者
你所用的switch()語句中并無具體參數變量,無法進行case判斷

評分

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

查看全部評分

回復

使用道具 舉報

8#
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++;
        }
}
回復

使用道具 舉報

9#
ID:471066 發表于 2019-3-1 22:09 | 只看該作者
        這里還改一下if(i==2)i=1;改為if(i==3)i=1;

評分

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

查看全部評分

回復

使用道具 舉報

10#
ID:472242 發表于 2019-3-2 11:24 | 只看該作者
這個不是很難咯,怎么就迷糊了呢
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品色 | 国产综合精品一区二区三区 | 精品国产一区二区三区免费 | 久久久噜噜噜久久中文字幕色伊伊 | 97伦理| 欧美视频一区二区三区 | 久久精品视频12 | 在线播放中文字幕 | 日本三级全黄三级三级三级口周 | 91久久夜色 | 爱爱无遮挡 | 在线观看欧美一区 | 黄色一级大片视频 | 91精品国产综合久久久动漫日韩 | 黄色日本视频 | 夜夜爽99久久国产综合精品女不卡 | 成人在线视频免费观看 | 欧美视频免费在线观看 | 国产福利资源在线 | 日韩欧美一区二区三区免费观看 | 美国av片在线观看 | 精品一区国产 | 在线观看国产wwwa级羞羞视频 | 免费毛片网 | 巨大荫蒂视频欧美另类大 | 91av小视频| 暖暖日本在线视频 | 国产综合一区二区 | 波多野结衣亚洲 | 午夜影视| 91在线视频观看免费 | 国产精品中文在线 | 91久操视频| 一区二区三区国产在线观看 | 色天天综合 | 天堂久久一区 | 自拍偷拍中文字幕 | 东京久久| 成人黄视频在线观看 | 91 久久| 一区二区三区欧美 |