蓝桥杯之单片机学习(二)——蜂鸣器与继电器的基本控制

简介: 蓝桥杯之单片机学习(二)——蜂鸣器与继电器的基本控制

一、训练任务


在CT107D单片机综合训练平台上实现LED的基本控制,首先让8路LED指示灯闪烁3遍然后熄灭,接着依次点亮LED指示灯,继电器吸合一会儿后断开,然后依次熄灭LED指示灯,蜂鸣器鸣叫一会儿后关闭,程序循环实现上述功能。

对程序进行进一步优化


二、原理简绍


2.1 原理图


0a2653c851af460fa595bd959398a8f1.png


2.2 ULN2003


注意是:非门


三、代码展示


#include "reg52.h"
//引入51头文件
typedef unsigned int uint;
typedef unsigned char uchar;
//重命名
sbit HC138_A = P2^5;
sbit HC138_B = P2^6;
sbit HC138_C = P2^7;
//sbit定义特殊功能寄存器的位变量
//定义好P25\P26\P27三个地址
//定义延时函数
void Delays(uint t)
{
  while(t--);
  while(t--);
}
void InitHC138(uint n)
{
  switch(n)
  {
  case 4:
    HC138_C = 1;
    HC138_B = 0;
    HC138_A = 0;
  break;
  case 5:
    HC138_C = 1;
    HC138_B = 0;
    HC138_A = 1;
  break;
  case 6:
    HC138_C = 1;
    HC138_B = 1;
    HC138_A = 0;
  break;
  case 7:
    HC138_C = 1;
    HC138_B = 1;
    HC138_A = 1;
  break;
  }
}
void OutPutP0(uint n, uchar dat)
{
  InitHC138(n);
  P0 = dat;
}
void LEDRuning()
{
  uint i;
  for(i = 0; i < 3; i++)
  {
  OutPutP0(4,0x00);
  Delays(60000);
  Delays(60000);
  OutPutP0(4,0xff);
  Delays(60000);
  Delays(60000);
  }
  for(i = 1; i <= 8; i++)
  {
  P0 = 0XFF << i;
  Delays(60000);
  Delays(60000);
  }
  OutPutP0(5,0x10);
  Delays(60000);
  Delays(60000);
  OutPutP0(5,0x00);
  for(i = 1; i <= 8; i++)
  {
  OutPutP0(4,~(0XFF << i));
  Delays(60000);
  Delays(60000);
  }
  OutPutP0(5,0x40);
  Delays(60000);
  Delays(60000);
  OutPutP0(5,0x00);
}
void Initsys()
{
  HC138_A = 1;
  HC138_B = 0;
  HC138_C = 1;
  P0 = 0X00;
}
void main()
{
  while(1)
  {
    Initsys();
    LEDRuning();
  }
}
相关文章
|
4月前
蓝桥杯之单片机学习(终)——关于之前文章的错误及更正(附:第十四届蓝桥杯单片机赛题)
蓝桥杯之单片机学习(终)——关于之前文章的错误及更正(附:第十四届蓝桥杯单片机赛题)
|
5月前
|
物联网 Linux 芯片
学习嵌入式是选择单片机还是Linux?
单片机通常指的是一种集成了处理器、存储器和各种外设接口的微控制器芯片,常见的有STC、51系列、AVR、ARM Cortex-M等。单片机具有低成本、低功耗、实时性强等特点,适用于对资源要求较低、功耗要求较低、实时性要求较高的嵌入式系统。学习单片机开发可以让您深入了解嵌入式系统的底层原理和硬件编程,对于对嵌入式系统底层开发感兴趣的人来说,是一个很好的选择。
136 4
|
6月前
|
存储 搜索推荐 IDE
新手如何快速上手学习单片机?
新手如何快速上手学习单片机?
121 0
|
6月前
|
存储 编译器 C语言
单片机学习之路一些常见的疑问也是我的个人学习总结
单片机学习之路一些常见的疑问也是我的个人学习总结
129 0
|
6月前
|
C语言
###51单片机学习-----如何通过C语言运用延时函数设计LED流水灯
###51单片机学习-----如何通过C语言运用延时函数设计LED流水灯
270 0
|
6月前
|
算法 Java C语言
蓝桥杯-03-蓝桥杯学习计划
蓝桥杯-03-蓝桥杯学习计划
蓝桥杯第11届国赛单片机组
蓝桥杯第11届国赛单片机组
119 0
13届蓝桥杯(单片机)
13届蓝桥杯(单片机)
106 0
蓝桥杯13届第2场(51单片机)
蓝桥杯13届第2场(51单片机)
79 0
蓝桥杯第12届第2场51单片机
蓝桥杯第12届第2场51单片机
132 0