• 大小: 21KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-04
  • 语言: 其他
  • 标签: 串口  LED  

资源简介

单片机串口发送指令控制LED

资源截图

代码片段和文件信息

#include “ioCC2530.h“
#include  

#define D1 P1_4
#define D2 P1_5
#define D3 P1_6
#define D4 P1_7

typedef  unsigned char uchar;
typedef unsigned int uint;

uchar str1[20]=“What is your name?“;
uchar str2[7]=“Hello “;
uchar Recdata[20];//存放串口接收数据的数组
uchar RXTXflag=1;//发送接收标志
uchar temp;//临时全局变量存放串口接收到的字符
uint datanumber = 0;//串口接收字符个数
//uint stringlen;


void Delay(int n)
{
  int ij;
  for(i=0;i    for(j=0;j<10;j++);
}

void initUART(void)
{
  CLKCONCMD &= ~0x40;
  while(CLKCONSTA & 0x40);//循环等待
  CLKCONCMD &= ~0x47;
  
  PERCFG = 0x00;
  P0SEL = 0x3C;
  P2DIR &= ~0xC0;
  U0CSR |= 0x80;
  U0GCR |= 11;
  U0BAUD |= 216;
  UTX0IF =1;
  U0CSR |= 0x40;//允许串口接收
  IEN0 |= 0x84;//使能串口接收中断、总中断
}

void UartTX_Send_String(uchar *Dataint len)
{
  int j;
  for(j=0;j  {
    U0DBUF = *Data++;
    while(UTX0IF==0);
    UTX0IF = 0;
  }
}

void main(void)
{
  P1DIR |= 0xF0;
  initUART();
  UartTX_Send_String(str120);
  while(1)
  {
   if (RXTXflag==1)//串口接收
   {
     if (temp!=0)
     {
       if ((temp!=‘#‘)&&(datanumber<20))
       {
         Recdata[datanumber++]=temp;
       }
       else//单片机串口接收完所有字符
       {
         RXTXflag=3;
         //识别控制命令
         switch(Recdata[0])
         {
           case ‘1‘: 
             if (Recdata[1]==‘1‘)
               D1=0;
             else
               D1=1;
             break;
           case ‘2‘:
             if (Recdata[1]==‘1‘)
               D2=0;
             else
               D2=1;
             break;
           case ‘3‘: 
             if (Recdata[1]==‘1‘)
               D3=0;
             else
               D3=1;
             break;
           case ‘4‘:
             if (Recdata[1]==‘1‘)
               D4=0;
             else
               D4=1;
             break;
           case ‘9‘:
             if (Recdata[1]==‘1‘)
             {
               D1=D2=D3=D4=0;
             }
             else
             {
               D1=D2=D3=D4=1;
             }
           break;
         }
       }
       temp=0;
     }
   }
   if (RXTXflag==3)//串口发送
    {
      U0CSR &= ~0x40;
      UartTX_Send_String(str26);
      UartTX_Send_String(Recdatadatanumber);
      U0CSR |= 0x40;
      RXTXflag=1;//继续进行串口接收操作
      datanumber=0;//串口接收数据的指针清零
    }
  
  }
}
//串口接收中断服务程序
#pragma vector=URX0_VECTOR
__interrupt void UART0_ISR(void)
{
  URX0IF =0;
  temp=U0DBUF;
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      14042  2014-11-12 09:16  UARTLED\Debug\Exe\led.hex

     文件        140  2014-11-12 09:16  UARTLED\Debug\Obj\led.pbd

     文件        472  2014-11-12 09:28  UARTLED\Debug\Obj\led.pbi

     文件      16741  2014-11-12 09:16  UARTLED\Debug\Obj\led.r51

     文件       2618  2014-11-12 09:28  UARTLED\led.c

     文件       2061  2014-11-12 09:28  UARTLED\led.dep

     文件      34306  2014-09-28 14:27  UARTLED\led.ewd

     文件      56223  2014-09-28 14:27  UARTLED\led.ewp

     文件        157  2014-09-28 14:22  UARTLED\led.eww

     文件       1436  2014-11-12 09:20  UARTLED\settings\led.cspy.bat

     文件       5068  2014-11-11 14:55  UARTLED\settings\led.dbgdt

     文件        871  2014-11-12 09:20  UARTLED\settings\led.dni

     文件       2851  2014-11-12 09:16  UARTLED\settings\led.wsdt

     目录          0  2014-09-28 14:49  UARTLED\Debug\Exe

     目录          0  2014-09-28 14:22  UARTLED\Debug\List

     目录          0  2014-11-12 09:28  UARTLED\Debug\Obj

     目录          0  2014-09-28 14:49  UARTLED\Debug

     目录          0  2014-09-28 14:49  UARTLED\settings

     目录          0  2014-11-12 09:28  UARTLED

----------- ---------  ---------- -----  ----

               136986                    19


评论

共有 条评论