?? spidisp.s
字號(hào):
;******************************************************************************
; 文件名:SPIDISP.S
; 功能:使用硬件SPI接口輸出控制LED顯示。(硬件:74HC595輸出控制LED顯示)
; 說明:將跳線器JP8短接,JP4斷開。
;******************************************************************************
INCLUDE LPC2294.INC
EXPORT MAIN
SPI0_BASE EQU 0xE0020000
HC595_CS EQU 0x00000100 ; P0.8口為74HC595的片選
AREA SPIDISPC,CODE,READONLY
ENTRY
MAIN LDR SP,=0x40003F00 ; 設(shè)置堆棧指針SP
LDR R0,=PINSEL0 ; 設(shè)置SPI0接口有效
MOV R1,#0x00005500
STR R1,[R0]
LDR R0,=IO0DIR ; 設(shè)置HC595片選控制口為輸出
MOV R1,#HC595_CS
STR R1,[R0]
; 設(shè)置SPI接口
LDR R0,=SPI0_BASE
MOV R1,#0x52
STR R1,[R0,#0x0C] ; S0PCCR=0x52,設(shè)置SPI時(shí)鐘
MOV R1,#0x30
STR R1,[R0] ; S0PCR=0x30,設(shè)置SPI接口模式,MSTR=1,CPOL=1,CPHA=0,LSBF=0
; 使用SPI進(jìn)行數(shù)據(jù)發(fā)送(查表)
LDR R4,=DISP_TAB
MAIN_LOOP MOV R5,#0
MAIN_LOOP1 LDR R2,[R4,R5,LSL #2] ; 查表取得顯示數(shù)據(jù)
LDR R0,=IOCLR ; HC595_CS=0
MOV R1,#HC595_CS
STR R1,[R0]
BL MSEND_DAT ; 發(fā)送顯示
LDR R0,=IOSET ; HC595_CS=1
MOV R1,#HC595_CS
STR R1,[R0]
BL DELAYS ; 軟件延時(shí)
ADD R5,R5,#1
CMP R5,#0x0F
BLS MAIN_LOOP1
B MAIN_LOOP
DISP_TAB DCD 0x5A, 0xA5, 0x5A, 0xA5, 0x5A, 0xA5, 0x5A, 0xA5
DCD 0x5A, 0xA5, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA
;******************************************************************************
; 名稱:MSEND_DAT
; 功能:通過SPI接口向74HC595發(fā)送一字節(jié)數(shù)據(jù)
; 入口參數(shù):R2 待發(fā)送的數(shù)據(jù),低8位有效
; 出口參數(shù):R1 接收到的從機(jī)數(shù)據(jù)
; 占用資源:R0、R1、R2
;******************************************************************************
MSEND_DAT
LDR R0,=SPI0_BASE
LDR R1,[R0,#0x04] ; 讀取S0PSR,清除各種標(biāo)志位
STR R2,[R0,#0x08] ; 發(fā)送數(shù)據(jù)
MSEND_DTL1 LDR R1,[R0,#0x04]
ANDS R1,R1,#0x80
BEQ MSEND_DTL1
LDR R1,[R0,#0x08] ; 接收從機(jī)的數(shù)據(jù)
MOV PC,LR
;******************************************************************************
; 名稱:DELAYS
; 功能:軟件延時(shí)
; 入口參數(shù):無
; 出口參數(shù):無
; 占用資源:R7
;******************************************************************************
DELAYS
MOV R7,#0x00005F00 ; 延時(shí)參數(shù)
DELAYS_L1 SUBS R7,R7,#1 ; R7=R7-1
BNE DELAYS_L1 ; 判斷R7-1結(jié)果是否為0,若不為0則跳轉(zhuǎn)
MOV PC,LR ; 返回
ALIGN ; 數(shù)據(jù)字對(duì)齊
LTORG ; 聲明文字池
END
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -