×
单片机 > 单片机程序设计 > 详情

ARM7学习---LPC2103 Time0定时器练习

发布时间:2020-06-02 发布时间:
|
继续学习ARM7,练习了下LPC2103的内部定时器T0,定时1S,让LED闪烁。具体测试程序如下:

/**************ARM7(LPC2103)练习程序**************************/
/*************************************************************/
/*****File  Function :  Time0测试程序                    *****/
/*****Program Author :  ZhengWen(ClimberWin)             *****/
/*****MCU            : LPC2103F 外部11.0592M晶振        *****/
/*****Compile Date   :  2010/02/13                       *****/
/*****Edition Info   :  V1.0                             *****/
/*************************************************************/
//编译环境 KEIL for ARM 
//LED1-LED7 接在P0.8-P0.15
//功能:使用内部定时器0,让LED闪烁。

#include
#define uchar unsigned char
#define uint unsigned int

void  Timer0_Init(void);
void __irq IRQ_Timer0 (void);

/*************定时器0中断程序****************/
void __irq IRQ_Timer0 (void)
{
    static uchar ledtemp=0x00;
 ledtemp=~ledtemp;
 if(ledtemp==0x00)  IO0SET=(1<<8);
 if(ledtemp==0xff)  IO0CLR=(1<<8); 
 T0IR = 0x01;    // 清除中断标志        
 VICVectAddr = 0x00;   // 通知VIC中断处理结束       

/***********定时器0初始化程序**************/
void  Timer0_Init(void)
{  

 T0PR = 99;       // 设置定时器0分频为100分频,得110592Hz
 T0MCR = 0x03;      // 匹配通道0匹配中断并复位T0TC
 T0MR0 = 110592;   // 比较值(1S定时一次)
 T0TCR = 0x01;      //定时器计数器和预分频计数器使能
   
 VICIntSelect = 0x00;    // 所有中断通道设置为IRQ中断
 VICVectCntl0 = 0x20|4 ;   // 向量IRQ slot 使能 | 中断号  
 VICVectAddr0 = (unsigned long)IRQ_Timer0; // 设置中断服务程序地址
 VICIntEnable = (1 << 0x04);   // 使能定时器0中断 
}

int  main(void)
{
  
  IO0DIR=0x0000ff00;  //配置P0.8-P0.15为输出  
  IO0SET=0x0000ff00;     //配置P0.8-P0.15初始值为高
  Timer0_Init();         //初始化定时器0
  while(1);              //等待进入中断程序

}  

关键字:ARM7  LPC2103  Time0  定时器 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
AVR单片机语音识别电路模块设计