ARM入门笔记(3)
时间:08-26
来源:互联网
点击:
第三章 点亮我的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!
――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!
LED 单片机 连接器 C语言 51单片机 ARM 相关文章:
- OLED显示模块与AT91RM9200的接口设计(02-13)
- ZLG7290在智能仪表面板接口设计中的应用(03-10)
- 低价位嵌入式处理开发套件--Spartan-3E 1600E (07-07)
- 大屏幕LED显示屏的高速控制方案(04-09)
- PoE和LED结合的低功率、高亮度、长电缆解决方案(04-12)
- 基于单片机IAP技术的LED显示屏控制系统(04-12)