• day10.8ubentu流水灯


    流水灯

    1. .text
    2. .global _start
    3. _start:
    4. @1.设置GPIOE寄存器的时钟使能 RCC_MP_AHB4ENSETR[4]->1 0x50000a28
    5. LDR R0,=0X50000A28
    6. LDR R1,[R0] @从r0为起始地址的4字节数据取出放在R1
    7. ORR R1,R1,#(0x1<<4) @第4位设置为1
    8. STR R1,[R0] @写回
    9. @2.设置PE10管脚为输出模式 GPIOE_MODER[21:20]->01 0x50006000
    10. LDR R0,=0x50006000
    11. LDR R1,[R0]
    12. BIC R1,R1,#(0x3<<20)@[21L20]清0
    13. ORR R1,R1,#(0X1<<20) @设置
    14. STR R1,[R0]
    15. @3.设置PE10管脚为推挽输出 GPIOE_OTYPER[10]->0 0X50006004
    16. LDR R0,=0X50006004
    17. LDR R1,[R0]
    18. BIC R1,R1,#(0X1<<10)
    19. STR R1,[R0]
    20. @4.设置PE10管脚为低速输出 GPIOE_OSPEEDR[21:20]->00 0X50006008
    21. LDR R0,=0x50006008
    22. LDR R1,[R0]
    23. BIC R1,R1,#(0x3<<20)@[21L20]清0
    24. STR R1,[R0]
    25. @5.设置PE10管脚输出时没有上拉下拉电阻 GPIOE_PUPDR[21:20]->00 0X5000600C
    26. LDR R0,=0x5000600c
    27. LDR R1,[R0]
    28. BIC R1,R1,#(0x3<<20)@[21L20]清0
    29. STR R1,[R0]
    30. @2.设置PE8管脚为输出模式 GPIOE_MODER[21:20]->01 0x50006000
    31. LDR R0,=0x50006000
    32. LDR R1,[R0]
    33. BIC R1,R1,#(0x3<<16)@[21L20]清0
    34. ORR R1,R1,#(0X1<<16) @设置
    35. STR R1,[R0]
    36. @3.设置PE8管脚为推挽输出 GPIOE_OTYPER[10]->0 0X50006004
    37. LDR R0,=0X50006004
    38. LDR R1,[R0]
    39. BIC R1,R1,#(0X1<<8)
    40. STR R1,[R0]
    41. @4.设置PE8管脚为低速输出 GPIOE_OSPEEDR[21:20]->00 0X50006008
    42. LDR R0,=0x50006008
    43. LDR R1,[R0]
    44. BIC R1,R1,#(0x3<<16)@[21L20]清0
    45. STR R1,[R0]
    46. @5.设置PE8管脚输出时没有上拉下拉电阻 GPIOE_PUPDR[21:20]->00 0X5000600C
    47. LDR R0,=0x5000600c
    48. LDR R1,[R0]
    49. BIC R1,R1,#(0x3<<16)@[21L20]清0
    50. STR R1,[R0]
    51. @1.设置GPIOF寄存器的时钟使能 RCC_MP_AHB4ENSETR[5]->1 0x50000a28
    52. LDR R0,=0X50000A28
    53. LDR R1,[R0] @从r0为起始地址的4字节数据取出放在R1
    54. ORR R1,R1,#(0x1<<5) @第4位设置为1
    55. STR R1,[R0] @写回
    56. @2.设置PF10管脚为输出模式 GPIOE_MODER[21:20]->01 0x50007000
    57. LDR R0,=0x50007000
    58. LDR R1,[R0]
    59. BIC R1,R1,#(0x3<<20)@[21L20]清0
    60. ORR R1,R1,#(0X1<<20) @设置
    61. STR R1,[R0]
    62. @3.设置PF10管脚为推挽输出 GPIOE_OTYPER[10]->0 0X50007004
    63. LDR R0,=0X50007004
    64. LDR R1,[R0]
    65. BIC R1,R1,#(0X1<<10)
    66. STR R1,[R0]
    67. @4.设置PF10管脚为低速输出 GPIOE_OSPEEDR[21:20]->00 0X50007008
    68. LDR R0,=0x50007008
    69. LDR R1,[R0]
    70. BIC R1,R1,#(0x3<<20)@[21L20]清0
    71. STR R1,[R0]
    72. @5.设置PF10管脚输出时没有上拉下拉电阻 GPIOE_PUPDR[21:20]->00 0X5000700C
    73. LDR R0,=0x5000700c
    74. LDR R1,[R0]
    75. BIC R1,R1,#(0x3<<20)@[21L20]清0
    76. STR R1,[R0]
    77. @ 6.PE10输出高低电平 GPIOE_ODR[10]->1(高电平) 0(低电平) 0X50006014
    78. @LED1亮灭交替
    79. loop:
    80. @亮
    81. LDR R0,=0X50006014
    82. LDR R1,[R0]
    83. ORR R1,R1,#(0x1<<10)
    84. STR R1,[R0]
    85. BL delay
    86. @灭
    87. LDR R0,=0X50006014
    88. LDR R1,[R0]
    89. BIC R1,R1,#(0x1<<10)
    90. STR R1,[R0]
    91. BL delay
    92. @LED2亮灭交替
    93. @亮
    94. LDR R0,=0X50007014
    95. LDR R1,[R0]
    96. ORR R1,R1,#(0x1<<10)
    97. STR R1,[R0]
    98. BL delay
    99. @灭
    100. LDR R0,=0X50007014
    101. LDR R1,[R0]
    102. BIC R1,R1,#(0x1<<10)
    103. STR R1,[R0]
    104. BL delay
    105. @LED3亮灭交替
    106. @亮
    107. LDR R0,=0X50006014
    108. LDR R1,[R0]
    109. ORR R1,R1,#(0x1<<8)
    110. STR R1,[R0]
    111. BL delay
    112. @灭
    113. LDR R0,=0X50006014
    114. LDR R1,[R0]
    115. BIC R1,R1,#(0x1<<8)
    116. STR R1,[R0]
    117. BL delay
    118. b loop
    119. @封装延时函数
    120. delay:
    121. LDR R4,=0X10000000
    122. mm:
    123. cmp r4,#0
    124. subne r4,r4,#1
    125. bne mm
    126. mov pc,lr @程序返回
    127. .end

  • 相关阅读:
    MFC Windows 程序设计[236]之多样对话框(附源码)
    【机器学习】带你轻松理解什么是强化学习中的状态动作函数 ?
    6套台式组装机电脑配置清单大全(2022年618)
    java计算机毕业设计大学生兼职网站源码+系统+lw文档+mysql数据库+部署
    JAVA设计模式之模板方法模式
    炫酷登录注册 完整功能版【本地存储+JS+HTML+CSS+jQuery】
    一文解析 Pinia 和 Vuex,带你全面理解这两个 Vue 状态管理模式
    SLAM从入门到精通(rviz自定义形状)
    基于SSH开发酒店管理系统
    Mirror 镜像站点的使用
  • 原文地址:https://blog.csdn.net/m0_70569664/article/details/133689039