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

微处理器开发

开发平台:

Unix_Linux

  1. GPFCON   EQU    0x56000050   
  2. GPFDAT   EQU    0x56000054
  3. GPFUP    EQU    0x56000058
  4. EXPORT LEDTEST
  5.   AREA  LEDTESTASM,CODE,READONLY   ;该伪指令定义了一个代码段,段名为LEDTESTASM,属性只读
  6. LEDTEST
  7. ;设置GPF4-GPF7为output
  8. ldr  r0,=GPFCON           
  9.     ldr  r1,[r0]
  10.     bic  r1,r1,#0xff00
  11.     orr  r1,r1,#0x5500
  12.     str  r1,[r0]
  13.     
  14.     ;禁止GPF4-GPF7端口的上拉电阻
  15.     ldr  r0,=GPFUP
  16.     ldr  r1,[r0]
  17.     orr  r1,r1,#0xf0
  18.     str  r1,[r0]
  19. looptest
  20.     ;将数据端口F的数据寄存器的地址附给寄存器r2
  21.     ldr  r2,=GPFDAT
  22.     ldr  r3,[r2]
  23.     bic  r3,r3,#0xf0
  24.     orr  r3,r3,#0x70
  25.     str  r3,[r2]              ;GPF7 output 0
  26.     ldr r0,=0x2fffff
  27.     bl   delay                ;调用延迟子程序    
  28.     ldr  r3,[r2]
  29.     bic  r3,r3,#0xf0
  30.     orr  r3,r3,#0xb0
  31.     str  r3,[r2]              ;GPF6 output 0
  32.     ldr r0,=0x2fffff
  33.     bl   delay                ;调用延迟子程序
  34.     
  35.     ldr  r3,[r2]
  36.     bic  r3,r3,#0xf0
  37.     orr  r3,r3,#0xd0
  38.     str  r3,[r2]              ;GPF5 output 0
  39.     ldr r0,=0x2fffff
  40.     bl   delay                ;调用延迟子程序
  41.     
  42.     ldr  r3,[r2]
  43.     bic  r3,r3,#0xf0
  44.     orr  r3,r3,#0xe0
  45.     str  r3,[r2]              ;GPF4 output 0
  46.     ldr r0,=0x2fffff
  47.     bl   delay                ;调用延迟子程序
  48.     b looptest
  49. delay
  50. sub r0,r0,#1              ;r0=r0-1            
  51. cmp r0,#0x0               ;将r0的值与0相比较
  52. bne delay                ;比较的结果不为0(r0不为0),继续调用delay,否则执行下一条语句
  53. mov pc,lr                 ;返回
  54.     
  55.     END                       ;程序结束符 
  56.     
  57.     
  58.     
  59.