微机原理基础(四)—— MSC51
一、MCS51基本组成(STC89C52)
CPU(8051CPU) + 存储器(4KB ROM/256B RAM)+外设(4组IO口,两个定时器,一个串口)
1、组成结构简图
2、具体组成框图
二、MCS51存储器详解
注:1、CPU的组成基本之前已讲,本篇重点讲述存储器
2、存储单元的基本单位是Byte,
1B = 8bit , 1024(210)B = 1KB, 1024K(220)B =1MB, 1024M(230)B = 1GB , 1024G(240)B = 1TB
MCS51的存储器采用哈佛架构,ROM 和 RAM独立,主要分为四个区域:内部ROM,内部RAM,外部ROM,外部RAM;
ROM主要用来存放程序、表格、常数;
RAM主要用来存放变量、原始数据、中间数据、运算结果;
1、程序存储区
程序存储区的地址由程序计数器PC指针(16位寄存器)指示的,每执行一次PC自动加一,PC复位值为0000H,所以CPU从0000H处开始取指;
- 0000H-0002H 这三个存储单元通常存储无条件跳转指令,CPU跳转地址去执行程序;
- 0003H-002AH 这40个存储单元被分为五段,对应5个中断源,该处本应该存放对应的中断服务程序,然而每段区域只有8B的大小,是存放不了完整的中断服务程序的,所以通常只用来存放一条无条件转移指令,CPU跳转去执行中断服务程序;
- 0030H-0FFFH 这(4KB-3B-40B)个存储单元是用来放用户程序的,还可以放表格(对应C语言数组),常数等;
2、内部数据存储区
- 00H-1FH 这32个存储单元分为4个工作寄存器区,每个区都对应R0-R78个通用寄存器,CPU使用哪个工作区由PSW寄存器中RS1和RS0两个位决定,默认使用工作区0;
特别注意的是,堆栈指针默认值为07H,即从08H开始为8051堆栈区,但是08H开始是工作寄存器区1/2/3,所以,若编程时用到了这三个工作区,需要初始化SP指针到用户RAM区,也就是30H-7FH;
- 20H-2FH 这16个存储单元为位寻址区,对应128位,留给用户使用,CPU可以直接位寻址并进行操作(置1,清0,取反等)
- 30H-7FH 这80个存储单元为用户RAM,留给用户使用,但只能进行字节寻址;
- 80H-FFH 这128个存储单元为专用寄存器区,有21个特殊功能寄存器,但只占用了28个存储单元,如果访问这28个之外的,得到的是一个随机数;这21个SFR中,有的寄存器可以进行位寻址,有的不能,具体见下表:
对应分组 | 标识符 | 名称 | 地址 |
CPU | *ACC(A) | 累加器 | E0H |
*B | 辅助寄存器(乘除法用) | F0H | |
*PSW | 程序状态寄存器 | D0H | |
SP | 堆栈指针寄存器 | 81H | |
DPTR | 数据指针寄存器(DPH+DPL) | 83H和82H | |
PORT | *P0 | PORT0 | 80H |
*P1 | PORT1 | 90H | |
*P2 | PORT2 | A0H | |
*P3 | PORT3 | B0H | |
中断 | *IE | 中断允许寄存器 | A8H |
*IP | 中断优先级寄存器 | D8H | |
UART | PCON | 电源控制和波特率选择寄存器 | 87H |
*SCON | 串行口控制寄存器 | 98H | |
SBUF | 串口数据缓冲器 | 99H | |
TIMER | *TCON | 定时器控制器 | 88H |
TMOD | 定时器方式选择器 | 89H | |
TL0 | 定时器0低8位 | 8AH | |
TH0 | 定时器0高8位 | 8BH | |
TL1 | 定时器1低8位 | 8CH | |
TH1 | 定时器1高8位 | 8DH |
这些寄存器中除了外设寄存器,最重要的就是PSW程序状态寄存器,下面具体看下:
PSW.7 | PSW.6 | PSW.5 | PSW.4 | PSW.3 | PSW.2 | PSW.1 | PSW.0 |
Cy | AC | F0 | RS1 | RS0 | OV | —— | P |
进位标志 1、存放进位标志; 2、位操作时作累加位 |
辅助进位标志 存放低4位向高4位的进位 常用于十进制数调整 |
供用户使用 |
0 0 1 1 |
0 1 0 1 |
溢出标志 (有符号数运算时结果超出了A所能表示的有效范围(-128-127),则产生溢出) |
未使用 |
奇偶校验(A中1的个数) |
微机原理基础(四)—— MSC51的更多相关文章
- 微机原理基础(五)—— MSP430
一.MSP430组成 1.结构简图 2.具体组成框图
- Linux学习之CentOS(二十八)--RAID原理基础及Linux下软件RAID配置
一.RAID的原理基础 在 讲解RAID的原理基础之前,我们首先来了解一下传统磁盘的劣势.我们知道一台PC机种都会包含CPU.内存.主板.硬盘.网卡等硬件,影响计算机性能的 组建包括:CPU.主板总线 ...
- Python全栈开发【基础四】
Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...
- 单片微机原理P0:80C51结构原理
本来我真的不想让51的东西出现在我的博客上的,因为51这种东西真的太low了,学了最多就所谓的垃圾科创利用一下,但是想一下这门课我也要考试,还是写一点东西顺便放博客上吧. 这一系列主要参考<单片 ...
- 80x86/Pentium微机原理及接口技术-微处理器-学习笔记
80x86/ Pentium微机原理及接口技术 1. 计算机基础... 1 1.1常用术语... 1 1.2计算机中数与编码的表示方法... 1 1.2.1进制表示及进制转换... 1 1.2 ...
- Bootstrap<基础四> 代码
Bootstrap 允许您以两种方式显示代码: 第一种是 <code> 标签.如果您想要内联显示代码,那么您应该使用 <code> 标签. 第二种是 <pre> 标 ...
- Python 基础 四 面向对象杂谈
Python 基础 四 面向对象杂谈 一.isinstance(obj,cls) 与issubcalss(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls ...
- MFC原理第四讲.动态创建机制
MFC原理第四讲.动态创建机制 一丶要学习的知识点以及简介 动态创建是什么意思? 动态创建其实就是跟C++的new一样.都是创建对象.但是规避了C++语法的缺陷. 例如: char * ClassNa ...
- C#_02.13_基础四_.NET方法
C#_02.13_基础四_.NET方法 一.方法概述: 方法是一块具有名称的代码.可以通过方法进行调用而在别的地方执行,也可以把数据传入方法并接受数据输出. 二.方法的结构: 方法头 AND 方法 ...
随机推荐
- Spring--ApplicationContext
//中心接口,给应用提供配置信息 public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory ...
- Android特效专辑(七)——飞机升空特效,一键清理缓存,灵活运用动画会有不一样的感受
Android特效专辑(七)--飞机升空特效,一键清理缓存,灵活运用属性动画 最近的几篇博文反响还不错,也会继续的写下去的,关于这些特效的专辑,大多数也是借鉴大神的,最近由于工作的关系,会深入的了解一 ...
- android DialogFragment 实现Dialog展示扫二维码图片展示
近期开发项目,做个按钮点击弹出展示微信二维码关注微信公众号的展示框,于是想到DialogFragment,期间对Dialog的title的底框字体颜色做出相关设置,记录如下: 下面是 DialogFr ...
- Java深入了解TreeSet
Java中的TreeSet是Set的一个子类,TreeSet集合是用来对象元素进行排序的,同样他也可以保证元素的唯一.那TreeSet为什么能保证元素唯一,它是怎样排序的呢?先看一段代码: publi ...
- 发现DELL笔记本一个很弱智的问题
以前用联想的笔记本,最近联想笔记本坏了,用的是公司的DELL笔记本,发现DELL笔记本一个很弱智的问题. 关于禁用触摸板的问题. 起因: 由于要经常写程序,我配置的有有线鼠标,但是打字时经常碰到触摸板 ...
- Kali Linux信息收集工具
http://www.freebuf.com/column/150118.html 可能大部分渗透测试者都想成为网络空间的007,而我个人的目标却是成为Q先生! 看过007系列电影的朋友,应该都还记得 ...
- Google搜索排名优化-面向搜索引擎的网站设计
内容摘要:网站在搜索营销方面最主要的缺点: 行业知识:不知道搜索引擎对吸引的新用户的重要性,在搜索引擎排名服务中追求“傻瓜相关”,购买一些其实没有太多实际意义的行业关键词.其实能够用户输入的关键词越多 ...
- iOS9自动布局神器StackView
http://www.jianshu.com/p/767f72b7d754 这篇文章紧跟上边autolayout的一些小技巧,如果你没有看过,不防先看下<你真的会用autolayout吗?> ...
- linux 系统centOS 7 怎么在线安装mysql
以下操作,注意空格,为避免出错,可以选择直接copy 第一步: 输入命令行 yum list installed | grep mysql 检查是否已经安装mysql 已安装输入 ...
- Yii2基本概念之——生命周期(LifeCycle)
人有生老病死,一年有春夏秋冬四季演替,封建王朝有兴盛.停滞.衰亡的周期律--"其兴也勃焉,其亡也忽焉".换句话说,人,季节,王朝等等这些世间万物都有自己的生命周期.同样地,在软件行 ...