• 用74HC165读8个按键状态(转)


    源:用74HC165读8个按键状态

    //--------------------------------------------------------------------------
    //来源:            http://hi.baidu.com/mculove/home
    //程序名称:        用74HC165读8个按键状态
    //晶振:            11.0592MHz;
    //MCU型号:        STC89C52RC;
    //电路板型号:    EBV-MV(51实验板);
    //--------------------------------------------------------------------------
    
    
    
    
    //--------------------------------------------------------------------------
    //硬件连接:
    //EBVn-[VCC]    ->    MVn-[--VCC--]
    //EBVn-[GND]    ->    MVn-[//GND//]
    //MVn-{EX3}-[Y0]    ->    MVn-{EX2}-[L1]
    //MVn-{EX3}-[Y1]    ->    MVn-{EX2}-[L2]
    //MVn-{EX3}-[Y2]    ->    MVn-{EX2}-[L3]
    //MVn-{EX3}-[Y3]    ->    MVn-{EX2}-[L4]
    //MVn-{EX3}-[Y4]    ->    MVn-{EX2}-[L5]
    //MVn-{EX3}-[Y5]    ->    MVn-{EX2}-[L6]
    //MVn-{EX3}-[Y6]    ->    MVn-{EX2}-[L7]
    //MVn-{EX3}-[Y7]    ->    MVn-{EX2}-[L8]
    //                     ->    MVn-{EX2}-(VCC)
    //                      ->    MVn-{EX3}-(VCC)
    
    //EBVn-[P10]        ->    MVn-{EX3}-[A]
    //EBVn-[P11]        ->    MVn-{EX3}-[B]
    //EBVn-[P12]        ->    MVn-{EX3}-[C]
    //EBVn-[P13]        ->    MVn-{EX3}-[G1]
    //--------------------------------------------------------------------------
    
    
    
    
    //--------------------------------------------------------------------------
    //实验结果:
    //控制74HC138的[A,B,C,G1]端口,使[Y0,Y1..Y7]输出预期的值,LED实现了流水灯显示
    //--------------------------------------------------------------------------
    
    
    
    //------------------------------------------------------
    //头文件;
    #include <AT89X52.H>
    
    #define HC165_nPL   P3_5
    #define HC165_CK    P3_6
    #define HC165_OUT    P3_7
    
    //------------------------------------------------------
    void delay(void)
    {
        unsigned char i,j;
        for(i = 250;i > 0;i--)
        for(j = 200;j > 0;j--);
    }
    
    unsigned char HC165(void)
    {
        unsigned char i;
        unsigned char Temp;
        HC165_CK = 1;
        HC165_nPL = 0;        //HC165读按键
        HC165_nPL = 1;        //暂停HC165读按键
        Temp = 0;
        if(HC165_OUT == 1) Temp |= 0x01;
        for(i = 0;i < 7;i++)
        {    
            HC165_CK = 0;  
            HC165_CK = 1;  
            Temp <<= 1;
            if(HC165_OUT == 1) 
            {
                Temp |= 0x01;
            }
        }
        HC165_CK = 0;
        return(Temp);
    }
     
    
    
    //------------------------------------------------------
    //程序入口;
    void main(void)
    {
        while(1)
        {
          P1 = HC165();
          delay();
        }
    }

     相关下载:KEIL原工程

  • 相关阅读:
    网络协议 19
    网络协议 18
    网络协议 17
    网络协议 16
    网络协议 15
    .NET基础知识(01)-值类型与引用类型
    .NET基础知识(02)-拆箱与装箱
    网络协议 14
    网络协议 13
    网络协议 12
  • 原文地址:https://www.cnblogs.com/LittleTiger/p/4603887.html
Copyright © 2020-2023  润新知