- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STM32汇编语言,LED闪烁实验
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;LED闪烁实验;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;LED1闪烁频率1Hz,LED2闪烁频率2Hz,LED3闪烁频率4Hz;;;
;;基于状态转换图,S1-S6六种状态 ;;;
;;2011-5-3 by 追梦 ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
BIT5 EQU 0BIT8 EQU 0BIT9 EQU 0BIT10 EQU 0LED1 EQU BIT8 ;LED1--PD.8
LED2 EQU BIT9 ;LED2--PD.9
LED3 EQU BIT10 ;LED3--PD.10
GPIOD EQU 0 ;GPIOD 地址
GPIOD_CRL EQU 0 ;低配置寄存器
GPIOD_CRH EQU 0 ;高配置寄存器
GPIOD_ODR EQU 0X4001140C ;输出,偏移地址0Ch
GPIOD_BSRR EQU 0 ;低置位,高清除偏移地址10h
GPIOD_BRR EQU 0 ;清除,偏移地址14h
IOPDEN EQU BIT5 ;GPIOD使能位
RCC_APB2ENR EQU 0STACK_TOP EQU 0 AREA RESET,CODE,READONLY
DCD STACK_TOP ;MSP主堆栈指针
DCD START ;复位,PC初始值
ENTRY ;指示开始执行
START
LDR R1,=RCC_APB2ENR
LDR R0,[R1] ;读
LDR R2,=IOPDEN
ORR R0,R2 ;改
STR R0,[R1] ;写,使能GPIOD时钟
;LED1--PD.8 推挽输出,50MHz
;LED2--PD.9 推挽输出,50MHz
;LED3--PD.10 推挽输出,50MHz
MOV R0,#0x333
LDR R1,=GPIOD_CRH ;PD.8\9\10均在高寄存器
STR R0,[R1]
LDR R1,=GPIOD_ODR
LDR R2,=0x00000F00
MOV R3,#1
LOOP
STR R2,[R1]
MOV R0,#125
BL DELAY_NMS
EOR R2,#LED3 ;翻转LED3
ADD R3,#1 ;计数加1
CMP R3,#1
BEQ STATE1
CMP R3,#3
BEQ STATE2
CMP R3,#5
BEQ STATE3
CMP R3,#7
BEQ STATE4
CMP R3,#8
BEQ STATE5
B GOON
STATE1 ;状态1
EOR R2,#LED1
EOR R2,#LED2
B GOON
STATE2 ;状态2
EOR R2,#LED2
B GOON
STATE3 ;状态3
EOR R2,#LED1
EOR R2,#LED2
B GOON
STATE4 ;状态4
EOR R2,#LED2
B GOON
STATE5 ;状态5
MOV R3,#0
GOON
B LOOP ;继续循环
;延时R0(us),误差0.5us
;延时超过100us时,误差0.5/R0小于0.5%
DELAY_NUS
SUB R0,#1
NOP
NOP
NOP
CMP R0,#0
BNE DELAY_NUS ;跳时3个周期
BX LR ;3个周期
;延时R0(ms),误差((R0-1)*4+12)/8us
;延时较长时,误差小于0.1%
DELAY_NMS
PUSH {R1} ;2个周期
DELAY_NMSLOOP
SUB R0,#1
文档评论(0)