找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3812|回复: 1
收起左侧

Tiva-PB开发板呼吸灯实验源码

[复制链接]
ID:337321 发表于 2018-5-25 10:57 | 显示全部楼层 |阅读模式
任选一个LED灯4秒内从全灭到全亮,再从全亮到全灭,亮度变化至少20个台阶,循环往复(呼吸灯效果)任选一个LED灯,4秒内从全灭到全亮,再从全亮到全灭,亮度变化至少20个台阶,循环往复(呼吸灯效果)

单片机源程序如下:
  1. //*****************************************************************************
  2. // 本程序控制Tiva-PB开发板上的3个LED指示灯,移位闪烁点亮
  3. // 蓝色LED(D2)--PF0 绿色LED(D3)-PA4 红色LED(D4)-PD6
  4. //*****************************************************************************
  5. #include <stdint.h>
  6. #include <stdbool.h>

  7. #include "inc/hw_memmap.h"
  8. #include "inc/hw_types.h"
  9. #include "inc/hw_gpio.h"
  10. #include "driverlib/sysctl.h"
  11. #include "driverlib/gpio.h"

  12. //*****************************************************************************
  13. // main 函数,每个工程项目内有且只有1个
  14. //*****************************************************************************
  15. void delay(unsigned int dat1)
  16. {
  17.     unsigned int i,j;
  18.     for(i = dat1; i > 0; i--)
  19.     for(j = 12500; j > 0; j--)   // 修改该参数可以调整延时时间
  20.     {;}
  21. }

  22. int main(void)
  23. {
  24.     int i,j;
  25.     //设置系统时钟为50MHz
  26.     SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
  27.                        SYSCTL_XTAL_16MHZ);
  28.     // 端口GPIO F使能,F0引脚解锁NMI功能
  29.     SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);            // 使能 GPIO F模块
  30.     HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;   // 开锁 PORT F
  31.     HWREG(GPIO_PORTF_BASE + GPIO_O_CR) |= GPIO_PIN_0;       // 解锁 F0 引脚
  32.     HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = 0;               // 重新上锁               
  33.         // 设置GPIO方向       
  34.     GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_0);     // PF0设置为输出
  35.     GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,1<<0);          // 蓝LED灯初始态:灭
  36.         // 设置PA4为输出       
  37.     SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);            // 使能 GPIO A模块
  38.     GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PIN_4);     // PA4设置为输出
  39.     GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,1<<4);          // 绿LED灯初始态:灭
  40.         // 设置PD6为输出       
  41.     SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);            // 使能 GPIO D模块
  42.     GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE, GPIO_PIN_6);     // PD6设置为输出
  43.     GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_6,1<<6);          // 红LED灯初始态:灭
  44.                
  45.     while(1)    // 死循环,main函数没有结束
  46.     {
  47.                          for(j=1;j<=20;j++)
  48.                         {
  49.                           for (i=0;i<5;i++)
  50.                         {
  51.         GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,0<<0);  // 蓝色LED灯:亮
  52.         delay(j);       // 软件延时
  53.         GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,1<<0);  // 蓝色LED灯:灭
  54.         delay(20-j);  
  55.                         }
  56.                 }
  57.                         for(j=1;j<=20;j++)
  58.                         {
  59.                          for (i=0;i<5;i++)
  60.                         {
  61.         GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,0<<0);  // 蓝色LED灯:亮
  62.         delay(20-j);       // 软件延时
  63.         GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,1<<0);  // 蓝色LED灯:灭
  64.         delay(j);  
  65.                         }
  66.                 }
  67.     }
  68. }
  69. // end of main
复制代码

所有资料51hei提供下载:
s03-lab3B1-1a.zip (2.36 MB, 下载次数: 10)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:268627 发表于 2020-10-22 10:14 | 显示全部楼层
正好看到了解锁锁定端口的部分,谢谢帮助
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表