




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上紅外專題講解 昵 稱: 一個(gè)人行走 制作日期:2011-7-12制作目的:由于我剛開(kāi)始學(xué)紅外的時(shí)候,什么都不懂,在網(wǎng)上到處找資料,可是在這些找到的資料中,很多都是沒(méi)有用的,找到的程序,大多都是拷貝的某某公司提供的示例源程序,大多都是千篇一律,看過(guò)很多的百度提問(wèn),可是基本上都沒(méi)有從根本上解決問(wèn)題,也上過(guò)豆丁之類的,看看東西還要積分,我郁悶了,當(dāng)時(shí)我就立志等我學(xué)會(huì)紅外紅一定做個(gè)紅外的專題,免費(fèi)的分享給大家,以方便苦苦探索的莘莘學(xué)子??鄲懒撕靡魂嚭?,幸好認(rèn)識(shí)一位嵌入的大哥,給我了幫助,給我資料,功夫不負(fù)有心人,今天我終于學(xué)了紅外的一些知識(shí),為了謝謝幫助過(guò)我的大哥,我只能將他
2、交給我的分享給大家,以此回報(bào)他,因此在這里將我所學(xué)到的免費(fèi)的分享給大家,供大家交流學(xué)習(xí)。至于程序,它是靈活多變,大家不要習(xí)慣性的CTRl+A,CTRL+C,要讀懂它的意思,根據(jù)程序的思想,然后自己發(fā)揮,從而真正掌握它的原理。大家如有疑問(wèn)的可以和我交流,我的QQ:,在此祝福所有在學(xué)習(xí)道路上孜孜不倦的可敬可佩的學(xué)子們,學(xué)業(yè)大成!對(duì)于經(jīng)濟(jì)窘迫的我來(lái)說(shuō),習(xí)慣了拿不收費(fèi)的資料,并對(duì)變相收費(fèi)有一種深惡痛絕的感覺(jué);讓更多的人來(lái)(更容易)了解紅外,貢獻(xiàn)自己的一點(diǎn)力量。也希望大家有好資料的多分享一下,不要那么小氣,還要什么積分什么的。1硬件連接:P0口為數(shù)碼管的段選段,P2口的高四位為數(shù)碼管的位選端,紅外接連在
3、P3.2端,即連接在外部中斷0處2.主要功能:用數(shù)碼管顯示接收到的紅外按鍵的鍵碼3.程序如下:/硬件連接#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit hongwai = P32;/此表為 數(shù)碼管的字模, 共陰數(shù)碼管 0-9 - ucharcodetable=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71;uchar r
4、ecieve3;/儲(chǔ)存用戶碼、用戶反碼與鍵數(shù)據(jù)碼、鍵數(shù)據(jù)反碼 uchar a=0,0,0,0;void delay(uint i) char j; for(i; i > 0; i-) for(j = 200; j > 0; j-);void IRdelay(uchar x) /x*0.14MS uchar i; while(x-) for (i = 0; i<13; i+); void display(uchar keyno) uchar i,j; a0=keyno%10000/1000; a1=keyno%1000/100; a2=keyno%100/10; /十位 a3=
5、keyno%10; /個(gè)位 j=0xfe; /對(duì)數(shù)碼管進(jìn)行逐位掃描顯示 for(i=0; i<=3; i+) j=_cror_(j,1); P2=j; P0 = tableai; delay(50); P0 = 0; void IR_IN(void) interrupt 0 /外部中斷0,即紅外接收P3.2 uchar j,k,count=0; EX0 = 0; /關(guān)閉外部中斷0,即停止接收紅外 IRdelay(5); if (hongwai=1) EX0 =1; return; /確認(rèn)IR信號(hào)出現(xiàn) while (!hongwai) /等IR變?yōu)楦唠娖?,跳過(guò)9ms的前導(dǎo)低電平信號(hào)。 IR
6、delay(1); for (j=0;j<4;j+) /收集四組數(shù)據(jù) for (k=0;k<8;k+) /每組數(shù)據(jù)有8位 while (hongwai) /等 IR 變?yōu)榈碗娖?,跳過(guò)4.5ms的前導(dǎo)高電平 信號(hào)。 IRdelay(1); while (!hongwai) /等 IR 變?yōu)楦唠娖?IRdelay(1); while (hongwai) /計(jì)算IR高電平時(shí)長(zhǎng) IRdelay(1); count+; if (count>=30) EX0=1; return; /0.14ms計(jì)數(shù)過(guò)長(zhǎng)自動(dòng)離開(kāi)。 /高電平計(jì)數(shù)完畢 recieve j= recieve j >>
7、; 1; /數(shù)據(jù)最高位補(bǔ)"0" if (count>=8) recieve j = recieve j | 0x80; /數(shù)據(jù)最高位補(bǔ)"1" count=0; /end for k /end for j if (recieve 2!= recieve 3)/校驗(yàn)鍵值碼與鍵值反碼的值, EX0=1; /如果鍵值碼與鍵值反碼取反后相等,則開(kāi)外部中斷中斷0,開(kāi)始接收下一個(gè)紅外信號(hào) return; EX0 = 1; void main() EA=1;/開(kāi)放全局中斷EX0=1;/開(kāi)外部中斷0IT0=1;/觸發(fā)方式為脈沖負(fù)邊沿觸發(fā)hongwai=1;while
8、(1) /顯示紅外鍵碼display(recieve 2); 2 主要功能:當(dāng)遙控器上的數(shù)字鍵被按下時(shí),讓八個(gè)數(shù)碼管同時(shí)顯示按下的數(shù)字 硬件連接:P0口為數(shù)碼管的段選段,P2口為數(shù)碼管的位選端,默認(rèn)位選端全部開(kāi)放0x00,P3.2接紅外接收頭 程序如下:#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit hongwai = P32;ucharcodetable= 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0
9、x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71;uchar recieve3;/儲(chǔ)存用戶碼、用戶反碼與鍵數(shù)據(jù)碼、鍵數(shù)據(jù)反碼 uchar a=0,0,0,0;void IRdelay(uchar x) /x*0.14MSuchar i; while(x-) for (i = 0; i<13; i+); void main() EA=1;/開(kāi)放全局中斷EX0=1;/開(kāi)外部中斷0IT0=1;/觸發(fā)方式為脈沖負(fù)邊沿觸發(fā)hongwai=1;while(1) P2=0x00;switch(recieve2) case 22:P0=table0;break;/不
10、同的遙控器可能鍵值不一樣,可以根據(jù)程序1測(cè)出鍵值,在修改case后面的值即可case 12:P0=table1;break;case 24:P0=table2;break;case 94:P0=table3;break;case 8:P0=table4;break;case 28:P0=table5;break;case 90:P0=table6;break;case 66:P0=table7;break;case 82:P0=table8;break;case 74:P0=table9;break;case 68:P2=0xff;P0=0x00;break; void IR_IN(void)
11、 interrupt 0 /外部中斷0,即紅外接收P3.2 uchar j,k,count=0; EX0 = 0; /關(guān)閉外部中斷0,即停止接收紅外 IRdelay(5); if (hongwai=1) EX0 =1; return; /確認(rèn)紅外信號(hào)出現(xiàn) while (!hongwai) /等紅外變?yōu)楦唠娖?,跳過(guò)9ms的前導(dǎo)低電平信號(hào)。 IRdelay(1); for (j=0;j<4;j+) /收集四組數(shù)據(jù) for (k=0;k<8;k+) /每組數(shù)據(jù)有8位 while (hongwai) /等 IR 變?yōu)榈碗娖剑^(guò)4.5ms的前導(dǎo)高電平信號(hào)。 IRdelay(1); whil
12、e (!hongwai) /等 IR 變?yōu)楦唠娖?IRdelay(1); while (hongwai) /計(jì)算IR高電平時(shí)長(zhǎng) IRdelay(1); count+; if (count>=30) EX0=1;/高電平時(shí)間過(guò)長(zhǎng)則開(kāi)外部中斷,并返回 return; /0.14ms計(jì)數(shù)過(guò)長(zhǎng)自動(dòng)離開(kāi)。 /高電平計(jì)數(shù)完畢 recievej=recievej >> 1; /各數(shù)據(jù)位右移一位,因?yàn)橄茸x出的是高位數(shù)據(jù) if (count>=8) /如果是高電平則將高位變?yōu)?,反之則為0,不做修改recievej = recievej | 0x80; count=0; if (reci
13、eve2!=recieve3)/校驗(yàn)鍵值碼與鍵值反碼的值, EX0=1; /如果鍵值碼與鍵值反碼取反后相等,則開(kāi)外部中斷中斷0,開(kāi)始接收下一個(gè)紅外信號(hào) return; EX0 = 1; 3.紅外控制蜂鳴器,硬件連接很簡(jiǎn)單,P3.2接紅外接收頭,蜂鳴器接在P1.5端#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit hongwai = P32;sbit beep=P15;uchar recieve3;/儲(chǔ)存用戶碼、用戶反碼與鍵數(shù)據(jù)碼、鍵
14、數(shù)據(jù)反碼 uchar a=0,0,0,0;void delay(uchar x) /x*0.14MSuchar i; while(x-) for (i = 0; i<13; i+); void main() EA=1;/開(kāi)放全局中斷EX0=1;/開(kāi)外部中斷0IT0=1;/觸發(fā)方式為脈沖負(fù)邊沿觸發(fā)hongwai=1;beep=1;while(1) if(recieve2=69)beep=beep;recieve2=98; void hongwaizhongduan(void) interrupt 0 /外部中斷0,即紅外接收P3.2 uchar j,k,count=0; EX0 = 0;
15、/關(guān)閉外部中斷0,即停止接收紅外 delay(5); if (hongwai=1) EX0 =1; return; /確認(rèn)紅外信號(hào)出現(xiàn) while (!hongwai) /等紅外變?yōu)楦唠娖剑^(guò)9ms的前導(dǎo)低電平信號(hào)。 delay(1); for (j=0;j<4;j+) /收集四組數(shù)據(jù) for (k=0;k<8;k+) /每組數(shù)據(jù)有8位 while (hongwai) /等 紅外 變?yōu)榈碗娖?,跳過(guò)4.5ms的前導(dǎo)高電平信號(hào)。 delay(1); while (!hongwai) /等 紅外 變?yōu)楦唠娖?delay(1); while (hongwai) /計(jì)算紅外高電平時(shí)長(zhǎng) delay(1); count+; if (count>=30) EX0=1;/高電平時(shí)間過(guò)長(zhǎng)則開(kāi)外部中斷,并返回 return; /0.14ms計(jì)數(shù)過(guò)長(zhǎng)自動(dòng)離開(kāi)。 /高電平計(jì)數(shù)完畢 recievej=recievej &
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 三年級(jí)下冊(cè)數(shù)學(xué)教案-3.1 解決問(wèn)題的策略-從條件想起丨蘇教版
- 一年級(jí)下冊(cè)數(shù)學(xué)教案-7.2 變葫蘆| 青島版(五四學(xué)制)
- Unit 3 Section A (1a-1c)教學(xué)設(shè)計(jì) 2024-2025學(xué)年人教版八年級(jí)英語(yǔ)上冊(cè)
- 2025年貴州機(jī)電職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)必考題
- 2025年嘉興南湖學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)完整版
- 物理-云南省三校2025屆高三2月高考備考聯(lián)考卷(六)試題和答案
- 2025年哈爾濱鐵道職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)必考題
- 2025屆黑龍江佳木斯一中高三上學(xué)期五調(diào)政治試題及答案
- 2025年度工傷賠償協(xié)議范本(房地產(chǎn)行業(yè))
- 2025年湖南都市職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)帶答案
- 酒店項(xiàng)目精裝修工程施工組織設(shè)計(jì)
- 小學(xué)生研學(xué)旅行展示ppt模板
- 《思想道德與法治》第一章
- 新概念英語(yǔ)第2冊(cè)課文word版
- 大學(xué)生職業(yè)生涯規(guī)劃(高職)PPT完整全套教學(xué)課件
- 微信小程序開(kāi)發(fā)實(shí)戰(zhàn)(第2版)全套PPT完整教學(xué)課件
- 教師教學(xué)質(zhì)量評(píng)估表(自評(píng)互評(píng)生評(píng)表)
- 部編版語(yǔ)文四年級(jí)下冊(cè)全冊(cè)大單元整體作業(yè)設(shè)計(jì)
- 重慶自然博物館
- 收養(yǎng)人撫養(yǎng)教育被收養(yǎng)人能力的證明
- 施工升降機(jī)的安裝步驟
評(píng)論
0/150
提交評(píng)論