![單片機(jī)紅外發(fā)射原理與設(shè)計程序_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/25/1b68b0c7-fffe-43f5-8416-eb1ff3dd9fd2/1b68b0c7-fffe-43f5-8416-eb1ff3dd9fd21.gif)
![單片機(jī)紅外發(fā)射原理與設(shè)計程序_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/25/1b68b0c7-fffe-43f5-8416-eb1ff3dd9fd2/1b68b0c7-fffe-43f5-8416-eb1ff3dd9fd22.gif)
![單片機(jī)紅外發(fā)射原理與設(shè)計程序_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/25/1b68b0c7-fffe-43f5-8416-eb1ff3dd9fd2/1b68b0c7-fffe-43f5-8416-eb1ff3dd9fd23.gif)
![單片機(jī)紅外發(fā)射原理與設(shè)計程序_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/25/1b68b0c7-fffe-43f5-8416-eb1ff3dd9fd2/1b68b0c7-fffe-43f5-8416-eb1ff3dd9fd24.gif)
![單片機(jī)紅外發(fā)射原理與設(shè)計程序_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/25/1b68b0c7-fffe-43f5-8416-eb1ff3dd9fd2/1b68b0c7-fffe-43f5-8416-eb1ff3dd9fd25.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、用AT89S51單片機(jī)制作紅外電視遙控器一般紅外電視遙控器的輸出都是用編碼后串行數(shù)據(jù)對3840kHz的方波進(jìn)行脈沖幅度調(diào)制而產(chǎn)生的。當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征:采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進(jìn)制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進(jìn)制的“1”。上述“0”和“1”組成的32位二進(jìn)制碼經(jīng)38kHz的載頻進(jìn)行二次調(diào)制,然后再通過紅外發(fā)射二極管產(chǎn)生紅外線向空間發(fā)射。一般電視遙控器的遙控編碼是連續(xù)的32位二進(jìn)制碼組,其中前16位為用
2、戶識別碼,能區(qū)別不同的紅外遙控設(shè)備,防止不同機(jī)種遙控碼互相干擾。后16位為8位的操作碼和8位的操作反碼,用于核對數(shù)據(jù)是否接收準(zhǔn)確。根據(jù)紅外編碼的格式,發(fā)送數(shù)據(jù)前需要先發(fā)送9ms的起始碼和4.5ms的結(jié)果碼。遙控串行數(shù)據(jù)編碼波形如下圖所示:接收方一般使用TL0038一體化紅外線接收器進(jìn)行接收解碼,當(dāng)TL0038接收到38kHz紅外信號時,輸出端輸出低電平,否則為高電平。所以紅外遙控器發(fā)送紅外信號時,參考上面遙控串行數(shù)據(jù)編碼波形圖,在低電平處發(fā)送38kHz紅外信號,高電平處則不發(fā)送紅外信號。單片機(jī)紅外電視遙控器電路圖如下: C51程序代碼:#include <AT89X51.h&g
3、t; static bit OP; /紅外發(fā)射管的亮滅static unsigned int count; /延時計數(shù)器static unsigned int endcount; /終止延時計數(shù)static unsigned char flag; /紅外發(fā)送標(biāo)志char iraddr1; /十六位地址的第一個字節(jié)char iraddr2; /十六位地址的第二
4、個字節(jié)void SendIRdata(char p_irdata);void delay();void main(void) count = 0; flag = 0; OP = 0; P3_4 = 0; EA = 1; /允許CPU中斷 TMOD = 0x11; /設(shè)定時器0和1為16位模式1 ET0 = 1; /定時器0中斷允許 TH0 = 0xFF; TL0 = 0xE6; /設(shè)定時值0為38K 也就是每隔26us中斷一次 TR0 = 1
5、;/開始計數(shù) iraddr1=3; iraddr2=252; do delay(); SendIRdata(12); while(1); /定時器0中斷處理 void timeint(void) interrupt 1 TH0=0xFF; TL0=0xE6; /設(shè)定時值為38K 也就是每隔26us中斷一次 count+; if (flag=1)
6、0; OP=OP; else OP = 0; P3_4 = OP; void SendIRdata(char p_irdata) int i; char irdata=p_irdata; /發(fā)送9ms的起始碼 endcount=223; flag=1; count=0; dowhile(count<endcount); /發(fā)送4.5ms的結(jié)果碼 endcount=117
7、 flag=0; count=0; dowhile(count<endcount); /發(fā)送十六位地址的前八位 irdata=iraddr1; for(i=0;i<8;i+) /先發(fā)送0.56ms的38KHZ紅外波(即編碼中0.56ms的低電平) endcount=10; flag=1; count=0;
8、 dowhile(count<endcount);/停止發(fā)送紅外信號(即編碼中的高電平) if(irdata-(irdata/2)*2) /判斷二進(jìn)制數(shù)個位為1還是0 endcount=41; /1為寬的高電平 else endco
9、unt=15; /0為窄的高電平 flag=0; count=0; dowhile(count<endcount); irdata=irdata>>1; /發(fā)送十六位地址的后八位 irdata=iraddr2; for(i=0;i<8;i+) e
10、ndcount=10; flag=1; count=0; dowhile(count<endcount); if(irdata-(irdata/2)*2) endcount=41; else
11、 endcount=15; flag=0; count=0; dowhile(count<endcount); irdata=irdata>>1; /發(fā)送八位數(shù)據(jù) irdata=p_irdata; for(i
12、=0;i<8;i+) endcount=10; flag=1; count=0; dowhile(count<endcount); if(irdata-(irdata/2)*2) endc
13、ount=41; else endcount=15; flag=0; count=0; dowhile(count<endcount); ir
14、data=irdata>>1; /發(fā)送八位數(shù)據(jù)的反碼 irdata=p_irdata; for(i=0;i<8;i+) endcount=10; flag=1; count=0; dowhile(count<endcount); if(irdata-(irdata/2)*
15、2) endcount=41; else endcount=15; flag=0; count=0;
16、0; dowhile(count<endcount); irdata=irdata>>1; endcount=10; flag=1; count=0; dowhile(count<endcount); flag=0;void delay() int i,j; for(i=0;i<400;i+) for(j=0;j<100
17、;j+) 制作的實物如下圖所示:步進(jìn)電機(jī)#include<reg51.h>#define uint unsigned int#define uchar unsigned char#define ms *77/ f = 12 M#define LEDLen 4#define Dj_star() IE=0x81; pri_dj=0; #define Dj_stop() IE=0x00; pri_dj=1; P1=0xff; shache="0" delay(800ms); del
18、ay(800ms);delay(400ms); shache = 1; #define Chilun_Num 8/* 齒輪數(shù) 8 個*/#define set_display_num() LEDBuf0 = tmp / 1000; LEDBuf1 = tmp / 100 % 10; LEDBuf2 = tmp / 10 % 10; LEDBuf3 = tmp % 10; uchar LEDBufLEDLen = 0,0,0,0;void read_num (); /* 讀播碼盤 到 set_round_num * 8 */void display ();void delay(uint dela
19、y_time) uint i; for (i=0; i < delay_time ; i+) ; void run ();void fx_run();uint round_num = 0; /* 記錄已轉(zhuǎn)的 齒輪數(shù) , 中斷1次 加 1*/uint set_round_num = 0; /* 播碼盤設(shè)置 圈數(shù) */uint set_pwm_width = 0; /* 播碼盤設(shè)置 步進(jìn)電機(jī) 正向速度 */bit one_round_flg = 0;sbit led_1000 = P07; /use for displaysbit led_100 = P06; /use for displa
20、ysbit led_10 = P05; /use for displaysbit led_1 = P04; /use for displaysbit key_start = P30;sbit key_puse = P30;sbit key_clear = P31; /* P32 接齒輪傳感器 中斷 */sbit bujin_zx_stop = P33; /* 接步進(jìn)電機(jī) ,正向到位傳感器 ,為 0 停機(jī) */sbit bujin_fx_stop = P34; /* 接步進(jìn)電機(jī) ,反向到位傳感器 ,為 0 停機(jī) */sbit shache = P35; /* 接剎車控制繼電器 0 電位有效 */
21、sbit pri_dj = P36; /* 接主電機(jī)控制繼電器 0 電位有效 */void main() TCON = 0x01; display(); while(1) IE="0x00" round_num = 0; display(); if ( bujin_fx_stop ) fx_run(); while ( key_start ); delay ( 8ms ); if(!key_start) read_num(); /set_round_num = 8; while ( !key_start ); run (); fx_run(); void run () #d
22、efine Delay_time 180 /* 轉(zhuǎn)一圈 50 次循環(huán),每循環(huán) 4 步 ,50 * 4 = 200 , 200 * 1。8 = 360 */ uchar i ; P1 = 0xff; set_pwm_width = 15 + set_pwm_width / 10; while ( 1 ) while( !shache | !key_start ); Dj_star(); for ( i="0" ; bujin_zx_stop & !pri_dj;i+ ) P1 = 0xf9; delay ( Delay_time ); / bujin_zx_stop
23、= P33; P1 = 0xfc; / bujin_fx_stop = P34; delay ( Delay_time); / key_puse = P30; P1 = 0xf6; / key_clear = P31; delay ( Delay_time ); / shache = P35; P1 = 0xf3; / pri_dj = P36; delay ( Delay_time ); if( i = set_pwm_width ) P1 = 0xff; i = 0; one_round_flg = 0; while ( !one_round_flg & key_puse ); i
24、f(!key_puse) delay(4ms); if(!key_puse) break; P1 = 0xff; if ( pri_dj ) break; if ( !key_puse ) delay ( 8ms ); if ( !key_puse ) Dj_stop(); while ( !key_puse ); / next pree key while( !shache ); while(1) while ( key_puse & key_clear ); delay ( 8ms ); if ( !key_clear ) round_num = 0; display(); if
25、( !key_puse ) break; while( !key_puse ); delay(8ms); while( !key_puse ); void ext_int0(void) interrupt 0 /* 主電機(jī) 齒輪 中斷 */ uint tmp; EA = 0; if( !pri_dj ) round_num +; if (round_num % Chilun_Num = 0 ) one_round_flg = 1; tmp = round_num / Chilun_Num ; set_display_num(); P0 = 0xf0; P0 = P0 | LEDBuf0 ; l
26、ed_1000 = 0; P0 |= 0xf0; P0 = 0xf0; P0 = P0 | LEDBuf1 ; led_100 = 0; P0 |= 0xf0; P0 = 0xf0; P0 = P0 | LEDBuf2 ; led_10 = 0; P0 |= 0xf0; P0 = 0xf0; P0 = P0 | LEDBuf3 ; led_1 = 0; P0 |= 0xf0; P0 = 0xf0; if ( round_num >= set_round_num ) Dj_stop(); EA = 0x81;void display() uchar i; uint tmp = 0; tmp = round_num / Chilun_Num ; set_display_num(); for(i = 0; i < LEDLen ; i +) P0 = 0xf0; P0 = P0 | LEDBufi ; if(i=0) led_1000 = 0; /P04 if(i=1) led_100 = 0; /P05 if(i=2) led_10 = 0; /P06 if(i=3) led_1 = 0; /P07 P0 |= 0xf0; P0 = 0xf0;void read_nu
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生態(tài)補償款禁養(yǎng)協(xié)議書(2篇)
- 環(huán)境監(jiān)測設(shè)備研發(fā)合同(2篇)
- 七年級數(shù)學(xué)下冊14.1用有序數(shù)對表示位置聽評課記錄
- 粵人版地理七年級下冊《第一節(jié) 美洲概述》聽課評課記錄5
- 湘教版數(shù)學(xué)九年級下冊1.2《二次函數(shù)的圖象與性質(zhì)》聽評課記錄1
- 華師大版歷史九年級上冊第1課《古代埃及》聽課評課記錄1
- 北師大版道德與法治九年級上冊9.1《培育社會主義核心價值觀》聽課評課記錄
- 部編人教版歷史九年級上冊第11課《古代日本》聽課評課記錄
- 八年級道德與法治下冊第一單元堅持憲法至上第二課保障憲法實施第2框加強(qiáng)憲法監(jiān)督聽課評課記錄(新人教版)
- 五年級上冊數(shù)學(xué)聽評課記錄《5.3 分餅》(1)-北師大版
- 廣西貴港市2023年中考物理試題(原卷版)
- 仁愛英語八年級閱讀理解測試題和答案
- 山東省中考物理總復(fù)習(xí) 八上 第4講 光現(xiàn)象
- DB11∕T 1875-2021 市政工程施工安全操作規(guī)程
- 心肺康復(fù)完整版本課件
- 傳統(tǒng)節(jié)日春節(jié)英文介紹課件
- 質(zhì)量獎現(xiàn)場評審問題集錦精編版
- 裝配式結(jié)構(gòu)技術(shù)課程教學(xué)大綱
- 水資源論證報告
- 實現(xiàn)結(jié)構(gòu)化:初中語文大單元教學(xué)設(shè)計的核心
- FZ∕T 54088-2016 錦綸6全牽伸單絲
評論
0/150
提交評論