MCS-51单片机结构及原理

  • MCS-51单片机结构
    • MCS-51单片机的内部结构
    • MCS-51引脚及功能
  • MCS-51的存储器结构
    • 存储器划分方法
    • 程序存储器
    • 数据存储器
  • 单片机的复位、时钟与时序
    • 复位与复位电路

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位字长,可寻址范围2162^{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/PROG‾\overline{PROG}PROG 为地址锁存使能输出/ 编程脉冲输入
PSEN‾\overline{PSEN}PSEN 输出访问片外程序存储器读选通信号
EA‾/VPP\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最高位的位地址

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

复位与复位电路

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

单片机原理——MCS-51单片机结构及原理相关推荐

  1. 微型计算机原理和单片机,8086微机原理与51单片机对比

    <8086微机原理与51单片机对比>由会员分享,可在线阅读,更多相关<8086微机原理与51单片机对比(2页珍藏版)>请在人人文库网上搜索. 1.医学信息2010年03月第23 ...

  2. c51单片机的语言,51单片机,stm32,arduino都是用什么语言进行编程的?

    51单片机,STM32单片机用汇编或者C语言,现在基本都用C语言编程,Arduino有自己的编程环境,用户也是用C语言编程. 51单片机的编程 51单片机进入中国比较早,在早前用汇编编程比较多,我在上 ...

  3. 单片机位寻址举例_单片机学习:51单片机寻址方式详解

    51单片机是对所有兼容Intel 8031指令系统的单片机的统称.该系列单片机的始祖是Intel 8031单片机,后来随着Flash rom 技术的发展,8031单片机取得了长足的发展,成为了应用最广 ...

  4. 从51单片机白痴到51单片机高手的快速成长

    从51单片机白痴到51单片机高手的快速成长 推荐一个不错的51单片机学习视频教程(高清晰版本)电驴下载   也可以用迅雷下载 飞龙教程------51单片机 需要更多单片信息请与我联系 飞龙QQ:90 ...

  5. C51汇编语言寻址方式,单片机学习:51单片机寻址方式详解

    原标题:单片机学习:51单片机寻址方式详解 51单片机是对所有兼容Intel 8031指令系统的单片机的统称.该系列单片机的始祖是Intel 8031单片机,后来随着Flash rom 技术的发展,8 ...

  6. ADC0832测电阻原理及51单片机1602显示

    前言:今天中午和高中老同学一起吃了个饭,同学计算机专业代码大佬,问起我有没有CSDN,我说有些时候会在上面看一些程序,他随即向我说起了他已经在CSDN上发表了很多文章目前排名一万多,因为我学集成电路专 ...

  7. 51单片机教程:51单片机驱动四个8*8点阵,拼凑16*16点阵显示标准汉字。

    看此篇博文之前建议先看博主的上一篇博文: 51单片机教程:8*8 点阵显示字符.数字.简单汉字 取走点赞哦~ 教你如何用4个8乘8点阵拼成一个16乘16点阵 资料链接:点阵16乘16.rar 一.点阵 ...

  8. 单片机学习笔记————51单片机实现带数码管显示的象棋比赛专用计时器

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

  9. 单片机学习笔记————51单片机实现数码管中的倒计时程序

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

  10. 单片机学习笔记————51单片机实现带数码管显示的加法简易计算器

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

最新文章

  1. 【转载】Linux下套接字学习
  2. 个人-GIT使用方法
  3. Silverlight教程第三部分:使用 Networking取回数据并填充DataGrid
  4. Windows 2003 主域控和DNS迁移到Windows 2008 R2(1)
  5. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 按钮:让按钮看起来像个链接 (仍然保留按钮行为)...
  6. I.MX6ULL镜像文件
  7. Java进阶:volatile使用详解
  8. [渝粤教育] 广东-国家-开放大学 21秋期末考试管理会计10171k2
  9. Java StringBuilder codePointCount()方法与示例
  10. BmpEncrypt v3.20.1017 ++ 加密器
  11. pythonide的作用_Linux程序员宝典:2020年10款出色的Python IDE!
  12. 欧几里德算法+拓展欧几里德算法
  13. TouchVG 支持 CocoaPods 了!
  14. 超星的Pdg/Pdz转带书签目录Pdf的好方法
  15. MicroMsg.SDK.WXMediaMessage: checkArgs fail, thumbData is invalid
  16. Vijos P1304回文数
  17. python 等值面多边形平滑_三次贝塞尔曲线平滑多边形
  18. c#和java工资相差多少岁_为什么C#程序员平均工资水平比Java程序员低?
  19. Final shell配置
  20. HTML 实现打电话

热门文章

  1. zip压缩文件内中文名字符编码解压乱码问题
  2. ElasticJob3.0整合SpringBoot,ElasticJob-Lite【ElasticJob入门篇】
  3. 网络安全工作及其配套法律法规和规范性文件汇总目录
  4. Excel表格身份证号码如何一键提取性别、年龄、出生年月
  5. 哪些高级感中文Logo字体可免费商用?
  6. linux系统棋牌搭建教程,幼麟棋牌四川麻将搭建教程补充
  7. HTML页面跳转及表单详解
  8. MongoDB——客户端Robo 3T v1.4.3 安装
  9. matlab画柱状图
  10. nginx静态资源服务器(一)