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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2333|回復(fù): 12
收起左側(cè)

想通過單片機+紅外控制流水燈的模式切換

[復(fù)制鏈接]
ID:960619 發(fā)表于 2021-8-30 11:00 | 顯示全部樓層 |閱讀模式
外部中斷紅外接收進來進行解碼,根據(jù)解碼的鍵值判斷執(zhí)行哪條程序。
.怎樣一直掃描紅外鍵碼的變動,鍵碼一變就跳轉(zhuǎn)執(zhí)行相應(yīng)代碼,在定時中斷中掃描嗎?


回復(fù)

使用道具 舉報

ID:776954 發(fā)表于 2021-8-30 13:18 | 顯示全部樓層
如果不是紅外線,而直接是按鍵切換狀態(tài)的話, 你會做嗎?仔細想想他們的區(qū)別
回復(fù)

使用道具 舉報

ID:161164 發(fā)表于 2021-8-30 13:44 | 顯示全部樓層
不要用delay,不要用for


  1. while(1){
  2. for(i=0;i<8;i++){
  3. //your code
  4. }
  5. }
復(fù)制代碼

改為
  1. i=0;
  2. while(1)
  3. {
  4. //your code
  5. if(++i>=8)i=0;
  6. }
復(fù)制代碼
回復(fù)

使用道具 舉報

ID:624769 發(fā)表于 2021-8-30 13:44 | 顯示全部樓層
先假定,紅外接收解碼,你已經(jīng)會了,
又假定,根據(jù)外部中斷切換主程序分支,你也會了(一般是定義變量Mode, 然后主程序Switch(mode) 走不同的分支).

那么,把紅外線接受頭的引腳連接在外部中斷口。當(dāng)紅外接受頭收到信號,開始動作,則觸發(fā)外部中斷。
然后,外部中斷程序開啟定時器中斷,并且關(guān)閉自己的外部中斷。
隨后,定時器中斷負責(zé)處理紅外接受頭收到的信號。處理完畢后,把鍵值保存,并置位標(biāo)志位(主程序根據(jù)標(biāo)志位判斷是否需要進行模式切換)。
同時關(guān)閉定時器,打開外部中斷(為下次接受信號準備)。
這么寫應(yīng)該能理解吧?
回復(fù)

使用道具 舉報

ID:96072 發(fā)表于 2021-8-30 13:58 | 顯示全部樓層
紅外遙控接收代碼,現(xiàn)成的
回復(fù)

使用道具 舉報

ID:960619 發(fā)表于 2021-8-30 16:58 | 顯示全部樓層
188610329 發(fā)表于 2021-8-30 13:44
先假定,紅外接收解碼,你已經(jīng)會了,
又假定,根據(jù)外部中斷切換主程序分支,你也會了(一般是定義變量Mode, 然 ...

還沒同時用過兩個中斷。我理解的你說的意思是紅外接收是最優(yōu)先中斷0,紅外解碼的程序放到定時中斷1里面執(zhí)行,外部中斷每成功接收一次信號先關(guān)閉外部中斷,等定時中斷處理完解碼再重新打開外部中斷接收下一次信號。然后根據(jù)定時中斷里的標(biāo)志位回到Switch里面走相應(yīng)程序。關(guān)于“把鍵值保存,并置位標(biāo)志位”,根據(jù)不同鍵碼置不同標(biāo)志位,然后賦值給mode嗎
回復(fù)

使用道具 舉報

ID:960619 發(fā)表于 2021-8-30 17:01 | 顯示全部樓層
HEIZI555 發(fā)表于 2021-8-30 13:58
紅外遙控接收代碼,現(xiàn)成的

紅外解碼寫好了,現(xiàn)要用紅外遙控實現(xiàn)不同的功能,包括對電機的控制啊,燈的亮度,燈的狀態(tài)等
回復(fù)

使用道具 舉報

ID:960619 發(fā)表于 2021-8-30 17:03 | 顯示全部樓層
lkc8210 發(fā)表于 2021-8-30 13:44
不要用delay,不要用for


這個好像沒啥關(guān)系吧,執(zhí)行中斷,都能跳出來,或是在循環(huán)里放按鍵掃描功能
回復(fù)

使用道具 舉報

ID:415064 發(fā)表于 2021-8-30 18:06 | 顯示全部樓層
baobao125 發(fā)表于 2021-8-30 17:01
紅外解碼寫好了,現(xiàn)要用紅外遙控實現(xiàn)不同的功能,包括對電機的控制啊,燈的亮度,燈的狀態(tài)等

按鍵的會寫了,紅外的也就會寫了。無外乎把紅外套按鍵的邏輯
回復(fù)

使用道具 舉報

ID:161164 發(fā)表于 2021-8-30 19:48 來自手機 | 顯示全部樓層
baobao125 發(fā)表于 2021-8-30 17:03
這個好像沒啥關(guān)系吧,執(zhí)行中斷,都能跳出來,或是在循環(huán)里放按鍵掃描功能

那還有什么問題?
Just do it~!
回復(fù)

使用道具 舉報

ID:624769 發(fā)表于 2021-8-31 20:42 | 顯示全部樓層
baobao125 發(fā)表于 2021-8-30 16:58
還沒同時用過兩個中斷。我理解的你說的意思是紅外接收是最優(yōu)先中斷0,紅外解碼的程序放到定時中斷1里面執(zhí) ...

額,你可能稍稍有點誤會我的意思了。
我的意思是,沒必要定時器常開一直等待按鍵,紅外接受信號時有個頭信號的,此時會產(chǎn)生一個下降沿,利用這個下降沿觸發(fā)外部中斷,來打開定時器,接受及解碼按鍵。
當(dāng)然,你要嫌麻煩也不怕消耗資源,可以不用這個外部中斷,直接定時器常開24小時等待紅外信號也可以。
然后就是和你理解的差不多,定時器中斷獲取鍵值存入變量Key. 然后main程序根據(jù)這個變量Key,選擇執(zhí)行哪一段代碼。需要注意的是,如果你希望這個操作可以被打斷的話,就要分段執(zhí)行,比如你要跑馬燈右移8次,不要一次就讓他for循環(huán)跑完,你通過一個變量比如 remain , 賦值8,然后每次進入這個分支 if(--remain > 0) 右移一次。那么,你就要8次循環(huán)主程序才會跑完這個右移過程,這個過程中,只要接受到新的按鍵,鍵值改變了,就能在分支入口選擇mode的地方打斷之前那個分支的操作了。理解我的意思不?
回復(fù)

使用道具 舉報

ID:390416 發(fā)表于 2021-9-1 08:22 | 顯示全部樓層
先學(xué)會紅外解碼  
《人人學(xué)會單片機》 第28、第29課講了紅外解碼教程。A站可以觀看、原子哥網(wǎng)也可以免費觀看。
回復(fù)

使用道具 舉報

ID:342954 發(fā)表于 2021-9-1 09:19 | 顯示全部樓層
如果你紅外接收程序能寫出來,那后面的程序應(yīng)不是難事
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产午夜在线观看 | 亚洲风情在线观看 | 福利av在线| 日韩三级免费观看 | 久久av.com| 亚洲成人蜜桃 | 天堂在线中文 | 午夜一级做a爰片久久毛片 精品综合 | 中文在线一区二区 | 国产精品美女久久久 | 99久久国产综合精品麻豆 | 97国产一区二区精品久久呦 | 天天干狠狠干 | 一区二区三区四区不卡视频 | 国产精品久久国产精品 | 999久久 | 成人精品一区 | 精品国产伦一区二区三区观看方式 | 在线免费观看黄a | 日韩成人| 久久精品久久精品久久精品 | 青青草视频网 | 国产视频第一页 | 老司机久久 | 久久久久综合 | 天堂资源视频 | 爱草在线 | 一级黄片一级毛片 | 国产精品一区二区三区在线 | 精品久久久久久久人人人人传媒 | 精品视频在线一区 | 欧美a在线看 | 久久五月婷 | 日韩在线视频观看 | 好姑娘高清在线观看电影 | 国产高清精品一区二区三区 | 日韩视频1 | 日韩一二区在线观看 | 久久国产精品一区二区三区 | 欧美日韩在线观看一区 | 国产精品福利视频 |