微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > 嵌入式系统设计讨论 > 四位流水灯的循环闪烁方法

四位流水灯的循环闪烁方法

时间:10-02 整理:3721RD 点击:
四位流水灯一:实验名称

      四位流水灯


二:实验内容

实现四位流水灯的循环闪烁


三:实验目的

1:掌握LED硬件电路

2:掌握KL25 GPIO模块输出的寄存器配置方法

3: 掌握四位流水灯循环闪烁的编程方法


四:实验方法

      1:查阅该部分的电路图

           发现KL25的PTB8、PTB9、PTB10、PTB11引脚分别控制着D6、D7、D8、D9四个LED发光二极管。

file:///C:\Users\AA\AppData\Local\Temp\ksohtml\wps_clip_image-3968.png

     2:对GPIO模块的相应寄存器进行配置

(1) 查阅KL25 Reference Manual 122页发现GPIO由Platform clock提供时钟。


(2) 将Platform clock时钟和POTRB模块接通,编程如下:  

            SIM_SCGC5=SIM_SCGC5_PORTB_MASK;//可查阅SIM_SCGC5寄存器


(3) 设置复用引脚属性,将PTB8、PTB9、PTB10、PTB11配置为GPIO功能,编程如下:

PORTB_PCR8=PORT_PCR_MUX(1);

PORTB_PCR9=PORT_PCR_MUX(1);

PORTB_PCR10=PORT_PCR_MUX(1);

PORTB_PCR11=PORT_PCR_MUX(1);

// 可查阅PORTx_PCRn寄存器和KL25 Data Sheet 46页进行相关的了解


      (4)设置引脚输入输出方向,将PTB8、PTB9、PTB10、PTB11设置成输出,编程如下:

          GPIOB_PDDR=GPIO_PDDR_PDD(0x00000f00u);//可查阅GPIOx_PDDR寄存器


(5)设置引脚输出逻辑电平,将PTB8、PTB9、PTB10、PTB11设置输出高电平,编程如下:

GPIOB_PDOR=GPIO_PDOR_PDO(0x00000f00u); //可查阅GPIOx_PDOR寄存器


3:实现四位流水灯的循环闪烁

       查阅例程主函数里面的相应程序/*
***********************************************************
*  file name : main.c
*  function  : function for main
*  
***********************************************************
*/
#include "derivative.h"
#include "config.h"
#include "crg.h"
#include "gpio.h"

/******************************主函数*************************************/
int main(void)
{
  asm(" CPSID i");  //关总中断
         
  crg_default_init();  //系统默认时钟
  //crg_configuration_init();  //配置之后的时钟
  MCGIRCLK_outenable();  //使能MCGIRCLK输出2M
  clock_test(4);  //相应时钟的测试
  gpio_init();  //GPIO初始化
  asm(" CPSIE i");  //开总中断
  for(;;)
  {         
    GPIOB_PDOR=GPIO_PDOR_PDO(0x00000100u);  //PTB8输出高电平 ,D6LED灯亮
        delayms(15000);  //延时
        GPIOB_PDOR=GPIO_PDOR_PDO(0x00000200u);  //PTB9输出高电平 ,D7LED灯亮
        delayms(15000);  //延时
        GPIOB_PDOR=GPIO_PDOR_PDO(0x00000400u);  //PTB10输出高电平 ,D8LED灯亮
        delayms(15000);  //延时
        GPIOB_PDOR=GPIO_PDOR_PDO(0x00000800u);  //PTB11输出高电平 ,D9LED灯亮
        delayms(15000);  //延时
  }
               
}

KL25,飞思卡尔单片机?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top