;*从BC728X接收一个字节子程序,接收到的数据存于 DATA IN 冰水冰水水冰冰水水冰水水水水水水水冰水水冰水水水水水水求水冰水冰水水本*水水水水冰水冰本水水冰水水水*水 RECEIVE CLR CLK 发出一CLK脉冲 SETB CLK WAIT JB DAT, WAIT3 等待DAT低电平响应信号 CLR CLK 再发出一CLK脉冲,准备接收数据 SETB CLK MOV BIT COUNT, #8 RECV LOOP NOP 短暂延时 NOP NOP NOP NOP MOV A, DATA IN MOV C DAT 读入一位 RLC A MOV DATA IN A CLR CLK 发出CLK脉冲 SETB CLK DJNZ BIT COUNT, RECV LOOP XSSHJ MOV RO. #30H MOV R1.#10H MOV 41H #OOH MOv DPTR, #CCQ BACK3 MOV DATA OUT, #15H HEX译码指令 LCALL SEND MOV A DPH ANL A #OFOH 取键码的低4位 SWAP A ADD A 41H MOV DATA OUT. a ;在第0位显示 LCALL SEND MOV A 41H ADD A#1oH MOV 41H.A MOV DATA OUT, #15H HEX译码指令9 ;* 从 BC728X 接收一个字节子程序,接收到的数据存于 DATA_IN ;************************************************************* RECEIVE: CLR CLK ;发出一 CLK 脉冲 SETB CLK WAIT3: JB DAT,WAIT3 ;等待 DAT 低电平响应信号 CLR CLK ;再发出一 CLK 脉冲,准备接收数据 SETB CLK MOV BIT_COUNT,#8 RECV_LOOP: NOP ;短暂延时 NOP NOP NOP NOP NOP NOP NOP MOV A,DATA_IN MOV C,DAT ;读入一位 RLC A MOV DATA_IN,A CLR CLK ;发出 CLK 脉冲 SETB CLK DJNZ BIT_COUNT,RECV_LOOP RET XSSHJ: MOV R0,#30H MOV R1,#10H MOV 41H,#00H MOV DPTR,#CCQ BACK3: MOV DATA_OUT,#15H ;HEX 译码指令 LCALL SEND MOV A,DPH ANL A,#0F0H ;取键码的低 4 位 SWAP A ADD A,41H MOV DATA_OUT,a ;在第 0 位显示 LCALL SEND MOV A,41H ADD A,#10H MOV 41H,A MOV DATA_OUT,#15H ;HEX 译码指令