• HCTL-2016, HCTL-2017 AB Decoder


    HCTL2016 : Quadrature Decoder/Counter Interface ICs

    Agilent(Hewlett-Packard)

    HCTL-2016 Datasheet
    14MHz,
    16-bits up/down counter,
    Schmitt-trigger Input noise filter.
    Latch Output.

    Pinout A

    在这里插入图片描述HCTL-2016HCTL-2017
    HCTL2016P.H

    /***************************************************************************
    *   HCTL-2016 Encoder 16bit signed value as direction 
    */
    #ifndef __HCTL2016P_H__
     #define  __HCTL2016P_H__
        #include "BRD.H"
        sbit hw2016OE       = 0x80; 
        sbit hw2016Sel       = 0x83; 	
        sfr  hwEncoderBus = 0xA0; 
        int16_t  Read_HCTL2016(void);
    #endif
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    HCTL2016P.C

    #include "HCTL2016P.H"
    /***************************************************************************
    *   HCTL-2016 Make Sure bus stable 
    */
    void StabeRead( void)
    {
        unsigned char ucOld, ucNew;
        unsigned char i; 
    	for( i=200; i>0; i--)
    	 {
           ucOld = hwEncoderBus; 
    	   _nop_( );  
           _nop_( );
           _nop_( );
           ucNew = hwEncoderBus; 
           if ( ucOld == ucNew ) break; 
    	 }
    }
    
    /***************************************************************************
    *   Read HCTL-2016 16bits AB decode data
    *     SEL = 0  , Read 2016 High nibble data
    *     SEL = 1  , Read 2016 Low Nibble data
    */
     int16_t  Read_HCTL2016(void)
    {
        idata UnReg uiBuf;   
        EX0 = 0;                          // Disable Keyboard Interrupt
        hwEncoderBus =  0xFF;     
        hw2016Sel        =   0;      /* Read High Nibble */
        hw2016OE        =   0;      /* Lock HCTL-2016 */
        _nop_();     
        StabeRead( );       
        uiBuf.by[0]       =   hwEncoderBus;    
        hw2016Sel       =   1;       /* Read Low Nibble */
        _nop_(); 
        StabeRead( );    
        uiBuf.by[1]        =   hwEncoderBus;  
        hw2016OE        =   1;         /* Release HCTL-2016 */  
        uiBuf.by[1]     &=   0xFC;   /* Mask 4x as filter */
        hw2016Sel        =   0;     
        hwEncoderBus =  0xFF;   /* Relase Data Bus */
        _nop_();        
        EX0 = 1;                           // Enable Keyboard Interrupt     
        return(uiBuf.wd); 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46

    PS: 淘宝买了10个, 一半是坏的….
    之后还是弄一个ZIF测试先, 不行直接退, 东西有些贵, 还耗时间。

    HCTL2016 : Quadrature Decoder/Counter Interface ICs
    <备份> 资料, 仅供参考。
    数据剪辑自原厂Agilent(Hewlett-Packard)规格书, 版权归原所有人拥有。
    档案取自互联网!如有侵权或不适用情形, 请联系移除!
    ** 使用有风险, 请详阅原厂使用说明!
    ** 范例码为自用,请谨慎引用, Ctrl-C, Ctrl-V结果自行承担!
    #Blog转移
    #电子零件

  • 相关阅读:
    Request
    架构真题2017(五十三)
    大商创多用户商城系统 多处SQL注入漏洞复现
    Opencascade常用函数 更新中...
    PowerCLi 导入License到vCenter 7
    PCIe总线的序
    MAUI 框架开发 将 MAUI 嵌入到 WPF 控件里
    docker-compose的部署
    11.10 - 每日一题 - 408
    F. ATM and Students(思维 + 二分 + 线段树/RMQ)
  • 原文地址:https://blog.csdn.net/weixin_44679008/article/details/126521951