![NEC協(xié)議的紅外遙控程序任意IO口_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/25/3cdcbb85-0ac2-49db-8981-cd73c10ffab5/3cdcbb85-0ac2-49db-8981-cd73c10ffab51.gif)
![NEC協(xié)議的紅外遙控程序任意IO口_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/25/3cdcbb85-0ac2-49db-8981-cd73c10ffab5/3cdcbb85-0ac2-49db-8981-cd73c10ffab52.gif)
![NEC協(xié)議的紅外遙控程序任意IO口_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/25/3cdcbb85-0ac2-49db-8981-cd73c10ffab5/3cdcbb85-0ac2-49db-8981-cd73c10ffab53.gif)
![NEC協(xié)議的紅外遙控程序任意IO口_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/25/3cdcbb85-0ac2-49db-8981-cd73c10ffab5/3cdcbb85-0ac2-49db-8981-cd73c10ffab54.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、/*NEC_INF_S.h用于 NEC 協(xié)議的遙控器與 51單片機(jī)結(jié)合的驅(qū)動(dòng)程序,可用任意 IO 口,不占用中斷資源。 用戶碼 8位,分布于 2-17 個(gè)脈沖;按鍵碼 8位,分布于 18-33 個(gè)脈沖。皆為前 8 原碼,后 8 反碼,并且接收數(shù)據(jù)時(shí)低位在前,高位在后。 主控器為 51 單片機(jī),晶振頻率為 11.0592MHz 。 注意:由于未用中斷,所以信號(hào)的接收是靠查詢方式的,可能會(huì)漏掉若干次紅外信號(hào)。 */ #include<reg52.h>#define uchar unsigned char#define uint unsigned int#define N 5000/ 用
2、于在 while() 中循環(huán)時(shí)超時(shí)跳出的數(shù)的上限,可小刀sbit nec_dat=P3A3;/任意10 口,用到哪個(gè)自己改哪個(gè)uchar nec_id2=0;/ 遙控器的編碼號(hào),第一個(gè)為原碼,第二個(gè)為反碼 uchar nec_data2=0;/ 遙控器的命令號(hào),第一個(gè)為原碼,第二個(gè)為反碼uchar nec_status=O;遙控器的按鍵狀態(tài)信息。0:無(wú)按鍵;1:一次按鍵;2:連續(xù)按鍵uchar nec_actflag=O;用于帶到主函數(shù)里的按鍵響應(yīng)標(biāo)志。0:不動(dòng)作;1:動(dòng)作#ifndef NEC_INF_S_h#define NEC_INF_S_hvoid nec_init();/ 初始化函數(shù)
3、,注意一定要拉高,拉低就錯(cuò)誤了void nec_delay();/ 延時(shí) 0.8ms 左右,要求要非常精確,這是正確讀數(shù)的關(guān)鍵void nec_pulsedat();讀第2到第32個(gè)脈沖,第一個(gè)脈沖已判定void nec_getdat();掃描式讀遙控器的數(shù)據(jù),可能有時(shí)會(huì)掃描不到#endifvoid nec_init()/ 初始化函數(shù),注意一定要拉高,拉低就錯(cuò)誤了nec_dat=1;void nec_delay()/ 延時(shí) 0.8ms 左右,要求要非常精確,這是正確讀數(shù)的關(guān)鍵uchar i;for(i=0;i<245;i+);/*void nec_act()/ 按鍵響應(yīng)程序,根據(jù)自己需要
4、寫(xiě)nec_getdat(); /先掃描一遍紅外信號(hào) if(nec_actflag=1)/ 如果是正確的紅外信號(hào)才處理,否則跳過(guò) if(nec_data0=nec_data1)/ 驗(yàn)證所接收數(shù)據(jù)是否正確switch(nec_data0)/ 自己寫(xiě)所需要的程序段case 69:/* 點(diǎn)亮二極管,讓蜂鳴器發(fā)聲,什么都行,寫(xiě)在這里 */ break;case 70: /*以下都一樣,對(duì)應(yīng)的遙控器按鍵見(jiàn)圖1-1*/ break;case 71: break;case 68:break;case 64:break;case 67:break;case 7:break;case 21:break;case
5、9:break;case 22:break;case 25:break;case 13:break;case 12:break;case 24:break;case 94:break;case 8:break;case 28:break;case 90:break;case 66:break;case 82:break;case 74:break; nec_actflag=0;*/void nec_pulsedat()/ 讀第 2 到第 32 個(gè)脈沖,第一個(gè)脈沖已判定uchar i=0;uint num=0;for(i=1;i<32;i+)num=0;while(nec_dat=0)&a
6、mp;&(num<N)num+;nec_delay();if(nec_dat=1) if(i>=1)&&(i<=7)nec_id0=nec_id0|(0x01<<i); if(i>=8)&&(i<=15)nec_id1=nec_id1|(0x01<<(i-8); if(i>=16)&&(i<=23)nec_data0=nec_data0|(0x01<<(i-16); if(i>=24)&&(i<=31)nec_data1=nec_da
7、ta1|(0x01<<(i-24); num=0;while(nec_dat=1)&&(num<N)num+;else if(i>=1)&&(i<=7)nec_id0=nec_id0&(0x01<<i); if(i>=8)&&(i<=15)nec_id1=nec_id1&(0x01<<i-8); if(i>=16)&&(i<=23)nec_data0=nec_data0&(0x01<<i-16); if(i>=2
8、4)&&(i<=31)nec_data1=nec_data1&(0x01<<i-24);void nec_getdat()/ 掃描式讀遙控器的數(shù)據(jù),可能有時(shí)會(huì)掃描不到uint num=0;if(nec_dat=1)num=0;while(nec_dat=1)&&(num<N)num+; nec_delay();if(nec_dat=0)nec_delay();if(nec_dat=0)nec_delay();if(nec_dat=0)nec_delay();if(nec_dat=0)nec_status=1;num=0;while
9、(nec_dat=0)&&(num<N)num+;num=0;while(nec_dat=1)&&(num<N)num+;if(nec_status=1)num=0;while(nec_dat=0)&&(num<N)num+;n ec_delay();if(n ec_dat=1)n ec_delay(); nec_delay(); nec_delay(); if(n ec_dat=1) nec_status=2;else nec_idO=OxO1;n ec_pulsedat();elsenec_idO=OxOO;n ec_pulsedat();nec_actflag=1; 一次按鍵的響應(yīng)程序if(n ec_status=2)/持續(xù)按鍵的響應(yīng)程序nec_status=O;必須歸零,非常重要圖1-2本程序使用的遙控器C6970716864670721092225.13122494082890568274圖1-1紅外遙控器按鍵對(duì)應(yīng)的接收碼注意:本程序適用于 NEC 協(xié)議的紅外遙控器,但是每一款遙控器的按鍵碼可能不同,需要 自己找到自己手頭上遙控器的按鍵碼資料來(lái)對(duì)程序進(jìn)行改動(dòng)。 本程序沒(méi)有占用單片機(jī)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑工程施工安全責(zé)任保險(xiǎn)合同
- 2025年度海洋工程勞務(wù)承包合同模板
- 2025年度新能源車(chē)用鋰電池研發(fā)借款保證合同
- 氣模鼓風(fēng)機(jī)項(xiàng)目融資計(jì)劃書(shū)
- 金華浙江金華永康市信訪局編外工作人員招聘筆試歷年參考題庫(kù)附帶答案詳解
- 金華浙江金華市技師學(xué)院招聘編外工作人員8人筆試歷年參考題庫(kù)附帶答案詳解
- 貴州2025年貴州省工業(yè)和信息化廳所屬事業(yè)單位招聘1人筆試歷年參考題庫(kù)附帶答案詳解
- 舟山浙江舟山市普陀區(qū)檔案館(區(qū)史志研究室)招聘勞務(wù)派遣工作人員筆試歷年參考題庫(kù)附帶答案詳解
- 聊城2024年山東聊城陽(yáng)谷縣第二批招聘教師70人筆試歷年參考題庫(kù)附帶答案詳解
- 湛江廣東湛江市清風(fēng)苑管理中心招聘事業(yè)編制工作人員10人筆試歷年參考題庫(kù)附帶答案詳解
- 裝修垃圾清運(yùn)方案
- 2024年四川省廣元市中考物理試題(含解析)
- 急救藥品課件教學(xué)課件
- 數(shù)字出版概論 課件 第七章 數(shù)字內(nèi)容服務(wù)相關(guān)技術(shù)
- 信號(hào)與系統(tǒng)復(fù)習(xí)題(答案全)
- 兒童福利機(jī)構(gòu)安全管理規(guī)范
- 第1課 おじぎ 課件高中日語(yǔ)人教版第一冊(cè)-1
- ISO∕IEC 23894-2023 信息技術(shù) -人工智能 - 風(fēng)險(xiǎn)管理指南(雷澤佳譯-2024)
- 六年級(jí)下冊(cè)語(yǔ)文第一單元測(cè)試卷 部編版(含答案)
- 鄭州市地圖含區(qū)縣可編輯可填充動(dòng)畫(huà)演示矢量分層地圖課件模板
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)新版
評(píng)論
0/150
提交評(píng)論