Chinaunix首页 | 论坛 | 博客
  • 博客访问: 297834
  • 博文数量: 71
  • 博客积分: 4010
  • 博客等级: 上校
  • 技术积分: 672
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-05 18:50
个人简介

为了生活努力奋斗

文章分类

全部博文(71)

文章存档

2013年(2)

2010年(1)

2009年(9)

2008年(2)

2007年(57)

我的朋友

分类:

2007-04-26 21:46:49

 
;*********************************************************************
;学习ARM7的第一个程序。加油!
;*********************************************************************
;File: LED.S
;功能: LED闪烁控制.对发光二极管LED进行控制,采用软件延时方法
;  使用I/O口直接控制LED,采用灌电流方式
;*********************************************************************
LEDCON  EQU 0x00002000           ;P0.13引脚控制LED,低电平点亮
PINSEL0     EQU 0xE002C000
PINSEL1  EQU 0xE002C004
IODIR  EQU 0xE0028008
IOSET  EQU 0xE0028004
IOCLR  EQU 0xE002800C         
   AREA LEDCONC,CODE,READONLY        ;声明程序代码块
     
   ENTRY                   ;程序入口
   
STARTC  LDR R0,=PINSEL0           ;装载寄存器地址,PINSEL0
   MOV R1,#0x00000000            ;设置数据,即设置引脚连接GPIO
   STR R1,[R0]                
   LDR R0,=PINSEL1
   STR R1,[R0]
     
   LDR R0,=IODIR
   LDR R1,=LEDCON
   STR R1,[R0]                ;设置LED控制口为输出
     
MAIN_LOOP LDR R1,=LEDCON                 ;设置控制参数
LEDSET    LDR R0,=IOSET            ;GPIO置位控制
    STR R1,[R0]
    BL  DELAYS
     
LEDCLR    LDR R0,=IOCLR                                    ;GPIO清零控制
          STR R1,[R0]
          BL  DELAYS
         
         
          B   MAIN_LOOP               ;无条件跳转
;*********************************************************************
;名称:DELAYS
;功能: 软件延时
;入口参数:无
;出口参数: 无
;占用资源: R7
;*********************************************************************
DELAYS
      MOV  R7,#0x000ff000                       ;延时参数
DELAYS_L1 SUBS R7,R7,#1               ;R7 = R7 - 1
     BNE  DELAYS_L1              ;判断R7 - 1 的结果是否为零,不为零则跳转
     MOV  PC,LR               ;返回
     
     ALIGN                   ;数据字对齐
     LTORG                   ;声明文字池
     
     END
阅读(1556) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~