紅外脈沖解碼程序_第1頁
紅外脈沖解碼程序_第2頁
紅外脈沖解碼程序_第3頁
紅外脈沖解碼程序_第4頁
紅外脈沖解碼程序_第5頁
全文預覽已結(jié)束

下載本文檔

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

文檔簡介

單片機紅外脈沖解碼電路采用共陰極四位數(shù)碼管;8050開關(guān)三極管;STC89C52單片機;12M晶振。C51程序/*紅外脈沖破解程序。脈沖波長用四位數(shù)碼管以十六進制顯示。脈沖個數(shù)用四位數(shù)碼管以十進制顯示。*/#include<reg52.h>sbitshow=P2A4;sbitback=P2A5;sbitNshow=P2A6;unsignedintbox[46];unsignedcharcodeNum[]={0xEB,0x41,0xB3,0xBA,0x78,0xDA,0xDB,0xA8,0xFB,0xFA,0xF9,0x5B,0xC3,0x3B,0xD3,0xD1,0x04};//數(shù)碼管1-F顯示的花樣程序(根據(jù)數(shù)碼管的接線方法的不同,花樣碼也會不同)unsignedcharNu[4];unsignedchark=0;〃脈沖計數(shù)判斷unsignedchare=0;//脈沖總數(shù)存儲unsignedchary=0;//數(shù)碼管顯示第幾個脈沖unsignedintA,w;voidshow_led(void);voidwait_short(void);voidfour_led(unsignedcharled)//四個數(shù)碼管用十六進制顯示脈沖長度。{Nu[1]=box[led]%16;Nu[2]=(box[led]/16)%16;Nu[3]=(box[led]/256)%16;Nu[4]=box[led]/4096;}voidmain(){P2=0XF0;EA=1;EX0=1;IT0=1;ET0=1;TMOD=0x01;TR0=0;TH0=0;TL0=0;y=0;k=0;e=0;while(1){if(Nshow==0)〃檢查顯示的脈沖數(shù)數(shù)碼管用十進制顯示{Nu[1]=y%10;Nu[2]=(y/10)%10;Nu[3]=(y/100)%10;Nu[4]=(y/1000)%10;A=3000;while(A--)show_led();four_led(y);}//================================================================================if(back==0)〃回看脈沖長度{A=10000;while(A--);if(y>=1){y=y-1;four_led(y);}else{y=0;four_led(y);}four_led(y);〃鞏固A=400;while(A--)show_led();four_led(y);}//==========================================================================if(show==0)〃下一個脈沖長度{P2=0XF0;P1=0X00;A=10000;while(A--);if(y<e){y=y+1;four_led(y);}else{Nu[1]=16;Nu[2]=16;Nu[3]=16;Nu⑷=16;A=400;while(A--)show_led();y=0;four_led(y);}four_led(y);〃鞏固A=400;while(A--)show_led();four_led(y);}//===============================================================================show_led();}while(1);}voidInt0_Routine()interrupt0using0〃下降沿中斷{TR0=0;box[k]=TH0*256+TL0;TH0=0;TL0=0;TR0=1;if(k==0)e=0;e=e+1;k=k+1;}voidtime_int()interrupt1using0〃計數(shù)器中斷{TR0=0;box[k]=TH0*256+TL0;TH0=0;TL0=0;k=0; 〃計數(shù)器溢出K歸零準備下一個脈沖信號的接受y=0; //計數(shù)器溢出脈沖結(jié)束數(shù)碼管開始顯示第0個脈沖four_led(y);}voidshow_led(void)〃數(shù)碼管顯示數(shù)值{if(Nu[4]!=0){P2=0xF1;P1=Num[Nu[1]];wait_short();P2=0xF2;P1=Num[Nu[2]];wait_short();P2=0xF4;P1=Num[Nu[3]];wait_short();P2=0xF8;P1=Num[Nu[4]];wait_short();}else{if(Nu[3]!=0){P2=0xF1;P1=Num[Nu[1]];wait_short();P2=0xF2;P1=Num[Nu[2]];wait_short();P2=0xF4;P1=Num[Nu[3]];wait_short();}else{if(Nu[2]!=0){P2=0xF1;P1=Num[Nu[1]];wait_short();P2=0xF2;P1=Num[Nu[2]];wait_short();}else{P2=0xF1;P1=Num[Nu[1]];wait_short();}

voidwait_short(void)〃消岐延時{w=40;while(w--);}解碼結(jié)果引導碼取值關(guān)機‘00000000「11111101「00000000‘11111111max3235532400回車'00000000「11111101「10000000「01111111min32315322500鍵"00000000「11111101「01000000「10111111'00000000「11111101「10100000「01011111結(jié)束碼1取值3鍵"00000000‘11111101「01100000‘10011111max122007122050,00000000「11111101「00010000「11101111min1217541217005鍵,00000000,11111101「10010000‘011011117鍵「00000000,11111101「00110000「11001111結(jié)束碼2取值「00000000,11111101「10110000,01001111max2602726100■a"00000000『11111101「01110000「10001111min2600325950向上鍵,00000000,11111101,10001000「01110011MENU,00000000「11111101「01001000「10110111結(jié)束碼3取值向左,00000000「11111101「00101000「11010111max1516OK「00000000,11111101「10101000‘01010111min1413減號'00000000「111

溫馨提示

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

最新文檔

評論

0/150

提交評論