任选一个LED灯,4秒内从全灭到全亮,再从全亮到全灭,亮度变化至少20个台阶,循环往复(呼吸灯效果)任选一个LED灯,4秒内从全灭到全亮,再从全亮到全灭,亮度变化至少20个台阶,循环往复(呼吸灯效果)
单片机源程序如下:
- //*****************************************************************************
- // 本程序控制Tiva-PB开发板上的3个LED指示灯,移位闪烁点亮
- // 蓝色LED(D2)--PF0 绿色LED(D3)-PA4 红色LED(D4)-PD6
- //*****************************************************************************
- #include <stdint.h>
- #include <stdbool.h>
- #include "inc/hw_memmap.h"
- #include "inc/hw_types.h"
- #include "inc/hw_gpio.h"
- #include "driverlib/sysctl.h"
- #include "driverlib/gpio.h"
- //*****************************************************************************
- // main 函数,每个工程项目内有且只有1个
- //*****************************************************************************
- void delay(unsigned int dat1)
- {
- unsigned int i,j;
- for(i = dat1; i > 0; i--)
- for(j = 12500; j > 0; j--) // 修改该参数可以调整延时时间
- {;}
- }
- int main(void)
- {
- int i,j;
- //设置系统时钟为50MHz
- SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
- SYSCTL_XTAL_16MHZ);
- // 端口GPIO F使能,F0引脚解锁NMI功能
- SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); // 使能 GPIO F模块
- HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY; // 开锁 PORT F
- HWREG(GPIO_PORTF_BASE + GPIO_O_CR) |= GPIO_PIN_0; // 解锁 F0 引脚
- HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = 0; // 重新上锁
- // 设置GPIO方向
- GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_0); // PF0设置为输出
- GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,1<<0); // 蓝LED灯初始态:灭
- // 设置PA4为输出
- SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); // 使能 GPIO A模块
- GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PIN_4); // PA4设置为输出
- GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,1<<4); // 绿LED灯初始态:灭
- // 设置PD6为输出
- SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); // 使能 GPIO D模块
- GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE, GPIO_PIN_6); // PD6设置为输出
- GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_6,1<<6); // 红LED灯初始态:灭
-
- while(1) // 死循环,main函数没有结束
- {
- for(j=1;j<=20;j++)
- {
- for (i=0;i<5;i++)
- {
- GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,0<<0); // 蓝色LED灯:亮
- delay(j); // 软件延时
- GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,1<<0); // 蓝色LED灯:灭
- delay(20-j);
- }
- }
- for(j=1;j<=20;j++)
- {
- for (i=0;i<5;i++)
- {
- GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,0<<0); // 蓝色LED灯:亮
- delay(20-j); // 软件延时
- GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,1<<0); // 蓝色LED灯:灭
- delay(j);
- }
- }
- }
- }
- // end of main
复制代码
所有资料51hei提供下载:
s03-lab3B1-1a.zip
(2.36 MB, 下载次数: 10)
|