📄 max1247.asm
字号:
;本程序是用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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -