蓝桥杯单片机之LED模块的使用(十六进制)以及关闭蜂鸣器(关闭外设)
LED模块的使用(十六进制)以及关闭蜂鸣器(关闭外设)
原理图
根据原理图分析
- LED共阳接法,二极管正向导通发光,所以当Q1~Q8为低电平时,LED灯会点亮;
- 74HC573是一颗锁存器CMOS芯片,Y4C锁存功能,进而控制着Q端的输出,当Y4C为高电平时,锁存功能关闭,Q端根据P0端的输入进行输出。当Y4C为低电平时,锁存功能开启,Q端按照上一个状态输出;
- 74HC02是一颗四二输入或非门芯片(四个逻辑门,每个逻辑门2个输入,1个输出),图中显示一个输入是GND(WR根据J13跳帽连接了GND),所以输出Y4C与输入Y4相反;(若WR接VCC,则输出与输入相同);
- 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灯点亮//}}
}
关闭蜂鸣器(关闭外设)
蜂鸣器对应的原理图
原理图分析
- 该Buzzer是有源蜂鸣器,一端已经接在VCC上,当N BUZZER为低电平时,蜂鸣器会响
- 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模块的使用(十六进制)以及关闭蜂鸣器(关闭外设)相关推荐
- 蓝桥杯单片机之PCF8591模块的使用
蓝桥杯单片机之PCF8591模块的使用 简述 原理图: 引脚定义: 相关地址 IIC寻址设备地址 控制地址 IIC时序分析 数模转换D/A 模数转换 代码: 一:光敏电阻和可变电阻的AD转换,S4控制 ...
- 蓝桥杯单片机国赛模块儿总结
前言 明天就是国赛了,时间挺快的,得赶紧复习一下了. 摸鱼摸到现在,差不多已经放弃了. 国赛的模块其实只是比省赛多了几个常见的外设和模块儿,这里就不细述了,具体可以看省赛模块总结 目录 前言 1.串口 ...
- 【蓝桥杯单片机】DS1302模块
文章目录 一.DS1302基础知识 二.实际使用 1.蓝桥杯小蜜蜂讲解 2.官方给的示例 总结 一.DS1302基础知识 大家查阅单片机的芯片手册可以看到DS1302 的电路图 一.DS1302是时 ...
- 【蓝桥杯单片机】超声波模块(测距原理,驱动方式)
实验开发板为CT107D蓝桥官方板,编译环境为MDK5 超声波探头测距原理: 发射头发射超声波,遇到障碍物后返回,接收探头接受到返回信号. 两个动作产生的时间差可以是我们根据声音在空气中传播的速度来( ...
- 【蓝桥杯单片机】Led+蜂鸣器+继电器
实验开发板为CT107D蓝桥官方板,编译环境为MDK5 工程搭建 CT107D开发板初始化 点亮Led 位运算控制Led(小端CPU位运算需要从右向左看) 控制继电器及蜂鸣器 #include< ...
- (蓝桥杯嵌入式)LED模块
目录 1.LED不受控制解决办法: 2.led.c 3.led.h 4.流水灯的实现 1.LED不受控制解决办法: 在lcd中操作GPIOC引脚时,先将GPIOC引脚状态保存,修改下面三个函数即可 v ...
- 蓝桥杯单片机-DS1302时钟模块
一.简介 1.采用SPI三线接口通信(SCK.SDA.RST) 上升沿数据被写入DS1302,下降沿被读出 二.应用 1.在ds1302.c文件中定义三个数组 unsigned char code R ...
- 蓝桥杯单片机关闭蜂鸣器、继电器LED及数码管
01关闭蜂鸣器.继电器LED及数码管: 蓝桥杯大赛CT107D 芯片模块基本知识 74138 3-8译码器 74573 锁存器 CT107D开发板上通过74138来控制74573的所存状态来实现扩展单 ...
- 蓝桥杯单片机比赛学习:1、led点亮原理
此教程是鄙人蓝桥杯单片机的学习过程总结,可能会有错误,请指出批评.蓝桥杯单片机学习最重要的是将整个单片机模块化,比如,我们可以将它分为LED.蜂鸣器.继电器.数码管.按键.AD/DA.555定时器.光 ...
最新文章
- TVM在ARM GPU上优化移动深度学习
- h5 getUserMedia error PermissionDeniedError
- java导入excle表格,并且对表格进行相应的修改,并对表格数据进行整理,最后导出本地表格等一系列...
- 【Java报错】多数据源mapper异常more than one `primary` bean found among candidates: [sqlSessionFactory] 问题分析解决
- c++享元模式flyweight
- 程序员职业规划(一篇来自阿里Java工程师对工作3年左右程序员的职业建议和应该掌握的职业技能)...
- 5s管理中清扫的内容及实施步骤
- oracle数据库中的回收站,Oracle回收站的清理方法
- ARM汇编中^、!、cxsf符号和movs等指令使用
- HDOJ1430魔板
- FMI飞马网 |【线上直播】京东商城的通用代码质量提升方案
- Oracle的软解析(soft prase)和硬解析(hard prase)
- 在java中 以下关于集合框架_在Java中LinkedList类和ArrayList类同属于集合框架类,下列...
- Linux----vim、账号管理、进程管理、磁盘管理、java环境安装
- java虚拟机线程调优与底层原理分析_啃碎并发(七):深入分析Synchronized原理...
- 牛客网暑期ACM多校训练营(第十场)D Rikka with Prefix Sum
- echarts社区(多样化echarts图表)
- 计算机启动时最先运行的程序储存在,2012年自考计算机应用基础试题及答案
- LaTeX公式保姆级教程
- 高中计算机奥赛 加分,自主招生 | 五大学科竞赛含金量大盘点,高一、高二如何参赛?...
热门文章
- Android系国产手机操作系统汇总
- html2canvas微信头像后,微信小程序使用canvas在真机上不显示用户头像问题(不显示网络图片)...
- 网络基础之为了安全而诞生的NAT(网络地址转换)
- Android性能优化OOM内存管理——ADJ
- matlab图形编辑,Matlab图形与编辑
- Tribal项目介绍
- k8s创建用户账号——User Account
- 菲菲更名宝贝(批量更名软件) v8.0 绿色版
- 最短路算法 :Bellman-ford算法 Dijkstra算法 floyd算法 SPFA算法 详解
- 无外接环境下,单笔记本直连浪潮服务器BMC灌装系统