单片机交流
直播中

而无返还

8年用户 1224经验值
擅长:光电显示
私信 关注
[问答]

怎样通过定时器T1查询方式去控制LED1周期性闪烁?

怎样通过定时器T1查询方式去控制LED1周期性闪烁?其程序代码该如何去编写?

回帖(1)

张林

2021-7-16 14:11:10
  /************************/
  /* CC2530例程 /
  /例程名称:定时器(查询方式) /
  /描述:通过定时器T1查询方式控制LED1周期性闪烁
  /
  #include 《ioCC2530.h》
  #define uint unsigned int
  #define uchar unsigned char
  #define LED1 P1_0 //定义LED1为P1_0口控制
  //函数声明
  void InitLed(void); //初始化P1口
  void InitT1(); //初始化定时器T1
  //初始化程序
  //
  void InitLed(void)
  {
  P1DIR |= 0x01; //P1_0定义为输出
  LED1 = 0; //LED1灯初始化熄灭
  }
  //定时器初始化
  void InitT1() //系统不配置工作时钟时默认使用内部RC振荡,即16MHz
  {
  T1CTL = 0x0d; //128分频,自动重装 0X0000-0XFFFF
  }
  /
  函数名称:main
  功 能:main函数入口
  入口参数:无
  出口参数:无
  返 回 值:无
  ***************************/
  void main(void)
  {
  uchar count;
  InitLed(); //调用初始化函数
  InitT1();
  while(1)
  {
  if((T1STAT&0x20)==0x20)
  {
  T1STAT&=~0x20; //清除溢出标志
  ++count;
  }
  if(count == 3) //如果溢出次数到达3说明经过了1.5秒
  {
  LED1 = 1; //点亮LED1
  }
  if(count == 4) //如果溢出次数到达4说明经过了2秒
  {
  LED1 = 0; //熄灭LED1
  count=0;
  }
  }
  }
举报

更多回帖

发帖
×
20
完善资料,
赚取积分