栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

蓝桥杯国信长天单片机--LED灯模块(五)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

蓝桥杯国信长天单片机--LED灯模块(五)

LED等内部连接示意图


整体思路
通过74HC138芯片及74HC02芯片输入高低电平,来控制Y4C为1或0。当Y4C为1时,方可通过P0端口来控制LED灯的亮灭。当Y4C为0时,无法控制LED灯的亮灭。如:令P27为1、P26为0、P25为0,则输出Y4为0,再通过74HC02芯片,将Y4为0输入,则Y4C输出为1。再通过P0为0xfe即Q8-Q1,为1111 1110,控制L1亮。也可令P0为0x00即Q8-Q1,为0000 0000,控制L1~L8同时亮。

LED控制步骤分解:
步骤一:
从CT107D单片机综合训练平台原理图中找到LED模块

根据原理图,我们可以知道,这一组发光二极管的阳极,已经给了一个高电平,所以只要我们在阴极给出一个低电平,就可以让二极管发光。
学过51的朋友都知道,要给出一个低电平,我们只需要令IO口为0,就可以了。即

P0 = 0x00; //点亮所有LED

但是呢,这一块板子,你直接令P0口为0,是无法点亮IO口的。在P0端口与发光二极管之间有一个芯片74HC573(锁存器)。模块详解查阅蓝桥杯国信长天单片机–原理图详解(四)
步骤二:
板子上有4片74HC573芯片,使能其中Y4C端口(设置高电平既可以控制该芯片),利用138译码器进行端口高低电平设置。


138译码器这里的作用是用P25,P26,P27,也就是P2口的高三位来控制位选的。

使能P27-p25 清零,再定位Y4C操作

P2 = P2 & 0x1F | 0x80; //P27-p25 清零,再定位Y4C
P2 &= 0x1F;            //P27-p25 清零

IO 编程点亮LED核心代码如下:

P2 = ((P2&0x1F)|0x80);
P0 = 0x00; //点亮所有LED
P2 = P2 & 0x1F;

案例:
LED闪烁

#include "reg52.h"  //定义51单片机特殊功能寄存器

//延时函数
void delay(void)
{
    unsigned char i,j,k;
    for(i=0; i<20; i++)
    {
        for(j=0; j<20; j++)
        {
            for(k=0; k<248; k++);
        }
    }
}
//主函数
void main(void)
{
    while(1)
    {
        P2 = ((P2&0x1f)|0x80);
        P0 = 0xff;  //LED熄灭
        P2 &= 0x1f;
        delay();

        P2 = ((P2&0x1f)|0x80);
        P0 = 0x00;  //LED点亮
        P2 &= 0x1f;
        delay();
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/738325.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号