Zigbee基础实验之T1 使用

/*******************************************************************************
*
*功能描述:在定时器1的定时模式下,以固定频率闪烁4个LED
*
*作者:Rfstorm studio QQ群:51109148
*
*时间:2010-12-6
*
********************************************************************************/
#include

#define uint unsigned int
#define uchar unsigned char

//定义控制灯的端口
#define D1 P1_0 //定义LED1为P10口控制
#define D2 P1_1 //定义LED2为P11口控制
#define D3 P1_4 //定义LED3为P14口控制
#define D4 P0_1 //定义LED4为P01口控制


uint Counter=0;    //统计溢出次数

void Initial(void);
void Delay(uint);

/****************************
//延时
*****************************/
void Delay(uint n)
{
 int x,y;
        for(x=n;x>0;x--)
          for(y=100;y>0;y--);
}
/****************************
//初始化程序
***************************/
void Initial(void)
{
 P1SEL &= ~0x13;//GPIO
        P1DIR |= 0X13;//OUTPUT
        P0SEL &= ~0x02;//GPIO
        P0DIR |= 0X02;//OUTPUT

 D1 = 0;
 D2 = 0; 
        D3 = 0;
        D4 = 0;  

 //用T1来做实验
 T1CTL = 0x3d; //通道0,中断有效,128分频,自动重装模式(0x0000->0xffff);
}

/***************************
//主函数
***************************/
void main()
{
 Initial();   //调用初始化函数
 while(1)     //查询溢出
 {
                if(IRCON > 0)
                {
                        IRCON = 0;                //清溢出标志
                        D1 = !D1;
                        D2 = !D2; 
                        D3 = !D3;
                        D4 = !D4;
                }
 }
}

 代码分析:

T1CTL(T1 控制&状态寄存器)

位号 位名 复位值 操作性 功能描述
7 CH2IF 0 读/写定时器 1 通道2 中断标志位
6 CH1IF 0 读/写定时器 1 通道1 中断标志位
5 CH0IF 0 读/写定时器 1 通道0 中断标志位
4 OVFIF 0 读/写定时器溢出中断标志,在在计数器达到计数终值的时候置位

3:2 DIV[1:0] 00 读/写定时器 1 计数时钟分步选择
00:不分频
01:8 分频
10:32 分频
11:128 分频
1:0 MODE[1:0] 00 读/写定时器 1 模式选择
00:暂停
01:自动重装0x0000-0xffff
10:比较计数0x0000-T1CC0
11 :PWM 方式

寄存器名称  SFR地址 模块       描述

IRCON        0xC0        CPU       中断标志4

你可能感兴趣的:(Zigbee)