请教: 使用DS1302时钟,对读数据的子程序(画引号""的部分)有些疑惑,请看一下:
BITCNT DATA 30H ;数据位计数器 BYTECNT DATA 31H ;数据字节计数器 COMMAND data 32H ;命令字节地址 RCVDAT DATA 40H ;接受数据缓冲区 XMTDAT DATA 50H ;发送数据缓冲区
RST BIT P1.5 ;复位总线 IO BIT P1.6 ;数据传送总线 SCLK BIT P1.7 ;时钟控制总线
RECEIVE:/*读数据子程序*/ CLR RST NOP CLR SCLK NOP SETB RST NOP MOV A,COMMAND MOV BITCNT,#08H R_B0: ;写命令 RRC A MOV IO,C NOP SETB SCLK ;时钟上升沿发送 NOP CLR SCLK DJNZ BITCNT,R_B0 NOP R_B1: ;准备接受数据 CLR A CLR C MOV BITCNT,#08H R_B2: ;接收数据 NOP "MOV C,IO " ;数据总线上的数据传给C "RRC A " ;从最低位接收 "SETB SCLK" ;时钟总线置高 "NOP " "CLR SCLK " ;时钟下降沿接受数据 DJNZ BITCNT,R_B2 ;8位接收未完继续 MOV @R1,A INC R1 DJNZ BYTECNT,R_B1 NOP CLR RST RET 请教: MOV C,IO RRC A 这两句数据传送指令,是否应该放到 CLR SCLK,时钟下降沿的后面,才能接收数据? |