前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CC2530基础实验之采集数字量传感器值

CC2530基础实验之采集数字量传感器值

作者头像
w候人兮猗
发布2020-07-01 17:33:25
3790
发布2020-07-01 17:33:25
举报
代码语言:javascript
复制
#include<iocc2530.h>

char buf[256];
int i=0;
int flag = 0;
int count = 0;

void delay(int time)
{
  for(int i=0;i<1000;i++)
    for(int j=0;j<time;j++);
}

unsigned int get_swsensor()
{
  P0DIR |= 0X02;
  return P0_1;
}

void initLED()
{
  P1DIR |= 0X1b;
  P1=0;
}
//初始化串口
void initUART0()
{

  PERCFG=0X00;  //外设控制寄存器 这里使用串口0位置1
  P0SEL=0X0C;   //0_2 0_3设置特殊端口
  U0CSR |=0X80;//0100 0000  0x80 串口通信的语言这里使用USART

  U0BAUD =216   ;
  U0GCR=10   ;  //波特率

  U0UCR |=0x80; //流控制禁止
  U0CSR |=0x40;  //允许接受数据
  UTX0IF = 0;       //接受标志位
  URX0IF = 0;       //发送标志位

  URX0IE=1;   //使能中断
  EA=1;      //中断总开关
}

//串口发送函数
void UART0SendString(char *str)
{
  while(1)
  {
    if(*str=='\0')
     break;
    U0DBUF=*str++;

    while(!UTX0IF);
    UTX0IF = 0;
  }
}

void led()
{
  P1=0x02;
  delay(200);
  P1=0x01;
  delay(200);
  P1=0x10;
  delay(200);
  P1=0x08;
  delay(200);
  P1=0;
  delay(200);
}

void initT1()
{
  CLKCONCMD &=~0x40;
  while(CLKCONSTA & 0x40);
  CLKCONCMD &= ~0x47;

  T1CTL |= 0X05;
  IEN1 |= 0X02;
  EA = 1;
}

#pragma vector = T1_VECTOR
__interrupt void T1_f()
{
  EA = 0;
  count++;
  if(count>=30)
  {
    flag = get_swsensor();
    count=0;

    //P1_0 = !P1_0;

    if(flag == 1)
    {
      UART0SendString("无人\r\n");
    }
    else
    {
      UART0SendString("有人\r\n");
      led();
    }

  }
  T1IF=0;
  EA = 1;
}

void main()
{
  initUART0();
  initT1();
  initLED();
  while(1);
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年3月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档