80C51单片机的基本信息
80C51单片机的基本结构
基本组成
CPU
存储器
- RAM
- ROM
并行I/O口
用于检测和控制
定时器/计数器
定时电路及元件
80C51单片机的引脚及功能
- 电源与晶振
Vcc:运行与检验时接电源正端
Vss:接地
- I/O
P0P_0P0 : 8位,漏极开路的双向I/O口
P1P_1P1 : 8位,准双向I/O口
P2P_2P2 : 8位,准双向I/O口
P3P_3P3 : 8位,准双向I/O口,具有内部上拉电路
串行口
P3.0P_{3.0}P3.0 : RXD串行输入口
P3.1P_{3.1}P3.1 : TXD串行输出口
中断
P3.2P_{3.2}P3.2 : INT0‾\overline{INT0}INT0 外部中断0输入
P3.3P_{3.3}P3.3 : INT1‾\overline{INT1}INT1 外部中断1输入
定时器/计数器
P3.4P_{3.4}P3.4 : T0T_0T0 定时器/计数器0的外部输入
P3.5P_{3.5}P3.5 : T1T_1T1 定时器/计数器1的外部输入
数据存储器或I/O选通
P3.6P_{3.6}P3.6 : WR‾\overline{WR}WR 低电平有效,I/O口写选通
P3.7P_{3.7}P3.7 : RD‾\overline{RD}RD 低电平有效,I/O口读选通
控制线
RST
- 复位输入信号,高电平有效
- 在RST上作用两个机器周期以上的高电平后,复位
EA‾\overline{EA}EA /Vpp
- 为1时,选择片内程序存储器
- 为0时,程序存储器在片外
80C51单片机CPU的结构和特点
CPU
- PC(程序计数器)
- 程序地址寄存器
- 指令寄存器(IR)
- 指令译码器
- 条件转移逻辑电路及定时电路
PC
- 存放下一条将要从程序员存储器中取出的指令的地址
- 取出数作为指令地址后,自动加1,指向下一条指令地址
- 16位计数器,对63KB程序存储进行寻址
- 执行条件转移/无条件转移,PC将植入转移的目的地址
DPTR(数据指针)
作为片外数据存储器或I/O寻址用的地址寄存器(间址)
MOV A,@DPTR ;读
MOV @DPTR, A ;写
可作为访问程序存储器时的基址寄存器
MOVC A ,@A+DPTR
JMP @A+DPTR
PC与DPTR的区别
相同
与地址有关的16位地址寄存器
均通过P0P_0P0 与P1P_1P1 口输出
区别
① PC与程序存储器有关
DPTR与数据存储器或I/O地址有关
② PC输出与ALE及PSEN‾\overline{PSEN}PSEN 信号有关
DPTR输出,与ALE,WR‾\overline{WR}WR ,RD‾\overline{RD}RD 信号有关
③ PC仅作为16位寄存器,不可访问,不属于特殊功能寄存器
DPTR可作为16/8位寄存器,可访问,PDL与DPH均位与特殊功能寄存器区中
指令执行过程:取指令 -> 指令译码 -> 执行指令
运算器
- 算术逻辑运算单元(ALU)
- 累加器(ACC)
- 暂存寄存器
- B寄存器
- 程序状态标志寄存器(PSW)
- BCD码运算修正电路
寄存器B
在乘法和除法指令作为ALU的输入之一
程序状态字(PSW)
- 字节地址为D0H
- 主要为算数逻辑运算单元(ALU)的输出
① P(PSW.0)—— 奇偶校验位
表示累加器A中值为1的个数的奇偶性
1的个数为奇数(奇校验)
1的个数为偶数(偶校验)
② OV(PSW.2)—— 溢出标志位
OV = C6C_6C6 ⨁\bigoplus⨁ C7C_7C7 (CiC_iCi为位i向位i+1有进位)
③ RS1RS_1RS1 , RS0RS_0RS0 (PSW.4,PSW.3)—— 工作寄存器选择控制位
实现对主程序的现场保护的作用
RS1RS_1RS1 RS0RS_0RS0 组号 寄存器R0R_0R0 ~R7R_7R7地址 0 0 0 00H~07H 0 1 1 08H~0FH 1 0 2 10H~17H 1 1 3 18H~1FH ④ AC(PSW.6)—— 辅助进位
低4位向高4位数发生进位/借位
⑤ CY(PSW.7)—— 进位标志位
结果中高位是否有进位或者借位
时钟电路及CPU的工作时序
时序定时单位
节拍P
振荡脉冲的周期
状态S
一个状态包含2个节拍
机器周期
一个机器周期的宽度为6状态,并依次表示为S1S_1S1~S6S_6S6
指令周期
执行一条指令所需要的时间,是最大的时序定时单位 ,可包含一、二、四个机器周期
80C51指令时序
按照长度可分为单字节指令、双字节指令和三字节指令
单字节单机器周期指令、单字节双机器周期指令、双字节单机器周期指令和双字节双机器周期指令
三字节指令嗾使双机器周期指令
单字节乘除指令则均为四机器周期指令
80C51单片机存储器结构与地址空间
采用Harvad结构:程序存储器与数据存储器分开
- 程序存储器
采用16位程序计数器(PC)和16位的地址总线,可扩展的地址空间位64KB,且为空间地址是连续、统一的
程序存储器某些单元保留为特定的程序入口地址
复位 | 0000H |
---|---|
外部中断0 | 00003H |
计时器T0T_0T0溢出 | 000BH |
外部中断1 | 0013H |
计数器T1T_1T1溢出 | 001BH |
串行口中断 | 0023H |
片内数据存储器(IRAM)
①只有8位,最大寻址范围位256字节
② DPTR为16位的寄存器,从而具有64KB数据存储扩展的功能
③ 寄存器R0R_0R0、R1R_1R1通常用作间接寻址时的地址指针
位寻址区
片内数据存储区的32~47(20H ~ 2FH)的16个字节单元,共128位 => 既可以字节寻址,又可以直接进行位寻址
字节寻址
48 ~ 127(30H ~ 7FH),共80个字节单元,可直接字节寻址
堆栈区及堆栈指示器(SP)
堆栈指示器是一个在80C51中存放当前的堆栈栈顶所指存储的单元地址的8位寄存器
80C51堆栈为向上生成,及进栈时SP内容增加,出栈减少
特殊功能寄存器(SFR)
设有128B片内数据存储器结构的特殊功能存储器空间区
80C51共定义了20个特殊功能寄存器
序号 标识符 名称 字节地址 位地址 1 ACC 累加器 E0H E0H~E7H 2 B B寄存器 F0H F0H~F7H 3 PSW 程序状态字 D0H D0H~D7H 4 SP 堆栈指针 81H 5 DPTR 数据指针(DPH、DPL) 83H、82H 6 P0 P0口 80H 80H~87H 7 P1 P1口 90H 90H~97H 8 P2 P2口 A0H A0H~A7H 9 P3 P3口 B0H B0H~B7H 10 IP 中断优先级控制寄存器 B8H B8H~BFH 11 IE 中断允许控制寄存器 A8H A8H~AFH 12 TMOD 定时器/计数器方式控制寄存器 89H 13 TCON 定时器/计数器控制寄存器 88H 88H~8FH 14 TH0 定时器/计数器0(高位字节) 8CH 15 TL0 定时器/计数器0(低位字节) 8AH 16 TH1 定时器/计数器1(高位字节) 8DH 17 TL1 定时器/计数器1(低位字节) 8BH 18 SCON 串行口控制寄存器 98H 98H~9FH 19 SBUF 串行数据缓冲器 99H 20 PCON 电源控制及波特率选择寄存器 87H 片外数据存储器
只能用间址寻址,所用寄存器为DPTR、R0、R1,指令助记符MOVX
R0,R1为8位寄存器,最大范围位256B
用DPTR时,最大寻址范围为64KB
80C51单片机I/O口
并行I/O表
I/O | P0口 | P1口 | P2口 | P3口 |
---|---|---|---|---|
性质 | 真正双向口 | 准双向口 | 准双向口 | 准双向口 |
功能 | I/O口替代功能 | I/O口替代功能 | I/O口替代功能 | I/O口替代功能 |
SFR字节地址 | 80H | 90H | A0H | B0H |
位地址范围 | 80H~87H | 90H~97H | A0H~A7H | B0H~B7H |
驱动能力 | 8个TTL负载 | 4个TTL负载 | 4个TTL负载 | 4个TTL负载 |
替代功能 | 程序存储器、片外数据存储器低8位地址及8位数据 | 程序存储器、片外数据存储器高8位地址 | 串行口:RXD、TXD 中断:INT0‾\overline{INT0}INT0、INT1‾\overline{INT1}INT1 CTC0、1:T0、T1 片外数据存储器:WR‾\overline{WR}WR、RD‾\overline{RD}RD |
P0口
字节访问:80H
位访问:80H~87H
① p0口的输出上拉电路导通和戒指受呢不控制信号和地址/数据信号同时控制
② 当内部信号置1时,多路开关接通地址/数据输出端
③ 当内部信号置0时,多路开关接通输出锁存器的Q‾\overline{Q}Q端
功能
作为I/O口使用:双向口,输出锁存,输入缓冲
与其他口的区别:输出时为漏极开路输出,与NMOS的电路接口时必须用电阻上拉,才有高电平输出
P1口
字节访问:90H
位访问:90H~97H
特点
① 输出锁存器,输出无条件
② 输入缓冲,需先将该口设为输入状态,先输出1
③ 同一时刻仅处于一态,不是输入即输出(无高阻悬浮状态)
读引脚操作和读锁存器操作
① 响应CPU输出的读引脚信号,本身引脚的电平值通过缓冲器BUF1进入内部总线
② 执行读锁存器的指令时,CPU首先完成将锁存器的值通过缓冲器BUF2读入内部进入修改,然后重新写道锁存器中
P2口
字节访问:A0H
位访问:A0H~A7H
一般作为地址使用
功能
① 作I/O口使用,为准双向口,与P1相同
② 作地址输出,输出程序存储器或片外数据存储器的高8位,与P0输出的低地址一起构成16位地址线,分别寻址64KB的程序或片外数据存储器
P3口
字节访问:B0H
位访问:B0H~B7H
功能
① 可作为I/O口使用
既可作为位操作,又可字节操作;8位口操作,逐位定义口线位输入/输出先线
② 作为替代功能的输入输出
80C51单片机位处理器
位处理器系统
① 位累加器
借用进位标志位CY,用JC rel或者JNC rel转移状态
② 位寻址寄存器
SFR中可以位寻址的位
③ 位寻址的RAM
内部RAM位寻址区中的0~127位(20H ~ 2FH)
④ 位寻址的I/O口
并行I/O口中可以位寻址的位
⑤ 位操作指令系统
位操作指令可实现对位的置位、清0、取反、位状态跳转、传送、位逻辑运算、位输入/输出等操作
80C51单片机的工作方式
- 复位
- 程序执行
- 低功耗
- 编程和校验
复位
程序运行出错或操作错误使系统封处于死锁状态时,将PC初始化为0000H
寄存器 复位时内容 寄存器 复位时内容 PC 0000H TCON 0x000000B ACC 00H TL0 00H B 00H TH0 00H PSW 00H TL1 00H SP 07H TH1 00H DPTR 0000H SCON 00H P0~P3 FFH SBUF 不定 TMOD xx000000B PCON 0xxx0000B 在复位期间,ALE和PSEN‾\overline{PSEN}PSEN信号无效 = > ALE = 1,PSEN‾\overline{PSEN}PSEN = 1
方式
- 上电自动复位
- 按键电平复位
- 外部脉冲复位:需要大于2个机器周期
程序执行方式
低功耗方式
待机方式
使PCON寄存器IDL位置1,则80C51进入待机方式 => 向CPU提供时钟的电路被阻断 => CPU不能工作 => 采用中断方式或硬件复位来退出
掉电保护方式
PCON寄存器的PD位控制单片机进入掉电保护方式
一切工作均停止,只有内部RAM内容保护
只有靠复位退出掉电保护模式
80C51单片机的基本信息相关推荐
- 单片机位寻址举例_单片机基础及应用 | 04 80C51单片机指令系统
点击蓝字关注我们 一.单片机指令系统概述 1.指令概述指令:是CPU根据人们的意图来执行某种操作的命令.指令系统:是计算机所能够执行的全部指令的集合.程序:是按人们的要求所编制的指令操作序列.本章 ...
- 80C51单片机的最小系统
目录 80C51单片机的最小系统 电源 时钟脉冲 复位电路 存储器设置电路 最小系统图 80C51单片机的最小系统 电源 时钟脉冲 复位电路 存储器设置电路 最小系统图
- 单片机位寻址举例_基于80C51单片机位寻址编程
80C51单片机有位处理功能,可以对数据位进行操作,因此就有相应的位寻址方式.所谓位寻址,就是对内部RAM或可位寻址的特殊功能寄存器SFR内的某个位,直接加以置位为1或复位为0. 位寻址的范围,也就是 ...
- 单片机c语言交通灯源程序,基于80C51单片机的交通灯C语言源程序
<基于80C51单片机的交通灯C语言源程序>由会员分享,可在线阅读,更多相关<基于80C51单片机的交通灯C语言源程序(5页珍藏版)>请在人人文库网上搜索. 1.include ...
- 万年历设计单片机c语言,数字万年历设计(80c51单片机、时钟芯片ds1320).pdf
数字万年历设计(80c51单片机.时钟芯片ds1320) 德州科技职业学院青岛校区 2006 级毕业论文 多功能数字万年历设计 摘 要 : 本设计是一种基于 AT89C52 单片机控制的数字万年历设计 ...
- 80C51单片机复习资料(一)
什么是单片机?其主要特点? 单片机是把CPU.存储器(ram和rom)/输入.输出接口电路以及定时器.计数器等集成在一起的集成电路芯片. 它具有体积小.价格低.可靠性高和易于嵌入式应用等特点,还具有控 ...
- C51汇编语言寻址方式,80C51单片机指令系统的7种寻址方式
寻址方式就是寻找操作数或指令地址的方式.寻址方式包含两方面的内容:一是操作数的寻址,二是指令地址的寻址(如转移指令.调用指令).寻址方式是计算机性能的具体体现,也是编写汇编语言程序的基础,必须非常熟悉 ...
- 80C51单片机:5.独立键盘、矩阵键盘检测
80C51单片机系列 80C51单片机 点亮第一个发光二极管,及流水灯案例 数码管显示及封装与消隐 中断.定时器 独立键盘.矩阵键盘检测 文章目录 80C51单片机系列 前言 独立键盘 独立键盘封装 ...
- 80c51单片机通用I/O口
80C51单片机并行输入/输出口 80C51单片机含有4 个8位并行I/O口P0.P1.P2和P3.每个口有8个引脚,如图2-1所示,共有32个I/O引脚,每一个并行I/O口都能用作输 ...
- 单片机双机通信c语言实验心得,80C51单片机双机通信与多机通信的使用方法
80C51单片机之间的串行通信主要可分为双机通信和多机通信,本节举例说明双机通信与多机通信的使用方法. 1.双机通信硬件电路如果两个80C51单片机系统距离较近,那么就可以将它们的串行口直接相连,实现 ...
最新文章
- Vbox在Linux 5上安装Oracle 11gR2 RAC
- Replication主要配置项
- 代码大全--防御试编程
- 【MM配置】Batch Determination 批次决定
- 【bzoj4566】[Haoi2016]找相同字符【后缀自动机】
- C++ 查看输入流中的下一个字符
- iOS nav加角标
- springboot 关于第三方包 打包问题
- javascript - 你不容错过的es6模板写法
- Weakness and Poorness
- delphi制作上下开幕效果_显示产业国际盛会开幕,广州新型显示产值将突破2500亿...
- 0—1背包问题,回溯实现
- Activiti流程实例管理
- Python UI自动化 编程(一) UIAutomation
- 单片机简易计算机设计实物,单片机设计的带余数的简易计算器
- 软件学报zotero文献格式
- 而立之年,时间都去哪儿
- 推荐一款高效的处理延迟任务神器
- IPv6动态地址DNS解析
- 安装linux软件包
热门文章
- python 天天向上求几天数_Python十题(第2课)
- [GUET-CTF2019]BabyRSA(p,q灵活应用)
- It's only too late if you decide it is. Get busy living, or get busy dying(转)
- html圣诞效果,HTML5实现圣诞树效果
- 英雄联盟祖安服务器要维护多久,英雄联盟祖安大区到底有多凶残?手速慢了必然赢不了对面!...
- mysql 只读_MySQL设置只读模式
- Linux下Valgrind的使用概述 来源:Linux社区 作者:dndxhej
- c语言中calloc函数,C 库函数 – calloc()
- pycharm typo
- 微信小程序动态加载组件