第 - 4 - 页
定时器实验 1
/****************************************************************************
* 文 件 名: main.c
* 功 能:使用定时器 0 实现 1 秒定时 ,控制蜂鸣器蜂鸣。 (查询方式 )
* 说 明: JP22 跳线短接, JP20 跳线断开。
****************************************************************************/
#include "config.h"
#define BEEPCON 1<<7 // P0.7 引脚控制 B1,低电平蜂鸣
/****************************************************************************
* 名 称: Time0Init()
* 功 能:初始化定时器 0,定时时间为 1S。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void Time0Init(void)
{ /* Fcclk = Fosc*4 = 11.0592MHz*4 = 44.2368MHz
Fpclk = Fcclk/4 = 44.2368MHz/4 = 11.0592MHz
*/
T0PR = 99; // 设置定时器 0 分频为 100 分频,
得 110592Hz
T0MCR = 0x03; // 匹配通道 0 匹配中断并复位 T0TC
T0MR0 = 442368; // 比较值 (1S 定时值 )
T0TCR = 0x03; // 启动并复位 T0TC
T0TCR = 0x01;
}
/****************************************************************************
* 名 称: main()
* 功 能:初始化 I/O 及定时器,然后不断的查询定时器中断标志。当定时时间到达时,
取反 BEEPCON
* 控制口。
****************************************************************************/
int main(void)
{
PINSEL0 = 0x00000000; // 设置管脚连接 GPIO
IO0DIR = BEEPCON; // 设置 I/O 为输出
Time0Init(); // 初始化定时器 0
while(1)
{
while( (T0IR&0x01) == 0 ); // 等待定时时间到
评论0
最新资源