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

標題: 如何在這個單片機程序中加一個關于LED閃爍的代碼?謝謝 [打印本頁]

作者: wanglin1207    時間: 2020-6-30 17:17
標題: 如何在這個單片機程序中加一個關于LED閃爍的代碼?謝謝
音樂盒.zip (101.1 KB, 下載次數: 26)



作者: man1234567    時間: 2020-7-1 08:17
賞金太高必須參與 while(1){led=1;delay(25);led=0;delay(25);}
作者: wanglin1207    時間: 2020-7-1 08:30
man1234567 發表于 2020-7-1 08:17
賞金太高必須參與 while(1){led=1;delay(25);led=0;delay(25);}

從哪里加這個代碼??
作者: liangsheng0212    時間: 2020-7-1 08:34
wanglin1207 發表于 2020-7-1 08:30
從哪里加這個代碼??

在主函數死循環里加就行,你看你要通過什么條件來實現LED閃爍
作者: ranghe    時間: 2020-7-1 08:41
LED=1;led=0;加計數器產品脈沖
作者: XTXB    時間: 2020-7-1 08:51


作者: liqingb    時間: 2020-7-1 08:53
  1.                 i++;
  2.                 switch(i)
  3.                 {
  4.                         case 1: P2=_crol_(P2,1);break
  5.                         default :break
  6.                
  7.                 }
復制代碼
可以p2口用音符值賦值,做成類似MP3

作者: xieyebao1995    時間: 2020-7-1 08:54
在主函數里面添加即可,加延時,就會有閃爍效果
作者: thanksbaby    時間: 2020-7-1 09:04
建議樓主將代碼直接發出來,省的下載。可以直觀一點。
閃爍一般是在主函數的while循環里面添加即可。
作者: 卡2666    時間: 2020-7-1 09:16
文件我這里錯誤,打不開了,給你兩個閃爍的文件,可以參考一下
作者: 卡2666    時間: 2020-7-1 09:19
我打不開你的文件,這兒有幾段閃爍的,你可以看一下:<?xml version='1.0' encoding='UTF-8' standalone='yes'?> <WORKSPACE>  <FRAME activewindow="0">   <PLACEMENT>2c0000000200000003000000ffffffffffffffffffffffffffffffff000000000300000020060000f3030000</PLACEMENT>   <WINDOW type="default" module="ISIS"/>  </FRAME>  <MODULE name="VSMDEBUG">   <PWI/>  </MODULE> </WORKSPACE>看看這個有沒有用
作者: XTXB    時間: 2020-7-1 09:52
有發聲程序,用delay容易引起發聲不連貫,建議用非阻塞方式實現LED閃爍:



作者: 權威人物    時間: 2020-7-1 11:22
如果你想要穩定的閃爍可以在定時器中使用計數,在主循環中判斷計數值,達到規定值就翻轉一下LED對應的IO口,計數值清零
作者: xujiabin    時間: 2020-7-1 11:38
一般不建議在主函數里面添加延時,會影響主函數運行,其實在定時器里面加個標志位就可以,到了時間引腳翻轉一下就可以,這樣的燈的閃爍頻率比較準確,尤其是在做國標項目時。比如定時器定時中斷為10毫秒,500毫秒翻轉一次。,你家一個計數標志,到50時清零。同時給主函數一個標志,監測到這個標志就翻轉一下io口,就可以了。
作者: naqishuben    時間: 2020-7-1 12:11
仔細看看,不復雜
作者: 隨風飄遠    時間: 2020-7-1 12:21
可以加一個 LED的子函數吧
作者: 陳潤源home    時間: 2020-7-1 14:55
定時器里面加一個LED=!LED;
作者: XYB1995    時間: 2020-7-1 15:55
不建議在主函數里面添加,可以試試用定時器。
作者: wanglin1207    時間: 2020-7-1 16:51
XTXB 發表于 2020-7-1 09:52
有發聲程序,用delay容易引起發聲不連貫,建議用非阻塞方式實現LED閃爍:

加一下企鵝可以嗎

作者: XTXB    時間: 2020-7-1 22:07
搞定沒?1000太大了,你是等不到閃爍的,改為1或2就閃爍了,就是不大穩定,把紅框代碼放到定時器0中斷中效果會好一些。要閃爍穩定,最好單獨開個定時器2,把它放到定時器2中斷中,就是不知道對發音影響大不大。
作者: sgyx    時間: 2020-7-2 15:53
可以再加個定時器1,和定時器0相類似的,這樣控制的LED閃爍時間會非常準
作者: 魏海龍    時間: 2020-7-7 11:30
我感覺直接在while(1)
{
    led=~led;
    延時就好了  延時看你自己定
}
作者: 小黑的大表舅    時間: 2020-7-7 11:38
led=~led;
作者: hzw854025403    時間: 2020-9-27 11:40
應該先了解一下你這閃爍是要什么條件執行的,還是只是閃爍,只是閃爍加在中斷里就行,要是有條件,就弄一個定時標志位,然后在主程序中添加條件判斷
作者: 梁廷明    時間: 2020-9-28 10:35
led!=led;
作者: lenvov    時間: 2020-9-28 11:24
unsigned char code FREQL[]={
    0x42, 0xC1, 0x17, 0xB6, 0xD0, 0xD1, 0xB6,    //低音1234567
    0x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, 0x8F, //1,2,3,4,5,6,7,i
    0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D,             //高音 234567
    0x47, 0x77, 0xA2, 0xB6, 0xDA, 0xFA, 0x16};   //超高音 1234567  

sbit LED=P0^0   //定義P0^0為LED,方便操作,這個只是舉例,實際以你led與具體IO口連接為準

void main(void)
{
        TMOD=0x11; //T0 T1 均在工作方式1
        ET0=1;  //T0開中斷
        EA=1;   //CPU開中斷         
        while(1)
        {            LED=0;
                               delay_ms(500);
                                LED=1;
                               delay_ms(500);//這四句可以實現閃爍,但是由于下面語句可能會有其他語句延時
                                                        //具體延時未知,若要準確閃爍,可使用定時器中斷。


                music_play();        //根據當前狀態播放相應歌曲的某個音符

                實際修改已用紅色標出,還有疑問,可直接詢問
作者: tianyue2001    時間: 2020-9-28 18:32
理想做法是做一個計時中斷,在中斷里做io引腳翻轉
作者: 67889018    時間: 2020-9-28 19:49
寫一個led_toggle()函數 delay一定時間,通過轉換led的高低電平達到閃爍效果
作者: 德斯佩爾    時間: 2020-9-29 08:52
樓主可以試試在循環程序中加個led=~led;
作者: 昆明路口賣提莫    時間: 2020-9-29 11:30
讓led閃爍就是讓IO口高低電平而已, 如果要閃爍時間有要求就要加固定的延時,讓閃爍的像呼吸燈一樣就要用PWM, 這些都是基礎,望樓主好好學習.
作者: 七禾頁    時間: 2020-10-8 19:27
主函數里面加一個led=~led
作者: atom1    時間: 2020-10-9 18:32
如果還有中斷資源用中斷是最好的,既能實現目標,又不會影響主程序。最好看下手冊,看下會不會有些程序設置上的重合,確保一下




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