8051 vusb Tx实现

发布者:幸福旅程最新更新时间:2024-07-23 来源: cnblogs关键字:vusb 手机看文章 扫描二维码
随时随地手机看文章

    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

[1] [2] [3]
关键字:vusb 引用地址:8051 vusb Tx实现

上一篇:基于8051内核的实验—流水灯
下一篇:ubuntu 8051 数码管

推荐阅读最新更新时间:2024-11-13 14:19

18位AD7674与C8051F060之间并口通信的接口电路设计
AD7674能提供3种不同转换速率工作方式,以便对不同的具体应用优化性能。这3种工作模式如下:WARP,允许采样率高达800 kHz。然而在这种模式下只有当转换之间的时间不超过1ms 时,才能保证其转换的精度。如果连续两次转换之间的时间大于1 ms,第一次转换的结果就会被忽略,这种模式适合于要求快速采样率的应用。NORMAL,这种模式的采样率为666 kHz,在这种模式下对采样转换之间的时间没有限制,既可保证高的转换精度又可确保快速的采样速率。IMPULSE,一种低功耗模式,其采样率为570 kHz。 只用1块C8051F060芯片即可完成单片机8051的各种控制,多路A/D 转换和D/A 转换,I2C、SPI 数据总线传输,
[单片机]
18位AD7674与C<font color='red'>8051</font>F060之间并口通信的接口电路设计
8051单片机实战分析(以STC89C52RC为例) | 09 - LED点阵显示数字
1 LED点阵 LED 点阵是由发光二极管排列组成的显示器件,在我们日常生活的电器中随处可见,被广泛应用于汽车报站器,广告屏等。 通常应用较多的是 8* 8 点阵,然后使用多个 8 * 8 点阵可组成不同分辨率的 LED点阵显示屏,比如 16* 16 点阵可以使用 4 个 8* 8 点阵构成。因此理解了 8* 8LED点阵的工作原理,其他分辨率的 LED 点阵显示屏都是一样的。这里以 8* 8LED 点阵来做介绍。 工作原理: 8* 8 点阵共由 64 个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置 1 电平(行所接的是二极管的阳极,所以为高电平),某一列置 0 电平(列所接的是二极管的阴
[单片机]
<font color='red'>8051</font>单片机实战分析(以STC89C52RC为例) | 09 - LED点阵显示数字
通过利用C8051F020单片机实现立体声信号相位差电平差测试仪的设计
将LR立体声信号经频谱分析、整形及占空比检测电路进行处理,采用过零鉴相法,通过测矩形波占空比,实现相位差的测试。将LR信号用AD736专用芯片实现AC/DC转换,通过单片机编程,得到LR电平差。 在立体声播音或放音时,如果左右声道信号存在相位差和电平差,对播音或放音质量将会产生一定影响,出现声像漂移、音量减小、噪音增大和失真等故障现象。左右声道相位差电平差越大,音质也越差,严重时还会造成无音故障。 为此文中设计了立体声信号相位差电平差测试仪,只有准确测出相位差电平差,再用补偿电路进行修正,才能保证播音或放音质量,更好地满足人们欣赏到音质优美的广播或音乐的需要。 1 设计方案 如图1所示,是立体声信号相位差电平差测试仪原理方
[单片机]
通过利用C<font color='red'>8051</font>F020单片机<font color='red'>实现</font>立体声信号相位差电平差测试仪的设计
C8051F系列单片机系统的各部位功耗分析
在控制终端系统设计中,当系统要求整体功耗偏低时,C8051F系列单片机是一个最佳的选择。它们拥有灵活的时钟硬件,使系统能够方便地在高效运作模式与低功耗模式问进行转换,智能的电源管理模式能够在正常工作及待机状态自由切换,从而降低整个系统的能量损耗;当工作频率低于10kHz时,时钟丢失检测器(MCD)能够引发系统产生复位,确保系统工作的安全可靠。 1 C8051F各部分组件的功耗 当一个系统对功耗要求严格时,可以在硬件电路建立前首先粗略计算一下整个系统所需的功耗。由于C8051F系列单片机为数模混合SOC系统,能够实现整个设计的大部分功能,因此整个设计系统的功耗将主要集中在C805IF系列单片机的能量消耗上。 整个单片机系统的功耗
[单片机]
基于C8051F单片机信号发生器设计与应用
1 引言 在实际的弹道加速度测试中,需要产生许多波形曲线用来验证,而能够产生任意波形的信号发生器价格昂贵,不适合工程实际的需求.通过设计产生的信号发牛装置,不仅成本低,而且功能强大,可以产生满足各种需要的信号。C8051Fxxx系列单片机是完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容。除了具有标准8052的数字外设部件之外,片内还集成了数据采集和控制系统中常用的模拟部件和其它数字外设及功能部件;内置FLASH程序存储器、内部RAM,大部分器件内部还有位于外部数据存储器窄间的RAM,即XRAM。数模混合的高度集成使得该单片机系统IJ以方便实现数控及简单信号处理等功能。C8051F121
[单片机]
基于C<font color='red'>8051</font>F单片机信号发生器设计与应用
基于CPLD芯片和C8051F020实现声探测系统数字电路的设计
被动声源探测定位技术是一种利用声学传声器阵列和电子装置接收运动目标的辐射噪声,以确定目标所处位置的技术。 本文正是基于声探测技术原理和成熟的微电子技术, 采用TI公司的32位浮点DSP芯片TMS320VC33-150来实现声源目标的探测定位算法,并辅之以ADC、CPLD、单片机等器件来实现声源信号的采集、系统逻辑控制以及通信功能。对于数字电路的逻辑控制功能,本文选用了Altera公司的CPLD芯片EPM7128AETC100-10来实现。该芯片功耗低、资源丰富、内部延时固定,有助于时序逻辑电路的设计。本系统主要分为两部分:声探测系统数字电路的硬件实现和DSP软件设计。系统现已完成调试,运行稳定,探测效果较好。 系统功能 声
[单片机]
基于CPLD芯片和C<font color='red'>8051</font>F020<font color='red'>实现</font>声探测系统数字电路的设计
基于C8051F的恒温箱控温系统
引 言 恒温箱根据控制温度可分为低温(室温以下)恒温箱和高温(室温以上)恒温箱 ,加热控制恒温箱是高温恒温箱的一种,在工业、医疗以及科研实验中有广泛的应用。在一些特殊的恒温箱控制系统中,对温度测量、控制的精度要求非常高,本测控系统测温范围在18℃到60℃之间,测温精度要求优于±0.05℃。采用DSP、ARM等32位CPU可实现实时处理等较高的要求,但普通的控制系统中DSP、ARM的很多资源不能利用,造成资源的浪费、“大才小用”。随着微电子技术的快速发展,单片机的数据处理能力和功能得到了极大地提高,因此设计一个由高速单片机控制的高精度、结构简单并且成本低的温度控制系统有着重要的实际意义和应用价值。 1 恒温箱控温原理 本系统以铂电阻
[单片机]
基于C<font color='red'>8051</font>F的恒温箱控温系统
基于C8051F320的新型嵌入式超声波测距系统
0引言 在工业测距场合中,由于工作要求和复杂环境常常采用非接触测距的方法。激光、红外线和超声波是非接触测距中较常采用的测量介质。激光测距虽然测距精度高,操作简单,但是受环境的影响比较大,且系统检测不易维护,价格也比较昂贵。 红外测距易受环境光照度和光线色彩的影响,而且测量精度不高。相比较前两者,超声波是机械波,具有不受光线影响,不受电磁干扰,成本低等特点,能够定点和连续测量物位,在有灰尘、烟雾、有腐蚀等恶劣环境下具有较好的适应能力,广泛应用于物位测量、机械手控制、倒车雷达、机器人避障以及其他一些工业现场等方面。因此,近些年来,人们对超声测距进行了很多的探讨和研究。目前所研究的超声波测距传感器测距范围普遍较小,线性度和重复性较差
[单片机]
基于C<font color='red'>8051</font>F320的新型嵌入式超声波测距系统
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved