单片机基础:MCS-51单片机的硬件结构(附硬件结构框图)
单片机硬件结构知识点非常琐碎,通过一次两次的学习是不太可能记住的。想要熟练掌握硬件结构,最好的方法是在实验中练习,通过编程多见多用才能牢固的掌握。
MCS-51单片机硬件结构
- 1.硬件系统框图
- 2.单片机功能图
- 3.单片机的主要部件
- 4.CPU内部结构
- 4.1.运算器
- 4.2.控制器
- 5.存储器
- 5.1.存储器结构图
- 5.2.程序存储器ROM
- 5.3.数据存储器RAM
- 5.3.1.通用数据存储器
- 5.3.1.1.工作寄存器区(00H ~ 1FH)
- 5.3.1.2.可位寻址区(20H ~ 2FH)
- 5.3.1.3.用户数据缓冲区(30H ~ 7FH)
- 5.3.2.特殊功能寄存器
- 5.3.3.三大逻辑存储部分指令
- 6.I/O接口
- 6.1.引脚图
- 6.2.引脚功能
- 6.2.1.P0 ~ P3
- 6.2.2.电源引脚
- 6.2.3.时钟震荡电路引脚
- 6.2.4.控制信号引脚
- 时钟电路
- 复位电路
- 上电自动复位
- 上电加按键手动复位
1.硬件系统框图
2.单片机功能图
单片机就是一个芯片集成了计算机的三大部分,中央处理器、存储器、I/O接口,这三大部分又通过三总线(数据总线、地址总线、控制总线)相互连接。
3.单片机的主要部件
CPU
- 1个8位CPU
存储器
- 4KB程序存储器ROM(Read Only Memory),片外最多可扩展64KB,ROM是只读存储器,用于存储数据,相当于硬盘。
- 128B数据存储器RAM(Random Access Memory),片外最多可扩展64KB,RAM是随机存取存储器,用于临时存放数据,相当于内存条。
- 21个具有特殊功能的寄存器SFR。
I/O接口
- 4个8位并行口,P0、P1、P2、P3
- 1个全双工串行口
其它
- 2个16位定时/计数器
- 5个中断源
- 1个片内振荡器、时钟电路
4.CPU内部结构
4.1.运算器
- 算术/逻辑运算单元ALU:进行算术逻辑运算,加减乘除、与或非等等。
- 累加器ACC(8位):助记符A。
- 寄存器B(8位):配合ACC完成乘除运算,没有乘除运算时,可当做RAM的一个单元。
- 程序状态字寄存器PSW(8位):存放ALU运算状态
4.2.控制器
- 堆栈指针SP(8位):存取数据,先进后出。数据入栈出栈时,SP自动加1减1。复位时SP=07H。
- 程序计数器PC(16位):存放下条要执行的指令的地址,PC指针指向哪,CPU就执行哪条指令。复位时PC=0000H
- 数据指针DPTR(16位):与PC功能一样,区别是DPTR是外部存储器的指针。
5.存储器
5.1.存储器结构图
单片机存储器在物理结构上分为4部分,片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。但在逻辑上分为3部分,片内外统一编制的程序存储器、片内数据存储器、片外数据存储器,访问这3个存储空间时,采用不同形式的指令。
5.2.程序存储器ROM
读取数据的两条指令
MOVC A, @A + DPTR
MOVC A, @A + PC
DPTR为外部扩展ROM的数据指针
最多扩展64KB的程序存储器
复位地址0000H
当EA为低电平时,所有取指令操作都在片外ROM中进行;当EA为高电平,所有取指令操作都在片内ROM中进行。
各中断入口地址
中断源 | 入口地址 |
---|---|
外部中断0(INT0) | 0003H |
外部中断1(INT1) | 0013H |
定时器0(T0) | 000BH |
定时器0(T1) | 001BH |
串行口(TI或RI) | 0023H |
5.3.数据存储器RAM
数据存储器分为外部RAM和内部RAM,内部RAM只有128B地址空间(00H~7FH),外部RAM有64KB(0000H ~ 0FFFFH);访问内部RAM用指令MOV,访问外部RAM用指令MOVX。
内部RAM分为通用数据存储器和特殊功能寄存器,两大部分
5.3.1.通用数据存储器
通用数据存储器被分为三个区,工作寄存器区、可位寻址区、用户数据缓冲器
5.3.1.1.工作寄存器区(00H ~ 1FH)
工作寄存器区共分为4个工作寄存器组,每组有8个工作寄存器R0 ~ R7,可以通过程序状态字寄存器(PSW)中RS0和RS1两位来选择工作寄存器组。
5.3.1.2.可位寻址区(20H ~ 2FH)
可以对具体的某一位进行处理、传输数据等。
5.3.1.3.用户数据缓冲区(30H ~ 7FH)
用户RAM,只能按字节寻址
5.3.2.特殊功能寄存器
21个特殊功能寄存器中,有11可位寻址。
重要:程序状态字寄存器PSW
5.3.3.三大逻辑存储部分指令
访问ROM用MOVC
访问片内RAM用MOV
访问片外RAM用MOVX
- 从外部RAM取数 MOVX A,@DPTR
- 从数到外部RAM MOVX @DPTR,A
6.I/O接口
6.1.引脚图
6.2.引脚功能
6.2.1.P0 ~ P3
P0口是三态双向口,如果需要输出电平,需要外接上拉电阻。P1、P2是准双向IO口。P3
准双向IO口,双功能口
6.2.2.电源引脚
引脚 | 功能 |
---|---|
Vcc | 电源输入端 |
Vss | 接地端 |
6.2.3.时钟震荡电路引脚
引脚 | 功能 |
---|---|
XTAL1 | 晶体振荡电路反相器输入端 |
XTAL2 | 输出端,称为单片机的主频 |
6.2.4.控制信号引脚
引脚 | 功能 |
---|---|
RST/VPD | RST是复位信号输入端,VPD是内部RAM备用电源,防止突然断电时导致RAM中的数据丢失 |
ALE/PROG | ALE地址锁存允许信号 |
PSEN | 外部ROM的读选通信号 |
EA/VPP | 访问外部ROM控制信号 |
时钟电路
复位电路
上电自动复位
上电加按键手动复位
单片机基础:MCS-51单片机的硬件结构(附硬件结构框图)相关推荐
- 零基础学习51单片机
零基础学习51单片机 前言 51单片机是一款非常经典的8位单片机,广泛应用于各种嵌入式系统和电子产品中.本文将从零开始,以简明易懂的方式介绍51单片机的基本原理.基本语法和应用. 什么是单片机 单片机 ...
- c51单片机的语言,51单片机,stm32,arduino都是用什么语言进行编程的?
51单片机,STM32单片机用汇编或者C语言,现在基本都用C语言编程,Arduino有自己的编程环境,用户也是用C语言编程. 51单片机的编程 51单片机进入中国比较早,在早前用汇编编程比较多,我在上 ...
- 单片机位寻址举例_单片机学习:51单片机寻址方式详解
51单片机是对所有兼容Intel 8031指令系统的单片机的统称.该系列单片机的始祖是Intel 8031单片机,后来随着Flash rom 技术的发展,8031单片机取得了长足的发展,成为了应用最广 ...
- C51汇编语言寻址方式,单片机学习:51单片机寻址方式详解
原标题:单片机学习:51单片机寻址方式详解 51单片机是对所有兼容Intel 8031指令系统的单片机的统称.该系列单片机的始祖是Intel 8031单片机,后来随着Flash rom 技术的发展,8 ...
- 从51单片机白痴到51单片机高手的快速成长
从51单片机白痴到51单片机高手的快速成长 推荐一个不错的51单片机学习视频教程(高清晰版本)电驴下载 也可以用迅雷下载 飞龙教程------51单片机 需要更多单片信息请与我联系 飞龙QQ:90 ...
- 单片机的入门-51单片机
想学习单片机的同学可以关注.私信我或者在评论区回复我要入门.早期可能是绝大多数嵌入式工程师或者电子爱好者接触的第一款单片机--51单片机,不像现在很多学习单片机的朋友都跳过51单片机直接学起了STM3 ...
- c语言51单片机外部中断,51单片机外部中断0实例详解
今天就以51单片机的外部中断0为例,来简单讲解一下单片机中断的用法. 1 51单片机的中断源 51单片机共有5个中断源,分别为:外部中断0 定时器0中断 外部中断1 定时器1中断 串口中断 每一个中断 ...
- 51单片机sht30_基于51单片机和机智云的WIFI智能插座(2019版)
和大家分享一下我做STC15W4K56S4单片机(51单片机)连接机智云WIFI智能插座的过程,实现了网络时间获取.温湿度采集.定时开关.OLED屏幕显示.定时开关.数据定时保存等功能,供参考和交流. ...
- 51单片机教程:51单片机驱动四个8*8点阵,拼凑16*16点阵显示标准汉字。
看此篇博文之前建议先看博主的上一篇博文: 51单片机教程:8*8 点阵显示字符.数字.简单汉字 取走点赞哦~ 教你如何用4个8乘8点阵拼成一个16乘16点阵 资料链接:点阵16乘16.rar 一.点阵 ...
- 单片机学习笔记————51单片机实现带数码管显示的象棋比赛专用计时器
一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...
最新文章
- 全国所有省市县地理坐标Json格式
- 笔记本多硬盘win7下U盘安装Cnetos7引导问题!
- 微信小程序和vue双向绑定哪里不一样_个人理解Vue和React区别
- html快速排序,快速排序.html
- 帮助学生改善学习方法_学生应该如何花费时间改善自己的幸福
- 判断浏览器设置相应的CSS
- 闭包的理解、缺点以及应用场景
- CCNA 笔记-11
- 判断checkbox是否选中
- 蓝桥杯python小学组_蓝桥杯python组如何准备
- 【渝粤题库】陕西师范大学200391 初等几何研究 作业(专升本)
- GitHub怎么搜索项目
- Rect.OverLaps() 改进
- 阿里云安全组是什么?如何配置安全组(图文教程)?
- 用Java自动发邮件
- 郭天祥单片机编程100例程序及随笔3——定时器编程
- 人脑脊液的代谢组学研究—标识恶性神经胶质瘤的特征
- 取出汉字的拼音首字母
- SQL Sever数据库存取图片
- 数商云SCM供应链协同系统库存管理解决方案,助力家居建材企业库存精细化管理
热门文章
- 思科网络工程师面试题
- linux下的ps4手柄驱动,DS4 To XInput Wrapper
- 从硅谷“神秘”孵化器,看中美医疗创新差别在哪里
- 关于Spring核心配置文件中的各项主要配置
- CodeMeter的功能介绍
- 星沙工业机器人_长沙县各种大型企业管道检测:管道排查机器人CCTV检测QV检
- 洛杉矶马拉松本周末开跑!27000名选手正常参赛
- 鼠标使用板载内存和使用计算机上,【罗技G5鼠标评测】板载内存 没有驱动也能自定义-中关村在线...
- no serializer
- Netty实战中英文版