一、LED指示灯的基本控制

目录

备赛小tips:

概述

 一、LED指示灯的基本控制

1、74HC138 三八译码器

2、74HC573 锁存器

3、74HC02 或非门(与:*   |  或:+)

4、LED 跑马灯(如3)

5、建工程

6、程序基本设计 

 


备赛小tips:

1.熟悉板子上的各个模块,先分别实现各个模块的功能。这个直接搜b站搜小蜜蜂老师,一节课一节课跟着学,小蜜蜂老师yyds。这个阶段的时间控制在一个月以内,如果基础比较好半个月就够了。

2.花半个月的时间,把历年省赛题刷个遍。

3.积累客观题,这个多看看历年真题和网上的数模电基础知识就可以了,我当时大概有一周时间在准备这个。

概述

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAcXFfNTM4ODkxMzE=,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAcXFfNTM4ODkxMzE=,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAcXFfNTM4ODkxMzE=,size_20,color_FFFFFF,t_70,g_se,x_16watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAcXFfNTM4ODkxMzE=,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAcXFfNTM4ODkxMzE=,size_20,color_FFFFFF,t_70,g_se,x_16

 一、LED指示灯的基本控制

8路LED指示灯闪烁3遍然后熄灭,接着依次点亮LED指示灯,最后依次熄灭指示灯,程序循环实现上述功能。

1、74HC138 三八译码器

    4     2     1

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAcXFfNTM4ODkxMzE=,size_20,color_FFFFFF,t_70,g_se,x_16

2、74HC573 锁存器

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAcXFfNTM4ODkxMzE=,size_20,color_FFFFFF,t_70,g_se,x_16

 高:=中间线链接

 低:数据锁存

3、74HC02 或非门(与:*   |  或:+)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAcXFfNTM4ODkxMzE=,size_20,color_FFFFFF,t_70,g_se,x_16

WR低,Y4C高——>Y4低(138低有效)——>CBA=100(C为高位) 

4、LED 跑马灯(如3)

5、建工程

1、new project  1a94c15eb1af434cb736da54f73ad0e9.png  (新建文件夹)

2、AT89C52 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAcXFfNTM4ODkxMzE=,size_20,color_FFFFFF,t_70,g_se,x_16

3、output  HEX File9acf820ab0b4464fb7bcbde8341ac2bb.png

4、New watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAcXFfNTM4ODkxMzE=,size_8,color_FFFFFF,t_70,g_se,x_16    再保存0a9020f32edf4441a9b7b05a88c72915.png

5、add filewatermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAcXFfNTM4ODkxMzE=,size_16,color_FFFFFF,t_70,g_se,x_16

     

                  watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAcXFfNTM4ODkxMzE=,size_20,color_FFFFFF,t_70,g_se,x_16

6、程序基本设计 

1、测试灯(闪烁):

​
#include "reg52.h"

sbit HC138_A = P2^5;
sbit HC138_B = P2^6;
sbit HC138_C = P2^7;//定义引脚

void Delay(unsigned int t)//延时函数
{
	while(t--);
	while(t--);
}

void LEDRunning()
{
	HC138_C = 1;
	HC138_B = 0;
	HC138_A = 0;//选Y4:CBA = 100(C为高位);(Y4C得高)
	
	P0 = 0x00;//D1~8为低,LED点亮
	Delay(60000);
	Delay(60000);//延时
	P0 = 0xff;//D1~8为高,LED熄灭
	Delay(60000);
	Delay(60000);//延时
}

void main()//主函数
{
	while(1)
	{
		LEDRunning();
	}
}

​

为什么使用sbit:想独立使用 IO口,需先进行位定义,如:sbit P32=P3^2; 别忘了分号,之后就使用 P32 就代表 P3^2口了,^ 在 C语言里面是运算符,跟位定义冲突,所以,要先进行位定义,在程序里出现 ^ ,是 按位异或 运算。

2、完成题目:

#include "reg52.h"

sbit HC138_A = P2^5;
sbit HC138_B = P2^6;
sbit HC138_C = P2^7;//定义引脚

void Delay(unsigned int t)//延时函数
{
	while(t--);
	while(t--);
}

void LEDRunning()
{
	unsigned char i;
	
	HC138_C = 1;
	HC138_B = 0;
	HC138_A = 0;//选Y4:CBA = 100(C为高位);(Y4C得高)
	
	for(i = 0; i < 3; i++)//LED指示灯闪烁3遍,然后熄灭
	{
		P0 = 0x00;//D1~8为低,LED点亮
		Delay(60000);
		Delay(60000);//延时
		P0 = 0xff;//D1~8为高,LED熄灭
		Delay(60000);
		Delay(60000);//延时
	}
	
	for (i = 1; i <= 8; i++)//然后熄灭,接着依次点亮LED指示灯(i初始不能为0->移0位)
	{
		P0 = 0xff << i;//0xff:全灭(然后熄灭) 移1位,补充一个0(亮)......
		Delay(60000);
		Delay(60000);//延时
	}
	
	for (i = 1; i <= 8; i++)//最后依次熄灭指示灯
	{
		P0 = ~(0xff << i);//取反
		Delay(60000);
		Delay(60000);//延时
	}
	
}

void main()//主函数
{
	while(1)
	{
		LEDRunning();
	}
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行不地上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值