架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 8664|回复: 0

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

[复制链接]
发表于 2014-11-15 20:54:46 | 显示全部楼层 |阅读模式
一:实验名称
      四位流水灯

二:实验内容
实现四位流水灯的循环闪烁

三:实验目的
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:实现四位流水灯的循环闪烁
[mw_shl_code=c,true]查阅例程主函数里面的相应程序/*
***********************************************************
*  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);  //延时
  }
               
}[/mw_shl_code]





上一篇:EEPROM、EPROM、FLASH、SRAM、DRAM、SDRAM的区别
下一篇:win7系统蓝屏代码大集合
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2025-6-18 18:33

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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