下载此文档

GPBCON控制器控制LED显示.doc


文档分类:通信/电子 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
GPBCON控制器控制LED显示
GPBCON是用来设置输入输出属性的,也就是说,你不是要控制LED吗?现在你知道了LED的引脚有GPB0,GPB1,而GPBCON又是控制这些引脚的属性,那么现在我们要控制它闪烁就要设置这些引脚的属性为输出。那么如何设置呢?我们的引脚是GPB0,GPB1,而GPBCON是两位控制一个引脚,所以应该是0101(这里手册上说的很清楚),GPBCON寄存器的低22位都是用来控制引脚的属性,其中每两位控制一个引脚,如[1:0]来控制GPB0也就是第0个引脚,
[21:20]来控制GPB10也就是第11个引脚,而在板子上面每个LED一般都有两个引脚,所以两个引脚都要设置,设置为00则表示输入状态,01表示输出状态(一般是高位在前,如GPB0[1:0]也就是第1位为0,第0位为1),10为特殊功能,11保留待用.
即GPBCON=0X5(0101二进制换为16进制就是5)
GPBDAT是用来读写引脚的,这个更重要了。我们要控制第一个,第二个引脚。
#define LED3_ON() (GPBDAT &= ~(0x1)) 当LED3亮的时候,把GPBDAT的最后一位置0 (GPB0是最后一位撒)
#define LED4_ON() (GPBDAT &= ~(0x2)) 当LED4亮的时候,把GPBDAT的倒数第二位置0 (GPB1倒。第二撒)
#define LED3_OFF() (GPBDAT |= (0x1))当LED3 灭的时候,把GPBDAT的最后一位置1 (GPB0是最后一位撒)
#define LED4_OFF() (GPBDAT |= (0x2))当LED4 灭的时候,把GPBDAT的倒数第二位置1 (GPB1倒数第二撒)
GPBUP是端口上拉寄存器端口上拉寄存器控制着每个端口组的上拉寄存器的使能或禁止,当对应bit为0,这个引脚的上拉寄存器是允许的,当为1时,上拉寄存器是禁止的。
这里我们把它禁止掉GPBUP=0xffff;
说到这里,应该差不多了。可以亮,可以灭,但是要闪烁,我们必须还需要一个延时程序。 delay:
sub r0,r0,#1
cmp r0,#0x0
bne delay
mov pc,lr
现在作为一个LED闪烁的必要准备工作已经完成了,下面就是凑成一个完整的程序就OK了。需要两个程序,一个汇编,一个C文件。
汇编程序用来入口以及那个延时程序,C程序用来处理亮,灭。显示闪烁效果。
具体代码如下:
.text
.global _start
ldrsp,=1024*4
.extern main
bl main
.global delay
delay:
sub r0,r0,#1
cmp r0,#0x0
bne delay
mov pc,lr
.end

extern void delay(int time);
#define GPBCON (*(volatile unsigned *)0x56000010)
#define GPBDAT (*(volatile unsigned *)0x56000014)
#define GPBU

GPBCON控制器控制LED显示 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wz_198614
  • 文件大小17 KB
  • 时间2017-09-06