📄 text.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 + -