文章目錄
基本原理:
邏輯操作指令:
and r0,r0,#0x01; r0=r0&0x01 取出r0的最低位元據
orr r0,r0,#0xff; r0=r0|0xff 置位
LSR Logical Shift Right 邏輯右移
Rx , LSR #n 或者是 Rx, LSR, Rn
register = register>>shift
EOR logical exclusive OR
EOR R0, R0, #3 反轉R0,之中的0位和1位
BIC (bit clear)
BIC R0, #%0110 ;其中特別注意的是二進位在彙編中格式寫成%
比較指令:
CMP R1, #10 比較並設定CPSR
TST
TEQ
條件判斷標誌:
Register Address R/W Description Reset Value
GPFCON 0x56000050 R/W Configures the pins of port F 0x0
GPFDAT 0x56000054 R/W The data register for port F Undef.
GPFUP 0x56000058 R/W Pull-up disable register for port F 0x000
Reserved 0x5600005c – – –
00 = Input 01 = Output
1)將GPF0/2/3/4設定為輸入
00 00 00 01 00
AREA BUTTON, CODE, READONLY
ENTRY
START
;禁止上拉電阻
LDR R1, =0x56000058
LDR R2, =0xff
STR R2, [R1]
;設定GPF0--GPF4為輸入
LDR R3, =0x56000050
LDR R4, =0x55555404
STR R4, [R3]
; 設定蜂鳴器的對應連接埠為輸出
LDR R1, =0x56000010
LDR R2, =0x01
STR R2, [R1]
LOOP
; 讀入資料
LDR R3, =0X56000054
LDR R4, [R3];讀入資料
;判斷是否有鍵按下
;11100010
;將於按鍵無關的位置一
ORR R4, R4, #0xe2
CMP R4,#0xff
BEQ BEEP_DOWN
B BEEP_ON
B LOOP
; 關閉蜂鳴器
BEEP_DOWN
LDR R1, =0X56000014
LDR R2, =0x0
STR R2, [R1]
B LOOP
BEEP_ON
LDR R1, =0X56000014
LDR R2, =0x1
STR R2, [R1]
B LOOP
END
----------------------------------------------------------------------堅持不懈,追求卓越------------------------------------------------------------------------------