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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7631|回復: 31
打印 上一主題 下一主題
收起左側

如何在這個單片機程序中加一個關于LED閃爍的代碼?謝謝

  [復制鏈接]
回帖獎勵 10 黑幣 回復本帖可獲得 10 黑幣獎勵! 每人限 1 次
跳轉到指定樓層
樓主
ID:793358 發表于 2020-6-30 17:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
音樂盒.zip (101.1 KB, 下載次數: 26)


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

使用道具 舉報

沙發
ID:584814 發表于 2020-7-1 08:17 | 只看該作者
賞金太高必須參與 while(1){led=1;delay(25);led=0;delay(25);}
回復

使用道具 舉報

板凳
ID:793358 發表于 2020-7-1 08:30 來自手機 | 只看該作者
man1234567 發表于 2020-7-1 08:17
賞金太高必須參與 while(1){led=1;delay(25);led=0;delay(25);}

從哪里加這個代碼??
回復

使用道具 舉報

地板
ID:718783 發表于 2020-7-1 08:34 | 只看該作者
wanglin1207 發表于 2020-7-1 08:30
從哪里加這個代碼??

在主函數死循環里加就行,你看你要通過什么條件來實現LED閃爍
回復

使用道具 舉報

5#
ID:560976 發表于 2020-7-1 08:41 | 只看該作者
LED=1;led=0;加計數器產品脈沖
回復

使用道具 舉報

6#
ID:147710 發表于 2020-7-1 08:51 | 只看該作者

回復

使用道具 舉報

7#
ID:277948 發表于 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
回復

使用道具 舉報

8#
ID:774633 發表于 2020-7-1 08:54 | 只看該作者
在主函數里面添加即可,加延時,就會有閃爍效果
回復

使用道具 舉報

9#
ID:757976 發表于 2020-7-1 09:04 | 只看該作者
建議樓主將代碼直接發出來,省的下載。可以直觀一點。
閃爍一般是在主函數的while循環里面添加即可。
回復

使用道具 舉報

10#
ID:794452 發表于 2020-7-1 09:16 | 只看該作者
文件我這里錯誤,打不開了,給你兩個閃爍的文件,可以參考一下
回復

使用道具 舉報

11#
ID:794452 發表于 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>看看這個有沒有用
回復

使用道具 舉報

12#
ID:147710 發表于 2020-7-1 09:52 | 只看該作者
有發聲程序,用delay容易引起發聲不連貫,建議用非阻塞方式實現LED閃爍:


回復

使用道具 舉報

13#
ID:311846 發表于 2020-7-1 11:22 | 只看該作者
如果你想要穩定的閃爍可以在定時器中使用計數,在主循環中判斷計數值,達到規定值就翻轉一下LED對應的IO口,計數值清零
回復

使用道具 舉報

14#
ID:490426 發表于 2020-7-1 11:38 | 只看該作者
一般不建議在主函數里面添加延時,會影響主函數運行,其實在定時器里面加個標志位就可以,到了時間引腳翻轉一下就可以,這樣的燈的閃爍頻率比較準確,尤其是在做國標項目時。比如定時器定時中斷為10毫秒,500毫秒翻轉一次。,你家一個計數標志,到50時清零。同時給主函數一個標志,監測到這個標志就翻轉一下io口,就可以了。
回復

使用道具 舉報

15#
ID:760185 發表于 2020-7-1 12:11 | 只看該作者
仔細看看,不復雜
回復

使用道具 舉報

16#
ID:319023 發表于 2020-7-1 12:21 | 只看該作者
可以加一個 LED的子函數吧
回復

使用道具 舉報

17#
ID:293363 發表于 2020-7-1 14:55 | 只看該作者
定時器里面加一個LED=!LED;
回復

使用道具 舉報

18#
ID:774631 發表于 2020-7-1 15:55 | 只看該作者
不建議在主函數里面添加,可以試試用定時器。
回復

使用道具 舉報

19#
ID:793358 發表于 2020-7-1 16:51 | 只看該作者
XTXB 發表于 2020-7-1 09:52
有發聲程序,用delay容易引起發聲不連貫,建議用非阻塞方式實現LED閃爍:

加一下企鵝可以嗎
回復

使用道具 舉報

20#
ID:147710 發表于 2020-7-1 22:07 | 只看該作者
搞定沒?1000太大了,你是等不到閃爍的,改為1或2就閃爍了,就是不大穩定,把紅框代碼放到定時器0中斷中效果會好一些。要閃爍穩定,最好單獨開個定時器2,把它放到定時器2中斷中,就是不知道對發音影響大不大。
回復

使用道具 舉報

21#
ID:795764 發表于 2020-7-2 15:53 | 只看該作者
可以再加個定時器1,和定時器0相類似的,這樣控制的LED閃爍時間會非常準
回復

使用道具 舉報

22#
ID:633896 發表于 2020-7-7 11:30 | 只看該作者
我感覺直接在while(1)
{
    led=~led;
    延時就好了  延時看你自己定
}
回復

使用道具 舉報

23#
ID:608600 發表于 2020-7-7 11:38 | 只看該作者
led=~led;
回復

使用道具 舉報

24#
ID:586048 發表于 2020-9-27 11:40 | 只看該作者
應該先了解一下你這閃爍是要什么條件執行的,還是只是閃爍,只是閃爍加在中斷里就行,要是有條件,就弄一個定時標志位,然后在主程序中添加條件判斷
回復

使用道具 舉報

25#
ID:235954 發表于 2020-9-28 10:35 | 只看該作者
led!=led;
回復

使用道具 舉報

26#
ID:823282 發表于 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();        //根據當前狀態播放相應歌曲的某個音符

                實際修改已用紅色標出,還有疑問,可直接詢問
回復

使用道具 舉報

27#
ID:824311 發表于 2020-9-28 18:32 | 只看該作者
理想做法是做一個計時中斷,在中斷里做io引腳翻轉
回復

使用道具 舉報

28#
ID:824342 發表于 2020-9-28 19:49 | 只看該作者
寫一個led_toggle()函數 delay一定時間,通過轉換led的高低電平達到閃爍效果
回復

使用道具 舉報

29#
ID:822056 發表于 2020-9-29 08:52 | 只看該作者
樓主可以試試在循環程序中加個led=~led;
回復

使用道具 舉報

30#
ID:367460 發表于 2020-9-29 11:30 | 只看該作者
讓led閃爍就是讓IO口高低電平而已, 如果要閃爍時間有要求就要加固定的延時,讓閃爍的像呼吸燈一樣就要用PWM, 這些都是基礎,望樓主好好學習.
回復

使用道具 舉報

31#
ID:808634 發表于 2020-10-8 19:27 | 只看該作者
主函數里面加一個led=~led
回復

使用道具 舉報

32#
ID:827215 發表于 2020-10-9 18:32 | 只看該作者
如果還有中斷資源用中斷是最好的,既能實現目標,又不會影響主程序。最好看下手冊,看下會不會有些程序設置上的重合,確保一下
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美视频在线看 | 亚洲www| av天天看 | 精品中文字幕在线观看 | 一区二区三区中文字幕 | aaa精品| 成人福利 | 国产一级视频在线播放 | 欧美精选一区二区 | 久草影视在线 | 久久久久国产一区二区三区四区 | 国产福利资源在线 | 91精品久久久久久久99 | 麻豆视频在线免费观看 | 欧美一区不卡 | 一区二区三区免费 | 丁香五月网久久综合 | 91精品国产色综合久久 | 欧美日韩专区 | 在线看一区二区三区 | 日韩视频一区二区 | 亚洲欧美综合精品久久成人 | 国产日韩免费视频 | 精品久久国产 | 欧美日韩专区 | 一区二区免费看 | 91视频国产精品 | 精品美女视频在线观看免费软件 | 国产精品久久久亚洲 | 欧美一区二区三区在线观看 | 国产女人与拘做受免费视频 | 国产精品久久久久久久7777 | 91亚洲国产 | 中文字幕亚洲欧美日韩在线不卡 | 国产亚洲一区二区三区 | 国产精品久久久久久久久久妞妞 | 欧美一区二区三区在线 | 精品欧美乱码久久久久久1区2区 | 嫩草视频在线免费观看 | 亚洲国产精品99久久久久久久久 | 欧美男人天堂 |