spifram.asm
来自「于ADuC812的智能无功补偿控制器的研制 一种眼科B型超声诊断议 SL11R单」· 汇编 代码 · 共 101 行
ASM
101 行
;********************************************************************
;
; Author : ADI - Apps www.analog.com/MicroConverter
;
; Date : April '01
;
; File : SPIfram.asm
;
; Hardware : ADuC814
;
; Description : sends sample values via SPI to FRAM
;********************************************************************
$MOD814
SS EQU P3.5 ; P3.5 drives slave device's SS pin
CSEG
ORG 0050H ; locate code above interrupts
MOV RCAP2H,#0FFh ; config UART for 9600 baud
MOV RCAP2L,#-7 ;
MOV TH2,#0FFh
MOV TL2,#-7
MOV SCON,#52h
MOV T2CON,#34h
setb ss
mov cfg814,#01h
mov SPICON,#031H
CLR SS ; Set slave select low
MOV A,#00000110B ; write enable
MOV SPIDAT,A ; trigger data transfer
JNB ISPI,$
CLR ISPI
setb ss ; Complete transmission of op-code
NOP
NOP
NOP
clr ss ;
MOV A,#00000010b ; write data
MOV SPIDAT,A ; trigger data transfer
JNB ISPI,$
CLR ISPI
MOV A,#00h
MOV SPIDAT,A ; trigger data transfer
JNB ISPI,$
CLR ISPI
MOV A,#00h ; start at address 0000h
MOV SPIDAT,A ; trigger data transfer
JNB ISPI,$
CLR ISPI
MOV R0,#00H ; clear R0
loop: MOV A,R0 ; send test value
MOV SPIDAT,A ; trigger data transfer
JNB ISPI,$
CLR ISPI
INC R0
CJNE R0,#20,loop ; Loop till 20 values sent
SETB SS ; finish write sequence
NOP
NOP
NOP
CLR SS
MOV A,#00000011b ; READ data
MOV SPIDAT,A ; trigger data transfer
JNB ISPI,$
CLR ISPI
MOV A,#00h
MOV SPIDAT,A ; trigger data transfer
JNB ISPI,$
CLR ISPI
MOV A,#00h ; start at address 0000h
MOV SPIDAT,A ; trigger data transfer
JNB ISPI,$
CLR ISPI
loop2: MOV A,#00h ; generate clocks for reception
MOV SPIDAT,A
JNB ISPI,$
CLR ISPI
mov A,SPIDAT
CALL SENDVAL
CJNE A,#19,loop2
exit: jmp $
$INCLUDE(UARTIO.ASM)
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?