標題: Tiva-PB開發(fā)板呼吸燈實驗源碼 [打印本頁]

作者: z317132759    時間: 2018-5-25 10:57
標題: Tiva-PB開發(fā)板呼吸燈實驗源碼
任選一個LED燈,4秒內(nèi)從全滅到全亮,再從全亮到全滅,亮度變化至少20個臺階,循環(huán)往復(呼吸燈效果)任選一個LED燈,4秒內(nèi)從全滅到全亮,再從全亮到全滅,亮度變化至少20個臺階,循環(huán)往復(呼吸燈效果)

單片機源程序如下:
  1. //*****************************************************************************
  2. // 本程序控制Tiva-PB開發(fā)板上的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 函數(shù),每個工程項目內(nèi)有且只有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--)   // 修改該參數(shù)可以調(diào)整延時時間
  20.     {;}
  21. }

  22. int main(void)
  23. {
  24.     int i,j;
  25.     //設(shè)置系統(tǒng)時鐘為50MHz
  26.     SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
  27.                        SYSCTL_XTAL_16MHZ);
  28.     // 端口GPIO F使能,F(xiàn)0引腳解鎖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.         // 設(shè)置GPIO方向       
  34.     GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_0);     // PF0設(shè)置為輸出
  35.     GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,1<<0);          // 藍LED燈初始態(tài):滅
  36.         // 設(shè)置PA4為輸出       
  37.     SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);            // 使能 GPIO A模塊
  38.     GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PIN_4);     // PA4設(shè)置為輸出
  39.     GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,1<<4);          // 綠LED燈初始態(tài):滅
  40.         // 設(shè)置PD6為輸出       
  41.     SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);            // 使能 GPIO D模塊
  42.     GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE, GPIO_PIN_6);     // PD6設(shè)置為輸出
  43.     GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_6,1<<6);          // 紅LED燈初始態(tài):滅
  44.                
  45.     while(1)    // 死循環(huán),main函數(shù)沒有結(jié)束
  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, 下載次數(shù): 10)



作者: always_nothing    時間: 2020-10-22 10:14
正好看到了解鎖鎖定端口的部分,謝謝幫助




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1