寄存器
(一)T1CTL:定时器1的控制寄存器。D1、D0控制运行模式;D3、D2设置分频值。
![](https://i-blog.csdnimg.cn/blog_migrate/48a2819263a4f723f7a0f04c4b7eeb69.png)
(二)T1STAT:定时器1的状态寄存器,D4-D0位通道4到通道0的中断标志,D5为溢出标志,当到达最终值自动置1;
![](https://i-blog.csdnimg.cn/blog_migrate/36d6d3afdf0c8e31a8f88506d73d3a69.png)
(四)IEN1:中断允许寄存器1
![](https://i-blog.csdnimg.cn/blog_migrate/a8c9380f53913042ff4058a260590029.png)
1START(0XAF) - 定时器1状态
![](https://i-blog.csdnimg.cn/blog_migrate/3a5a037d08e9ba3934375f411467f4c9.jpeg)
代码
#include "ioCC2530.h"
#define D3 P1_0
/*===============定时器1初始化函数==================*/
void Init_Timer1()
{
T1CTL = 0x0e; //分频系数是128,模模式
T1CC0L = 50000%256; //设置最大计数值的低8位
T1CC0H = 50000/256; //设置最大计数值的高8位
T1CCTL0 |= 0x04; //开启通道0的输出比较模式
T1IE = 1; //使能定时器1中断
EA = 1; //使能总中断
}
/*================定时器1服务函数====================*/
#pragma vector = T1_VECTOR
__interrupt void T1_INT()
{
T1STAT &= ~0x01; //清除定时器1通道0中断标志
D3 = ~ D3;
}
/*=================端口初始化函数====================*/
void Init_Port()
{
P1DIR |= 0x01; //将P1_0的端口设置为输出
D3 = 0;
}
/*===================主函数=========================*/
void main()
{
Init_Port();
Init_Timer1();
while(1);
}