#include "ir_send.h"
/*------------初始化IO------------*/
void ir_init(void)
{
P2M0 = 0x80; //P2.7强推挽
P2M1 = 0x00;
TMOD = 0x01; //T0 16位 定时
IR = 0;
}
/*-------发射数据 + 载波---------*/
void ir_t(bit BT , uint p)
{
TH0 = p>>8;
TL0 = p;
TF0=0;
TR0=1; //启动定时器0
if(BT == 0) //BT=0时,不发射38KHz载波只延时;BT=1发射38KHz脉冲且延时
{
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; //关闭定时器0
TF0=0;
IR =0;
}
/*-----------发送一帧数据-----------*/
void ir_send_byt(uchar temp)
{
uchar i;
for (i = 0; i < 8; i++ ) //循环8次移位
{
ir_t( 1 , m_56 ); //高电平0.65mS
if( temp & 0x01 )
ir_t( 0 , m1_6 ); //先发送最低位
else
ir_t( 0 , m_56 );
temp >>= 1;
}
}
/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
函数:NEC编码发送程序
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
void ir_send(uchar p)
{
ir_t( 1 , m9 ); //高电平9mS
ir_t( 0 , m4_5 ); //低电平4.5mS
/*┈ 发送4帧数据┈*/
ir_send_byt( user_h ); //用户码高8位
ir_send_byt( user_l ); //用户码低8位
ir_send_byt( p ); //操作码
ir_send_byt( ~p ); //操作码反码
/*┈┈ 结束码 ┈┈*/
ir_t( 1 , m_56 );
ir_t( 0 , m40 );
/*┈┈ 重复码 ┈┈*/
while(0)
{
ir_t( 1 , m9 );
ir_t( 0 , m2_25 );
ir_t( 1 , m_56 );
ir_t( 0 , m40 );
ir_t( 0 , m56 );
}
}
单片机之红外发射接受_51单片机(论文+开题报告+源代码+详解图).zip
版权申诉
80 浏览量
2024-04-19
00:33:08
上传
评论
收藏 70KB ZIP 举报
心梓知识
- 粉丝: 6519
- 资源: 3万+
最新资源
- 基于Java的网上订餐系统设计源码 - online ordering system
- 基于Javascript的超级美眉网络资源管理应用模块设计源码
- 基于Typescript和PHP的编程知识储备库设计源码 - study-php
- Screenshot_2024-05-28-11-40-58-177_com.tencent.mm.jpg
- 基于Dart的Flutter小提琴调音器APP设计源码 - violinhelper
- 基于JavaScript和CSS的随寻订购网页设计源码 - web-order
- 基于MATLAB的声纹识别系统设计源码 - VoiceprintRecognition
- 基于Java的微服务插件集合设计源码 - wsy-plugins
- 基于Vue和微信小程序的监理日志系统设计源码 - supervisionLog
- 基于Java和LCN分布式事务框架的设计源码 - tx-lcn
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈