任選一個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)
2018-5-25 10:56 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|