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

📄 spi_test.#2

📁 练习C8051F310的SPI口数据通信.
💻 #2
字号:
 
 // 3线主方式或3线从方式

$include (C8051F310.inc)
    ORG 00H
    LJMP Main
	  ORG 0100H

Main:
    ANL PCA0MD,#0BFH    ; 关闭看门狗
    LCALL SYSCLK_Init
		LCALL Port_IO_Init
		LCALL SPI_Init

LOOP1:
		CLR SPIF
		MOV A,#05AH
		MOV SPI0DAT,A
		JNB SPIF,$
		CLR SPIF
 ;		ANL  SPI0CN,#00001111B
 ;		SETB SPIEN
    LCALL delay25ms
		CPL P0.6
		AJMP LOOP1


SYSCLK_Init:
		MOV CLKSEL,#000H    ; 使用内部振荡器
    MOV OSCICN,#083H    ; 允许内部振荡器,不分频,最高频率
		mov OSCXCN, #00H
		RET

Port_IO_Init:
    mov  XBR0,      #002h  ; SPI 连到端口引脚
    mov  XBR1,      #040h  ; 弱上拉允许,交叉开关允许
    MOV P0MDOUT,#01001111B      ; P2 推挽输出
		SETB P0.6
		ret

SPI_Init:
    mov  SPI0CFG,   #040h  ; 允许主方式,在SCK的第一个边沿采样数据,SCK在空闲时处于低电平
    mov  SPI0CN,    #001h
    mov  SPI0CKR,   #04H   ; 
		ret
	
delay25ms: 			mov    		r3,	#80          				      
delay25msa:   	mov      	r1,	#200        					;2     
delay25msb:   	mov      	r2,	#164        					;2
             		djnz  		r2,	$              				;2/3   		2+164*3+2=496  
             		nop                     						;1     		496+1=497
             		djnz  		r1,	delay25msb     				;2/3    	2+(497+3)*200+2=100004
        				djnz 			r3,	delay25msa           	;2/3      2+()*5+2=500024
             		ret                     						;1        500025     ;;;need 20MHz			
				

    END







⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -