紅外線解碼心得和解碼程序_第1頁
紅外線解碼心得和解碼程序_第2頁
紅外線解碼心得和解碼程序_第3頁
紅外線解碼心得和解碼程序_第4頁
紅外線解碼心得和解碼程序_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、試用期小結(jié)尊敬的江蘇三恒科技集團(tuán)領(lǐng)導(dǎo):您好!我叫程克輝,畢業(yè)于西北師范大學(xué)知行學(xué)院,電子信息工程專業(yè)。 在試用期的兩個多月里,我在工程中心軟件項(xiàng)目部實(shí)習(xí)工作,我很榮 幸,能跟著*副總經(jīng)理學(xué)習(xí)與專業(yè)相關(guān)的電子知識,收獲不少!這兩個多月在任總的指導(dǎo)下,我成功的了解、計(jì)算了: BT151可 控硅、LM2940 (1安恒流調(diào)節(jié)器)、LM317三端可調(diào)正穩(wěn)壓器集成電 路、LM2674電源高效降壓穩(wěn)壓轉(zhuǎn)換器、13F-11網(wǎng)絡(luò)隔離變壓器、光 耦開關(guān)、繼電器、SC50462紅外遙控發(fā)射模塊、SM3XX0/3XX1紅外 接收頭等電子元器件。在任總的指導(dǎo)下和上面的學(xué)習(xí)我跟著任總學(xué)習(xí) “煤礦防爆顯示系統(tǒng)”的電路設(shè)計(jì)

2、、模塊學(xué)習(xí),也成功的用c語言成 功的編寫控制該系統(tǒng)的c程序,由于公司沒有人用c對紅外解碼程序 的編寫,故在任總的悉心指導(dǎo)下,幾經(jīng)努力終于編寫成功并且能穩(wěn)定 的通過硬件的測試。硬件部分:1、外部12V電源轉(zhuǎn)換成5V模塊。由LM2674器件實(shí)現(xiàn)2、外部1A恒流源模塊。由LM317和LM2940實(shí)現(xiàn)3、五個獨(dú)立按鍵控制繼電器模塊。由光耦開關(guān)實(shí)現(xiàn)4、繼電器動作模塊。5、紅外接收模塊。由SM3XX0/3XX1紅外接收頭實(shí)現(xiàn)6、外部的四路光端機(jī)、視頻轉(zhuǎn)換器、光纜傳輸、攝像頭、畫 面分割器、網(wǎng)絡(luò)視頻等模塊試用期的期間,由于剛來啥器件都沒有,每每遇到困難的時候我 就及時向*主任匯報(bào),在張主任積極幫助下我的問題

3、往往能很快的 得到解決。特別感謝張主任的無私支持和關(guān)懷!在紅外線解碼的c程序設(shè)計(jì)上,我面臨著很大的困難,在學(xué)校根 本就沒有接觸過紅外線的解碼,因?yàn)榧t外線是一種看不到摸不著的東 西,且我們公司的紅外線發(fā)射器用的是杭州士蘭電子的器件很特殊。 它沒有引導(dǎo)碼只有16位的用戶碼和按鍵的數(shù)據(jù)碼,這樣寫出來的c 解碼程序就很容易受到外部紅外線的干擾。在程序初始化和有紅外脈 沖時能接收16位的0脈沖,即使解碼出錯也能有00H的碼進(jìn)入。還 好最后在我用數(shù)碼管把紅外線解出來的碼顯示出來,這樣一切問題就 迎刃而解了!程序能成功調(diào)試并通過硬件測試。以上是我的試用期小結(jié),在試用期中不足的地方望領(lǐng)導(dǎo)同事及時 指出,以便于

4、本人及時改正!兩個月體會到三恒的精神,知道了集團(tuán) 的發(fā)展?jié)摿?!萬分幸運(yùn),我能成為三恒的一員!此致!敬禮!二零一一年九月七日紅外線解碼程序和公司具體項(xiàng)目要求程序:#include/#include#define uint unsigned int 宏定義#define uchar unsigned charuchar num;uchar irtime,startflag,bitnum,irreceok;uchar irdata16,ircode2;uchar irprosok;uchar n;sbit key1=P3A3; 獨(dú)立按鍵定義sbit key2=P3A4;sbit key3=P3A5;

5、sbit key4=P3A6;sbit key5=P3A7;sbit key6=P2A0;繼電器端口定義 sbit key7=P2A1;sbit key8=P2A2;sbit key9=P2A3;sbit key10=P2A4;void irmove(); /動作函數(shù)的中明void delay(uint z) /延時子函數(shù)(uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void keyskay()(if(key1=0)(delay(5); / 消抖if(key1=0)如果鍵1確實(shí)按下(P2=0 xff;key6=0; / 繼電器1動作顯示器顯示第一屏畫面 wh

6、ile(!key1);delay(5);while(!key1);else if(key2=0)(delay(5);if(key2=0) /如果鍵2確實(shí)按下(P2=0 xff;key7=0; /繼電器2動作顯示器顯示第二屏畫面while(!key2);delay(5);while(!key2);else if(key3=0)(delay(5);if(key3=0) 如果鍵3確實(shí)按下(P2=0 xff;key8=0; /繼電器3動作顯示器顯示第三屏畫面while(!key3);delay(5);while(!key3);else if(key4=0)(delay(5);if(key4=0) /如

7、果鍵4確實(shí)按下(P2=0 xff;key9=0; /繼電器4動作顯示器顯示第四屏畫面 while(!key4);delay(5);while(!key4);else if(key5=0)(delay(5);if(key5=0) /如果鍵5確實(shí)按下(P2=0 xff;key10=0; /繼電器5動作顯示器四路畫面同時顯示while(!key5);delay(5);while(!key5);/*選擇定時器模式、啟動定時器、開中斷的初始化*/void time0init(void)(TMOD=0 x02;TH0=0 x00;TL0=0 x00;ET0=1;EA=1;TR0=1;/*外部中斷 0 初始

8、化*/void int0init()(IT0=1;EX0=1;EA=1;/*讀取用戶碼、數(shù)據(jù)碼并且判斷0、1*/ void irpros()(uchar k,i,j;/變量定義uchar value;k=0;從第一個讀取的時間開始判斷0、1for(j=0;j2;j+) 因?yàn)槭?6位的碼,顧只需要用兩個字節(jié)保存用 戶碼和數(shù)據(jù)碼(for(i=0;i1;/因?yàn)槭菑母呶蛔x取遙控器發(fā)送的數(shù)據(jù),顧 要右移吧第一次讀的數(shù)據(jù)位送到最低位if(irdatak6)/每進(jìn)來一次進(jìn)行判斷讀取的時間值是不是1(value=value | 0 x80; 是1就用或運(yùn)算把讀取數(shù)置1k+; 往下讀取下一個時間值ircodej

9、=value;/把二進(jìn)制的碼存到一個數(shù)組中irprosok=1;數(shù)據(jù)從時間值處理到二進(jìn)制值成功/*根據(jù)讀取的二進(jìn)制數(shù)據(jù)碼判斷哪一個繼電器工作*/void irmove()(switch(ircode1)(case 0 x01:如果數(shù)據(jù)碼是01H就顯示第一屏P2=0 xff;key6=0;break;case 0 x09: /如果數(shù)據(jù)碼是09H就顯示第2屏P2=0 xff;key7=0;break;case 0 x05: /如果數(shù)據(jù)碼是05H就顯示第3屏P2=0 xff;key8=0;break;case 0 x0d: 如果數(shù)據(jù)碼是0dH就顯示第4屏if(n=1)break;/第二次進(jìn)來就自動退

10、出P2=0 xff;key9=0;n=1;while(ircode1=0 x0d);delay(5);while(ircode1=0 x0d);break;if(ircode1=0 x0d&n=1) 如果數(shù)據(jù)碼是0dH并且鍵按下了兩次就四屏同時顯示P2=0 xff;key10=0;n=0;while(n);delay(100);while(n);void main()(time0init();int0init();while(1) 使程序一直運(yùn)行(keyskay(); /按鍵優(yōu)先if(irreceok)/如果接收到紅外并且16位接收成功就進(jìn)入時間值 的處理轉(zhuǎn)換成二進(jìn)制(irpros(); /時

11、間值轉(zhuǎn)換成二進(jìn)制函數(shù)irreceok=0;if(irprosok)如果時間值轉(zhuǎn)化成二進(jìn)制成功處理就進(jìn)入才開中斷、定時(irprosok=0;TR0=1;EX0=1;irmove();/成功判斷數(shù)據(jù)碼并且相關(guān)的繼電器動作delay(100);延時200ms進(jìn)行紅外判斷并且避開外部紅外干void timer0() interrupt 1(irtime+;/255字符型最大、對每一個脈沖自動計(jì)時void int0() interrupt 0(if(startflag=1)紅外接收標(biāo)志(irdatabitnum=irtime;/把每一個脈沖的時間用一個數(shù)組存儲irtime=0;一個脈沖接收結(jié)束就對時間歸零初始化bitnum+;數(shù)組單元往后計(jì)數(shù)if(bitnum=16)如果接收的碼正好是16位的碼就

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論