LED模块的使用(十六进制)以及关闭蜂鸣器(关闭外设)

原理图


根据原理图分析

  1. LED共阳接法,二极管正向导通发光,所以当Q1~Q8为低电平时,LED灯会点亮;
  2. 74HC573是一颗锁存器CMOS芯片,Y4C锁存功能,进而控制着Q端的输出,当Y4C为高电平时,锁存功能关闭,Q端根据P0端的输入进行输出。当Y4C为低电平时,锁存功能开启,Q端按照上一个状态输出;
  3. 74HC02是一颗四二输入或非门芯片(四个逻辑门,每个逻辑门2个输入,1个输出),图中显示一个输入是GND(WR根据J13跳帽连接了GND),所以输出Y4C与输入Y4相反;(若WR接VCC,则输出与输入相同);
  4. 74HC138是一颗38译码器(3输入,8输出),以 C、B、A 为逻辑顺序,CBA组成二进制数,然后转化成10进制,对应的Y输出低电平,其他均为高电平,例如:CBA=001;则Y1输出低电平,其他输出高电平。

综述:P27、P26、P25控制着74HC573是否锁存(输出的状态),即控制着Q端输出与P端输入的关系,P0输入控制LED的状态;

点亮单个LED灯代码

# include "reg52.h"
int main()
{while(1){P2 &= 0x1f;     //0x1F-->0001 1111, 前三位P27,P26,P25清零,防止锁存器出错P2 |= 0x80;      //0X80-->1000 0000, 100-->4,即打开Y4对应的锁存器,使Q端按照P端的输入进行输出     P0 = 0xfe;         //OXFE-->1111 1110, LED低电平亮,所以是第1个LED灯点亮}
}

代码分析

P2 &= 0x1f
&=:按位与赋值,表示两个操作数的二进制,对它们进行按位AND运算并将结果分配给变量;先进行并运算再赋值,俗称有0为0,
P2 |= 0x80
&=:按位或赋值,表示两个操作值的二进制表示,执行按位或运算,并把结果赋给变量。先进行or运算再赋值,俗称有1为1.

单个LED闪烁代码

# include "reg52.h"
# include "intrins.h"    //延时函数需要预处理的头文件
void Delay500ms()       //@12.000MHz//由STC-ISP烧录软件生成的延时函数
{unsigned char i, j, k;_nop_();i = 4;j = 205;k = 187;do{do{while (--k);} while (--j);} while (--i);
}
int main()
{while(1){P2 &= 0x1f;         //0x1F-->0001 1111, 前三位P27,P26,P25清零,防止锁存器出错P2 =P2| 0x80;       //0X80-->1000 0000, 100-->4,即打开Y4对应的锁存器,使Q端按照P端的输入进行输出P0 = 0xfe;          //OXFE-->1111 1110, LED低电平亮,所以是第1个LED灯点亮Delay500ms();P0 = 0xff;Delay500ms();}
}

LED流水灯代码

# include "reg52.h"
# include "intrins.h"
void Delay500ms()       //@12.000MHz//由STC-ISP烧录软件生成的延时函数
{unsigned char i, j, k;_nop_();_nop_();i = 23;j = 205;k = 120;do{do{while (--k);} while (--j);} while (--i);
}
int main()
{int i=0;while(1){P2 &= 0x1f;     //0x1F-->0001 1111, 前三位P27,P26,P25清零,防止锁存器出错P2 =P2| 0x80;   //0X80-->1000 0000, 100-->4,即打开Y4对应的锁存器,使Q端按照P端的输入进行输出P0=0XFE;        //移位前的第一个状态,如果为0XFF,则第一个灯不会亮for(i=1;i<=8;i++) //移位操作的循环控制,从左到右{Delay500ms();   //延时函数,用于控制LED亮的时间P0=~(0x01<<i);  //移位操作,例如:~(0000 0001<<1)=~0000 0010=1111 1101左边第二个LED灯点亮}//P0=0X7F;        //0X7F-->0111 1111 ,从右往左的流水灯//for(i=1;i<=8;i++)//{//Delay500ms();//P0=~(0x80>>i); //移位操作,例如:~(1000 0000>>1)=~0100 0000=1011 1111右边第二个LED灯点亮//}}
}

关闭蜂鸣器(关闭外设)

蜂鸣器对应的原理图

原理图分析

  1. 该Buzzer是有源蜂鸣器,一端已经接在VCC上,当N BUZZER为低电平时,蜂鸣器会响
  2. ULN2003是一颗高耐压、大电流符合晶体管芯片,内部有7个硅NPN复合晶体管组成,在逻辑上是一个非门

综述:当P06为高电平时,蜂鸣器会响,并且根据51单片机引脚悬空时,默认输出高电平,所以上电蜂鸣器就会响,我们调试的时候响着很烦,所以我们在写代码时第一步就是关闭蜂鸣器(或者叫外设)

关闭Y5控制的外设代码

int main()
{int i=0;P2 = ((P2 & 0x1f) | 0xa0);      //关闭Y5控制的全部外设  P0 = 0x00;  P2 &= 0x1f;P2 = (P2 & 0x1f) | 0xe0;        //同理关闭数码管P0 = 0xff;  P2 &= 0x1f;while(1){P2 &= 0x1f;     //0x1F-->0001 1111, 前三位P27,P26,P25清零,防止锁存器出错P2 =P2| 0x80;       //0X80-->1000 0000, 100-->4,即打开Y4对应的锁存器,使Q端按照P端的输入进行输出P0=0XFE;for(i=1;i<=8;i++){Delay500ms();P0=~(0x01<<i);}
}

蓝桥杯单片机之LED模块的使用(十六进制)以及关闭蜂鸣器(关闭外设)相关推荐

  1. 蓝桥杯单片机之PCF8591模块的使用

    蓝桥杯单片机之PCF8591模块的使用 简述 原理图: 引脚定义: 相关地址 IIC寻址设备地址 控制地址 IIC时序分析 数模转换D/A 模数转换 代码: 一:光敏电阻和可变电阻的AD转换,S4控制 ...

  2. 蓝桥杯单片机国赛模块儿总结

    前言 明天就是国赛了,时间挺快的,得赶紧复习一下了. 摸鱼摸到现在,差不多已经放弃了. 国赛的模块其实只是比省赛多了几个常见的外设和模块儿,这里就不细述了,具体可以看省赛模块总结 目录 前言 1.串口 ...

  3. 【蓝桥杯单片机】DS1302模块

    文章目录 一.DS1302基础知识 二.实际使用 1.蓝桥杯小蜜蜂讲解 2.官方给的示例 总结 一.DS1302基础知识 大家查阅单片机的芯片手册可以看到DS1302 的电路图  一.DS1302是时 ...

  4. 【蓝桥杯单片机】超声波模块(测距原理,驱动方式)

    实验开发板为CT107D蓝桥官方板,编译环境为MDK5 超声波探头测距原理: 发射头发射超声波,遇到障碍物后返回,接收探头接受到返回信号. 两个动作产生的时间差可以是我们根据声音在空气中传播的速度来( ...

  5. 【蓝桥杯单片机】Led+蜂鸣器+继电器

    实验开发板为CT107D蓝桥官方板,编译环境为MDK5  工程搭建 CT107D开发板初始化 点亮Led 位运算控制Led(小端CPU位运算需要从右向左看) 控制继电器及蜂鸣器 #include< ...

  6. (蓝桥杯嵌入式)LED模块

    目录 1.LED不受控制解决办法: 2.led.c 3.led.h 4.流水灯的实现 1.LED不受控制解决办法: 在lcd中操作GPIOC引脚时,先将GPIOC引脚状态保存,修改下面三个函数即可 v ...

  7. 蓝桥杯单片机-DS1302时钟模块

    一.简介 1.采用SPI三线接口通信(SCK.SDA.RST) 上升沿数据被写入DS1302,下降沿被读出 二.应用 1.在ds1302.c文件中定义三个数组 unsigned char code R ...

  8. 蓝桥杯单片机关闭蜂鸣器、继电器LED及数码管

    01关闭蜂鸣器.继电器LED及数码管: 蓝桥杯大赛CT107D 芯片模块基本知识 74138 3-8译码器 74573 锁存器 CT107D开发板上通过74138来控制74573的所存状态来实现扩展单 ...

  9. 蓝桥杯单片机比赛学习:1、led点亮原理

    此教程是鄙人蓝桥杯单片机的学习过程总结,可能会有错误,请指出批评.蓝桥杯单片机学习最重要的是将整个单片机模块化,比如,我们可以将它分为LED.蜂鸣器.继电器.数码管.按键.AD/DA.555定时器.光 ...

最新文章

  1. TVM在ARM GPU上优化移动深度学习
  2. h5 getUserMedia error PermissionDeniedError
  3. java导入excle表格,并且对表格进行相应的修改,并对表格数据进行整理,最后导出本地表格等一系列...
  4. 【Java报错】多数据源mapper异常more than one `primary` bean found among candidates: [sqlSessionFactory] 问题分析解决
  5. c++享元模式flyweight
  6. 程序员职业规划(一篇来自阿里Java工程师对工作3年左右程序员的职业建议和应该掌握的职业技能)...
  7. 5s管理中清扫的内容及实施步骤
  8. oracle数据库中的回收站,Oracle回收站的清理方法
  9. ARM汇编中^、!、cxsf符号和movs等指令使用
  10. HDOJ1430魔板
  11. FMI飞马网 |【线上直播】京东商城的通用代码质量提升方案
  12. Oracle的软解析(soft prase)和硬解析(hard prase)
  13. 在java中 以下关于集合框架_在Java中LinkedList类和ArrayList类同属于集合框架类,下列...
  14. Linux----vim、账号管理、进程管理、磁盘管理、java环境安装
  15. java虚拟机线程调优与底层原理分析_啃碎并发(七):深入分析Synchronized原理...
  16. 牛客网暑期ACM多校训练营(第十场)D Rikka with Prefix Sum
  17. echarts社区(多样化echarts图表)
  18. 计算机启动时最先运行的程序储存在,2012年自考计算机应用基础试题及答案
  19. LaTeX公式保姆级教程
  20. 高中计算机奥赛 加分,自主招生 | 五大学科竞赛含金量大盘点,高一、高二如何参赛?...

热门文章

  1. Android系国产手机操作系统汇总
  2. html2canvas微信头像后,微信小程序使用canvas在真机上不显示用户头像问题(不显示网络图片)...
  3. 网络基础之为了安全而诞生的NAT(网络地址转换)
  4. Android性能优化OOM内存管理——ADJ
  5. matlab图形编辑,Matlab图形与编辑
  6. Tribal项目介绍
  7. k8s创建用户账号——User Account
  8. 菲菲更名宝贝(批量更名软件) v8.0 绿色版
  9. 最短路算法 :Bellman-ford算法 Dijkstra算法 floyd算法 SPFA算法 详解
  10. 无外接环境下,单笔记本直连浪潮服务器BMC灌装系统