单片机结构和原理讲解!
89C51单片机结构框图
1、一个8位 的微处理器CPU。
2、片内数据存储器(RAM128B/256B):用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等。
3、片内4kB程序存储器Flash ROM(4KB):用以存放程序、一些原始数据和表格。
4、四个8位并行I/O(输入/输出)接口 P0~P3:每个口可以用作输入,也可以用作输出。
5、两个或三个定时/计数器: 每个定时/计数器都可以设置成计数方式,用以 对 外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果 实现计算机控制
6、一个全双工UART的串行I/O口:可实现单片机与单片机或其它微机之间串行通信。
7、片内振荡器和时钟产生电路:但需外接晶振和电容。
8、五个中断源的中断控制系统。
9、具有节电工作方式:休闲方式及掉电方式。
在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。此时的电流可降到大约为正常工作方式的15%。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,故只保存片内RAM中的内容,直到下一次硬件复位为止。这种方式下的电流可降到15 μA以下,最小可降到06 μA。
结构:
由中央处理单元(CPU)、存储器(ROM及RAM)和I/O接口组成。89C51单片机内部结构如图所示:
下面介绍的是mcs-51
MCS-51单片机存储器的配置特点
① 内部集成了4K的程序存储器ROM;
② 内部具有256B的数据存储器RAM;
③ 可以外接64K的程序存储器ROM和 数据存储器RAM。
从物理结构的角度讲,51单片机的存储系统可以分为四个存储空间:既片内ROM,RAM和片外ROM、RAM。
从逻辑上讲(既编程的角度),51单片机的存储系统实际上分为三个存储空间。
1. 片内数据存储器RAM;
2. 片外数据存储器RAM;
3. 片内或外的程序存储器ROM(由EA电平决定)。
1.程序存储器ROM用于存放程序、常数或表格。
2.在51单片机中,由引脚 /EA 上的电平选择内、外ROM: EA=1时,CPU执行片内的4KROM中的程序; EA=0时,CPU选择片外ROM中的程序。
3.无论是使用片内还是使用片外ROM,程序的起始地址都是从ROM的0000H单元开始。
4.尽管系统可以同时具备片内ROM和外部ROM,但是在一般正常使用情况下,通过/EA的设定来选择其一(或者使用内部ROM,或者使用外部ROM)。
5.如果EA=1(执行片内程序存储器中程序时):如果程序计数器的指针PC值超过0FFFH(4K)时,单片机就要自动的转向片外的ROM存储器且从1000H单元开始执行程序(无法使用片外ROM的低4K空间)。
6.当程序超过4K时,有两种使用程序存储器ROM的方法:
①设置EA=0,使用外部ROM。从地址=0000H开始;
②设置EA=1,使用内部的4KROM和外部ROM(地址从1000H开始的单元)。
程序存储器六个特殊的单元:
在ROM中有六个单元具有特定功能。
0000H单元:复位时程序计数器PC所指向的单元,因此用来 存放程序中的第一条指令;
0003H单元:外部中断/INT0的矢量入口地址;
000BH单元:定时器T0溢出中断的矢量入口地址;
0013H单元:外部中断/INT1的矢量入口地址;
001BH单元:定时器T1的溢出中断矢量入口地址;
0023H单元:串行口接收、传送的中断矢量入口地址。
矢量入口单元:在编写中断程序时,写入对应的“跳板指令”
单片机第一条指令的两个特征:
①存放在ROM的0000H单元;
②必须是“跳转指令”以跳过下面的5个中断矢量,转到后面的真正的主程序入口0100H单元。
ORG 0000H LJMP 0100H
ORG 0100H
START: MOV A,#00H
∶ ∶
∶ ∶
∶ ∶
∶ ∶
END
外部程序存储器:
当单片机使用外ROM存储器时(扩展系统),必须设定/EA=0,此时单片机的端口功能就要发生相应的改变:
① P0、P2作为外部ROM的地址和数据总线;
② 使用引脚/psen信号来选通外部ROM的数据三态输出。
内部数据存储器RAM:
无论在物理上还是逻辑上,系统中RAM 都可分为两个独立空间:内部和外部RAM。由不同的指令来访问。
1.访问内部数据存储单元时,使用 MOV 指令;
2.访问外部数据存储器时,使用 MOVX 指令。内部RAM从功能上将256B空间分为二个不同的块:
1.低128B的RAM块;
2.高128B的SFR(Special Function Register )块。
在低128B的RAM存储单元中又可划分为:
1.工作寄存器区;
2.位寻址区;
3.通用存储数据的“便签区”。
高128B的专用寄存器区SFR中仅仅使用了21寄存器(51系列),其它107个单元不能使用。
本文转自网络,版权归原作者,如果您觉得不好,请联系我们删除!
1.35岁学编程,单片机编程解了我的“近忧”!
2.他们发明了一门编程语言,名字叫摇滚明星Rockstar
3.在MCU中,如何实现串口的不定长数据包接收?
4.给你一根网线,来撬动嵌入式Linux!
5.模拟 or 数字电路,机器学习如何选择?
6.电源电路设计常用软件,哪个适合你的应用?
免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。
单片机结构和原理讲解!相关推荐
- 8051单片机I/O端口结构与原理
8051单片机I/O端口结构与原理 1. P1端口 图1.1 P1.X的内部结构示意图 P1口是一个8位双向并行I/O口,每位的内部结构如图1.1所示,P1口由8组这样的结构组成. 1.1 P1口 ...
- 【LSTM】深入浅出讲解长短时记忆神经网络(结构、原理)
本文收录于<深入浅出讲解自然语言处理>专栏,此专栏聚焦于自然语言处理领域的各大经典算法,将持续更新,欢迎大家订阅! 个人主页:有梦想的程序星空 个人介绍:小编是人工智能领域硕士,全 ...
- IoT物联网嵌入式设备中30种常见传感器模块简介及原理讲解
IoT物联网嵌入式设备中30种常见传感器模块简介及原理讲解 0.前言 一.光学传感器模块: 1. 光敏传感器模块: 2. 红外避障模块 3. 循迹传感器模块 4. U型光电传感器模块 5. 红外接收模 ...
- 四旋翼飞行器基本知识(四旋翼飞行器结构和原理+四轴飞行diy全套入门教程)
转载两篇日志: 第一篇<四旋翼飞行器结构和原理> 第二篇<四旋翼飞行diy全套入门教程> =========================================== ...
- 步进电机基础(2.1)- 定子相数的分类、结构、原理
步进电机基础(2.1)- 定子相数的分类.结构.原理 前言 基本信息 前言说明 定子相数的分类.结构.原理 1. 决定步距角的因素 2. 单相步进电机 3. 两相步进电机 4.三相步进电机 5. 四相 ...
- 晶体三极管工作原理讲解方法探讨
晶体三极管作为一个常用器件,是构成现代电子世界的重要基石.然而,传统的教科书对其工作原理的讲述却存在有很大问题,使初学者对三极管的工作原理无法正常理解,感到别扭与迷茫. 晶体三极管原理问题的关键在于: ...
- 计算机 发声原理,单片机的发声原理
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU.随机存储器RAM.只读存储器ROM.多种I/O口和中断系统.定时器/计数器 ...
- 机械硬盘的存储结构及原理
硬盘是电脑主要的存储媒介之一.根据硬盘的读写方式和存储方式不同,当前主流的硬盘可以分为固态硬盘(SSD硬盘).机械硬盘(HDD 硬盘)两种.由于固态硬盘存在价格昂贵.容量较小和一旦损坏难以修复等特点, ...
- es实战-Monitoring原理讲解及kibana可视化实战
实战结合官方文档进行学习效果更佳,可以参考本人另一篇简书-官方文档-监控集群(Monitor)翻译. Monitoring学习方法:在官方文档与源码阅读基础之上进行实战操作. 1 Monitoring ...
最新文章
- cdi name 日志_CDI 2.0更新
- Nginx源码研究三:Epoll在NGINX中的使用
- Delphi XE 使用 MySQL 数据库一个奇怪的问题
- Java黑皮书课后题第2章:*2.23(驾驶费用)编写一个程序,提示用户输入驾驶的距离、每加仑多少英里的汽车燃油性能值,以及每加仑的价格,然后显示旅程的费用
- 网页上有错误(类不能支持 Automation 操作)解决方法
- tensorboard ckpt pb 模型的输出节点_“技术需求”与“技术成果”项目之间关联度计算模型 TOP10 baseline...
- FPGA资源评估方法
- [LeetCode] Intersection of Two Arrays 两个数组相交
- 微云笔记控制脚本实例:远程控制脚本开关
- centos安装wget_宝塔是干什么的?3分钟教会你云服务器上安装宝塔面板
- Apache Pulsar PMC 成员翟佳入选「2020 中国开源先锋 33 人」
- 第3次 实验 原码一位乘法实验
- python识别图片、PDF识别成文字、表格(包含去除水印) 代码不是最新,可在最下面Gitee地址查看最新代码
- 技术负责人如何带领好团队
- Win10怎么设置每天自动开机
- 浮窗---创建系统浮窗(可拖动)
- JavaScript中变量判断是否是数字,判断是否是整数,判断是否是正整数/负整数,判断奇数/偶数的方法
- 可口可乐、百事可乐都使用的包装黑科技,你Get到了吗?
- 华为秘密“达芬奇计划”首次曝光:自主研发AI芯片要对标英伟达?
- 全国程序员薪酬大曝光!看完我酸了····
热门文章
- “shadows a parameter“ 和 “error: expected ‘}’ at end of input”
- 机器视觉基础知识/经典系统/常用领域以及机器视觉常用的图像处理库
- 如果相关不意味着因果,那么什么意味着? ——大数据时代的“因果关系”思辨
- 面试yan-原理性函数
- React ref的基本使用
- Goat Rodeo:面向Web应用的统一数据模型
- Win7系统设置共享打印机出现0x000006d9错误怎么办?
- 收藏优秀外贸平台B2B网站 开发国外客户用什么平台
- unity demo免费下载:第三人称镜头移动+瞄准线+发射弧线球打击方块(方块可以识别受击方向)demo
- 自强学堂 java_Java File类 - Java 教程 - 自强学堂