-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;
;;;;;;;;;;;;;;LED
闪烁实验
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;LED1
闪烁频率
1Hz
,
LED2
闪烁频率
2Hz,LED
3
闪烁频率
4Hz;;;
;;
基于状态转换图
,S1->S6
六种状态
p>
;;;
;;2011-5-3 by
追梦
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;
BIT5
EQU 0X00000020
BIT8
EQU 0X00000100
BIT9
EQU 0X00000200
BIT10
EQU
0X00000400
LED1
EQU BIT8
;LED1--PD.8
LED2
EQU BIT9
;LED2--PD.9
LED3
EQU BIT10
;LED3--PD.10
GPIOD
EQU
0X40011400
;GPIOD
地址
GPIOD_CRL
EQU 0X40011400
;
低配置寄存器
GPIOD_CRH
EQU
0X40011404
;
高配置寄存器
GPIOD_ODR
EQU
0X4001140C
;
输出,偏移地址
0Ch
GPIOD_BSRR EQU 0X40011410
;
低置位,高清除偏移地址
10h
GPIOD_BRR
EQU
0X40011414
;
清除,偏移地址
14h
IOPDEN
EQU BIT5
;GPIOD
使能位
RCC_APB2ENR EQU 0X40021018
STACK_TOP EQU 0X20002000
AREA RESET,CODE,READONL
Y
DCD STACK_TOP
;MSP
主堆栈指针
DCD START
;
复位,
PC
初始值
p>
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.8910
均在高寄存器
STR
R0,[R1]
LDR
R1,=GPIOD_ODR
LDR
R2,=0x00000F00