欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

嵌入式开发板02---点亮LED升级版

发布时间:2025/3/15 编程问答 56 豆豆
生活随笔 收集整理的这篇文章主要介绍了 嵌入式开发板02---点亮LED升级版 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

LED汇编的复杂编写

首先,每次地址的输入都需要自己输入,非常容易输入错误,所以使用宏定义:

#define GPJ0CON 0xE0200040

同时在编写的汇编程序进行make时会有警告,找不到_start。因此使用全局,将_start的链接属性改为外部

.global _start

_start为汇编程序的入口

在对流水灯等单个位操作时使用位操作:位与(&)、位或(|)、左移<<、右移>>
例对于0x28
(1<<3)|(1<<5) 1<<3=1000 1<<5=100000
(1<<3)|(1<<5)=101000=0x28
利用位取反很容易得到单颗LED的点亮效果~(1<<3)=11110111

延时函数的编写:

delay:ldr r2, =10000ldr r3, =0x0 delay_loop:sub r2, r2, #1cmp r2, r3 //当r2=r3时bne不成立不执行,当r2不等于r3时执行bne delay_loopmov pc, lr //函数的返回

在主程序中bl delay调用函数,在调用函数时将程序指针写入lr中,因此在函数返回时使用mov pc,lr

对于流水灯来说,主要使用循环和延时来实现的。

总结

以上是生活随笔为你收集整理的嵌入式开发板02---点亮LED升级版的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。