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

標題: 關于單片機C語言數組的問題,為什么這個程序在電路中led4會隨著led1和led2亮一下呢? [打印本頁]

作者: ealoo    時間: 2019-7-2 16:33
標題: 關于單片機C語言數組的問題,為什么這個程序在電路中led4會隨著led1和led2亮一下呢?
關于數組的問題,這個程序是讓led1亮滅三次,led2亮滅三次,led1和led2同時亮四次;
在這個程序沒有對led4進行控制,但是在實際電路中led4會隨著led1和led2分別亮一下呢?
請教朋友們這是什么原因

單片機源程序如下:
  1. #include <REG51.H>
  2. #include<intrins.h>
  3. sfr P3M0        =   0xB2;   //0000,0000 端口3模式寄存器0
  4. sfr P3M1       =   0xB1;   //0000,0000 端口3模式寄存器1
  5. #define uchar unsigned char
  6. #define uint unsigned int
  7. sbit led1=P3^0;
  8. sbit led2=P3^1;
  9. sbit led3=P3^3;
  10. sbit led4=P3^2;

  11. uchar code Tab0[]={0x02,0x02,0x02,0x03};//閃燈控制表


  12. uint i;
  13. /*****************************************************
  14. 函數功能:延時若Z*10毫秒
  15. 入口參數:z
  16. ***************************************************/

  17. void delay(uint z)
  18. {
  19.         uint i,j;
  20.         for(i=z;i>0;i--)
  21.                 for(j=9200;j>0;j--);
  22. }


  23. void wordliang(void);
  24. /*****************************************************
  25. 函數功能:p1口燈循環點亮

  26. ***************************************************/
  27. main()
  28. {     
  29.      // uint i;
  30.      P3M1=0x30;        // IO口設值(工作模式)
  31.      P3M0=0x0f;        //          IO口設值(工作模式)         
  32.       P3=0X00;
  33.          
  34.         while(1)
  35.         {            
  36.          
  37.                   
  38.           for(i=0;i<3;i++)         //led1燈亮
  39.                         {
  40.                
  41.                             P3=Tab0[i];
  42.                          delay(50);        
  43.                          P3=0x00;  
  44.                          delay(80);
  45.             }           
  46.                                           
  47.                  

  48.                         for(i=3;i<6;i++)                 //led2燈亮
  49.                         {
  50.                         
  51.                             P3=Tab0[i]        ;
  52.                          delay(50);
  53.                          P3=0x00;  
  54.                          delay(80);                                             
  55.             }
  56.                         
  57.                
  58.                         
  59.                         
  60.                    for(i=6;i<10;i++)                 //led1和led2燈一起亮
  61.                         {
  62.                         
  63.                             P3=Tab0[i]        ;
  64.                          delay(50);
  65.                          P3=0x00;  
  66.                          delay(80);                                             
  67.             }         
  68.                
  69.                   
  70.      }               
  71. }
復制代碼


作者: lihaijun7781    時間: 2019-7-2 16:55
你初始化的數組 4, 你用到了 10 ,你已經越界了!
作者: xianfajushi    時間: 2019-7-2 19:54
這程序后2個循環都超數組了
作者: 2448289424    時間: 2019-7-2 23:30
P3=Tab0[i]    i為什么是跟for里面的i同一個,,不是直接uchar code Tab0[]={0x01,0x02,0x03};
作者: 2448289424    時間: 2019-7-2 23:32
uchar code Tab0[]={0x01,0x02,0x03}; P3=Tab0[0] led1;亮  P3=Tab0[1] led2;亮 P3=Tab0[2] led12;亮,不是這樣? 為什么你的P3=Tab0[i]跟for里面的I同一個,,這個會不會到時找不Tab0[i]的值,就亂了,所以LED4會亮
作者: ealoo    時間: 2019-7-3 09:40
單片機引腳圖

timg.jpg (14.7 KB, 下載次數: 63)

timg.jpg

作者: ealoo    時間: 2019-7-3 12:01
lihaijun7781 發表于 2019-7-2 16:55
你初始化的數組 4, 你用到了 10 ,你已經越界了!

感謝回復,我也是發完貼后發現程序引用數組的個數超出了范圍。
那么,超出后,從第5個i開始引用的數組按什么數據引用的呢?Tab0[]={0x02,0x02,0x02,0x03,0,0,0,0,0,0}這樣好像也不對。
作者: ealoo    時間: 2019-7-3 12:01
xianfajushi 發表于 2019-7-2 19:54
這程序后2個循環都超數組了

感謝回復,我也是發完貼后發現程序引用數組的個數超出了范圍。
那么,超出后,從第5個i開始引用的數組按什么數據引用的呢?Tab0[]={0x02,0x02,0x02,0x03,0,0,0,0,0,0}這樣好像也不對。
作者: ealoo    時間: 2019-7-3 12:03
2448289424 發表于 2019-7-2 23:30
P3=Tab0    i為什么是跟for里面的i同一個,,不是直接uchar code Tab0[]={0x01,0x02,0x03};

感謝回復,程序前面只定義了一個uint i,所以就這么用了
作者: ealoo    時間: 2019-7-3 12:04
2448289424 發表于 2019-7-2 23:32
uchar code Tab0[]={0x01,0x02,0x03}; P3=Tab0[0] led1;亮  P3=Tab0[1] led2;亮 P3=Tab0[2] led12;亮, ...

感謝回復,程序里只定義了一個uint i
作者: houcong    時間: 2019-7-3 13:55
越界訪問了
作者: xianfajushi    時間: 2019-7-3 16:21
ealoo 發表于 2019-7-3 12:01
感謝回復,我也是發完貼后發現程序引用數組的個數超出了范圍。
那么,超出后,從第5個i開始引用的數組按 ...

你只描述了異常,沒有說要實現什么功能,所以不知道如何回復了




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 男女羞羞视频在线 | 免费播放一级片 | av一区二区三区在线观看 | 欧美三级在线 | 成人福利网 | 97综合在线| 一级黄色毛片子 | 美女啪啪国产 | 亚洲男人天堂网 | 国产精品一区二区在线 | 欧美国产精品 | 久久久久黄 | 免费在线日韩 | 在线看黄免费 | 在线一区视频 | 欧美成人精品一区二区男人看 | 欧美国产精品 | 伊人啪啪网 | 91干b| 亚洲欧美精品在线观看 | 免费一级黄色 | 午夜视频一区 | 日韩91| 91人人澡人人爽 | 日本亚洲精品 | 在线观看免费av网 | 成人综合视频在线观看 | 国产一区二区三区在线 | 九九综合 | 韩国av网站在线观看 | 亚洲精品一区二区三区在线观看 | 国产精品日韩欧美一区二区三区 | 在线成人免费视频 | av中文字幕在线观看 | 国产高清视频一区 | 亚洲福利一区二区 | 亚洲精品天堂 | 伊人伊人 | 色偷偷人人澡人人爽人人模 | 久久亚洲天堂 | www.成人免费视频 |