MCS-51单片机原理_51单片机的基本结构

MCS-51单片机原理_51单片机的基本结构MCS-51单片机结构及原理MCS-51单片机结构MCS-51单片机的内部结构MCS-51引脚及功能MCS-51的存储器结构存储器划分方法程序存储器数据存储器单片机的复位、时钟与时序复位与复位电路MCS-51单片机结构MCS-51单片机的内部结构SCM——将通用微计算机基本功能部件集成在一块芯片上构成的一种专用微计算机系统80C51=(1×8)CPU+128BRAM+4KBROM+……

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

MCS-51单片机结构

MCS-51单片机的内部结构

  • SCM——将通用微计算机基本功能部件集成在一块芯片上构成的一种专用微计算机系统
    在这里插入图片描述
  • 80C51=(1×8)CPU+128B RAM+4KB ROM+ (2×16)T/C + (4×8)I/O + 1个UART+5个中断源

UART:通用异步收发传输器。它将要传输的资料在串行通信与并行通信之间加以转换

单片机CPU = 控制器 + 运算器
在这里插入图片描述

  • 控制器:
    作用:统一指挥和控制计算机协调工作
    组成:程序计数器PC+指令译码器ID+数据指针DPTR+其它专用寄存器
    功能:
    (1)从存储器中取出下一条要执行的指令(取指)
    (2)对取出的指令进行识别(译码)
    (3)指挥运算器运算或控制数据传送(指挥)
  • 程序计数器(Program Counter——PC)
    作用:指令地址寄存器,永远存放着下一条指令的地址, PC的变化规律决定着程序的流程。
    特点:
    具有16位字长→可寻址范围216(=64KB)
    具有自动加1功能(计数器)→顺序运行程序功能
    具有可被指令修改功能→跳转运行程序功能
    复位时,PC值为0 →复位后程序从0开始运行
  • 数据指针寄存器(Data Pointer ——DPTR)
    16位字长,可寻址范围 2 16 2^{16} 216(64KB)
    可拆为2个8位的独立寄存器DPL和DPH
    用于表示存储器数据地址的指针,以便对片外64K的数据RAM区进行读/写操作
  • 运算器
    作用:对数据进行算术运算和逻辑操作
    组成:算术/逻辑部件ALU +累加器ACC+程序状态字寄存器PSW+其它工作单元
    功能:
    (1)对暂存器中的数据进行运算
    (2)结果保存在ACC
    (3)运行状态反映在PSW
  • 累加器(Accumulater——A)
    累加器A是一个8位寄存器,用来存放操作数或中间运算结果
    通过暂存器与ALU相连
    它是CPU中使用最频繁的寄存器
  • 程序状态字寄存器(Program State Word——PSW)
    PSW是一个8位的专用寄存器,用于存放程序运行过程中的各种状态信息。
    在这里插入图片描述
寄存器名称 功能
CY(PSW.7) 进位标志
AC(PSW.6) 辅助进位标志
F0(PSW.5) 用户标志位(用户可自定义)
RS1(PSW.4) 工作寄存器组指针
RS0(PSW.3) 工作寄存器组指针
OV(PSW.2) 溢出标志
F1(PSW.1) 用户标志位(用户可自定义)
P(PSW.0) 奇偶标志位
在这里插入图片描述

MCS-51引脚及功能

电源及晶振引脚(共4只)
控制引脚(共4只)
输入/输出引脚 (共32只)

电源及晶振引脚 引脚功能
VCC +5V电源引脚
VSS 接地引脚
XTAL1 外接晶振引脚(内置放大器输入端)
XTAL2 外接晶振引脚(内置放大器输出端)
控制引脚 引脚功能
RST/VPD 为复位/ 备用电源引脚
ALE/ P R O G ‾ \overline{PROG} PROG 为地址锁存使能输出/ 编程脉冲输入
P S E N ‾ \overline{PSEN} PSEN 输出访问片外程序存储器读选通信号
E A ‾ / V P P \overline{EA}/ V_{PP} EA/VPP 外接晶振引脚(内置放大器输出端)
并行I/O口引脚 引脚功能
P0.0~P0.7 P0口
P1.0~P1.7 P1口
P2.0~P2.7 P2口
P3.0~P3.7 P3口

MCS-51的存储器结构

存储器划分方法

计算机存储器地址空间的两种结构形式:
普林斯顿结构哈佛结构
在这里插入图片描述在这里插入图片描述
MCS-51系列单片机采用哈佛结构,存储器配置如图 :
在这里插入图片描述

程序存储器

作用:存放程序、表格或常数(非易失性——掉电保存)
字长:8位
数量:4KB
在这里插入图片描述

ROM的6个特殊存储器单元——引导程序跳转

地址 功能
0000H 复位后程序自动运行的首地址
0003H 外部中断0入口地址
000BH 定时器0溢出中断入口地址
0013H 外部中断1入口地址
001BH 定时器1溢出中断入口地址
0023H 串行口中断入口地址
所以,程序一般应安排在0030H地址以后。
在这里插入图片描述
  • EA引脚接高电平(开关接A点)时,4 KB以内的地址在片内ROM,大于4KB的地址在片外ROM中(图中折线),两者共同构成64KB空间;
  • 当**EA引脚接低电平(开关接B点)**时,片内ROM被禁用,全部64KB地址都在片外ROM中(图中直线)。

数据存储器

作用:存放程序运行结果
字长:8位
数量:256B
低128B( 00H~7FH )为普通RAM区
高128B (80H~FFH)为特殊功能寄存器区
在这里插入图片描述
位寻址与字节寻址:
这里我们以一个例子进行说明

  • 欲将地址(20H)中存放数 0111 0010B的最高位改为1, 而其余不变。
    方法1,用 数1000 0000B与(20H)的内容进行“或”运算
    MOV A, 20H ;先将 20H的内容传入A里
    ORL A, #80H ;再对A进行80H的“或”运算
    方法2,直接针对最高位进行“置位”操作
    SETB 07H ;07H为20H最高位的位地址

单片机的复位、时钟与时序

复位与复位电路

R S T / V P D RST/V_{PD} RST/VPD引脚端出现满足复位时间要求的高电平状态,该时间等于系统时钟振荡周期建立时间再加2个机器周期时间(一般不小于10ms)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/188745.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Linux下自动检测Tomcat宕机,并自动重启[通俗易懂]

    Linux下自动检测Tomcat宕机,并自动重启[通俗易懂]Linux下自动检测Tomcat是否宕机,并自动重启公司服务器tomcat经常自动挂掉,具体原因无法找到。所以做了这次调整。让Linux自动检测tomcat是否宕机1.新建一个名字为XX.sh的文件,文件内容如下#!/bin/sh#获取tomcat进程ID/usr/local/tomcat_ds_api#TomcatID=$(ps-ef|greptomcat|grep-…

  • Map转json遇到一些问题

    Map转json遇到一些问题最近发现了一个问题,通过查看用户的活跃度发现了奇怪的事情,有的用户访问某一个接口没有问题,而一些奇葩用户访问这一接口就是不成功,经过查看,原来是Android系统4.4以下map转换json的时候出现了问题,具体是什么了,下面我们来分析分析。第一,利用”org.json.JSONObject”下的JsonObject时,4.4以下的系统出现“=”的问题。比如:Map

  • dirsearch讲解_mv命令使用

    dirsearch讲解_mv命令使用dirsearch用法github地址参数选项(机翻)强制:字典设置:常规设置:请求设置:github地址https://github.com/maurosoria/dirsearch参数选项(机翻)强制:Mandatory:-uURL,–url=URL 目标URL-lFILE,–url-list=FILE 目标URL列表文件–stdin TargetURLlistfromSTDIN–cidr=CIDR

  • SQL Server中quotename()函数的用法

    SQL Server中quotename()函数的用法原文链接:https://blog.csdn.net/zengcong2013/article/details/43485837首先,sqlserver里的标识符有一定的规则,比如你createtableabc123(…)那么中间含有空格,它不是符合规则的。你会写做createtable[abc123](….)即以[]来定界标识符。quotename…

  • 简述C/S和B/S模式的区别[通俗易懂]

    简述C/S和B/S模式的区别[通俗易懂]简述C/S和B/S模式的区别

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号