基于单片机的红外发送程序(Infineon--XC866)

发布者:boczsy2018最新更新时间:2015-07-27 来源: 51hei关键字:单片机  红外发送程序  XC866 手机看文章 扫描二维码
随时随地手机看文章
本程序适用于Infineon--XC866的单片机,载波为38KHZ,通过P3_0作为发送端口,其中:0由0.56m的高电平和0.56ms的低电平组成,1由0.56的高电平和1.68ms的电平组成。稍加修改可应用于C51。

发送程序如下:
 

//****************************************************************************
// @Module        Project Settings
// @Filename      MAIN.C
// @Project       20W.dav
//----------------------------------------------------------------------------
// @Controller    Infineon XC866-2FR
//
// @Compiler      Keil
//
// @Codegenerator 2.0
//
// @Description   This file contains the Project initialization function.
//
//----------------------------------------------------------------------------
// @Date          2010-11-4 15:54:56
//
//****************************************************************************

// USER CODE BEGIN (MAIN_General,1)

// USER CODE END

//****************************************************************************
// @Project Includes
// 完整代码下载地址:点这里
// 与本程序对应的红外接收程序代码:http://www.51hei.com/mcu/1096.html
//****************************************************************************

#include "MAIN.H"

// USER CODE BEGIN (MAIN_General,2)
#include
#define uint  unsigned int   //宏定义
#define uchar unsigned char

#define  HWTx  P3_0     //位声明:红外发射管脚 
bit  HWTx_Out;      //红外发射管脚的状态
bit  Key_Flag,Flag;     //分别是:按键按下的标志位,定时器开始的标志位
uint Count,Set_Count;    //控制定时时间的变量
uchar Table_Tx[4]={0x40,0,0,0};//待发送的缓冲区
uchar HWTx_Code,HWTx_data;
// USER CODE END


//****************************************************************************
// @Macros
//****************************************************************************

// USER CODE BEGIN (MAIN_General,3)

// USER CODE END


//****************************************************************************
// @Defines
//****************************************************************************

// USER CODE BEGIN (MAIN_General,4)

// USER CODE END


//****************************************************************************
// @Typedefs
//****************************************************************************

// USER CODE BEGIN (MAIN_General,5)

// USER CODE END


//****************************************************************************
// @Imported Global Variables
//****************************************************************************

// USER CODE BEGIN (MAIN_General,6)

// USER CODE END


//****************************************************************************
// @Global Variables
//****************************************************************************

// USER CODE BEGIN (MAIN_General,7)

// USER CODE END


//****************************************************************************
// @External Prototypes
//****************************************************************************


// USER CODE BEGIN (MAIN_General,8)

// USER CODE END


//****************************************************************************
// @Prototypes Of Local Functions
//****************************************************************************

// USER CODE BEGIN (MAIN_General,9)

// USER CODE END


//****************************************************************************
// @Function      void MAIN_vInit(void) 
//
//----------------------------------------------------------------------------
// @Description   This function initializes the microcontroller. It is 
//                assumed that the SFRs are in their reset state.
//
//----------------------------------------------------------------------------
// @Returnvalue   None
//
//----------------------------------------------------------------------------
// @Parameters    None
//
//----------------------------------------------------------------------------
// @Date          2010-11-4
//
//****************************************************************************

// USER CODE BEGIN (MAIN_Init,1)

// USER CODE END

void MAIN_vInit(void)
{
  // USER CODE BEGIN (MAIN_Init,2)

  // USER CODE END

  ///  -----------------------------------------------------------------------
  ///  Configuration of the System Clock:
  ///  -----------------------------------------------------------------------
  ///  - On Chip Osc is Selected
  ///  - PLL Mode, NDIV = 2
  ///  - input frequency is 10 MHz

 

  ///  *********************************************************************************
  ///  Note : All peripheral related IO configurations are done in the 
  ///  respective peripheral modules (alternate functions selection)
  ///  *********************************************************************************


  ///  Initialization of module 'GPIO'
  IO_vInit();

  //   Interrupt Priority

  IP            =  0x00;         // load Interrupt Priority Register
  IPH           =  0x00;         // load Interrupt Priority High Register
  IP1           =  0x00;         // load Interrupt Priority 1 Register
  IPH1          =  0x00;         // load Interrupt Priority 1 High Register


  // USER CODE BEGIN (MAIN_Init,3)

  // USER CODE END

  //   globally enable interrupts
  EA            =  1;           

} //  End of function MAIN_vInit
[page]

//****************************************************************************
// @Function      void main(void) 
//
//----------------------------------------------------------------------------
// @Description   This is the main function.
//
//----------------------------------------------------------------------------
// @Returnvalue   None
//
//----------------------------------------------------------------------------
// @Parameters    None
//
//----------------------------------------------------------------------------
// @Date          2010-11-4
//
//****************************************************************************

// USER CODE BEGIN (MAIN_Main,1)
void delay(uint z) //延时时间约为 1ms*X  晶振为12M
{
   uint x=0,y=0;
        for(x=z;x>0;x--)
             for(y=54;y>0;y--);
}

void Key_Scan()
{
         uchar Key_Temp=0,i=0;
         if(P3_1!=1)
   {
      delay(10);
      if(P3_1!=1)
      { 
         while(!P3_1);
              Key_Flag=1; 
                        for(i=1;i<4;i++)
                        Table_Tx[i]=i+0xaa;
                 }
        } 
}

void Send_Code8()
{
         uchar i=0;   //循环变量
         for(i=0;i<8;i++) //8位数据,顾循环8次
        {
                 Set_Count=0x002b;//准备发送长达0.56ms(13*43=560us)的方波
                 Flag=1;    //置标志位(通过该标志位控制高低电平的转换),

                                   因为高电平器件,38K的波形不会改变
      Count=0;  //清零,准备计数
      TR0=1;   //启动定时器
      while(Count>1;//右移一位,准备发送  
   }
}


void Send_Code()
{
   uchar i=0;

        Set_Count=690;//准备产生9ms(13*690=9000)的高电平 
        Flag=1;    //置标志位,取反(该标志位控制高低电平的转换)
        Count=0;   //定时器计数
        TR0=1;    //启动定时器
        while(Count
 
关键字:单片机  红外发送程序  XC866 引用地址:基于单片机的红外发送程序(Infineon--XC866)

上一篇:单片机小车项目小记
下一篇:低噪声便携式的心电监测仪设计和实现

推荐阅读最新更新时间:2024-03-16 14:26

PIC单片机内部寄存器信息汇总
配置字(__CONFIG): 1) 芯片的振荡模式选择。 2) 片内看门狗的启动。 3) 上电复位延时定时器PWRT的启用。 4) 低电压检测复位BOR模块的启用。 5) 代码保护。 __CONFIG_CP_OFF &_WDT_OFF &_BODEN_OFF &_PWRTE_ON &_XT_OSC &_WRT_OFF &_LVP_OFF &_CPD_OFF ; _CP_OFF 代码保护关闭 _WDT_OFF 看门狗关闭 _BODEN_OFF _PWRTE_ON 上电延时定时器打开 _XT_OSC XT振荡模式 _WRT_OFF
[单片机]
PIC<font color='red'>单片机</font>内部寄存器信息汇总
基于MSP430系列超低功耗单片机的多参数环境监测仪
本文以智能建筑为应用背景,介绍一种通用性很强的便携式多参数环境监测仪。它以MSP430F437超低功耗单片机为核心,配置新式的微型低功耗传感器,实现了建筑物内温度、湿度、光照度、有害气体浓度等参数的采集处理、存储、通信等功能。文中详细阐明了传感器的选取、硬件结构、软件流程等相关技术,并指出该仪器的特点和优势。 1 传感器的选取 传感器是决定监测仪精度的关键元件。传感器的选择主要依据工作环境、测量精度、线性度、互换性、灵敏度、响应速度、稳定性、功耗、体积大小以及易于与MCU接口等。本监测仪选用的各类传感器分别为:集成温度传感器T MP3 5、集成湿度传感器HM1500、热线型半导体气敏传感器MR511以及集成光照度传
[单片机]
基于MSP430系列超低功耗<font color='red'>单片机</font>的多参数环境监测仪
用68HC908GP32单片机实现EPP增强并口的接口技术
摘要:本文介绍了计算机并口的几种操作模式,给出了实现EPP接口设计的几种方案;着重介绍用Motorola公司的68HC908GP32单片机实现EPP接口设计,并给出了一个GP32单片机实现的数据采集系统的设计方案。 关键词:EPP 增强并口 单片机 68HC908GP32 一、计算机并口操作模式概述 1.SPP模式 SPP(Standard Parallel Port)模式即标准并口模式,是为打印输出而设计的。数据由计算机单向输出,不能用数据线进行数据输入,要做数据输入只能利用状态线。并口状态线只有5根,所以每个字节要分两次输入,再拼装为一个完整的字节。SPP模式速度较低,对硬件的要求不高,适用于低速的应用场合,如打印机、
[单片机]
单片机寄存器配置问题
在写单片机是对寄存器的设置要注意,有很多外设可能用这一个寄存器,在外设初始化的时候或对寄存器修改是可能会影响到其他外设的正常工作,今天就遇到这样一个蛋疼的问题, 这是我初始化程序中的一段代码节选: void init_timer0(void) { ... TIMSK=0X01;//使能溢出中断,大概16ms一次 } void init_timer2(void) { ... TIMSK=0x40;//关闭比较中断打开溢出中断 } void adc_init(void) { ... } 注意到定时机器0和1的中断设置位在同一个寄存器TIMSK中的不同位中,上面的代码如果在初始化完定时器0后在器
[单片机]
液晶显示模块TC1602A与单片机的接口技术
  随着科技的发展,液晶显示模块的应用前景更加广阔,目前已广泛应用于电子表、计算器、液晶电视机、便携式电脑、掌上型电子玩具、复印机、传真机等许多方面。   液晶显示(LCD)大体分为笔段型、字符型、点阵图形型等几大类,字符型液晶显示模块是一类专门用于显示字母、数字、符号等的点阵型液晶显示模块,它是由若干个5×7或5×11等点阵字符组成。每一个点阵字符位都可以显示一个字符,点阵字符位之间的一个点距的间隔起字符间距和行距的作用。目前市面上常用的有16字×1行、16字×2行、20字×2行和40字×2行等字符模型,这些LCD虽然显示的字数各不相同,但是都具有相同的输入输出界面。本文介绍的TC1602A是一种16字×2行的字符型液晶显示模块
[单片机]
液晶显示模块TC1602A与<font color='red'>单片机</font>的接口技术
基于单片机PIC18F4550的USB接口设计
引言   USB是一种快速的、双向同步传输的、廉价并可以进行热插拔的串行接口。利用USB总线技术,开发适用于科学研究和工业牛产的各种仪器仪表设备,借以取代传统计算机测控系统中采用串行RS232或并行接口的仪器仪表设备,使计算机测控系统更加高效实时,方便灵活。   利用USB总线的数据采集方案有两种,一种是采用普通单片机加上专用的USB通信芯片。该方案可充分利用开发人员原有的硬件资源和软件知识,开发成本较低,但系统的设计和调试较为麻烦,且电磁兼容性差,容易造成主机不能识别USB设备。另一种是利用具有USB接口功能的单片机。使用这些专用芯片构成的数据采集系统电路设计简单,调试方便,电磁兼容性好。然而,目前大部分具有USB功能的单片
[模拟电子]
基于<font color='red'>单片机</font>PIC18F4550的USB接口设计
基于51单片机的非接触式红外体温计的设计
一.硬件方案 本系统利用51单片机控制红外温度传感器进行温度的非接触式检测并显示,能够实现快速测量人体体温。 主要由51单片机+最小系统+LCD1602液晶显示+蜂鸣器报警+按键+GY906非接触式温度传感器;如图: 二.设计功能 (1)液晶显示当前检测的温度和温度报警范围精度为0.02摄氏度。 (2)按键可以设置温度报警上限和下限。 (3)当温度低于或高于我们设置的值蜂鸣器进行报警提醒。 (4)测温范围为-70度—380度,范围广。 三.设计原理图 (1)原理图主要采用AD软件进行设计,如图: (2)PCB图如下: 四.软件设计 主程序源码 //*************主函数**************
[单片机]
基于51<font color='red'>单片机</font>的非接触式<font color='red'>红外</font>体温计的设计
基于嵌入式PC104工控机和C8051F047单片机实现机器人系统的设计
1.引言 高压输电线及杆塔附件长期暴露在野外,因受到持续的机械张力、电气闪络、材料老化的影响而产生断股、磨损、腐蚀等损伤,如不及时修复更换,原本微小的破损和缺陷就可能扩大,最终导致严重事故。因此,电力公司需要定期对线路设备进行巡检,及时发现早期损伤和缺陷并加以评估,根据评估结果安排必要的维护和修复,从而确保供电的安全可靠性。传统的人工巡检方法不仅工作量大而且条件艰苦,特别是对于山区和大江大河等的输电线路巡检存在很大困难,甚至一些巡检项目靠常规方法都难以完成。因此,采用机器人自动巡线成为保障高压输电线安全运行的一种必要手段。 高压输电线路巡线机器人属于特种机器人的研究范畴,主要完成高压供电线缆的无损探伤、悬垂绝缘子绝缘特性检测、
[单片机]
基于嵌入式PC104工控机和C8051F047<font color='red'>单片机</font>实现机器人系统的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved