小蜜蜂单片机——实现蜂鸣器与继电器的基本控制

首先让8路led指示灯闪烁3遍后熄灭,接着依次点亮led指示灯,继电器吸合一会后断开,然后依次熄灭led指示灯,蜂鸣器鸣叫一会后关闭,程序循环实现上述功能。

在上次学的led跑马灯的基础上改

#include "reg52.h"

sbit HC138_A = P2^5;
sbit HC138_B = P2^6;
sbit HC138_C = P2^7;	//注意是P2

void delay(unsigned int t)
{
   
  while(t--);
  while(t--);
}


void ledrunning ()
{
   
  unsigned char i;
  HC138_C=1;
  HC138_B=0;
  HC138_A=0;   //Y4输出低电平

  for(i=0;i<3;i++)		   //闪烁3遍熄灭
  {
   
    P0 = 0x00;
	delay(60000);
	delay(60000);
	P0 = 0xff;
	delay(60000);
	delay(60000);
  }

  for(i=1;i<=8;i++)				  //led依次点亮
  {
    P0=0xff << i;
  delay(60000);
  }
  
  
  for(i=1;i<=8;i++)				   //led依次熄灭
  {
    P0=-(0xff << i);
  delay(60000);
  }
}

void main()
{
    
  while (1)
  {
    
     ledrunning();
  }
  }

根据题目继电器要吸合然后断开,看电路图:
U9锁存器蜂鸣器
38译码器
继电器
hc02
当N RELAY是低电平时继电器吸合,而N RELAY对应的是U9锁存器的P04口,因为N RELAY低电平有效,所以OUT5要输出0,对应的IN5要输入1,所以D5(P04口)必须是高电平。
而要想寄存器有效,则其选通端LE必须接1,即Y5C=1,那么Y5=0,对应的38译码器的输入应是101。

#include "reg52.h"

sbit HC138_A = P2^5;
sbit HC138_B = P2^6;
sbit HC138_C = P2^7;	//注意是P2

void delay(unsigned int t)
{
   
  while(t--);
  while(t--);
}


void ledrunning ()
{
   
  unsigned char i;
  HC138_C=1;
  HC138_B=0;
  HC138_A=0;   //Y4输出低电平

  for(i=0;i<3;i++)		   //闪烁3遍熄灭
  {
   
    P0 = 0x00;
	delay(60000);
	delay(60000);
	P0 = 0xff;
	delay(60000);
	delay(60000);
  }

  for(i=1;i<=8;i++)				  //led依次点亮
  {
    P0=0xff << i;
  delay(60000);
  }
  HC138_C=1;
  HC138_B=0;
  HC138_A=1;      //Y5输出1,,选中锁存器U9
  P0=0x10;        //P04口为高电平
  delay(60000);    //保持一段时间
  P0=0x00;        //断开继电器
  
  for(i=1;i<=8;i++)				   //led依次熄灭
  {
    P0=-(0xff << i);
  delay(60000);
  }
}

void main()
{
    
  while (1)
  {
    
     ledrunning
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值