⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 beep.c

📁 Lpc2103的小程序
💻 C
字号:

/****************************************Copyright (c)**************************************************
**
**                                   北天星国际有限公司
**                                 http://www.po-star.com
**
*****************************************************************************************************
**文件名称:BEEP.C
**功能:用定时器延时控制蜂鸣器发出声音。
**说明:JP8连接上。
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

#include	"..\inc\config.h"

/****************************************************************************
* File:Timer_Init
* 功能:定时器0初始化
* 说明:
*************************************************************************** */
void Timer_Init( void  )		//定时器0初始化
{
  T0IR = 0x01;        //清除定时器0的中断标志位
  T0TC = 0x00;        //定时器0的处始值,为0
  T0PR = 9;           //预分频值
  T0MCR = 0x03;       //设置匹配控制寄存器,匹配通道0匹配中断,并且复位T0TC
  T0MR0 = 500;        //匹配值
  T0TCR = 0x01;       //开启定时器0
}

/*************************PLL设置************************************************/
void PLL_Init(void)
{
  /* 设置系统各部分时钟 */
	   PLLCON = 1;
	#if ((Fcclk / 4) / Fpclk) == 1
		VPBDIV = 0;
	#endif
	#if ((Fcclk / 4) / Fpclk) == 2
		VPBDIV = 2;
	#endif
	#if ((Fcclk / 4) / Fpclk) == 4
		VPBDIV = 1;
	#endif
	#if (Fcco / Fcclk) == 2
		PLLCFG = ((Fcclk / Fosc) - 1) | (0 << 5);
	#endif
	#if (Fcco / Fcclk) == 4
		PLLCFG = ((Fcclk / Fosc) - 1) | (1 << 5);
	#endif
	#if (Fcco / Fcclk) == 8
		PLLCFG = ((Fcclk / Fosc) - 1) | (2 << 5);
	#endif
	#if (Fcco / Fcclk) == 16
		PLLCFG = ((Fcclk / Fosc) - 1) | (3 << 5);
	#endif
		PLLFEED = 0xaa;
		PLLFEED = 0x55;
		while((PLLSTAT & (1 << 10)) == 0);
		PLLCON = 3;
		PLLFEED = 0xaa;
		PLLFEED = 0x55;	
}
/****************************************************************************
* File:main
* 功能:利用定时器0驱动蜂鸣器BEEP
* 说明:
****************************************************************************/
void main ( void )
{
  PINSEL0 = 0x00;
  PINSEL1 = 0x00;

  IO0DIR = BEEP;
  PLL_Init();
  Timer_Init();

  for(;;)
  {
    while((T0IR&0x01)==0);
    T0IR = 0x01;
    if((IO0SET&BEEP)==0) IO0SET = BEEP;
    else IO0CLR = BEEP;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -