LED_ASM.S
上传用户:mhstny
上传日期:2022-08-05
资源大小:793k
文件大小:1k
源码类别:

微处理器开发

开发平台:

Unix_Linux

  1. GPFCON   EQU    0x56000050   
  2. GPFDAT   EQU    0x56000054
  3. GPFUP    EQU    0x56000058
  4. EXPORT LEDTEST
  5.   AREA  testasm,CODE,READONLY   
  6.     CODE32
  7. LEDTEST
  8. ;设置GPF4-GPF7为output
  9. ldr  r0,=GPFCON           
  10.     ldr  r1,[r0]
  11.     bic  r1,r1,#0xff00
  12.     orr  r1,r1,#0x5500
  13.     str  r1,[r0]
  14.     
  15.     ;禁止GPF4-GPF7端口的上拉电阻
  16.     ldr  r0,=GPFUP
  17.     ldr  r1,[r0]
  18.     orr  r1,r1,#0xf0
  19.     str  r1,[r0]
  20.     ;将数据端口F的数据寄存器的地址附给寄存器r2
  21.     ldr  r2,=GPFDAT
  22. ledon
  23.     ldr  r3,[r2]
  24.     bic  r3,r3,#0x80
  25.     str  r3,[r2]           ;GPF7 output 0,灯亮
  26.     ldr  r0,=0x1fffff
  27.     
  28.     adr  r4,delay1+1
  29.     bx   r4                ;调用延迟子程序    
  30. ledoff
  31.     ldr  r3,[r2]
  32.     orr  r3,r3,#0x80
  33.     str  r3,[r2]           ;GPF7 output 1
  34.     ldr  r0,=0x1fffff
  35.     
  36.     adr  r4,delay2+1
  37.     bx   r4                ;调用延迟子程序
  38.     AREA  testasm,CODE,READONLY
  39.     CODE16
  40. delay1
  41. sub r0,r0,#1              ;r0=r0-1            
  42. cmp r0,#0x0               ;将r0的值与0相比较
  43. bne delay1                ;比较的结果不为0(r0不为0),继续调用delay1,否则执行下一条语句
  44. ldr r1,=ledoff                ;返回
  45.     bx  r1
  46.     
  47. delay2
  48. sub r0,r0,#1              ;r0=r0-1            
  49. cmp r0,#0x0               ;将r0的值与0相比较
  50. bne delay2                ;比较的结果不为0(r0不为0),继续调用delay2,否则执行下一条语句
  51. ldr r1,=ledon           ;返回
  52.     bx  r1 
  53.     
  54.     END                       ;程序结束符 
  55.     
  56.