ARM入门笔记(3)

2010年08月26日 17:24    发布者:绝对好文
第三章 点亮我的LED

――I/O输出实验

一.背景

当完成上述实验后,我就可以像使用51单片机那样,在C文件的main()函数中通过设置相应的寄存器来达到对相应外设(如I/O的输入、输出等)的控制目的。

二.实验目的

通过控制PIO的相关寄存器,使特定的I/O口输出高电平和低电平,来点亮LED。

三.实验程序和参数设置

1> 连接器选项设置

RO Base = 0x00200000;
RW Base = 0x00202000;
Image entry point=0x00200000;

2> 启动代码

启动代码与第一个实验中修改后的相同,即将“__main()”改成main()。

3> C语言的代码

#i nclude "AT91SAM7S64.h"  //特殊功能寄存器头文件。类似与51单片机中reg51.h
#i nclude "Board.h"   //定义目标板的头文件
int main(void)
{ *AT91C_PIOA_PER = LED_MASK;//使能4个LED对应管脚的I/O口功能
  *AT91C_PIOA_OER = LED_MASK;//使能4个LED管脚的输出功能
while (1)
  { //可用单步运行来查看输出结果
   *AT91C_PIOA_SODR = LED1;//将LED1对应的管脚输出高电平
   *AT91C_PIOA_CODR = LED1;//将LED1对应的管脚输出低电平
  }
}

四.总结

本实验非常的顺利,没有出现问题。证明ARM芯片的内部外围与8位单片机内部外围的控制或使用方法在原理上基本是相同的,都是通过设置相关的特殊功能寄存器来实现控制。也就是说只要会单片机也就会ARM!