⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spifram.asm

📁 aduc814的汇编程序例子
💻 ASM
字号:
;********************************************************************
;
; 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -