51单片机结构组成相关知识点

51单片机

一、结构组成

内部结构

  • 8位CPU
  • 1个片内振荡器和时钟电路
  • 4KB片内程序存储(ROM)
  • 256字节(2KB)片内数据存储(RAM)
  • 2个16位定时/计数器(T/C)
  • 可寻址64KB程序存储空间 + 64KB数据存储空间的总线计数器
  • 4个8位双向并行IO口
  • 1个全双工串行口
  • 5个中断源

控制器

  1. 程序计数器PC:16位,存放下一条执行指令的首地址(这个地址指向的是程序存储空间0000H~0FFFH为片内的4KB,超出时便转向片外
    系统复位之后自动赋值为0000H。
  2. 指令寄存器IR:8位
  3. 指令译码器ID:对指令寄存器中的指令进行译码,转变为电信号
  4. 数据指针DPTR:16位,由两个8位寄存器(DPH、DPL)拼装而成,
    配合相关指令实现对最高64KB片外RAM和ROM的访问

只要是16位的,必然会涉及到对片外或片内RAM或ROM的访问,这也是为什么片尾RAM和ROM是64KB的原因

运算器

  1. 累加器ACC:8位,存放操作数或中间结果

  2. 通用寄存器B:8位,配合ACC进行乘法或除法运算,也可以当作普通寄存器

  3. 算数逻辑部件ALU:进行运算,结果状态传给PSW

  4. 程序状态字寄存器PSW:8位,存放运算过程的各种状态信息
    其中:
    CY(PSW7):进位标志位,硬件控制,1表示进位

    AC(PSW6):辅助进位标志位,如果运算结果的低四位向高四位发生进位,则硬件置1
    F0(PSW5):用户标志位,用户自定义作用
    RS1、RS0(PSW4,PSW3):工作寄存器组指针。
    OV(PSW2):溢出标志位,溢出由硬件置1
    F1(PSW1):用户标志位,同F0;
    P(PSW0)奇偶标志位

引脚

51单片机共40个引脚

  1. 电源:VCC,接+5V,VSS,接地
  2. 外接晶振:XTAL1(19),XTAL(18)
  3. 复位/备用电源:RST/VPD:RST的使用方法是给与足够长时间的脉冲信号
  4. A L E / P R O G ‾ ALE/\overline {PROG} ALE/PROG:地址锁存使能输出/编程脉冲输入:
    ALE:如果你想输出片外ROM地址,那么给这个引脚高电平可以让你将第八位地址所存到P0口。
  5. P S E N ‾ \overline {PSEN} PSEN :29脚,如果你从片外ROM读取指令,这个引脚将会在每个机器周期出现两次负跳变脉冲,用作片外ROM芯片的使能信号
  6. E A ‾ / V p p \overline {EA}/V_{pp} EA/Vpp : 31脚,当 E A ‾ = 1 \overline {EA} = 1 EA=1或者悬空时,CPU从片内ROM读指令。当PC超出4KB范围时会自动访问片外ROM。如果 E A ‾ = 0 \overline {EA} = 0 EA=0或接地时,单片机只会访问片外ROM
  7. IO共32引脚,P0~P3都可以用来输出,P0和P2可以用来输出地址,P3具有第二功能

二、单片机的存储结构

存储器划分方法

51单片机物理上共4个存储空间,分别是:

  • 片内ROM: E A ‾ = 1 \overline {EA} = 1 EA=1时访问,共4KB
  • 片内RAM:共256B
  • 片外ROM: E A ‾ = 0 \overline {EA} = 0 EA=0时访问,加上片外的60KB共64KB
  • 片外RAM:共64KB

逻辑上只有三个,因为EA引脚控制了ROM的片内外寻址,也就是说片内外的ROM逻辑上是一个。

程序存储器

指的是ROM,弄清 E A ‾ \overline {EA} EA在什么状态下可以访问片内和片外的ROM。

E A ‾ = 1 \overline {EA} = 1 EA=1的时候,只能访问片内, E A ‾ = 0 \overline {EA} = 0 EA=0时既可以访问片内也可以访问片外。

数据存储器

指的是RAM,类似于缓存,存放中间变量,标志位等。
片内的RAM只有256B,其中低128B(00H7FH)**区为**普通寄存器区域**,高**128B(80HFFH)特殊功能寄存器区域,但是只有21字节有定义

低128B RAM区
  • 在低128B 的RAM区域中,具有00H~1F共32个单元(字节),分成四组,每组有8个单元(字节)作为寄存器,受到PSW中的RS1和RS2来选定其中的分组。复位后默认第0组。
  • **20H2FH**地址区域可以按**字节存取或者按位存取**。按位编址为00H7FH
  • 30H~7FH的80字节单元为用户RAM区,只能按字节存取
高128B RAM区

字节地址为80H~FFH。

三、单片机的复位与时序

单片机复位

复位条件:RST引脚出现满足复位时间的高电平。

复位后,除了SP的值回复为07H以及所有IO变为FFH,其他寄存器有意义的值全部变为0

单片机时序
  • 单片机执行指令的过程:取指令、分析指令、执行指令
  • 时钟信号的两种产生方式:内部时钟,外部时钟方式。
    内部时钟:
    需要XTAL1和XTAL2两个引脚连接震荡电路;
    C1和C2取值一般为30pF;
    震荡频率越高,时钟频率越高,运行速度越快;
    外部时钟:多个单片机一起工作的时候,如果想要保证所有单片机时钟频率一致
    需要连接XTAL2到公用的外部震荡信号上,XTAL1接地。
时钟周期

P表示,最小的时序单位,其与晶振频率f的关系如下:
P = 1 / f P = 1/f P=1/f

状态周期

一个状态周期由两个时钟周期组成:
1 状态周期 = P 1 + P 2 1状态周期 = P1 + P2 1状态周期=P1+P2

机器周期

一个机器周期由6个状态周期组成。
1 机器周期 = 1 / 时钟频率 1机器周期 = 1/时钟频率 1机器周期=1/时钟频率
晶振频率fOSC,与其他的周期关系:
时钟周期 = 1 / f O S C 状态周期 = 2 / f O S C 机器周期 = 12 / f O S C 指令周期 = 1 4 机器周期 时钟周期 = 1/f_{OSC}\\ 状态周期 = 2/f{OSC}\\ 机器周期 = 12/f_{OSC}\\ 指令周期 = 1 ~ 4机器周期 时钟周期=1/fOSC状态周期=2/fOSC机器周期=12/fOSC指令周期=1 4机器周期

指令周期

执行一条指令所需要的时间称为指令周期。1个指令周期由1~4个机器周期组成,指令周期是最大的时序单位。

D触发器

分为两种:正边沿D触发器、负边沿D触发器

正边沿D触发器

当CLK出现正脉冲时会进行D(输入端)和 Q ‾ / Q \overline {Q}/Q Q/Q (输出端)的同步。

负边沿D触发器

与正边沿相反。

四、并行IO口

P1

  • 内部总线的电平可以由P1口输出,也可以所存在P1口中
  • P1口如果想要作为输入口需要先写1,作为输出口无条件,因此被称作准双向口

P3

  • 当“第二输出功能”端保持在“1”状态时,P3口处在通用IO状态,称作准双向口
  • 锁存器Q保持“1”时,P3口工作在第二功能口状态

其各个引脚第二功能如下:


P3.0 RXD 串行数据输入
P3.1 TXD 串行数据输出
P3.2 I\N\T\0\ 外部中断0
P3.3 I\N\T\1\ 外部中断1
P3.4 T0 定时器/计数器0的外部中断
P3.5 T1 定时器/计数器1的外部中断
P3.6 W\R\ 外部数据储存器的写远通信号,W\R=0时远通
P3.7 R\D\ 外部数据储存器的读选通信号,R\D=0时选通


P0

  • P0口也是准双向口
  • 作为通用IO时,必须外接上拉电阻
  • P0口连接外部存储器时,P0工作在地址/数据分时复用方式,此时为真正双向口

P2

  • P2口可以实现通用IO地址输出两种功能,他是真正的双向口

总结:P1P3无需外接上拉电阻,P0需要外接上拉电阻,P0P3都可以作为准双向口;当需要外接存储器时,P2可作为地址线接口,P0可作为地址/数据线复用接口,此时它是真正的双向口

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

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

相关文章

Vue实现响应式布局

前提准备:响应式布局有两种方法,看自己想要哪种。 方法一:百分比 用百分比去写元素的宽度,然后让子元素撑起父元素的高度 .parent {width: 50%; }.child {width:100%;height:100px; } 方法二:vh、vw vw、vh是基于视…

Git一个仓库包含多个不同的项目VUE(老项目的基础上,新建分支放新项目)

背景: 原有项目A(vue2.6),需要在A的基础上接入组件库,涉及到项目升级,领导不想走这条路,建议重新构建一版2.7的项目B,那么现在就需要把项目B与项目A远程到同一个仓库; 解…

网络通信-Linux 对网络通信的实现

Linux 网络 IO 模型 同步和异步,阻塞和非阻塞 同步和异步 关注的是调用方是否主动获取结果 同步:同步的意思就是调用方需要主动等待结果的返回 异步:异步的意思就是不需要主动等待结果的返回,而是通过其他手段比如,状态通知&#xff0…

TP-LINK AC1200 双频无线路由器网段设置

TP-LINK AC1200 双频无线路由器网段设置 1. 管理页面2. 上网设置3. 无线设置4. LAN 口设置 原始 3 网段5. LAN 口设置 设置 1 网段6. DHCP 服务器7. 重新连接References ​ 1. 管理页面 管理页面:http://tplogin.cn/ 上网方式:自动获得 IP 地址 2. 上网…

string类编程实例

2.9 string类编程实例 2.9 string类编程实例 实现一个字符串类String&#xff0c;为其提供可接受C风格字符串的析构函数、构造函数、拷贝构造函数和拷贝赋值函数 #include <iostream> #include <cstring> using namespace std;class String{ public:explicit Str…

Vue框架引入Element-Ui

首先已经创建好了 Vue 框架&#xff0c;安装好了 node.js。 没有完成的可按照此博客搭建&#xff1a;搭建Vue项目 之后打开终端&#xff0c;使用命令。 1、命令引入 npm i element-ui -S2、package.json 查看版本 在 package.json 文件里可查看下载好的依赖版本。 3、在 ma…

Python入门学习篇(八)——元组详解

1 相关概念以及理解 1 python的元组与列表类似,不同之处在于元组的元素不可修改 2 有序且可重复 3 语法: (值1,值2,值3...值n) 最简单的元组为(值,) 而这个(值)并不是元组 4 关键字 tuple 5 因为元组不可修改,我们重新赋值元组的时候,只是改变了指向关系, 原来的元组还是依然…

【Mybatis】深入学习MyBatis:概述、主要特性以及配置与映射

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; Mybatis ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 一、概述 MyBatis简介 主要特性 1. 动态SQL 2.结果映射 3 .插件机制 二、MyBatis配置文件 1.配置文件结构 数据库连…

连锁电商管理系统门店拓客+门店进销存管理+门店进货+总部进销存管理 整体系统搭建设计

搭建一个连锁电商管理系统需要考虑门店拓客、门店进销存管理、门店进货以及总部进销存管理等多个方面。以下是一个整体系统功能整理&#xff1a; 1. **门店拓客** - 实现线上线下渠道的融合&#xff0c;建立一个门店拓客平台&#xff0c;吸引潜在客户。 - 设计会员管理系统&…

【算法题】11. 盛最多水的容器

题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容器。…

tsconfig.app.json文件报红:Option ‘importsNotUsedAsValues‘ is deprecated...

在创建vue3 vite ts项目时的 tsconfig.json&#xff08;或者tsconfig.app.json&#xff09; 配置文件经常会报一个这样的错误&#xff1a; 爆红&#xff1a; Option ‘importsNotUsedAsValues’ is deprecated and will stop functioning in TypeScript 5.5. Specify compi…

Springboot实现定时任务

一、定时任务是什么&#xff1f; 定时执行任务&#xff0c;只有电脑不关机就可以在特定的时间去执行相应的代码&#xff0c;例如抢购脚本等 二、使用步骤 1.无需引入springboot自带 package com.ltx.blog_ltx;import org.springframework.boot.SpringApplication; import o…

Cause: java.sql.SQLTimeoutException: ORA-01013: 用户请求取消当前的操作

##oracle异常排查 ### Cause: java.sql.SQLTimeoutException: ORA-01013: 用户请求取消当前的操作 ; ORA-01013: 用户请求取消当前的操作 ; nested exception is java.sql.SQLTimeoutException: ORA-01013: 用户请求取消当前的操作 原因&#xff1a;sql语句操作超时了&#…

低代码:拒绝重复、低价值的工单循环开发

一、前言 在软件开发和其他工程领域&#xff0c;“重复造轮子”被广泛认为是一种低效的做法&#xff0c;因为它浪费了大量的时间和资源去重新创作已经存在的东西&#xff0c;而不是利用现有的技术和经验去解决问题。 例如在大平台项目的实战开发中&#xff0c;针对不同业务场景…

docker-compose部署kafka

docker-compose.yml配置 version: "3" services:kafka:image: bitnami/kafka:latestports:- 7050:7050environment:- KAFKA_ENABLE_KRAFTyes- KAFKA_CFG_PROCESS_ROLESbroker,controller- KAFKA_CFG_CONTROLLER_LISTENER_NAMESCONTROLLER- KAFKA_CFG_LISTENERSPLAIN…

63.乐理基础-打拍子-四十六

历史知识&#xff1a; 当前写的节奏型是四十六节奏型&#xff0c;同二八这个词的意思类似&#xff0c;四十六就是四个十六分音符组成的节奏型&#xff0c;所以简称四十六&#xff0c;以四分音符为一拍的时候&#xff0c;四个十六分音符加起来的总拍数就是一拍&#xff0c;这…

算法训练第四十八天|198. 打家劫舍、213. 打家劫舍 II、337. 打家劫舍 III

198. 打家劫舍&#xff1a; 题目链接 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报…

SpringBoot整合JWT+Spring Security+Redis实现登录拦截(二)权限认证

上篇博文中我们已经实现了登录拦截&#xff0c;接下来我们继续补充代码&#xff0c;实现权限的认证 一、RBAC权限模型 什么事RBAC权限模型&#xff1f; RBAC权限模型&#xff08;Role-Based Access Control&#xff09;即&#xff1a;基于角色的权限访问控制。在RBAC中&#x…

15.权限控制 + 置顶、加精、删除

目录 1.权限控制 1.1 登录检查 1.2 授权配置 1.3 认证方案 1.4 CSRF 配置 2.置顶、加精、删除 2.1 开发数据访问层 2.2 业务层 2.3 表现层 Spring Security 是一个专注于为 Java 应用程序提供身份认证和授权的框架&#xff0c;它的强大之处在于它可以轻松扩展以满足自…

蓝桥杯的学习规划

c语言基础&#xff1a; Python语言基础 学习路径&#xff1a;画框的要着重学习