⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 单片机c语言程序设计100例--基于PIC+PROTEUS
💻 C
字号:
//-----------------------------------------------------------------
//  名称: 红外遥控仿真发射器
//-----------------------------------------------------------------
//  说明: 本例运行时,按键键值以40KHz红外线载波发射出去,所模拟的载波
//        数据格式符合索尼红外遥控编码格式(SIRC).     
//  
//-----------------------------------------------------------------
#include <pic.h>
#define INT8U  unsigned char
#define INT16U unsigned int
#define _XTAL_FREQ 4000000UL

//红外发射管定义 
#define IRLED RB4
//蜂鸣器定义
#define BEEP  RB7
//按键输入端口定义
#define KEY_IN PORTC
//8组红外编码
INT16U IR_Codes[]={0x0509,0x0334,0x0556,0x0778,0x09AA,0x0FCC,0x0DEE,0x0AAC};
//-----------------------------------------------------------------
// 发送N倍的600us载波(1/40K/2=12us)
//-----------------------------------------------------------------
void Emit_IR_Carrier_Nx600us(INT8U N)
{
    INT8U i,j = N * 50;                 //不要将N*50替换循环中的j
    for (i = 0; i < j; i++)             //否则将导致很大的延时偏差
    {
       __delay_us(12); IRLED = ~IRLED;  //通过LED输出40KHz载波
    }
}

//-----------------------------------------------------------------
// 发送12位数据
//-----------------------------------------------------------------
void Emit_D12(INT16U D12)
{
    INT16U i;
    //首先发送引导部分2.4ms载波(4*600us=2.4ms)
   

    //输出600us的低电平间隔区
   

    //接着发送12位的命令与数据码(7+5)
    for (i = 0x0001; i < 0x1000; i <<= 1)
    {




    }
}

//-----------------------------------------------------------------
// 输出提示音
//-----------------------------------------------------------------
void Sounder()                
{
    for(INT8U i = 0; i < 200; i++) { BEEP = ~BEEP; __delay_us(500); }
}

//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
void main()
{
    INT8U i;
    ANSEL = 0x00;                              //关闭模拟通道0~7
    ANSELH = 0x00;                             //关闭模拟通道8~11
    TRISC  = 0xFF;                             //配置按键输入端口
    TRISB4 = 0;                                //红外发射输出
    TRISB7 = 0;                                //蜂鸣器输出
    while(1)                                  //按键K1~K8发射编码
    {    
        if (KEY_IN != 0xFF)                    //检测按键
        { 

        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -