您当前的位置:五五电子网电子知识单片机-工控设备源码-程序AVR单片机I/O口读74HC165接口程序 正文
AVR单片机I/O口读74HC165接口程序

AVR单片机I/O口读74HC165接口程序

点击数:7929 次   录入时间:03-04 11:41:32   整理:http://www.55dianzi.com   源码-程序

     AVR单片机I/O口读74HC165接口程序

    *******************************/

    #include

    #define SER_IN PD3

    #define SER_CK PB2

    #define SER_SL PB3

    uint16_t SerIn(void)

    {

    uint16_t ret=0,i;

    //数据锁存,在shift/load输入一脉冲

    PIO_CTL_PORT&=~_BV(SER_SL);

    __asm__ volatile("nop");

    __asm__ volatile("nop");

    PIO_CTL_PORT|=_BV(SER_SL);

    __asm__ volatile("nop");

    __asm__ volatile("nop");

    //读数据

    for(i=0;i<16;i++)

    {

    ret<<=1;

    if(PIND & _BV(SER_IN))

    ret|=1;

    PIO_CTL_PORT&=~_BV(SER_CK);

    __asm__ volatile("nop");

    PIO_CTL_PORT&=~_BV(SER_CK);

    PIO_CTL_PORT|=_BV(SER_CK);

    __asm__ volatile("nop");

    PIO_CTL_PORT&=~_BV(SER_CK);

    }

    PIO_CTL_PORT&=~_BV(SER_CK);

    return ret;

    }

    //IO初始化

    void IoInit(void)

    {

    //输入口初始化成高阻态

    DDRD&=~_BV(SER_IN);

    PORTD&=~_BV(SER_IN);

    //两个控制口初始化

    PORTB |= _BV(SER_SL);

    DDRB |= _BV(SER_CK)|_BV(SER_SL);

    //....其它初始化操作....

    }




本文关键字:单片机  程序  接口  源码-程序单片机-工控设备 - 源码-程序