?? sendstr.s
字號:
;******************************************************************************
; File:SENDSTR.S
; 功能:串口發送數據。
; 說明:將跳線器JP2短接。
; 使用外部11.0592MHz晶振,不使用PLL,Fpclk = 1/4 Fcclk。
;******************************************************************************
INCLUDE LPC2106.INC ; 引入頭文件
CODE32
AREA UARTSENDC,CODE,READONLY
ENTRY
STARC MSR CPSR_c,#0x10 ; 設置進入用戶模式
LDR SP,=0x40003000 ; 設置堆棧
MOV R7,#0xFF0 ; 系統上電延時
DELAY_L1 SUBS R7,R7,#1
BNE DELAY_L1
BL UART0_INI ; 初始化串口UART0,設置波特率
LOOP LDR R3,=HELLO
BL UART0_SENDSTR ; 發送字串,字串中以0x00結束
BL DELAYS ; 軟件延時
B LOOP
;******************************************************************************
; 名稱:DELAYS
; 功能:軟件延時
; 入口參數:無
; 出口參數:無
; 占用資源:R7
;******************************************************************************
DELAYS
MOV R7,#0x000FF000 ; 延時參數
DELAYS_L1 SUBS R7,R7,#1 ; R7 = R7-1
BNE DELAYS_L1 ; 判斷R7-1結果是否為0,若不為0則跳轉
MOV PC,LR ; 返回
;******************************************************************************
; 名稱:UART0_INI
; 功能:初始化串口0。設置為8位數據位,1位停止位,無奇偶校驗,波特率為9600
; 入口參數:無
; 出口參數:無
; 占用資源:R0、R1
;******************************************************************************
UART0_INI
LDR R0,=PINSEL0 ; 設置IO口使用為UART0
MOV R1,#0x05
STR R1,[R0]
LDR R0,=U0LCR ; 設置UART工作模式
MOV R1,#0x83 ; DLAB = 1,可設置波特率
STR R1,[R0]
LDR R0,=U0DLL ; 設置波特率,9600
MOV R1,#0x12 ; 除法器設置為0x12,外部11.0592M晶振
STR R1,[R0]
LDR R0,=U0DLM
MOV R1,#0x00
STR R1,[R0]
LDR R0,=U0LCR
MOV R1,#0x03
STR R1,[R0] ; 8位數據位,1位停止位,無奇偶校驗,DLAB = 0
MOV PC,LR ; 返回
;******************************************************************************
; 名稱:UART_SENDB
; 功能:串口發送字節數據。向UART0發送一字節數據,并等待發送完畢
; 入口參數:R1 要發送的數據,低8位有效
; 出口參數:無
; 占用資源:R0、R1
;******************************************************************************
UART_SENDB
LDR R0,=U0THR
STR R1,[R0] ; 發送數據
LDR R0,=U0LSR ; 等待發送完畢
UARTSD_L1 LDR R1,[R0]
ANDS R1,R1,#0x40
BEQ UARTSD_L1
MOV PC,LR
;******************************************************************************
; 名稱:UART0_SENDSTR
; 功能:向UART0發送字符串。發送字串指針R3,字串中以0x00結束
; 入口參數:R3 要發送字串指針
; 出口參數:無
; 占用資源:R0、R1
;******************************************************************************
UART0_SENDSTR
STMFA SP!,{R0-R9, LR}
UART0SR_L1 LDR R1,[R3],#4
CMP R1,#0x00
BEQ UART0SR_L2 ; 若數據為0x00,返回
BL UART_SENDB
B UART0SR_L1
UART0SR_L2 LDMFA SP!,{R0-R9, LR}
MOV PC,LR
LTORG ; 在此聲明文字池
HELLO DCD 'H', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\r','\n',0x0
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -