实验原理
ARM(LPC21XX)的一个I/O口接LED,通过给它送0和1来设置LED的亮和灭。
Proteus仿真电路图
image.png
步骤
KEIL

  • 创建新工程
  • 选择ARM型号(KEIL会自动生成启动代码startup.s)
  • 添加源文件,编写程序
  • 设置项目选项(是否输出hex、lst文件,设置linker script)
Proteus

  • 绘制电路图
  • 载入程序
  • 仿真
C语言源程序
/******************************************************************************/
  • /*                                                                            */
  • /*               led.c:  用ARM点亮一个led并闪烁,有点浪费……                    */
  • /*                                                                            */
  • /******************************************************************************/
  • #include <LPC21xx.H>                        
  • /*******************************************************************************
  • **函数名: delay()
  • **描述: 软件延时
  • ********************************************************************************/
  • void delay (void)  {                        
  •   unsigned volatile long i,j;
  •   for(i=0;i<60000;i++)
  •   for(j=0;j<5;j++)
  •   ;
  • }
  • int main(void) {
  •   PINSEL0 = 0;              /*设置引脚为GPIO */
  •   IO0DIR = 0x000001;              /*将P0.0设置为输出 */
  •   IO0SET = 0x000001;              /*将P0.0置1,也就是让led灭 */
  •   while (1)  {
  •                 IO0CLR = 0x000001;
  •               delay();
  •                 IO0SET = 0x000001;
  •               delay();
  •   }
  • }
  • 复制代码