zoukankan      html  css  js  c++  java
  • 【蓝桥杯单片机02】LED的基本控制

    【蓝桥杯单片机02】LED的基本控制

    广东职业技术学院  欧浩源

        在CT107D单片机综合训练平台实现LED的基本控制和其他单片机开发平台不一样,不单单是控制几个LED实现跑马灯这么简单。因为在这个平台上要掌握74CH138译码器和74HC573锁存器的使用才能实现对LED的基本控制。因此,这个单元的重点不是LED的控制,而是掌握译码器和锁存器的基本使用。
    1、74HC138:三八译码器
        用非专业的语言来解释,这个芯片实现的功能就是用3个输入引脚,实现8个输出引脚,而且这个八个输出引脚中只要一个低电平。对于这个芯片,你不需要搞清楚它的内部结构和工作原理,只需要把真值表记住就行了。注意:是要记住。

    2、74HC573:锁存器
        用非专业的语言来解释,锁存器就是能够把输出的数据保存住,不会受到输入变化的影响。
    573锁存器有20个引脚,D1~D8是数据输入端,Q1~Q8是数据输出端,LE为锁存控制端。当锁存使能端LE为高时,573的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。
        简单的说就是,LE为高电平时,Q1~Q8输出和D1~D8输入是一样的;LE为低电平时,Q1~Q8输出不受D1~D8输入的变化影响。明白这个就掌握了该锁存器的使用。
    3、74HC02:或非门
       从电路原理图上可以分析出,单片机的WR引脚或者GND和译码器的Y4引脚作为74HC02的输入。可以通过J13的跳帽选择是WR还是GND作为74HC02的输入。如果译码器的Y4输出低电平,那么74HC02的输出Y4C将为高电平,而该引脚接到74HC573锁存器LE引脚,这时候锁存器处于数据联通的开放状态,也就是单片机可以控制LED灯。如果单片机不向外设输出数据,或者译码器的Y4没有输出低电平的话,则74HC573处于锁存状态,即单片机不能控制LED灯。
    4、单元训练题目

    5、参考源码

    #include "reg52.h"  
    
    sbit HC138_A = P2^5;        
    sbit HC138_B = P2^6;        
    sbit HC138_C = P2^7;        
    
    void Delay(unsigned int time)
    {
            while(time--);
            while(time--);
    }
    /*=======================================================
    *通过HC138译码器控制HC573锁存器
    *参数:n--HC138译码器低电平引脚
             4:Y4输出低电平
             5:Y5输出低电平
             6:Y6输出低电平
             7:Y7输出低电平
             8:Y4~Y7全部输出高电平
    *·返回值:无。
    *设计:欧浩源  广东职业技术学院 & 小蜜蜂科教
    *时间:2018年1月26日
    =======================================================*/
    void Init74HC138(unsigned char n)
    {
            switch(n)
            {
                    case 4:
                            HC138_A = 0;
                            HC138_B = 0;
                            HC138_C = 1;
                            break;
                    case 5:
                            HC138_A = 1;
                            HC138_B = 0;
                            HC138_C = 1;
                            break;
                    case 6:
                            HC138_A = 0;
                            HC138_B = 1;
                            HC138_C = 1;
                            break;
                    case 7:
                            HC138_A = 1;
                            HC138_B = 1;
                            HC138_C = 1;
                            break;
                    case 8:
                            HC138_A = 0;
                            HC138_B = 0;
                            HC138_C = 0;
                            break;
            }
    }
    
    void LEDRunning()
    {
            char i = 0;
    
            P0 = 0xaa;
            Delay(60000);
            Delay(60000);
            P0 = 0x55;
            Delay(60000);
            Delay(60000);
            
            for(i = 0; i < 3; i++)
            {
                    P0 = 0x00;
                    Delay(60000);
                    P0 = 0xff;
                    Delay(60000);
            }
            for(i = 0; i < 8; i++)
            {
                    P0 <<= 1;
                    Delay(60000);
            }
            for(i = 0; i < 8; i++)
            {
                    P0 <<= 1;
                    P0 |= 1;
                    Delay(60000);
            }
    }
    
    main()
    {
            Init74HC138(4);                                
            while(1)
            {
                    LEDRunning();                                
            }
    }
  • 相关阅读:
    Postgresql HStore 插件试用小结
    postgres-xl 安装与部署 【异常处理】ERROR: could not open file (null)/STDIN_***_0 for write, No such file or directory
    GPDB 5.x PSQL Quick Reference
    postgresql 数据库schema 复制
    hive 打印日志
    gp与 pg 查询进程
    jquery table 发送两次请求 解惑
    python 字符串拼接效率打脸帖
    postgresql 日期类型处理实践
    IBM Rational Rose软件下载以及全破解方法
  • 原文地址:https://www.cnblogs.com/ALittleBee/p/8359701.html
Copyright © 2011-2022 走看看