void SPI_Write(uchar dat)
{
uchar i;
CLK = 0;
for(i=0; i<8; i++)
{
DIN = dat >> 7;
dat <<= 1;
CLK = 0;
CLK = 1;
}
}
DIN=P3.4,CLK=P.36
AD转换里面的一个写操作,dat>>7那边我没法放到DIN,因为汇编里只能用SETB和CLR对P3.4进行定义
DIN EQU P3.4
CLK EQU P3.6
SPI_WRITE:
CLR CLK
MOV R2,#8
LOOP:
MOV R3,#7
LOOP1:
RR A
DJNZ R3,LOOP1
MOV C,ACC.0
MOV DIN,C
RL A
CLR CLK
SETB CLK
DJNZ R2,LOOP
RET
CLK EQU P3.6
SPI_WRITE:
CLR CLK
MOV R2,#8
LOOP:
MOV R3,#7
LOOP1:
RR A
DJNZ R3,LOOP1
MOV C,ACC.0
MOV DIN,C
RL A
CLR CLK
SETB CLK
DJNZ R2,LOOP
RET
温馨提示:答案为网友推荐,仅供参考