手把手教你看懂51单片机原理图

news2024/11/24 17:19:44

最近当了单片机课设的助教,又再次接触了51单片机。发现初学者还看不太原理图,不能理解单片机 led灯,蜂鸣器,数码管是怎么操作的。现在结合原理图讲解一下怎么操作这些外设模块!我们就以一些初始化代码进行讲解。

注:这里使用的是蓝桥杯51单片机的板子!

1.我们看一下这段关闭蜂鸣器代码:
    P2=P2&0x1f|0xa0; //选择蜂鸣器模块
    P0=0x00;         //关闭蜂鸣器

  P2&0x1f  ----是P2的高三位置0,低5位保持不变(任何数&0等于0,任何数&1保存不变)--只想     控制高三位,再或上0xa0 是选择蜂鸣器 ----看图蜂鸣器是Y5(图一所示) 对应P2^7=1 P2^6=0      P2^5=1 (图二可见) 其他没选择的都为0. 所以P2=1010 0000 =0xa0。选择蜂鸣器这个功能     后, P0=0x00(P0是数据),即关闭蜂鸣器。总结一下,先P2=P2&0x1f|0xa0选中蜂鸣器,再   P0=0x00给蜂鸣器模块赋值关闭蜂鸣器

                                            图一 

       

                                         图二

2.关闭led灯代码

   P2=P2&0x1f|0x80; //选择led灯模块
   P0=0xff;             //关闭所有led灯

 和上面思路差不多,P2&0x1f是高三位,置0 ,低5位,不变。然后我们看原理图led模块是Y4(图 三),所以我们对应的P2^7=1,P2^6=0,P2^5=0(图二);对应的P2=1000 0000 =0x80; 所以我们这里是或上0x80.然后我们再看led模块的原理图,是共阳极(所有led灯都一起接了VCC高电平),我们另外一端也就是P0端口,给0才能亮,给1就灭,所以我们P0=0xff就是关闭所有led灯。

                                              图三 

 3.关闭所有数码管

    P2=P2&0x1f|0xc0;P0=0xff;  //位选,选中8跟数码管。
    P2=P2&0x1f|0xe0; P0=0xff;//段选,熄灭数码管

     这里有4句代码,我逐一讲解----首先第一句代码就是选中数码管位选功能---数码管位选为Y6(图四)所以P2=P2&0x1f|0xc0 选中数码管位选功能。第二句代码P0=0xff,即8位全给高电平,选中8根数码管。第三句代码P2=P2&0x1f|0xe0 选中Y7即选中数码管段选功能(图五),P0=0x00即都给高电平,因为这款单片机是共阳极数码管所以给高电平没有数据显示(都处于熄灭状态)这样数码管就初始化成功了。

                                                                图四

 

                                                               图五 

最后给大家附一个这款单片机的原理图http://链接:https://pan.baidu.com/s/1PZ1PuM7DuiakobC7JfLGiw?pwd=6666 提取码:6666

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/622328.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开始使用Vue 3时应避免的10个错误

本文首发于微信公众号:大迁世界, 我的微信:qq449245884,我会第一时间和你分享前端行业趋势,学习途径等等。 更多开源作品请看 GitHub https://github.com/qq449245884/xiaozhi ,包含一线大厂面试完整考点、资料以及我的…

华为OD机试真题 Java 实现【在字符串中找出连续最长的数字串】【2023 B卷 100分】,附详细解题思路

一、题目描述 输入一个字符串,返回其最长的数字子串,以及其长度。 若有多个最长的数字子串,则将它们全部输出(按原字符串的相对位置)。 本题含有多组样例输入。 数据范围: 字符串长度 1≤n≤200 &…

Linux进程懂了吗?一分钟快速上手

这里写目录标题 Linux进程介绍显示系统执行的进程终止进程查看进程树pstreeLinux进程作用 Linux进程介绍 Linux进程是计算机中正在运行的程序的实例。在Linux系统中,每个进程都有一个唯一的进程ID(PID),用于标识该进程。&#xf…

Eigen中用于特征值分解的几个类的介绍

本文参考于 https://eigen.tuxfamily.org/dox/group__TopicLinearAlgebraDecompositions.html 很多场合我们需要去计算矩阵的特征值与特征向量,但是Eigen中有好几个计算特征值与特征向量的方法,这些方法到底该选哪个呢?这篇文章就带着大家来…

「企业技术架构」EA874:技术架构的原则和标准

企业技术架构中EA原则的应用 原则经常是正式EA工作的一部分。它们在个人决策和广泛适用且独立于具体决策的基本业务目标之间提供了更强的联系。原则是组织为激发最佳行为而选择的准则或最佳实践。它们很可能(在最高级别)被追溯到基本的业务需求和策略。如…

【MySQL数据库 | 第八篇】DML操作

目录 ​编辑 🤔前言: 🤔DML介绍: 🤔语法详情: 😀1.插入数据: 特点: 1.给指定字段添加数据: 代码示例: 运行结果: 2.给所有的字段添加数据&…

Symfony v6.2.11 正式发布,经典 PHP Web 开发框架

导读Symfony v6.2.11 发布了!Symfony 是一款基于 MVC 架构的 PHP 框架,致力于减少重复代码的编写,以加速 Web 应用的开发和维护。Symfony 与许多关系型数据库集成的也非常好,成本也较小。 此外,Symfony 致力于在企业背…

继电器在信号系统中的应用

继电器是什么 继电器是一种电气开关,它使用电磁力来控制一个或多个电气电路的操作。继电器通常由电磁铁、触点和弹簧等部件组成。当电磁铁被激活时,它会产生磁场,吸引或释放触点,从而打开或关闭电路。 继电器的分类 继电器分为…

面向对象设计中的七大设计原则与二十三种设计模式

目录 七大设计原则单一职责原则内涵与目的涉及的知识点例子 开闭原则定义实现例子 依赖倒转原则定义传统过程式设计面向对象设计与开闭原则的联系例子 里氏替换原则定义与意义四层含义例子 接口隔离原则定义例子 合成复用原则定义继承复用与组合/聚合复用的区别涉及的知识点例子…

c++11 标准模板(STL)(std::bitset)(七)

定义于头文件 <bitset> template< std::size_t N > class bitset; 类模板 bitset 表示一个 N 位的固定大小序列。可以用标准逻辑运算符操作位集&#xff0c;并将它与字符串和整数相互转换。 bitset 满足可复制构造 (CopyConstructible) 及可复制赋值 (CopyAssig…

LeetCode_二叉树_BFS_中等_199.二叉树的右视图

目录 1.题目2.思路3.代码实现&#xff08;Java&#xff09; 1.题目 给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 示例 1&#xff1a; 输入: [1,2,3,null,5,null,4] 输出: [1,…

测试计划包括哪些主要步骤和信息?

测试计划包括哪些主要步骤和信息? 在软件测试的过程中&#xff0c;编写一个完整的测试计划是非常重要的一步。测试计划记录了测试的具体内容、步骤、目标及其实现计划、测试环境和相关资源等信息。下面将为您详细介绍测试计划包括哪些主要步骤和信息。 1. 测试概述 测试概述部…

centos7 部署 Mysql 5.7

centos7 部署 Mysql 5.7 一、安装2.1 环境准备2.2 开始安装2.2.1 安装源2.2.2 版本选择2.2.3 安装 MySQL 二、MySQL 设置2.1 密码设置2.2 远程访问账户设置2.3 设置开机启动 一、安装 2.1 环境准备 1、查看系统自带或之前安装的 mariadb。 rpm -qa | grep mariadb2、卸载它们…

Nginx+Tomcat实现负载均衡、动静分离集群部署

NginxTomcat实现负载均衡、动静分离集群部署 一、Tomcat多实例部署1、安装好JDK2、安装tomcat3、配置tomcat环境变量4、修改tomcat2中的server.xml文件&#xff0c;要求各tomcat实例配置不能有重复的端口号5、修改各tomcat实例中的startup.sh和shutdown.sh文件&#xff0c;添加…

ArrayList 万字长文解析:使用、优化、源码分析

文章目录 ArrayList 万字长文解析&#xff1a;使用、优化、源码分析前言ArrayList 简介ArrayList 的基本使用方法ArrayList 性能优化ArrayList 的源码分析内部结构构造方法解析扩容机制System.arraycop与 Arrays.copyof 实现方式 与 使用场景迭代器 JDK 8版本 ArrayList bug 示…

如何安装pycharm的包

PyCharm是JetBrains公司推出的一款Python集成开发环境&#xff08;IDE&#xff09;&#xff0c;可以提供高效的Python代码编写、调试和测试。以下是一些PyCharm的主要功能&#xff1a; 代码智能提示和自动补全功能&#xff1b;支持调试和测试Python代码&#xff1b;完整的Pyth…

如何正确地处理职场中的失误

如何正确地处理职场中的失误 在职场上&#xff0c;我们都会遇到各种各样的问题和挑战。面对这些问题时&#xff0c;我们有时难免会犯错。但正如一句古老的谚语所说&#xff1a;“失败是成功之母。”我们应该从失误中吸取教训&#xff0c;不断成长。本文将探讨如何正确地处理职…

【云原生-K8s-2】kubeadm搭建k8s高可用集群(三主两从一VIP)完整教程

&#x1f341;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; 文章目录 Kubernetes高可用集群部署准备工作&a…

chatgpt赋能python:Python就业前景展望:一门热门语言的发展趋势分析

Python就业前景展望&#xff1a;一门热门语言的发展趋势分析 Python是一种高级、解释型编程语言&#xff0c;已经成为最受欢迎的语言之一。Python的良好生态系统、易用性和强大的库和框架支持使得许多公司和组织使用Python来构建各种类型的应用程序、工具和系统。Python广泛应…