蓝桥杯单片机竞赛LED、蜂鸣器、继电器控制程序设计

目录

一、电路原理分析

二、程序设计

1、LED灯程序设计

(1)变量定义

(2)数码管程序中添加部分

(3)S7键功能

2、蜂鸣器、继电器程序设计

(1)变量定义

(2)数码管程序中添加部分

(3)S6键功能

(4)S5键功能

程序包链接

一、电路原理分析

                    图1  LED灯电原理图路

                  图2  蜂鸣器、继电器控制原理图

从图1、图2中可知,LED灯、蜂鸣器、继电器的控制与数码管的控制过程类似,都是通过P0口输出信息,通过由74HC138译码控制U6、U9锁存器,使被控对象工作。

从图1知,P0口输出低电平灯亮,高电平灯灭。74HC138的Y4控制锁存。

从图2知,U9输出通过ULN2003驱动控制蜂鸣器、继电器,由于ULN2003内部的达林顿管输入/输出是反向的,图中的蜂鸣器、继电器一端已经接电源VCC,所以P0口输出高电平使蜂鸣器鸣响(继电器吸合),P0口输出高电平停止蜂鸣器鸣响(继电器释放)。具体控制过程分别是:P0.4引脚信息控制继电器,P0.6引脚信息控制蜂鸣器。74HC138的Y5控制锁存。

二、程序设计

LED灯、蜂鸣器、继电器控制资源与数码管显示电路控制资源完全相同,P0口输出控制信息,P2.5~P2.7控制74HC138译码信息控制74HC573锁存器,所以,将它们的控制程序插在数码管显示程序的后面(也可以编写子函数在主函数中调用)。

1、LED灯程序设计

   LED灯以L1为例,定义LED灯信息变量和亮灭标志变量,用S7键进行亮灭控制。

(1)变量定义

unsigned char Lamp=0xff;//灯初始信息全灭

bit L1_LM=0;            //1--亮   0--灭

(2)数码管程序中添加部分

              if(L1_LM)Lamp=Lamp&0xfe; //1亮  L1对应位清0

              else  Lamp=Lamp|0x01;    //0灭  L1对应位置1

        P0=Lamp;   //灯信息

          hc138(4);     //输出

           hc138(0);  //锁存

(3)S7键功能

                     L1_LM=!L1_LM;   //L1亮灭标志取反   

              //     Led1++;              //原功能

              //     if(Led1==10)Led1=0;   //原功能

2、蜂鸣器、继电器程序设计

蜂鸣器用S6键控制,继电器用S5键控制。

(1)变量定义

unsigned char BR_data=0x00;  //蜂鸣器、继电器初始不动作

bit Buzz=0;        //1--鸣响  0--停止  蜂鸣器标志位

bit Relay=0;       //1--吸合  0--断开  继电器标志位

(2)数码管程序中添加部分

//蜂鸣器、继电器控制

              if(Buzz)BR_data=BR_data|0x40; //1鸣响  对应位置1

              else  BR_data=BR_data&0xbf;    //0停止  对应位清0

              if(Relay)BR_data=BR_data|0x10; //1吸合  对应位置1

              else  BR_data=BR_data&0xef;    //0断开  对应位清0

        P0=BR_data;   //蜂鸣器继电器控制信息

          hc138(5);     //输出

           hc138(0);  //锁存

(3)S6键功能

                     Buzz=!Buzz;  //蜂鸣器标志位取反

              //     Led1++;            //原功能

              //     if(Led1==10)Led1=0;  //原功能

(4)S5键功能

                     Relay=!Relay;    //继电器标志位取反

              //     Led1++;              //原功能

              //     if(Led1==10)Led1=0;   //原功能

      程序包链接

https://download.csdn.net/download/weikangcekong/89310811?spm=1001.2014.3001.5503


  • 26
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值