max1247.asm

来自「SPI接口的12位AD转器的收发子程序(51汇编)」· 汇编 代码 · 共 53 行

ASM
53
字号
;本程序是用AT89C51的GPIO和MAX1247接口的模拟SPI收发子程序,SPI接口的三根线DO、CLK、DI以及
;片选线CS可选用P1或P3口的任意口线,收发程序实际运行正确。
SEND1247: 					;发送命令字子程序(A中为要发送的命令)
		MOV ROTCOUNT,#08H
		CLR DO
		CLR CS 				;将CS变低
ROT_NEXT:
		NOP
		NOP
		CLR CLK 			;将CLK变低
		RLC A 				;移出第一位
		MOV DI,C
		SETB CLK 			;发送第一位
		DJNZ ROTCOUNT,ROT_NEXT
		NOP
		CLR CLK 			;启动转换
		SETB CS 			;将片选拉高
		RET
		
RECDATA: 					;数据接收子程序
		CLR DI
		CLR CS 				;将片选拉低
		NOP
		NOP
		SETB CLK
		MOV ROTCOUNT,#08H
REC1_NEXT:
		CLR CLK 			;发送下降沿
		NOP
		NOP
		MOV C,DO 			;移入数据
		RLC A
		SETB CLK
		NOP
		DJNZ ROTCOUNT,REC1_NEXT
		MOV H8BIT,A 			;保存接收到的高位数据
		NOP
		MOV ROTCOUNT,#08H 	;为接收作准备
REC2_NEXT:
		CLR CLK 			;发下降沿
		NOP
		NOP
		MOV C,DO
		RLC A
		SETB CLK
		NOP
		DJNZ ROTCOUNT,REC2_NEXT
		SETB CS
		MOV B,A
		MOV A,H8BIT 					;出口:A:存高8位,B:存低8位
		MOV ADRAMH,A
		MOV ADRAML,B
		RET

⌨️ 快捷键说明

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