LPC1114,16位定时器PWM呼吸灯

在Keil MDK 4.74上编写一段程序:

(1)利用16位定时器1实现定时1s,控制LPC1114微控制器的GPIO引脚PIO1_9上的LED灯状态反转(可以用中断方式也可以用匹配输出功能);

(2)设置16位定时器1工作在PWM模式,利用另外一个定时器定时增大或者减小占空比,实现PIO1_9上的LED灯渐亮渐灭的呼吸灯效果,改变呼吸的频率观察效果。

写出主程序、各子程序和完整注释,并在LPC1114 DevKit口袋开发板上调试运行通过。

要求:参考所提供子程序,写出主程序、初始化子程序和中断服务子程序,并进行完整注释;建立工程项目,编译通过后并在LPC1114 DevKit口袋开发板上调试运行。

作业提交方式:直接输入完整程序文本(带注释),并插入编译通过的图片和调试运行结果的小视频。

提示:LED灯状态反转可以用定时器中断方式也可以用匹配输出功能但不能两个同时用。

相关寄存器:


源码:

#include <LPC11xx.h>
int flag=0;                                // 定义标志变量,代表占空比是否越界
float dc=0;                               //定义变量,代表占空比
void TMR16B1_PWM_Init(void)
{
	LPC_SYSCON->SYSAHBCLKCTRL |= (1UL << 8);  // 16位定时器1时钟使能
	LPC_SYSCON->SYSAHBCLKCTRL |= (1UL << 16);  //IO配置块时钟使能
	LPC_IOCON->PIO1_9 |= 0x01;  //    MAT0匹配IO1.9
	LPC_TMR16B1->PR = 0;        //      分频系数;
	LPC_TMR16B1->PWMC= 0x01;    //开通道MAT0;
	LPC_TMR16B1->MCR = 0x02 <<9;  //设置MR3匹配后复位TC;
	LPC_TMR16B1->MR3 = SystemCoreClock/100;  //PWM周期设置为100HZ
	LPC_TMR16B1->MR0 = LPC_TMR16B1->MR3/2;//PWM占空比
	LPC_TMR16B1->TCR = 0x01;  // 启动定时器
}
void SysTick_Handler(void) 
{ 
	if (dc>=1 | dc<=0)                    //当占空比越界
		{
			flag = ~flag;                   
		}
		if(flag==0)                        //渐亮
		{
			LPC_TMR16B1->MR0 = dc*LPC_TMR16B1->MR3;      
			dc=dc+0.0001;                                      //占空比++
		}
		else                               //渐暗
		{
			LPC_TMR16B1->MR0 = dc*LPC_TMR16B1->MR3;
			dc=dc-0.0001;                                      //占空比--
		}	
}
int main()
{
	TMR16B1_PWM_Init();            //初始化
	SysTick_Config(SystemCoreClock / 10000);//节拍定时器改变占空比
	while(1);                          
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
LPC1114是一款低功耗的ARM Cortex-M0微控制器,而蜂鸣器则是一种能够发出声音信号的电子元件。下面是关于LPC1114蜂鸣器的回答: LPC1114蜂鸣器是一种能够通过LPC1114微控制器控制的蜂鸣器。LPC1114微控制器具有低功耗和高性能的特点,可在各种应用中使用,包括闹钟、电子玩具、安全系统等。蜂鸣器是通过发出连续或短促的声音信号来提醒用户或引起注意的设备。 使用LPC1114控制蜂鸣器可以在程序中通过特定的GPIO引脚和相关的代码来实现。首先,需要将蜂鸣器的信号线连接到LPC1114微控制器的GPIO引脚上,然后在程序中设置该引脚为输出模式。接下来,通过控制该引脚的高低电平状态,即可驱动蜂鸣器发出声音。 在程序中,可以使用延时函数或定时器来控制蜂鸣器发声的时间和频率。通过控制引脚的电平状态,蜂鸣器可以发出不同的声音,如长鸣、短促鸣叫等。使用不同的代码逻辑和时间间隔,可以实现不同的声音效果。 此外,在控制蜂鸣器的过程中还可以结合其他传感器或外设,如按钮、光线传感器等,实现更复杂的功能。例如,当按钮按下时,蜂鸣器发出响声;当光线传感器检测到亮度下降时,蜂鸣器发出警报声等。 总之,LPC1114蜂鸣器是通过LPC1114微控制器控制的一种声音设备。在程序中,可以通过设置特定的GPIO引脚和相关的代码来控制蜂鸣器的发声时间和频率,实现不同的声音效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值