現在的代碼是LED2常亮,按下K1后LED2熄滅
怎么把它變成常暗,按下后變亮
;RCC暫存器地址映像
RCC_BASE EQU 0x40021000
RCC_APB2ENR EQU (RCC_BASE + 0x18)
;GPIO C口暫存器地址映像
GPIOC_BASE EQU 0x40011000
GPIOC_CRL EQU (GPIOC_BASE + 0x00)
GPIOC_CRH EQU (GPIOC_BASE + 0x04)
GPIOC_IDR EQU (GPIOC_BASE + 0x08)
GPIOC_ODR EQU (GPIOC_BASE + 0x0C)
GPIOC_BSRR EQU (GPIOC_BASE + 0x10)
GPIOC_BRR EQU (GPIOC_BASE + 0x14)
GPIOC_LCKR EQU (GPIOC_BASE + 0x18)
IOPCEN EQU 0x00000010
;GPIO D口暫存器地址映像
GPIOD_BASE EQU 0x40011400
GPIOD_CRL EQU (GPIOD_BASE + 0x00)
GPIOD_CRH EQU (GPIOD_BASE + 0x04)
GPIOD_IDR EQU (GPIOD_BASE + 0x08)
GPIOD_ODR EQU (GPIOD_BASE + 0x0C)
GPIOD_BSRR EQU (GPIOD_BASE + 0x10)
GPIOD_BRR EQU (GPIOD_BASE + 0x14)
GPIOD_LCKR EQU (GPIOD_BASE + 0x18)
IOPDEN EQU 0x00000020
;常量定義
Bit12 EQU 0x00001000
;位帶地址映像
BitAlias_BASE EQU 0x42000000 ;設備位帶別名區起始地址
Bit_BASE EQU 0x40000000 ;設備位帶區起始地址
;按鍵位帶定義
PortDbit12 EQU (BitAlias_BASE+((GPIOD_IDR-Bit_BASE)*0x20+12*4))
Key EQU PortDbit12
;LED位帶定義
PortCbit7 EQU (BitAlias_BASE+((GPIOC_ODR-Bit_BASE)*0x20+7*4))
LED2 EQU PortCbit7
MSP_TOP EQU 0x20005000 ;主堆疊起始值
;向量表
AREA RESET, DATA, READONLY
DCD MSP_TOP ;初始化主堆疊
DCD Start ;復位向量
DCD NMI_Handler ;NMI Handler
DCD HardFault_Handler ;Hard Fault Handler
DCD 0
DCD 0
DCD 0
DCD 0
DCD 0
DCD 0
DCD 0
DCD 0
DCD 0
DCD 0
DCD 0
DCD 0
SPACE 20 ;預留空間20位元組
;代碼段
AREA |.text|, CODE, READONLY
;主程式開始
ENTRY
;指示程式從這里開始執行
Start
LDR R1,=RCC_APB2ENR
LDR R0,[R1] ;讀APB2外設時鐘使能暫存器(RCC_APB2ENR)
ORR R0,#(IOPCEN :OR: IOPDEN)
STR R0,[R1] ;寫APB2外設時鐘使能暫存器,使能GPIOC、GPIOD時鐘
LDR R0,=0x33444444 ;PC[7..6] 置成50MHz推挽輸出
LDR R1,=GPIOC_CRL;
STR R0,[R1]
LDR R0,=0x44484444 ;PD[12] 置成上拉輸入
LDR R1,=GPIOD_CRH;
STR R0,[R1]
LDR R1,=GPIOD_ODR
LDR R0,[R1] ;讀GPIOD的ODR
ORR R0,Bit12 ;修改
STR R0,[R1] ;寫GPIOD的ODR
LDR R1,=GPIOC_BSRR
LDR R0,=0X00400000 ;BSRR高清除,點亮PC6上的LED
LDR R2,=0X00000040 ;BSRR低置位,熄滅PC6上的LED
LDR R3,=Key ;裝入Key的位帶地址
LDR R4,=LED2 ;裝入LED2的位帶地址
LOOP
STR R0,[R1] ;點亮PC10上的LED
PUSH {R0}
MOV R0,#500
BL.W DELAY_NMS ;延時300ms
POP {R0}
STR R2,[R1] ;熄滅PC10上的LED
PUSH {R0}
MOV R0,#500
BL.W DELAY_NMS ;延時300ms
POP {R0}
LDR R5,[R3] ;讀按鍵Key
STR R5,[R4] ;輸出到LED2
B LOOP ;回圈
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/195409.html
標籤:單片機/工控
上一篇:巴特沃斯低通、高通、帶通濾波
