单片机
返回首页

CC2530串口命令控制LED灯开关

2022-10-11 来源:csdn

实验要求

代码实现

#include 'ioCC2530.h'

 

#define D4 P1_1

#define D6 P1_4

 

unsigned char temp=0;//接收命令变量

 

//系统时钟切换函数从16M——32M

void Set_Clock_32M()

{

  CLKCONCMD &=~0x40;

  while(CLKCONSTA &0X40)

  {

    

  }

  CLKCONCMD &=~0x47;

}

 

//端口初始化函数

void Init_Prot()

{

//配置4个LED灯的引擎

  //选择端口的功能

  P1SEL &=~0x1B;//设置通用io端口

  //配置端口的方向

  P1DIR |=0x1B;

  //关闭LED灯

  P1 &=~0x1B;

}

 

//串口初始化函数

void Init_Uart0()

{

  //1.设置串口的引脚功能,将P0_2和P0_3设置为外设功能

  PERCFG &=~0X01;

  P0SEL |=0x0C; //0000 1100

  //2.设置串口的波特率:32M——9600

  U0BAUD = 59;

  U0GCR = 8;

  //3.设置一个UART控制寄存器 U0UCR

  U0UCR |=0x80;

  //4.设置控制与状态寄存器 U0CSR

  U0CSR |=0xc0; //1100 0000

  

  //5.清除中断标志

    //发送

    UTX0IF = 0;

    //接收

    URX0IF = 0;

  //6.使能串口数据接收完成中断和总中断

  URX0IE = 1;

  EA = 1;

}

 

//串口字节发送函数

void URD_SendByte(unsigned char dat)

{

  U0DBUF =dat;

  while(UTX0IF==0);

  UTX0IF=0;

}

 

//串口字符串发送函数

void URD_SendString(unsigned char *str)

  while(*str !='')

  {

    URD_SendByte(*str++);

  }

}

 

 

//串口数据接受完成中断服务函数

#pragma vector = URX0_VECTOR //起始语句

//中断服务函数

__interrupt void Service_UR0Recv()

  temp=U0DBUF;

}  

   

 

//命令控制灯光开关函数

void Control_LED()

{

  switch(temp)

  {

  case 0xA1:

      D4=1;

      URD_SendString('D4 is openrn');

  break;

    

  case 0xA2:

      D4=0;

      URD_SendString('D4 is closedrn');

  break;

    

  case 0xB1:

      D6=1;

      URD_SendString('D6 is openrn');

  break;

    

  case 0xB2:

      D6=1;

      URD_SendString('D6 is closedrn');

  break;

  }

  

  

  temp=0;

}

 

 

void main(void)

{

  Set_Clock_32M();

  //端口初始化

  Init_Prot();

  Init_Uart0();

  while(1)

  {

    if(temp!=0)

    {

      Control_LED();

    }

  }

}

进入单片机查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

  • 直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  • 基于灵动MM32W0系列MCU的指夹血氧仪控制及OTA升级应用方案分享

精选电路图
  • 1瓦线性调频增强器

  • 12V 转 28V DC-DC 变换器(基于 LM2585)

  • 红外遥控音量控制

  • LM317过压保护

  • 12V转110V/220V 500W逆变器

  • DS1669数字电位器

    相关电子头条文章