80C51引脚功能及片内RAM、片内ROM简介
一. 80C51系列单片机引脚图及逻辑符号,为标准的40脚DIP封装,如下图:
- Pin1-Pin8为P1口,内部带上拉电阻的8位准双向IO口
- Pin9为复位口,高电平有效(持续两个机器周期)。
- Pin10-Pin17为P3口,内部带上拉电阻的8位准双向IO口,同时还有特殊功能。
- P3.0为串行输入口
- P3.1为串行输出口
- P3.2为外部中断0输入口
- P3.3为外部中断1输入口
- P3.4为定时器0外部输入口
- P3.5为定时器1外部输入口
- P3.6为写选通输出口(用于与外部存储器通信时)
- P3.7为读选通输出口(用于与外部存储器通信时)
Pin18-Pin19为时钟电路引脚,可选择接入外部时钟或晶振电路,如下图:
Pin20为电源地。
Pin21-Pin28为P2口,内部带上拉电阻的8位准双向IO口。同时当与外部存储器通信时,它复用为高8位地址线。
Pin29为外部程序存储器读选通信号,低电平有效。CPU从外部存储器获取指令。
Pin30为地址锁存允许,单片机正常上电时以时钟频率的1/6输出脉冲信号。当与外部存储器通信时,用于控制锁存器锁存P0口低8位地址,以实现P0口低8位地址线与8位数据线的复用。
Pin31为程序存储器地址允许输入端:
- 高电平时,CPU执行片内ROM指令,但当PC(程序计数器)的值超过0FFFH(因为这里ROM为4KB)时,自动跳转到外部程序存储器,地址空间允许范围为1000H—FFFFH(因为PC为32位寄存器,寻址空间为64KB)。
- 低电平时,CPU执行外部程序存储器指令,地址空间允许范围为0000H—FFFFH。
- Pin32-Pin39为P0口,漏极开路的8位准双向口,内部无上拉电阻,所以做IO口使用时,必须外接上拉电阻。同时当与外部存储器通信时,它复用为低8位地址线和数据线。
- Pin40为电源端,接+5V。
二. 80C51系列单片机内部结构
80C51单片机采用的是冯诺依曼体系结构框架,即把程序也当做数据来看待。其内部主要包括:
- 一个8位CPU
- 一个时钟电路
- 4KB程序存储器
- 128B数据存储器(这里指的是内部数据RAM区大小,不包括SFR(专用寄存器)区,所以这里指的是内部RAM低128个单元,00H-7FH)
- 两个16位定时/计数器
- 64KB扩展总线控制电路。为什么是64KB?因为扩展电路时P0口和P2口分别用作地址低八位和高八位,总共16位寻址空间,即64KB
- 4个8位并行IO端口
- 1个可编程串行接口
- 5个中断源(2个定时器,2个外部中断,1个串行通信中断),包括两个中断优先级嵌套
三. 80C51内部RAM,低128单元为内部数据RAM区(00H-0FH),高128单元为SFR区(80H-FFH)
- 内部低128个单元(可采用直接或间接寻址方式进行数据传送):
- 00H—1FH为通用寄存器组区,共4组,每组为R0—R7八个8位寄存器单元。寄存器组的选取通过程序状态寄存器PSW的RS1、RS0位确定。
- 20H—2FH为位寻址区,可对单元里的每一位进行位操作,也可作为一般的RAM区进行字节操作
- 30H—7FH为堆栈区、数据缓冲区,即用户RAM区。栈顶位置由SP指针确定,堆栈地址空间是向上增长的,一般将SP初始化设置为大于30H。
- 内部高128单元,21个SFR离散分布(只能使用直接寻址的方式)
- E0H为8位寄存器—累加器ACC或A,最常用,既可存放操作数,也可存放中间结果。
- F0H为8位寄存器—B,主要用于乘除运算。
- 乘法:运算时,保留乘数;运算后,保留结果的高八位。
- 除法:运算时,保留除数;运算后,保留余数
- D0H为8位寄存器—程序状态字PSW,保留着程序运行时的状态信息。
- D7—CY进位借位标志位,也是位处理器的位累加器C;加减运算时当操作结果最高位有进位或借位时,自动置1否则清零。
- D6—AC辅助进位借位标志位,加减运算时,低4位向高4位进位或借位时,自动置1否则清零。
- D5—F0用户标志位,软件置位复位。
- D4、D3—RS1、RS0寄存器组选择位,通过组合选择通用寄存区组的组别:00-11对应第0-3组。
- D2—OV溢出标志位
a) 带符号的加减运算时,结果超出8位范围,OV=1,否则OV=0。
b) 乘法时,OV=1表示结果大于255,分别存在B,A寄存器;否则OV=0,结果小于 255,只存在A寄存器中。
c) 除法时,除数为0,OV=1;否则OV=0。- D0—P奇偶标志位,表示操作结果是奇数还是偶数个’1’。
- 81H为堆栈指针SP,里面存放了堆栈数据区栈顶的地址。
- 82H-83H为数据指针低8位和高8位,通常在访问外部数据存储器时作为地址指针使用,寻址范围为64KB。
- 87H为电源控制及波特率选择控制寄存器,只能字节寻址。
- D0—IDL为待机方式位,为1时进入待机方式。
- D1—PD为掉电保护位,为1时进入掉电保护方式。
- D3、D2—GF1、GF0为通用工作标志位,用户自由使用。
- D7—SMOD波特率加倍位,为1波特率加倍,否则不加倍。
- 80H、90H、A0H、B0H为P0 ~ P3,是并行IO口P0~P3的数据锁存器。
- 99H为串行口数据缓冲寄存器SBUF,用来存放已发送或接受到的数据。
- 8AH-8BH为定时器1的计数器低8位和高8位
- 8CH-8DH为定时器0的计数器低8位和高8位
- 88H为定时器控制寄存器TCON,存放了定时器及外部中断标志位,以及控制外部中断方式位
- TF1,TF0:定时器溢出时,自动置1,并进入中断服务函数,硬件自动置0,或查询方式下置0。
- TR1,TR0:置1打开定时器,置0关闭定时器。
- IT1,IT0:置1时外部中断引脚下降沿触发,置0时低电平触发。
- IE1,IE0:收到中断触发标志(下降沿或低电平)后,自动置1,并进入中断服务函数,下降沿触发模式硬件自动置0,低电平触发模式输入高电平。
- 89H为定时器方式选择寄存器TMOD,低4位控制定时器0,高4位控制定时器1。
- M0,M1选择工作方式
a) 00为13位定时器/计数器
b) 01为16位定时器/计数器
c) 10为自动重装载定时器/计数器
d) 11—当是定时器0时分为两个8位计数器;当是定时器0时停止计数。- C/T为时钟选择控制位
a) 0时为定时器功能,选择晶振频率12分频作为时钟信号源
b) 1时为计数器功能,选择外部输入引脚P3.4与P3.5的输入脉冲作为时钟信号源- GATE为计时器门控制位,用来决定定时/计数器是否受外部输入引脚控制,常用于测试输入高电平脉冲宽度
a) 为0时,只要TCON的TRx位为1,即开始工作
b) 为1时,CON的TRx位为1且外部输入引脚为高电平,才开始工作
- 98H为串行口控制寄存器SCON,串口中断标志位,自动置位手动复位
- TI是串口发送数据中断请求标志位
- RI是串口接收数据中断请求标志位
- SM0,SM1为串行口工作方式控制位,00-11表示工作方式0-3
a) 方式0:用作同步移位寄存器,波特率是晶振频率12分频
b) 方式1:8位数据UART,波特率由定时器控制
c) 方式2:9位数据UART,波特率为晶振频率32或64分频
d) 方式3:9位数据UART,波特率由定时器控制- SM2为多机通信控制位
a) 在方式0时,不设置,置0
b) 在方式1时,置1则收到有效停止位数据才有效;置0则数据都有效。
c) 方式2和方式3,置1则当第9位数据为1时,数据有效,将前8位送入SBUF;置0则任何情况都将前8位送入SBUF。- TB8为要发送的第9位数据,软件写入,只有方式2和3使用。
- RB8为接收到的第9位数据,在方式0中不使用,方式1中表示停止位。方式2和3,当SM2=0可做奇偶校验位,SM2=1可做区别数据帧和地址帧的标志。
- REN为允许串行接收控制位,为1允许,为0禁止。
- A8H为中断允许控制寄存器IE
- EA是全局中断使能位,为1允许各个中断,为0禁止所有中断。
- ES是串口中断使能控制位
- ET1,ET0是定时器中断使能控制位
- EX1,EX0是外部中断使能控制位
- B9H为中断优先控制寄存器IP,置1为高级中断,置0为低级中断
- PS是串口中断优先级设置位
- PT1,PT0是定时器中断优先级设置位
- PX1,PX0为外部中断优先级设置位
四. 80C51内部ROM
- 80C51内部ROM为4KB(0000H—1000H),程序从0000H开始运行,接下来的地址空间是:
- 0003H—000AH:外部中断0中断地址区
- 000BH—0012H:定时/计数器0中断地址区
- 0013H—001AH:外部中断1中断地址区
- 001BH—0022H:定时/计数器1中断地址区
- 0023H—002AH:串行中断地址区
- 注意:因为每个中断只有8B,所以通常是在此处进行无条件转移指令,使程序运行到真正的中断程序地址入口。所以002BH开始才是用户可以随意使用的程序存储器。
以上是我看书后对80C51引脚功能及片内RAM、片内ROM总结,不足之处请在评论区指出。
80C51引脚功能及片内RAM、片内ROM简介相关推荐
- 如何通过8051单片机与片外存储器的连接来解决8051片内RAM和ROM容量不够用的问题
系列文章目录 上期文章回归: <你真的熟悉8051单片机的引脚功能及其使用吗?> 提示:读本文前可先阅读上期文章回归下51单片机的引脚,以便更好的阅读本文. 文章目录 系列文章目录 前言 ...
- Xilinx FPGA 引脚功能详细介绍
Xilinx FPGA 引脚功能详细介绍 注:技术交流用,希望对大家有所帮助. IO_LXXY_# 用户IO引脚 XX代表某个Bank内唯一的一对引脚,Y=[P|N]代表对上升沿还是下降沿敏感,#代表 ...
- 你真的熟悉8051单片机的引脚功能及其使用吗?
系列文章目录 今天来说说8051单片机的引脚功能 提示:大家对文章中有不懂的可以在评论区留言,感觉你对本文的支持. 文章目录 系列文章目录 前言 一.基本工作条件引脚 (1)电源引脚 (2)复位引脚 ...
- 【ZYNQ】从入门到秃头07 FPGA 片内 RAM ROM 读写测试实验
文章目录 FPGA 片内RAM读写测试实验 实验原理 创建Vivado工程 RAM的端口定义和时序 测试程序编写 Verilog IO约束 Testbeach simulation仿真 板上验证 添加 ...
- stc15w4k32s4芯片引脚图片_单片机引脚功能初识及提高(3)
40个接口我们已经了解了29个了,在开始我们 今天的内容之前,我们先对之前的内容总结一下. 图片来源网络 最小系统 电源部分(20脚GND,40脚VCC[+5v]) 复位部分(9脚,给高电平进行复位) ...
- ZYNQ之FPGA 片内RAM读写测试实验
文章目录 前言 一.添加RAM IP核 二.编写测试程序 三.添加ILA 四.分配管脚 五.Simulator仿真 六.硬件调试 总结 前言 本实验的主要内容是介绍如何使用 FPGA内部的RAM以及程 ...
- Quartus 平台 FPGA 片内 RAM 使用
Quartus 平台 FPGA 片内 RAM 使用 本文将以 Quartus 自带的 RAM:2-PORT 为例,介绍 EP4CE6E22C8 On Chip Memory 的使用 一.在 IP Ca ...
- 详解T507 核心板引脚功能修改指引-飞凌嵌入式
FETT507-C核心板CPU为四核Cortex-A53,1.5GHz主频:GPU为G31 MP2:核心板集成2GB DDR3 RAM,8GB eMMC ROM,可流畅运行Android.Ubuntu ...
- tl494c封装区别_TL494的特点与引脚功能
TL494的特点与引脚功能 来源:华强电子网 作者:华仔 浏览:4008 时间:2016-08-10 14:18 标签: 摘要: ;;; 1.特点;;; TL494县有以下特点:①PWM控制电路功能完 ...
最新文章
- webpack-dev-server 和webapck --watch的区别
- html 第三次作业
- js修改地址栏url_在gulp、create-react-app中css,js中的文件路径
- 洛谷P2995奇数偶数
- 针对access数据库的增删改查
- Flask入门之上传文件到服务器
- fastjson jsonobject 转bean失败_FastJson是如何导致App Crash的
- 【0304】密码分类
- pta 计算圆周率(C语言实现)
- 制作一个简单HTML公司官网网页设计(HTML+CSS)
- ASF文件格式详解(1)
- 【第38题】2019年OCP认证12C题库062考试最新考试原题
- Excel的写入与读取(openpyxl)
- 小知识------SATA
- salesforce与微信集成(一)-- 如何配置微信和salesforce
- checkm基因组_checkm8漏洞利用的技术分析
- java 时间戳验证_时间戳校验问题
- 矩阵/向量/标量间相互求导
- JavaScript基础语法(VS Code)
- [转]情侣相处最佳模式
热门文章
- 那个叫鲁迅的人终于从教科书里滚蛋了
- Python表白妙招,把情书写进她的照片里
- 概念:伪随机数、种子以及C中的随机函数
- 编程中常用的英文单词
- 19、控件使用之图标旋转指示仪表盘显示
- JavaSE 实战 中奖判断
- iOS常见错误8-Missing iOS Distribution signing identity for “XXXXX”. Xcode can request one for you.
- fatal: Incorrect username or password ( access token ) 鉴权失败
- 【计组】偏移地址、段地址和寻址方式
- 【每日学习】深度学习相关知识