欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: [疑問]STC15F104W單片機 紅外控制LED,已成功,但是有BUG [打印本頁]

作者: stc0079    時間: 2017-8-7 10:31
標題: [疑問]STC15F104W單片機 紅外控制LED,已成功,但是有BUG
經過一番的查找資料,在51論壇找到了相關資料,而且通過修改代碼,能夠實現紅外遙控LED的亮滅。
但是,有一些疑問和BUG,想請教一下大家:
判斷代碼如下,全部代碼在附件
  1.                         switch(IRcord[2])
  2.                         {
  3.                                 case 0x0c: led1=0;break;//按1,LED1亮
  4.                                 //case 0x18: led1=1;break;//按2,LED1滅,注釋1
  5.                                 case 0x5e: led2=0;break;//按3,LED2亮
  6.                                 //case 0x08: led2=1;break;//按4,LED2滅,注釋2
  7.                                 case 0x1c: led3=0;break;//按5,LED3亮
  8.                                 //case 0x5a: led3=1;break;//按6,LED3滅,注釋3
  9.                                 case 0x42: led4=0;break;//按7,LED4亮
  10.                                 case 0x52: led4=1;break;//按8,LED4滅
  11.                                 case 0x4a: led5=0;break;//按9,LED5亮
  12.                                 case 0x16: led5=1;break;//按0,LED5滅
  13.                                 case 0x45:
  14.                                         led1=1;
  15.                                         led2=1;
  16.                                         led3=1;
  17.                                         led4=1;
  18.                                         led5=1;
  19.                                         break;//全部滅
  20.                         }
復制代碼
如果按照上面的代碼,按相對應的按鈕會達到相應的效果,例如按7,LED4會亮,按8,LED4會滅,如果只是按7,LED4只會亮,不會滅
問題來了:
1)如果把注釋1,2,3其中一個注釋取消,當我按7,LED4會亮,但是連續按兩下7,LED4竟然會滅。。。。。這是什么情況?
2)另外有個問題,我想把代碼寫成
case 0x42: led4=~led4;break;//按7,LED4亮,目的就是取反,按同一個鍵,就達到開和關。但是實際情況,不行啊。。。。為什么
3)怎樣用KEIL聯機調試debug 紅外接收信號。不是虛擬調試。我想跟蹤實際接收到紅外的信號編碼。

紅外遙控器編碼.png (11.86 KB, 下載次數: 151)

紅外遙控編碼

紅外遙控編碼

51HeiRedCtrlLED.zip

28.69 KB, 下載次數: 108

紅外遙控LED


作者: stc0079    時間: 2017-8-7 11:37
啊~~~~~沒有人來嗎?
作者: HEIZI555    時間: 2017-8-7 13:27
這個非常簡單啦
作者: stc0079    時間: 2017-8-7 13:37
問題終于審核通過了。。。

作者: 浮云騎士    時間: 2017-8-7 14:23
IAP15W4K58S4這款片子可以在線調試,對了我一開始用這個片子時發現對keill的版本有要求,有的不可以在線仿真調試

新建位圖圖像.jpg (107.73 KB, 下載次數: 138)

新建位圖圖像.jpg

新建位圖圖像.jpg (101.39 KB, 下載次數: 144)

新建位圖圖像.jpg

作者: 浮云騎士    時間: 2017-8-7 14:36
這樣就能解決你的問題了,如果不能我們繼續討論
void main()
{
        EX0init();//Enable GlobaI Interrupt Flag
        TIM0init();
        while(1)
        {
                if(irok)
                {
                        Ircordpro();
                        irok=0;
                }
                if(irpro_ok)//遙控成功接收
                {

                        switch(IRcord[2])
                        {
                                case 0x0c: led1=0;break;//按鍵1,燈1亮
                                case 0x18: led1=1;break;//按鍵1,燈1滅
                                case 0x5e: led2=0;break;//按鍵2,燈2亮
                                case 0x08: led2=1;break;//按鍵2,燈2滅
                                case 0x1c: led3=0;break;//按鍵1,燈1亮
                                case 0x5a: led3=1;break;//按鍵1,燈1滅
                                case 0x42: led4=0;break;//按鍵1,燈1亮
                                case 0x52: led4=1;break;//按鍵1,燈1滅
                                case 0x4a: led5=0;break;//按鍵1,燈1亮
                                case 0x16: led5=1;break;//按鍵1,燈1滅
                                case 0x45:
                                                  led1=1;
                                                  led2=1;
                                                  led3=1;
                                                  led4=1;
                                                  led5=1;
                                                  break;//按鍵關機,燈全滅
                        }
                       irpro_ok=0;     //加上這條語句
                }
        }
}

新建位圖圖像.jpg (26.4 KB, 下載次數: 148)

新建位圖圖像.jpg

作者: stc0079    時間: 2017-8-8 09:22
浮云騎士 發表于 2017-8-7 14:36
這樣就能解決你的問題了,如果不能我們繼續討論
void main()
{

謝謝,我試一下。
作者: stc0079    時間: 2017-8-8 09:27
浮云騎士 發表于 2017-8-7 14:23
IAP15W4K58S4這款片子可以在線調試,對了我一開始用這個片子時發現對keill的版本有要求,有的不可以在線仿 ...

網上找到這個文章 用KEIL實現聯機調試的步驟
但是不知道那個FLIP程序是什么東東。
作者: stc0079    時間: 2017-8-8 09:48
浮云騎士 發表于 2017-8-7 14:36
這樣就能解決你的問題了,如果不能我們繼續討論
void main()
{

可以了,謝謝。。。
這個是大概是什么原因? 紅外信號沒有清除嗎?
作者: 浮云騎士    時間: 2017-8-8 10:01
stc0079 發表于 2017-8-8 09:48
可以了,謝謝。。。
這個是大概是什么原因? 紅外信號沒有清除嗎?

紅外信號按著不松也在發信號,但,不是按鍵信號,至于具體是什么信號我還沒查到,以前用示波器看到過。那句話是防止重復對switch語句一直重復執行
作者: stc0079    時間: 2017-8-8 11:40
浮云騎士 發表于 2017-8-8 10:01
紅外信號按著不松也在發信號,但,不是按鍵信號,至于具體是什么信號我還沒查到,以前用示波器看到過。那 ...

即使紅外發射不是按鍵信號,重復執行switch語句,但是不等于 0x0c這些鍵值,也不會執行led1=0這句代碼啊?所以不明白。
作者: yufeng998    時間: 2018-10-25 10:32
學習一下,正在找這方面的資料.
作者: mengzhixinheng    時間: 2018-10-25 16:38
stc0079 發表于 2017-8-8 09:48
可以了,謝謝。。。
這個是大概是什么原因? 紅外信號沒有清除嗎?

標志不清除,怎么判定按鍵次數
作者: 銘樂    時間: 2019-8-7 15:04
謝謝 樓主




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1