版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于單片機(jī)的紅外遙控設(shè)計設(shè)計要求:遙控器20鍵,接收設(shè)備接收到數(shù)據(jù)后,將數(shù)據(jù)傳給上位機(jī)(PC)設(shè)計思路:發(fā)送端:利用單片機(jī)AT89C2051進(jìn)行紅外編碼,555電路產(chǎn)生38KHZ載波。接收端:用紅外一體接收頭HS0038B,用單片機(jī)AT89C2051進(jìn)行解碼。采用2節(jié)1.5V電池供電,提高電壓,可明顯提高控制距離。當(dāng)遙控距離不能滿足控制要求時,可提高供電電壓。編碼方式:區(qū)別于傳統(tǒng)編碼模式,未采用傳統(tǒng)編碼方式。此編碼方式是個人所創(chuàng)。黃色波形為發(fā)射端發(fā)射的波形,藍(lán)色為一體化接收頭HS0038B 的輸出波形??梢钥闯霭l(fā)射波形經(jīng)空間傳輸,接收到時只是經(jīng)過一個反相的變化。編碼:發(fā)射端先9MS的高電平,然
2、后2MS的低電平為引導(dǎo)碼。 在引導(dǎo)碼之后,即為8為二進(jìn)制的用戶碼。高3MS低2MS的為“1”;高1MS,低2MS的為“0”.不難看出,此波形中用戶碼為10001000。硬件設(shè)計:下圖便是發(fā)送部分,即手持遙控器的電路圖:D1是普通二極管,D2是紅外發(fā)射管。如果發(fā)射距離不夠遠(yuǎn),可以適當(dāng)調(diào)小R2的值。555在電路中的作用是組成38KHZ的方波電路,調(diào)節(jié)RV1的值,就可在555的3引腳產(chǎn)生38KHZ方波,將38KHZ的方波直接給紅外發(fā)光管,形成載波。555復(fù)位引腳4接單片機(jī)。由單片機(jī)控制方波的有無(有方波,接收管HS0038B的輸出為低,無方波則為高)通過控制高低時間,實現(xiàn)編碼。)理論上555工作電壓
3、在4.5V到18V之間。但是經(jīng)試驗發(fā)現(xiàn)供電電壓為3V時,整個電路可以工作,但是發(fā)射距離會大打折扣。下圖是接收部分電路原理圖單片機(jī)通過中斷程序,處理HS0038B輸出信號,進(jìn)行解碼。注:此電路中省略了MAX232。數(shù)據(jù)由單片機(jī)接收之后經(jīng)串口傳給電腦。紅外接收頭HS0038B引腳如下圖所示編碼程序:#include #define uchar unsigned char#define uint unsigned intlong TIME8;/定義一個數(shù)組,用于儲存不同時間sbit P34=P34;sbit P35=P35;sbit P32=P32;sbit P33=P33;sbit P30=P30
4、;sbit P10=P10;bit endflag=0;long count1;long count;bit j=0;int m=0;int o;int mykeynumber=101;int keynumber;void GET_TIME(unsigned char DATA/把一個字節(jié),按位分解,時間按"1""0"裝入TIME中 unsigned char DATAI;unsigned char i;for(i=0;i<8;i+ DATAI=DATA&0x01;DATA=DATA>>1;if(DATAI=1TIMEi=300
5、0;if(DATAI=0TIMEi=1000; void inti(/初始化程序 TMOD=0x11;TH0=(65535-9000/256;TL0=(65535-9000%256;endflag=0;EA=1;ET0=1;ET1=1;EX0=1;IT0=1;P30=0;uchar keyscan(void; void delay(uint ii;void keynum(uchar key;keynumber=100;while(keynumber=100if(P32=0delay(100;if(P32=0P2=1;keynumber=17; if(P33=0delay(100;if(P33=
6、0keynumber=18; if(P34=0delay(100;if(P34=0keynumber=19; if(P35=0delay(100;if(P35=0keynumber=20; if(keynumber=100key=keyscan(;switch(keycase 0x7e:keynumber=1;break;/0 case 0x7d:keynumber=2;break;/1case 0x7b:keynumber=3;break;/2case 0x77:keynumber=4;break;/3case 0xbe:keynumber=5;break;/4case 0xbd:keynu
7、mber=6;break;/5case 0xbb:keynumber=7;break;/6case 0xb7:keynumber=8;break;/7case 0xde:keynumber=9;break;/8case 0xdd:keynumber=10;break;/9case 0xdb:keynumber=11;break;/10case 0xd7:keynumber=12;break;/11case 0xee:keynumber=13;break;/12case 0xed:keynumber=14;break;/13case 0xeb:keynumber=15;break;/14case
8、 0xe7:keynumber=16;break;/15default: keynumber=100;void main(/主函數(shù)P30=0;keynum(;inti(;GET_TIME(keynumber;P30=0;TR1=1;while(endflag=0P30=0;void t1( interrupt 3/定時器1中斷TR1=0;TH1=(65535-2000/256;TL1=(65535-2000%256;TR0=1;m+; P30=1; void t0( interrupt 1/定時器0中斷 TR1=1;TR0=0;P30=0;switch(mcase 1:count=TIME0;
9、break;case 2:count=TIME1;break;case 3:count=TIME2;break;case 4:count=TIME3;break;case 5:count=TIME4;break;case 6:count=TIME5;break;case 7:count=TIME6;break;case 8:count=TIME7;break;default:endflag=1;if(endflagTR1=0;TH0=(65535-count/256;TL0=(65535-count%256; uchar keyscan(void /鍵盤掃秒,并返回鍵值的程序 uchar co
10、rd_h,cord_l;P1=0x0f; cord_h=P1&0x0f; if(cord_h!=0x0f delay(100; if(cord_h!=0x0fcord_h=P1&0x0f; P1=cord_h|0xf0; cord_l=P1&0xf0; return(cord_h+cord_l;return(0xff; void delay(uint ii/延時程序while(ii-;解碼程序:#include unsigned char MYDATA=0;/接受到得數(shù)據(jù)int j=0;long m=0;sbit P32=P32;/定義外部中斷0引腳bit endfla
11、g=0;/接收結(jié)束標(biāo)志bit startflag=0;/開始接收數(shù)據(jù)標(biāo)志int i=0;long irtime;/臨時儲存檢測到地電平的時間long time8;void GET_MYDATA(/把存在數(shù)組中存放的1和0,組成一字節(jié)MYDATA=MYDATA&0xfe;MYDATA=MYDATA|time7;MYDATA=MYDATA<<1;MYDATA=MYDATA&0xfe;MYDATA=MYDATA|time6;MYDATA=MYDATA<<1;MYDATA=MYDATA&0xfe;MYDATA=MYDATA|time5;MYDATA=MY
12、DATA<<1;MYDATA=MYDATA&0xfe;MYDATA=MYDATA|time4;MYDATA=MYDATA<<1;MYDATA=MYDATA&0xfe;MYDATA=MYDATA|time3;MYDATA=MYDATA<<1;MYDATA=MYDATA&0xfe;MYDATA=MYDATA|time2;MYDATA=MYDATA<<1;MYDATA=MYDATA&0xfe;MYDATA=MYDATA|time1;MYDATA=MYDATA<<1;MYDATA=MYDATA&0xfe
13、;MYDATA=MYDATA|time0;void main(/主函數(shù)SCON=0x50;/串行通信設(shè)置寄存器TH1=0xFD;/波特率9600TL1=0xFD;PCON=0x00;/波特率不加倍TR1=1;/啟動定時器1,波特率發(fā)生TMOD=0x21;/定時器工作方式設(shè)置TH0=0;/定時器0處置設(shè)置,用于計時TL0=0;EA=1;/允許總中斷EX0=1;/允許外部中斷0IT0=1;/外部中斷0出發(fā)方式為下降沿出發(fā)while(1TR0=0;/關(guān)閉定時器0TH0=0;/賦初值TL0=0;while(endflag=0/等待。直到接收結(jié)束GET_MYDATA(;/把數(shù)組中存放的數(shù)組成16進(jìn)制數(shù)s
14、witch (MYDATA/點(diǎn)亮LED(實驗用,可加可不加case 17:P1=0x80;break;case 18:P1=0x10;break;case 19:P1=0x02;break;default:P1=0;endflag=0;startflag=0;SBUF=MYDATA;/接收到的數(shù)據(jù)傳給通過串口通信傳給上位機(jī)PCwhile(TI=0TI=0;void zhongduan0( interrupt 0/外部中斷程序,用于接收數(shù)據(jù),下降沿觸發(fā) TR0=1;/進(jìn)入中斷先啟動定時器,開始計時while(P32=0/低電平時一直計時TR0=0;/高點(diǎn)平停止,即低電平結(jié)束,就停止計時irtime=TH0*256+TL0;/把計時的結(jié)果村到IRTIME中(低電平時間if(startflag=0if(irtime>8500&&(irtime<9500/如果存在低電平時間在8500到9500uS之間,說明接收到引導(dǎo)碼 startflag=1;/把開始標(biāo)志置1if(startflag=1/接收到有效引導(dǎo)碼會執(zhí)行此程序段if(irtime>800&&(irtime<120
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版礦產(chǎn)資源采礦權(quán)抵押合同范本與法律分析3篇
- 二零二五年度環(huán)保標(biāo)準(zhǔn)車間租賃服務(wù)協(xié)議4篇
- 基于多任務(wù)學(xué)習(xí)的輸電線路設(shè)備缺陷檢測研究
- 二零二五年度農(nóng)村集體土地使用權(quán)流轉(zhuǎn)合同范本(2024版)4篇
- 干燥方法對預(yù)糊化高直鏈玉米淀粉的影響及其在米線中的應(yīng)用研究
- 河南杞縣方言副詞研究
- 二零二五年度圖書租賃退書協(xié)議4篇
- 二零二四年度中小企業(yè)三方貸款及稅收優(yōu)惠協(xié)議3篇
- 土石施工方案
- 歷史風(fēng)貌視角下衢州木結(jié)構(gòu)傳統(tǒng)民居節(jié)能改造研究
- 課題申報書:GenAI賦能新質(zhì)人才培養(yǎng)的生成式學(xué)習(xí)設(shè)計研究
- 駱駝祥子-(一)-劇本
- 全國醫(yī)院數(shù)量統(tǒng)計
- 《中國香文化》課件
- 2024年醫(yī)美行業(yè)社媒平臺人群趨勢洞察報告-醫(yī)美行業(yè)觀察星秀傳媒
- 第六次全國幽門螺桿菌感染處理共識報告-
- 2024-2030年中國商務(wù)服務(wù)行業(yè)市場現(xiàn)狀調(diào)查及投資前景研判報告
- 高一英語必修一試卷(含答案)(適合測試)
- 中國的世界遺產(chǎn)智慧樹知到期末考試答案2024年
- 中國綠色食品市場調(diào)查與分析報告
- 手衛(wèi)生依從性調(diào)查表
評論
0/150
提交評論