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

📄 text.c

📁 模拟遥控器编码
💻 C
字号:
#include "ioCC2430.h"

// CC2430 中,I/O 口做普通I/O 使用时和每个I/O 端口相关的寄存器有3 个,
//分别是
//PxSEL
//功能选择寄存器,PxDIR 方向寄存器,PxINP 输入模式寄存器,其中x 为0,1,2 。
//这里选择P1.0 。

int i;
void Init( void )
{
   SLEEP &= ~0x04;
 CLKCON &= ~0x47; //选择1-32MHz 晶体振荡器
 SLEEP |= 0x04;
  P1SEL = 0x00; //P1.0 为普通I/O 口
  P1DIR = 0x01; //P1.0 输出
 // P1SEL &= ~(0x05);   //p1_4 设置为按键输入
  //P1DIR &= ~(0x05);
  //P1INP &= ~(0x05);
}

void Delay(long n)//延时子程序//2us
{
  while(n--)
  {
    asm("NOP");
     asm("NOP");
      asm("NOP");
  }
}


void main(void)
{
  Init( );
    while(1)
    {
     if(P1_4==0)
       //第一个按键被按下   00000000 0001
     {
       for(i=0;i<4;i++)//发送四遍
      {
            P1_0=1;
           Delay(120); //发送头码;500us高电平,15ms-500us低电平
           P1_0=0;
           Delay(3500);

          for(i=0;i<22;i++)//发送地址码;000000000;一个零要发两个500us高电平,两个1400us低电平, 发送数据码: 00;
          {
         P1_0=1;
         Delay(120);
          P1_0=0;
          Delay(330);
         }
      P1_0=1;//数据码
      Delay(330);//一个1要发两个1400us高电平,2个500us低电平。
     P1_0=0;
      Delay(120);
      P1_0=1;
      Delay(330);
       P1_0=0;
      Delay(120);
        }
    }
    if(P1_5==0)
       //第二个按键被按下 00000000 1000
     {
       for(i=0;i<4;i++)//发送四遍
      {
            P1_0=1;
           Delay(120); //发送头码;500us高电平,15ms-500us低电平
           P1_0=0;
           Delay(3500);

          for(i=0;i<16;i++)//发送地址码;000000000;一个零要发两个500us高电平,两个1400us低电平,
          {
         P1_0=1;
         Delay(120);
          P1_0=0;
          Delay(330);
         }
      P1_0=1;//数据码
      Delay(330);//一个1要发两个1400us高电平,2个500us低电平。
     P1_0=0;
      Delay(120);
      P1_0=1;
      Delay(330);
       P1_0=0;
      Delay(120);
        }
       for(i=0;i<6;i++)//发送数据码;000;一个零要发两个500us高电平,两个1400us低电平, 发送数据码: 00;
          {
         P1_0=1;
         Delay(120);
          P1_0=0;
          Delay(330);
         }
    }
   if(P1_6==0)
       //第三个按键被按下  00000000 0100
     {
       for(i=0;i<4;i++)//发送四遍
      {
            P1_0=1;
           Delay(120); //发送头码;500us高电平,15ms-500us低电平
           P1_0=0;
           Delay(3500);

          for(i=0;i<20;i++)//发送地址码;000000000;一个零要发两个500us高电平,两个1400us低电平,
          {
         P1_0=1;
         Delay(120);
          P1_0=0;
          Delay(330);
         }
      P1_0=1;//数据码
      Delay(330);//一个1要发两个1400us高电平,2个500us低电平。
     P1_0=0;
      Delay(120);
      P1_0=1;
      Delay(330);
       P1_0=0;
      Delay(120);
        }
       for(i=0;i<2;i++)//发送数据码;0;一个零要发两个500us高电平,两个1400us低电平, 发送数据码: 00;
          {
         P1_0=1;
         Delay(120);
          P1_0=0;
          Delay(330);
         }
    }
    }
}


⌨️ 快捷键说明

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