从玩具到工业控制--51单片机的跨界传奇【3】

在科技的浩瀚宇宙中,51 单片机就像一颗独特的星辰,散发着神秘而迷人的光芒。对于无数电子爱好者而言,点亮 51 单片机上的第一颗 LED 灯,不仅仅是一次简单的操作,更像是开启了一扇通往新世界的大门。这小小的 LED 灯,宛如黑暗中的启明星,承载着我们对电子技术的好奇与憧憬,照亮了我们探索科技未知领域的道路 。在接下来的篇章里,让我们一同回溯这段充满挑战与惊喜的旅程,看看这颗 LED 灯如何点燃了我们心中对技术追求的熊熊烈火。

一,单片机的内部结构和工作原理

在单片机入门阶段,我们只需要对其结构有个大概的了解就足够了,等后期随着单片机的深入学习,我们再回头来对其结构进行深入的了解。我在这里也是给大家进行简单的讲解,不会太过深入,防止大家失去学习的信心。如图所示:

FLASH就相当于硬盘SRAM就相当于内存。对于硬盘和内存的概念我就默认大家熟知了,不懂的朋友们可以自行搜索一下这个视频 <内存和硬盘的区别>进行了解。前面,咱们讲过单片机就是一种集成电路,其实在单片机的内部就是如上图所示的结构。单片机内核就是CPU处理器我们写的程序最终被存放在FLASH程序存储器里面我们创建的变量被存储在SRAM数据存储器里面。当单片机开始运行的时候,单片机就会从FLASH程序存储器里面调取运行指令,这里告诉大家:FLASH程序存储器是只读存储器,在单片机运行的过程中,产生的一切数据不会再放入FLASH里面,而是存放在数据存储器里面,就是为了防止程序发生错误,引起单片机的工作异常CPU会根据指令进行运算,会从数据存储器里面调用数据。数据存储器就是CPU用来调取和存放数据,存放中间计算结果的地方SRAM掉电就会丢失数据,所以为了防止这种情况的发生,一般都会配有看门狗来进行监管,当看门狗检测到电压低于某一个范围时,就会立马读取SRAM里面的数据进行存储。然后,CPU把计算的数据再发送给寄存器(GPIO外设),寄存器根据数据再输出1或0,各个引脚再根据1或0输出对应的高低电平,来控制外围设备,读取外部数据也是如此,通过引脚的高低电平变化,寄存器来进行的1或0的数据存储,再发给CPU根据指令进行处理我们操作单片机,其实本质上就是操作各个引脚对应的寄存器。大家进行简单的了解即可。

二,单片机的引脚介绍

我们就以我们要讲解的DIP封装的51单片机来展示其它封装的单片机会多出来4个引脚,多出来的引脚时P4口引脚,这不影响我们的单片机的讲解。如图所示:

 我们从外观上可以看到上面,有个半圆的缺口。在所以的单片机里面,半圆缺口左边对应单片机的第一号引脚,逆时针依次排号。

20号引脚和40号引脚分别为单片机的GND和VCC

51单片机有4组I/O,分别为P0,P1,P2和P3,每组对用8个引脚,也就是说,我们控制这32个引脚来进行外围设备的控制。大家可以看到有些引脚会有个表示,比如T2/P1.0,带有‘ / ’表示这个引脚的功能是可以复用的,也就是说这个引脚有两个功能。没标识的引脚就是普通的I/O口。

T2,T0,T1这些为定时器或计数器引脚(后面会讲解的)。

RXD和TXD为单片机的串口通信引脚,也是我们的程序下载引脚。

INT0和INT1为外部中断引脚。

XTAL1和XTAL2为单片机的外部晶振引脚。

WR(写信号)和 RD(读信号)引脚主要用于外部数据存储器(如 RAM)和 I/O 接口芯片的读写控制。它们是实现单片机与外部设备之间数据传输的关键信号引脚。

EA 引脚用于控制单片机是访问内部程序存储器还是外部程序存储器。这是 51 单片机程序存储选择的关键引脚,当 EA 引脚接高电平时,单片机先从内部程序存储器读取程序指令。如果程序计数器(PC)的值超过了内部程序存储器的容量范围(对于 8051 单片机,内部程序存储器一般为 4KB),那么它会自动转向外部程序存储器读取剩余的程序指令。当 EA 引脚接低电平时,单片机忽略内部程序存储器,直接从外部程序存储器读取所有的程序指令。这种方式适用于程序代码量较大,需要外部扩展大容量程序存储器(如 EPROM、Flash 等)的情况。由于现在我们的单片机都有内部的ROM所以我们不需要读取外部ROM,所以我们直接接高电平就OK了。

ALE 引脚主要用于在访问外部存储器时,锁存低 8 位地址信号。在 51 单片机访问外部存储器(包括数据存储器和程序存储器)的过程中,地址总线是分时复用的,它既用于传输地址信息又用于传输数据信息。当单片机访问外部存储器时,P0 口会先输出低 8 位地址信息,此时 ALE 引脚会输出一个正脉冲。这个正脉冲可以被外部的地址锁存器(如 74LS373)用来锁存 P0 口输出的低 8 位地址,使得地址信息在数据传输阶段能够保持稳定。现在,单片机内部都自带丰富的RAM,不再需要扩展RAM,所以这个引脚用处不大。

PSEN 引脚是程序存储器读选通信号,用于控制对外部程序存储器的读取操作。它是单片机从外部程序存储器读取指令时的关键控制信号。当单片机从外部程序存储器读取指令时,PSEN 引脚会输出一个低电平脉冲。这个低电平信号用于选通外部程序存储器,使其将存储的程序指令输出到数据总线上,然后单片机就可以从数据总线上读取这些指令并执行。

P0口比较特殊,它要接上拉电阻才能驱动,至于什么是上拉电阻? 它是怎样的电路? 我们都会在数码管那个章节讲到的。

总结:以上引脚大家先做了解就足够了,后面学习到的时候,我都会进行详细的讲解的。

三,最小系统单片机的电路介绍

最小的单片机系统是由电源,主控芯片,晶振电路和复位电路组成的。先给大家看电路图:

 复位电路的作用:

  • 系统初始化
    • 复位电路的主要作用是使单片机内部的各个寄存器和电路恢复到初始状态。当单片机复位时,程序计数器(PC)被清零,这意味着单片机从程序存储器的起始地址(对于 51 单片机来说,一般是 0000H)开始执行程序。同时,其他特殊功能寄存器(SFR),如累加器 A、寄存器 B、PSW(程序状态字)等也会被初始化为固定的值。
    • 例如,PSW 寄存器在复位后被设置为 00H,这使得单片机进入初始的工作状态,如默认选择工作寄存器组 0。这种初始化功能确保了每次单片机上电或者手动复位后,系统都能以一个确定的、一致的状态开始运行,就像将系统进行了一次 “归零” 操作。
  • 解决程序异常情况
    • 比如,在一个工业控制环境中,周围可能存在较强的电磁干扰。当干扰导致单片机程序出错时,按下复位按钮,复位电路就能让单片机重新启动,避免了设备长时间故障,保障了系统的可靠性和稳定性。
    • 在单片机运行过程中,可能会由于干扰、程序错误或者其他突发情况导致系统出现异常。例如,程序进入了死循环,或者数据被错误地修改,导致系统无法正常工作。此时,复位电路可以通过外部复位信号(如手动复位按键)使单片机重新复位,恢复到正常的工作状态。

晶振电路的作用:

  • 提供时钟信号
    • 晶振电路为单片机提供了稳定的时钟信号。51 单片机内部的各种操作,如指令执行、数据传输、定时器 / 计数器工作等,都需要时钟信号来进行同步。时钟信号就像是单片机的 “心跳”,它决定了单片机的工作速度和时序。
    • 例如,51 单片机的一个机器周期是由 12 个时钟周期组成的。晶振频率的高低直接影响了单片机的机器周期时间。如果晶振频率为 12MHz,那么一个机器周期就是 1 微秒()。这种精确的时钟信号使得单片机能够按照设计好的时序和速度来执行程序指令。
  • 保证系统时序稳定
    • 单片机在与外部设备通信或者进行内部模块之间的协同工作时,需要严格的时序控制。晶振电路提供的稳定时钟信号是保证这些时序的基础。
    • 例如,在使用 51 单片机的定时器 / 计数器功能时,定时器的计数频率是由晶振频率经过内部时钟分频电路得到的。如果晶振频率不稳定,定时器的定时精度就会受到影响,进而导致与定时器相关的功能(如定时采样、定时控制等)出现错误。稳定的晶振电路可以确保这些功能的准确性和可靠性。

四,成为“点灯大师”

讲解了那么多的单片机的基础知识了,也该进行实操了。今天,咱们就来点亮人生中的第一颗LED灯。在点灯之前,咱先认识一下LED电路。

大家知道,我们能控制单片机的引脚输出高低电平 ,给引脚为逻辑1,它就会输出高电平,给0就会输出低电平。上图的LED灯是共阳极的,它的正极都接在一起,8颗LED灯分别与单片机的P1口接在一起,每一个引脚对应一颗LED灯。当我们给0时,就会输出低电平,LED就会正向的导通,LED就会亮,反之就灭。我们使用的时STC国产宏晶提供的芯片安装包,接下来我教大家怎么安装STC提供的芯片安装包,我们需要先下载好stc-isp烧录软件,这个文件我放在文章顶部了,各位可以自行下载。进行如下操作:

OK各位,接下来进行代码演示:

#include <STC89C5xRC.H>
void main()
{P10=0;      //STC的头文件里面,我们可以直接进行I/O的操作
}

进行头文件的展示: 

 各位至于Keil5怎么使用,怎么下载我就不再这多讲了,大家可以自行搜索相关视频。接下里看实验现象:

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

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

相关文章

boss直聘 __zp_stoken__ 逆向分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 有相关问题请第一时间头像私信联系我删…

【日志篇】(7.6) ❀ 01. 在macOS下刷新FortiAnalyzer固件 ❀ FortiAnalyzer 日志分析

【简介】FortiAnalyzer 是 Fortinet Security Fabric 安全架构的基础&#xff0c;提供集中日志记录和分析&#xff0c;以及端到端可见性。因此&#xff0c;分析师可以更有效地管理安全状态&#xff0c;将安全流程自动化&#xff0c;并快速响应威胁。具有分析和自动化功能的集成…

Linux 内核自旋锁spinlock(一)

文章目录 前言一、自旋锁1.1 简介1.2 API1.2.1 spin_lock/spin_unlock1.2.2 spin_lock_irq/spin_unlock_irq1.2.3 spin_lock_irqsave/spin_unlock_irqstore1.2.4 spin_lock_bh/spin_unlock_bh1.2.5 补充 二、自选锁原理三、自旋锁在内核的使用3.1 struct file3.2 struct dentry…

【太古新篇,智驭未来】 SFA系统成功上线

经过双方团队的不懈努力与紧密合作&#xff0c;eBest成功帮助香港太古可乐完成了SFA系统的全面上线&#xff01; 太古可乐&#xff0c;作为饮料行业的佼佼者&#xff0c;一直以来以其卓越的品质和深入人心的品牌形象深受消费者喜爱。然而&#xff0c;在快速变化的市场环境中&am…

Web安全|渗透测试|网络安全

基础入门(P1-P5) p1概念名词 1.1域名 什么是域名&#xff1f; 域名&#xff1a;是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称&#xff0c;用于在数据传输时对计算机的定位标识&#xff08;有时也指地理位置&#xff09;。 什么是二级域名多级域名…

陈萍的设计创新:Kevlin Nexus荣获伦敦设计奖,展示品牌设计的国际化与持续创新

近日,陈萍凭借其创新设计作品 Kevlin Nexus,成功斩获 2024 伦敦设计奖。该奖项旨在表彰全球范围内的优秀设计作品,表彰设计界最完美、最前沿的成就。伦敦设计奖是全球最具权威性和影响力的设计奖项之一,其评选标准以高水准的专业性和严格性著称。作为全球设计界的顶级荣誉,伦敦…

qml DirectionalBlur详解

1、概述 DirectionalBlur是QML&#xff08;Qt Modeling Language&#xff09;中用于创建方向模糊效果的一种图形效果类型。它通过对源图像的像素进行模糊处理&#xff0c;产生一种源项目朝着模糊方向移动的感知印象。这种模糊效果被应用到每个像素的两侧&#xff0c;因此设置方…

【Linux】【Vim】vim编辑器的用法

一、vim简介 Vim是一款功能强大且高度可定制的文本编辑器&#xff0c;广泛应用于Linux 和 Unix系统中。 它不仅继承了vi编辑器的所有特性&#xff0c;还增加了许多新的功能&#xff0c;如语法高亮、代码折叠、多级撤销等。 Vim有三种主要的工作模式&#xff1a; 命令模式&am…

构建优雅、高效的 Nodejs 命令行工具 - Archons

目录 项目简介安装基本用法样例创建一个简单的命令行工具使用archons上下文创建进度条 最后 项目地址: https://github.com/noctisynth/archons Bug反馈或功能请求&#xff1a;https://github.com/noctisynth/archons/issues 项目简介 Archons意思是“执政官”&#xff0c;我使…

怎么投稿各大媒体网站?如何快速辨别一家媒体是否适合自己?

在做软文营销时&#xff0c;除去在官号和子账号上投稿外&#xff0c;怎么投稿各大媒体网站是困扰中小企业主的一大难题。没有多余账号、运营成本太高&#xff0c;让不少想做全平台推广的朋友止步于此。为了解决这些问题&#xff0c;今天就让小编来分享一下&#xff0c;怎么在各…

MES设备日志采集工具

永久免费: <下载> <使用说明> 用途 定时全量或增量采集工控机,电脑文件或日志. 优势 开箱即用: 解压直接运行.不需额外下载.管理设备: 后台统一管理客户端.无人值守: 客户端自启动,自更新.稳定安全: 架构简单,兼容性好,通过授权控制访问. 架构 技术架构: Asp…

rhel7.9利用有网络环境打包ansible

RHEL7.9激活(可省略) # 注册 subscription-manager register --usernameyour_username --passwordyour_password --auto-attach # 查看订阅状态 subscription-manager list # 将 “enabled1” 改为 “enabled0” vi /etc/yum/pluginconf.d/subscription-manager.conf 配置阿…

Formality:参考设计/实现设计以及顶层设计

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482​​​ Formality存在两个重要的概念&#xff1a;参考设计/实现设计和顶层设计&#xff0c;本文就将对此进行详细阐述。参考设计/实现设计是中两个重要的全局概念&am…

网络安全中攻击溯源有哪些方法?

目前网络攻击已经成为常见的安全威胁之一&#xff0c;其造成的危害和损失都是不可估量的&#xff0c;因此网络攻击受到了高度重视。而当我们遭遇网络攻击时&#xff0c;攻击溯源是一项非常重要的工作&#xff0c;可以帮助我们迅速发现并应对各类网络攻击行为&#xff0c;那么网…

国产编辑器EverEdit - 复制为RTF

1 复制为RTF 1.1 应用背景 在写产品手册或者其他文档时&#xff0c;可能会用到要将产品代码以样例的形式放到文档中&#xff0c;一般的文本编辑器拷贝粘贴到Word中也就是普通文本&#xff0c;没有语法着色&#xff0c;这样感观上不是太好&#xff0c;为了让读者的感观更好一点…

【设计模式-结构型】装饰器模式

一、什么是装饰器模式 装饰器模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它的核心思想是在不改变原有对象结构的情况下&#xff0c;动态地给对象增加一些功能&#xff0c;从而达到扩展功能的目的。举个例子&#xff0c;今天在家妈妈给蒸馒…

redux 结合 @reduxjs/toolkit 的使用

1&#xff0c;使用步骤 使用React Toolkit 创建 counterStore&#xff08;store目录下&#xff09; --> 为React注入store&#xff08;src下面的index&#xff09; --> React组件使用store中的数据&#xff08;组件&#xff09; 2&#xff0c;例如下面有一个简单加减的…

动态规划【打家劫舍】

今天和大家分享一下动态规划当中的打家劫舍题目&#xff0c;希望在大家刷题的时候提供一些思路 打家劫舍1&#xff1a; 题目链接&#xff1a; 198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋…

KVM创建ubuntu20.04虚机,部署K8S,再克隆出二份,做为Worker节点加入集群,通过Helm创建2个Pod,让它们之间通过域名互访

KVM创建ubuntu20.04虚机,部署K8S,再克隆出二份,做为Worker节点加入集群,通过Helm创建2个Pod,让它们之间通过域名互访 一.背景二.操作步骤1.安装KVMA.在BIOS中开启VT-dB.修改grub,开启iommu在/etc/default/grub 中 GRUB_CMDLINE_LINUX行 添加 intel_iommuon iommupt重新创建引导…

【机器学习实战入门项目】使用Python创建自己的表情符号

深度学习项目入门——让你更接近数据科学的梦想 表情符号或头像是表示非语言暗示的方式。这些暗示已成为在线聊天、产品评论、品牌情感等的重要组成部分。这也促使数据科学领域越来越多的研究致力于表情驱动的故事讲述。 随着计算机视觉和深度学习的进步&#xff0c;现在可以…