还是一个简单的GPIO功能实现,通过查询按键端口电平,来控制LED亮灭。

原理图

用户手册
- #include "MK64F12.h"
- #define LED0_ON GPIOB_PCOR |=(1<<21)
- #define LED0_OFF GPIOB_PSOR |=(1<<21)
- #define LED1_ON GPIOB_PCOR |=(1<<22)
- #define LED1_OFF GPIOB_PSOR |=(1<<22)
- #define LED2_ON GPIOE_PCOR |=(1<<26)
- #define LED2_OFF GPIOE_PSOR |=(1<<26)
- void Delay(void)
- {
- unsigned int i,j;
- for(j=2000;j>0;j--)
- for(i=1000;i>0;i--);
- }
- int main(void)
- {
- SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK|SIM_SCGC5_PORTB_MASK|SIM_SCGC5_PORTC_MASK|SIM_SCGC5_PORTE_MASK;
- PORTA_PCR4 = PORT_PCR_MUX(1)| PORT_PCR_DSE_MASK;
- PORTC_PCR6 = PORT_PCR_MUX(1)| PORT_PCR_DSE_MASK;
- PORTB_PCR21 = PORT_PCR_MUX(1)| PORT_PCR_DSE_MASK;
- PORTB_PCR22 = PORT_PCR_MUX(1)| PORT_PCR_DSE_MASK;
- PORTE_PCR26 = PORT_PCR_MUX(1)| PORT_PCR_DSE_MASK;
- GPIOB_PDDR |= (1<<21);
- GPIOB_PDDR |= (1<<22);
- GPIOE_PDDR |= (1<<26);
- for (;;) {
- if((GPIOA_PDIR&(1<<4)) == 0)
- {
- LED0_ON;
- LED1_OFF;
- LED2_OFF;
- // Delay();
- }
- else if((GPIOC_PDIR&(1<<6)) == 0)
- {
- LED1_ON;
- LED2_OFF;
- LED0_OFF;
- // Delay();
- }
- else
- {
- LED0_OFF;
- LED1_OFF;
- LED2_ON;
- }
- }
- return 0;
- }
由于基础的程序比较简单,先把基础的程序都测试一遍。
下面是实物展示。
V51027-120354.mp4_1445918757.gif (2.57 MB, 下载次数: 0)
下载附件
2015-10-27 12:08 上传
|