以前有兴趣然后弄的,里面有很详细的介绍和教程,
不过需要一个kl25的板子或者芯片
1. 工程概述
(1)本工程为KL25微控制器无操作系统应用工程,GPIO样例程序
2. 软件环境
(1)Kinetis Design Studio IDE v3.0.0.
3. 硬件环境
(1)KL25 SD13-01 EVB板
(2)蓝灯对应引脚为PTB9,红灯对应引脚为PTB19,绿灯对应引脚为PTB18
4. 实验现象
(1)KL25 SD13-01 EVB板板上的蓝灯闪烁
单片机源程序如下:
- #======================================================================
- #文件名称:main.s
- #功能概要:汇编编程控制小灯闪烁
- #版权所有:苏州大学NXP嵌入式中心(sumcu.suda.edu.cn)
- #版本更新:2013-06-05 V1.0; 2016-03-03 V2.0
- #======================================================================
- #include "include.S"
- #start 主函数定义开始
- .section .text.main
- .global main @定义全局变量,在芯片初始化之后调用
- .align 2 @指令对齐
- .type main function @定义主函数类
- .align 2
- #end 主函数定义结束
- main:
- cpsid i @关闭总中断
- #小灯初始化, r0,r3是light_init的入口参数
- ldr r0,=LIGHT_BLUE @r0指明端口和引脚(用=是因为宏常数>=256,且用ldr)
- mov r3,#LIGHT_OFF @r3指明引脚的初始状态
- bl light_init @调用小灯初始化函数
- cpsie i @开总中断
- #主循环开始==================================================================
- main_loop1:
- ldr r4,=RUN_COUNTER_MAX @取延时值到r4
- mov r5,#0 @从零计数
- loop:
- add r5,#1 @加1计数
- cmp r4,r5 @r4值与r5值比较
- bne loop @不相等,则跳转loop
- bl light_change @相等,则调用小灯亮暗转变函数
- bne main_loop1 @跳转main_loop1
- #主循环结束==================================================================
- .end
复制代码
所有资料51hei提供下载:
KL25_Light(asm).rar
(234.84 KB, 下载次数: 7)
|