rs_usb.c

来自「Example codes for ADuC842 CPU family」· C语言 代码 · 共 73 行

C
73
字号
#include "rs_usb.h"



void DelayUs(unsigned char count) {
	#pragma asm
Jump_DelayUs:
		DJNZ R7,Jump_DelayUs
	#pragma endasm
}



signed int ReadByte(void) {
	#pragma asm
		CLR DSR_USB
		MOV R7,#0xFF
		MOV R6,#0x08
Wait_Start:
		MOV C,RxD_USB
		JNC Read_0
		DJNZ R7,Wait_Start
		SETB DSR_USB
		MOV R6,#0xFF
		MOV R7,#0xFF
		JMP Read_End
Read_0:
		CLR A	
Read_1:
		NOP	
		NOP	
		NOP	
		MOV C,RxD_USB
		RLC	A
		DJNZ R6,Read_1
		MOV R6,#0x08
		SETB DSR_USB
Read_2:
		RRC A
		XCH A,R7
		RLC A
		XCH A,R7
		DJNZ R6,Read_2
		MOV R6,#0x00
Read_End:
	#pragma endasm
}



void SendByte(unsigned char data_byte) {
	#pragma asm
		CLR TxD_USB
		MOV	C,EA
		RLC	A
		MOV	R5,A
		CLR EA
		MOV R6,#0x08
Jump:
		MOV A,R7  //data_byte
		RRC A
		MOV R7,A
		MOV (0xB0.4),C
		NOP
		DJNZ R6,Jump
		SETB TxD_USB
		MOV A,R5
		RRC	A
		MOV EA,C
	#pragma endasm
}

⌨️ 快捷键说明

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