|
分享一個(gè)51單片機(jī)主控的紅外發(fā)射與紅外接受的程序
單片機(jī)源程序如下:
- #include "ir_send.h"
- /*------------初始化IO------------*/
- void ir_init(void)
- {
- P2M0 = 0x80; //P2.7強(qiáng)推挽
- P2M1 = 0x00;
- TMOD = 0x01; //T0 16位 定時(shí)
- IR = 0;
- }
- /*-------發(fā)射數(shù)據(jù) + 載波---------*/
- void ir_t(bit BT , uint p)
- {
- TH0 = p>>8;
- TL0 = p;
- TF0=0;
- TR0=1; //啟動(dòng)定時(shí)器0
- if(BT == 0) //BT=0時(shí),不發(fā)射38KHz載波只延時(shí);BT=1發(fā)射38KHz脈沖且延時(shí)
- {
- while(!TF0);
- }
- else while(1) //38KHz載波,(低電平)占空比5:26
- {
- IR = 1;
- if(TF0)break;if(TF0)break;
- if(TF0)break;if(TF0)break;
- if(TF0)break;if(TF0)break;
- if(TF0)break;
- IR = 0;
- if(TF0)break;if(TF0)break;
- if(TF0)break;if(TF0)break;
- if(TF0)break;if(TF0)break;
- if(TF0)break;if(TF0)break;
- if(TF0)break;if(TF0)break;
- if(TF0)break;if(TF0)break;
- if(TF0)break;if(TF0)break;
- if(TF0)break;if(TF0)break;
- if(TF0)break;if(TF0)break;
- if(TF0)break;if(TF0)break;
- if(TF0)break;if(TF0)break;
- if(TF0)break;if(TF0)break;
- if(TF0)break;if(TF0)break;
- if(TF0)break;if(TF0)break;
- if(TF0)break;if(TF0)break;
- }
- TR0=0; //關(guān)閉定時(shí)器0
- TF0=0;
- IR =0;
- }
- /*-----------發(fā)送一幀數(shù)據(jù)-----------*/
- void ir_send_byt(uchar temp)
- {
- uchar i;
- for (i = 0; i < 8; i++ ) //循環(huán)8次移位
- {
- ir_t( 1 , m_56 ); //高電平0.65mS
- if( temp & 0x01 )
- ir_t( 0 , m1_6 ); //先發(fā)送最低位
- else
- ir_t( 0 , m_56 );
- temp >>= 1;
- }
- }
- /*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
- 函數(shù):NEC編碼發(fā)送程序
- ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
- void ir_send(uchar p)
- {
- ir_t( 1 , m9 ); //高電平9mS
- ir_t( 0 , m4_5 ); //低電平4.5mS
- /*┈ 發(fā)送4幀數(shù)據(jù)┈*/
- ir_send_byt( user_h ); //用戶碼高8位
- ir_send_byt( user_l ); //用戶碼低8位
- ir_send_byt( p ); //操作碼
- ir_send_byt( ~p ); //操作碼反碼
- /*┈┈ 結(jié)束碼 ┈┈*/
- ir_t( 1 , m_56 );
- ir_t( 0 , m40 );
- /*┈┈ 重復(fù)碼 ┈┈*/
- while(0)
- {
- ir_t( 1 , m9 );
- ir_t( 0 , m2_25 );
- ir_t( 1 , m_56 );
- ir_t( 0 , m40 );
- ir_t( 0 , m56 );
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
0822、單片機(jī)之紅外發(fā)射接受.zip
(70.32 KB, 下載次數(shù): 33)
2018-10-24 18:50 上傳
點(diǎn)擊文件名下載附件
單片機(jī)紅外發(fā)射接受
|
|