mov R7, #06h // bit suffing 计数值还原 --2cycle [33]
mov r2, tx_next //下一byte数据存到r2 --2cycle [35]
L_Bit4_Begin:
rrc a // bit0 -> СC.C --1cycle [36]
jc L_Bit4_Idle // if CС.C = 1 电平保持不变 否则翻转 --3cycle [39]
XRL P0,#03H // 翻转 D+ & D- --3cycle [42] ->11
mov R7, #06h // bit suffing 计数值还原 --2cycle [44]
nop // --1cycle [45]
L_Bit5_Begin:
rrc a // bit0 -> СC.C --1cycle [46]
jc L_Bit5_Idle // if CС.C = 1 电平保持不变 否则翻转 --3cycle [49]
XRL P0,#03H // 翻转 D+ & D- --3cycle [52] ->10
mov R7, #06h // bit suffing 计数值还原 --2cycle [54]
nop // --1cycle [55]
L_Bit6_Begin:
rrc a // bit0 -> СC.C --1cycle [56]
jc L_Bit6_Idle // if CС.C = 1 电平保持不变 否则翻转 --3cycle [59]
XRL P0,#03H // 翻转 D+ & D- --3cycle [62] ->10
mov R7, #06h // bit suffing 计数值还原 --2cycle [64]
nop // --1cycle [65]
L_Bit7_Begin:
rrc a // bit0 -> СC.C --1cycle [66]
jc L_Bit7_Idle // if CС.C = 1 电平保持不变 否则翻转 --3cycle [69]
XRL P0,#03H // 翻转 D+ & D- --2cycle [72] ->10
mov R7, #06h // bit suffing 计数值还原 --2cycle [74]
L_Check_End: //
mov a, r2 //取数据 --1cycle [75]
djnz r6, L_Bit0_Begin //如果数据未发完继续,否则进入TX_end --3cycle [78]
jmp L_Tx_End // --3cycle [81]
L_Tx_End: //
nop // [81]
nop // [82]
nop // [83]
nop // [84]
MOV P0, #00h // EOP --2cycle
nop
nop
nop
nop
nop // 5
nop
nop
nop
nop
nop // 10
nop
nop
nop
nop
nop // 15
nop
nop
nop
nop
nop
// Open_interrupt
mov P0, #02h //21
mov P0DIR, #03h // D+ & D- input
ret
// a里面存正在发送的数据,r0为要发送数据指针,r6为未发送计数值 r7为bit_suffing计数值
// r1里面缓存下一个要发送的数据
usb_tx:
// USING 2
close_interrupt
MOV P0, #02h ; EOP后, D+ = 0 D- = 1;
MOV P0DIR, #00h
mov r7, #08h
tx_delay:
nop
nop
djnz r7, tx_delay
MOV r7, #06h
MOV r0, usb_tx_buffer_pointer+02h
mov r6, usb_tx_count
mov a, @r0
mov r1, pfix_nop+02h //R1指向寄存器B的地址,无实际意义,目的是通过inc/dec @r1指令替换两条nop指令,以减小code size
jmp L_Bit0_Begin
; END OF usb_tx
END
上一篇:基于8051内核的实验—流水灯
下一篇:ubuntu 8051 数码管
推荐阅读最新更新时间:2024-11-13 14:19
设计资源 培训 开发板 精华推荐
- 340g
- AM1D-0505D-RZ ±5V 1 瓦 DC/DC 转换器的典型应用
- NCS36510GEVK:适用于 2.4 GHz IEEE 802.15.4-2006 应用评估套件的低功耗片上系统
- LT1585CM 4.6A 低压差稳压器的典型应用
- LDK120M-R ADJ低压降稳压器的典型应用(D版)电路
- FRDM-KW019032: 面向Kinetis® KW0x的Freedom开发板
- AD587KRZ 低功耗电压基准、12 位 CMOS DAC 应用的典型应用电路
- LTC1732-4/4.2 的典型应用 - 锂离子线性电池充电器控制器
- 使用 Analog Devices 的 LTC2908CDDB-B1 的参考设计
- OP113ESZ-REEL7精密K型热电偶放大器典型应用