蓝桥杯单片机学习笔记2--蜂鸣器和继电器基本控制

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

//最简版本
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char

void delay(uint t)       //延时函数
{
  while(t--);
    while(t--);
}

void InitHC138(uchar n)   //138锁存器选择函数
{ 
 switch(n)
 {
  case 4:P2=(P2 & 0x1f) | 0x80;	 break;
  case 5:P2=(P2 & 0x1f) | 0xa0;	 break;
  case 6:P2=(P2 & 0x1f) | 0xc0;	 break;
  case 7:P2=(P2 & 0x1f) | 0xe0;	 break;
 }//原理后文讲解
}

void OutPutP0(uchar channel,uchar dat)  //P0口输出函数
{
 InitHC138(channel);
 P0=dat;
}

void LEDrunning()
{  
  unsigned char i;
	
 InitHC138(4);      //Y4输出低电频

 for(i=3;i>0;i--)
 {
  OutPutP0(4,0x00);
	delay(60000);
	delay(60000);
	OutPutP0(4,0xff);
	delay(60000);
	delay(60000);
}

    InitHC138(5);	   //Y5输出低电频

OutPutP0(5,0x40);	
	delay(60000);
	delay(60000);
  OutPutP0(5,0x00);

 InitHC138(4);         //Y4输出低电频

  for(i=1;i<=8;i++)
  {
   OutPutP0(4,~(0xff<<i));
	delay(60000);
	delay(60000);
  }

  InitHC138(5);	       //Y5输出低电频

		OutPutP0(5,0x40);
	delay(60000);
	delay(60000);
    	OutPutP0(5,0x00);

}



void InitSystem()          //初始化函数--关闭无关设备蜂鸣器
{
    InitHC138(5);	      //Y5输出低电频

	OutPutP0(5,0x00);
}

 void main()
 {InitSystem();
  while(1)
  {
	LEDrunning();
  }
 }

版权声明:本文为CSDN博主「私は受験する重今の男」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_53090305/article/details/121964691

生成海报
点赞 0

私は受験する重今の男

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

DS1302详解(蓝桥杯单片机模块)

特性 实时时钟计算秒、分、小时,日期,月,日、周,年与闰年赔偿有效期至2100年31 x 8支持电池的通用RAM2.0V至5.5V都可运行在2.0V时使用小于300nA电流单字节或多字节

AT24C02详解(蓝桥杯单片机模块(IIC总线))

特性 256 x 8 (2K) IIC接口、施密特触发器、噪声抑制 用于硬件数据保护的写保护引脚 8字节页(1K, 2K) 允许部分页写 写周期(最大5ms) 描述 AT24C02提供2048位的电可擦和可编程只读存储器(EEPROM)

蓝桥杯实用小技巧

前言 本文主要给大家介绍蓝桥杯的两个小技巧 一、定时器代码生成 把TF00改成EA0和ET00即可。 二、数码管断码获取 这里的数码管断码是共阴的断码,而我们使用的单片机采用的是共阳的断码,所以想使用这个断码的