STC25F2K60S2单片机增强型8051内核

  • 基本概念
  • 增强型8051
    • 本章英文符号
    • 历史
    • 功能概述
    • CPU结构
      • 运算器
    • 控制器
    • 存储结构
      • 程序存储器(程序Flash)
      • 片内基本RAM
      • 总结
    • 并行I/O端口
      • 工作模式
        • 4种工作模式
          • 准双向模式
          • 推挽
          • 开漏
        • 工作模式选择
      • 系统时钟与时钟分频寄存器
        • 系统时钟
        • 时钟分频
        • 时钟倍频
        • 主时钟输出控制
      • 复位

基本概念

上拉电阻:Vcc处接电阻
下拉电阻:地极加个电阻

增强型8051

本章英文符号

SFR=special function register
SP=stack pointer 堆栈指针
DPTR=Data pointer register数据指针寄存器
GPIO=General Purpose Input/Output
IAP:在应用编程=In application
programming
ISP:在系统编程=In System Programming
osc=振荡器oscillator
SWRST:Software Rest软件复位
LVD:低电压指令 Low Voltge Detector

历史

功能概述


·增强型8051CPU,单时钟机器周期;
传统12个时钟周期构成一个机器周期,并且时钟兆数得到了提升

·在线可编程/在应用可编程(ISP/IAP)功能
在线
在应用:远程工作中编程,版本更新更方便
OTP一次性编程

·60KB Flash程序储存器;1KB数据Flash;2048(256+1792)(2K)字节SRAM

·最多42根I/O端口线

·3个16位定时/计数器
计数器:分时运行

·1个高速同步通信端口(SPI)
SPI做系统扩展用

·两个全双工UART串口
UART串行通行口,异步通讯

·8通道高速10位ADC:直接处理模拟信号

·3通道捕获/比较单元(PWN/PCA/CCP)
捕获外部跳变,与定时器也有关系,测试脉宽PWM(能量变换,整流的核心)

·内部高可靠上电复位电路和硬件看门狗

·内部集成高精度R/C时钟,常温工作时,可以省去外部晶振电路
时钟:原本需要外部晶振,外部振荡器,R/C时钟,没法集成大电容电感

每一个I/O口以8为单元,八条线作为一个端口,最大型号是68管脚,8X8,64条I/O口线

P0地址数据总线
TxD_2
T是发送口
XTAL1是晶体输入角,晶体振荡器准确度,R/C振荡器,温漂

振荡器有源部分集成内部,构成正反馈的电路,外接晶振不再是必不可少的,精度不高就可以只用内部的R/C

ALE现在很多单片机没有了,因为当时存储器太小,需要给一个扩展,节省I/O的代价就是需要增加外部电路

P0,现在已经不做扩展运用了,地址线16位,最大寻址64K

不同型号的单片机CPU是不变的,存储器会变,封装形式会变,引脚数量会变,环境适用性会变
汽车发动机高温控制ECU

CPU结构

运算器

8位ALU
可以一次对一个位

累加器ACC
寄存器B
为运算专设的辅助寄存器
暂存器TMP1和TMP2
程序状态标志寄存器PSW

CY进位标志位
AC辅助进位标志
F0用户标志0
RS1、RS.工作寄存器选择
OV
F1
P
布尔处理器

控制器

IR指令寄存器(不可见)
ID译码器
定时控制逻辑
DPTR地址指针
PC程序计数器
SP堆栈指针
RAM地址寄存器
16位地址缓冲器
CS:IP和PC都是指向指令

很多目的寄存器是累加器

存储结构

STC15F2K60S2单片机存储器结构的主
要特点是程序存储器与数据存储器是
开编址
的。

STC15F2K60S2单片机内部在物理上有
4个相互独立的存储器空间:程序存储器
程序Flash)、片内基本RAM、片内扩
展RAM与EEPROM(数据Flash)。


P可编程,E可擦除,EE是电可擦除

程序存储器(程序Flash)

功能:存放用户程序、数据和表格等信息。
空间大小: STC15F2K60S2片内集成了60KB的 程序Flash存储器,地址为0000H ∼F000H\sim \mathrm{F} 000 \mathrm{H}∼F000H 。
>0000H,>0000 \mathrm{H},>0000H, 单片机复位后, 程序计数器PC的内容 为0000H,从0000H单元开始执行程序。
>0003H∼00A3H,>0003 \mathrm{H} \sim 00 \mathrm{A} 3 \mathrm{H},>0003H∼00A3H, 中断响应的入口地址 ( 中断向量地址) ,对应于21个中断源。
注意复位和中断入口地址与8086CPU的差异!!
8086的入口是CS:IP=FFFF:0,8086的中断入口可以定义,但是中断号是固定的。

LJMP是跳转
正式程序不可能从0000开始存放,只能在0000H单元使用无条件跳转指令。
定时器0中断服务子程序

ORG  0000H
LJMP  MAIN··
ORG 0030H
TIMEO: MOV SP, #30H

主程序实际从0030H开始存放,复位后, 通过 跳转指令LJMP转移至0030H开始执行。

ORG  000BH
LJMP  TIMEO··
ORG 1000 1000H
TIMEO: MOV SP, #30H

定时器0中断服务子程序实际从1000H开始存放,开始执行。CPU响应后在000BH通过跳转指令LJMP转移至1000H开始执行。

8086根据中断号来找中断服务程序。
0030传统51够用,内部中断源比较少,新的半导体厂商获得授权以后,增添了许多东西。

举例

中断源 入口地址
外部中断0 0003H
定时/计数器0溢出 000BH
外部中断1 0013H
定时/计数器1溢出 001BH
串行通信口 0023H

**每个中断向量的间隔是8字节。**不同机型的中断源不同,安排的入口地址不同。串行通信即一行行执行。
8086是相隔4字节。

由于相邻中断入口地址之间只有8个预留地址单元,无法保存完整的中断服务子程序,一般在中断入口的地址存放一条无条件转移指令,指向真正存放中断服务程序的空间。
有的把程序复位也当成一个中断。

片内基本RAM

1 ) 数据存储器分为: 内部数据存储区 (片内基本RAM) 和扩展数据存储区 (片内扩展RAM);
2 ) 片内基本RAM分 为低128字苟、高 128字节和特殊功能寄存器(SFR)。

不管怎么样,片内扩展片外扩展都是一种相对物理概念,数据和程序的存储逻辑上仍然是分开的。

  1. 低128字节RAM ( 00H∼7FH00 \mathrm{H} \sim 7 \mathrm{FH}00H∼7FH ) ,可以直接寻址和间接寻址,用“MOV”和“MOV @Ri”形式 的指令访问 ;
  2. 高128字节RAM ( 80H80 \mathrm{H}80H FFH ) : 只能间接寻址,用“MOV @Ri”形式的指令访问 ;
  3. 特殊功能寄存器 ( SFR ) 区 ( 80H FFH ) :
    只可直接寻址,用“MOV”形式的指令访问。
    地址一样,怎么区分高128和SFR,利用寻址方式区分,因为物理区域不同。
    例如
    访问SFR的P1端口(对应地址为90H),可采用如下指令:
 MOV P1,A;//将累加器A的内容送端口P1

或者

 MOV P1,A;//将累加器A的内容送字节地址是90H对应的特殊功能寄存器

如果采用寄存器间接寻址,则是对高128字节的RAM访问。

 MOV R1,#90HMOV @R1,A

#表示立即数

SFR=special function register
地址编址是一样的,但是硬件不一样,区别它们的方式就是访问的指令,采用各自的指令,就访问各自的硬件区。
在CPU内部也有微解码器,把每个CPU指令分解成一个个最原始最简单的跟硬件相关的微指令,而这都是译码器完成的(也是为什么会存在指令译码这么一个机器周期,关于具体的内容请参考相关内容),使用不同的指令会被解释成不用的微指令码,所以相当于多了一根线用来选择寄存器区和RAM区,在译码的时候它会在直接寻址的时候选通寄存器区,而在使用间接寻址的时候就会选通RAM。


内部数据存储器地址空间分配:
工作寄存器区
位寻址区
通用用户RAM和堆栈区
特殊功能寄存器区
00-1F的32字节是工作区,两个位就可以区分四个区域
8086通过保护现场压栈,解决中断服务导致的暂时的数据保存问题,51则最多可以嵌套3次,避免同时读取的问题。为什么不用堆栈,因为51的变量空间太少了,8086可以开辟64K的堆栈区域,而早期51只有128个字节。
大部分时候用0区,分区应用很少,123区仍然当通用存储器使用。30H以上才是标准的存储空间(以前)。位寻址区是为了方便工业控制区的位操作,不需要多位一起操作。8086要么输出一个字节,则只改变一位,其他全部以不变的数据填充上去。位变量也可以做组合逻辑使用。

位寻址区
00-7F
占用片内20 2FH共16个单元,每个单元8位,共计16x8 = 128位,每位对应都有位地址, 可以进行位寻址。
需要补充一个例子
如置位/复位指令(位操作指令):
SETB 20H;//对24H单元中位地址为20H的D0位(仅含1位)进行置位,使其为1

通用RAM区
占用片内30 7FH,共80个单元。为一般 RAM区域,无特殊功能特性。一般作数据缓冲区用,如显示缓冲区、堆栈区域。

高128字节(80H~FFH)
高128字节地址与特殊功能寄存区的地址是相同的。用不同的寻址方式访问。变量区间增加了一倍。高128字节只能采用寄存器间接寻址, 即用"MOV @Ri" 形式的指令访问。

特殊功能寄存器SFR(80H~FFH)
STC15F2K60S2 单片机有81个特殊功能寄存器。(最初只有21个)只可直接寻址, 用 "MOV"形式的指令访问。
由于堆栈操作也是间接寻址方式, 所以, 高128 字节RAM 亦可作为堆栈区使用。

>>> 除了程序计数器PC和4个工作寄存器组外,
其余的寄存器都在SFR区中。
>>> 特殊功能寄存器大体分为两类
①CPU寄存器与芯片的引脚有关。如P0 - P5(80H,90H,A0H…),它们实际上是6个锁存器,(P5只有两个端口,5*8+2=42)每个锁存器附加上相应的输出 驱动器和输入缓冲器就构成了一个并行口。
②片内外设:芯片内部功能的控制或者内部寄存器。如中断屏蔽及优先级控制、定时器、串行口、SPI接口等。

(1) 与运算器相关的寄存器(3个)
ACC\mathbf{A C C}ACC
累加器,通常用A表示,表示寄存器寻址; 若用ACC表示,则表示直接寻址(仅在 PUSH,PO指令中使用)。
B\mathbf{B}B
寄存器,主要用于乘除运算,也可作一般 RAM单元使用。
PSW
程序状态字。

(2)指针类寄存器(3个)
SP: 堆栈指针,只能设在片内RAM中,由堆栈指 针SP指定当前栈 顶所在的单元;
复位后SP = 07H,即堆栈从08H开始,且采用向上增长的原则。(每压栈一个字节,SP加1;每弹栈一个字节,SP减1)
SP=stack pointer 堆栈指针
DPTR:数据指针,由DPH和DPL组成,用于存放 16位地址,对16位地址的程序存储器和扩展RAM 访问。(8位CPU不可能有16位寄存器)
DPTR=Data pointer register数据指针寄存器

3、扩展RAM (XRAM)
功能:存放数据。
空间大小:STC15F2K60S2片内集成了1792字节的外部RAM,地址为0000H ∼06FFH\sim 06 \mathrm{FFH}∼06FFH 。类似于传统的片外数据存储器。
STC片内扩展RAM(XRAM)以及片外数据存储器RAM均用MOVX指令访问(但访问片内扩展RAM速度更快)
必须要间接寻址。

4、数据Flash存储? (EEPROM)
功能:存放一些应用时需要经常修改,掉电后
又能保持不变的参数。
空间大小:STC15F2K60S2片内集成了1KB的数
据Flash存储器,地址为0000H ∼03FFH\sim 03 \mathrm{FFH}∼03FFH 。
数据Flash存储器分为2个扇区,每个扇区包含
512字节,对应的地址范围分别为:
第一扇区 :0000H∼01FFH: 0000 \mathrm{H} \sim 01 \mathrm{FFH}:0000H∼01FFH
第二扇区 :0200H∼03FFH: 0200 \mathrm{H} \sim 03 \mathrm{FFH}:0200H∼03FFH

快擦除,直接一个扇区删除而不是一个字节一个字节擦除。

数据Flash存储器可以作为EEPROM使用,擦写次数在10万次以上,用于保存一些需要在应用过程中修改并且掉电不丢失的参数数据。
在用户程中,可以对数据Flash区进行字节读、 字节写、扇区擦除操作。
数据Flash存储器可以采用MOVC指令访问(类似于传统51的程序存储器), 此时的起始扇区地址为F000H~F3FFH。

程序存储器和ROM等效,数据存储器和RAM等效

总结

基本MOV,扩展MOVX
基本RAM又分低128,高128

并行I/O端口

基本除了电源口都可以当GPIO(General Purpose Input/Output)
一个口8位数据
44引脚42端口,64引脚62端口(最后一个P仅两位)

工作模式

4种工作模式

准双向口、推挽输出、仅为输入(高阻状态)与开漏模式。每个I/O口的驱动能力均可达到20mA(8086CPU引脚的是多少?)
-------------------------------
输入高阻不耗电
20mA足够点亮小的LED灯,原本驱动能力不足的时候需要加入放大电路。

准双向模式

MOS管上面加个电阻,传统50K以上,高电平驱动能力弱。
干扰抑制滤波是施密特触发器。
T1和T4强上拉,构成一个推挽状态。
读取数据时要先把T1置1,T4截止。

推挽

输入模式两个都关断即可

开漏

单片机过电流能力20mA。

工作模式选择

由PnM1和PnM0(n=0~5)寄存器的相应位来控制。例如:P0M1和P0M0用于设定P0口的工作模式,其中P0M1.0和P0M0.0用于设置P0.0的工作模式,P0M1.7和P0M0.7用于设置P0.7的工作模式,以此类推。
n代表是哪个端口,M后的数字表示四种模式

保留准双向口的目的是为了向下兼容。

系统时钟与时钟分频寄存器

osc=振荡器oscillator

系统时钟

时钟分频

频率越高,功耗越大。

时钟倍频

锁相环

主时钟输出控制

复位

可能产生的死循环
①编程不严谨
②由于工业环境干扰,引起字节错误。

复位电平需要持续一段时间,考虑上升时间。
冷启动复位
热启动复位:上电以后的
IAP:在应用编程=In application programming
ISP:在系统编程=In System Programming
看门狗复位
LVD:低电压指令(Low Voltage Detector);左心室功能紊乱(left ventricular dysfunction)
8086的堆栈指针默认值是00H

微机原理及应用->STC25F2K60S2单片机增强型8051内核相关推荐

  1. 一套基于增强型8051内核的应用裸机框架

    8051-ELL 简介 8051-ELL,是根据新一代增强型8051为内核的MCU,基于keil开发的硬件抽象平台.ELL库充分考虑8051的特性,结合硬件条件,提供了大量标准的API函数,供开发者访 ...

  2. stc15系列c语言pwm编程,STC单片机C语言程序设计 第25章 STC单片机增强型PWM原理及实现.docx...

    STC单片机C语言程序设计 第25章 STC单片机增强型PWM原理及实现 STC单片机增强型PWM发生器原理及应用主 讲:何宾Email:hebin@mail.buct.edu.cn2016.03增强 ...

  3. RJM8L151S国产8051内核8位带加密算法MCU_替代STM8L151

    RJM8L151S系列是一款8051增强型单片机,芯片内置256B内部数据存储器, 8KB的SRAM, 64KB的FLASH,具备快速中断响应,高效低功耗设计,多种休眠模式.片内集成多种安全密码模块, ...

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

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

  5. c语言p1口亮灯,单片机实验开发与微机原理接口技术综合实验装置,上海求育

    原标题:单片机实验开发与微机原理接口技术综合实验装置,上海求育 上海求育QY-JXSY43单片机微机开发实验箱 上海求育QY-JXSY43单片机微机开发实验箱是集51.8088二大系列CPU于一体的二 ...

  6. 计算机组成原理 微机原理 知乎,知乎问答丨从零制作单片机需要哪些知识?

    知乎作者:彭谟威 来来来,让我们一起,左手右手一个慢动作. 每一个方向都值得一个人用一生去钻研,每一个步骤都有其自身的魅力. 第一步,做出实体芯片. 单片机一般理解为MCU(Microcontroll ...

  7. C语言的变量和汇编中的伪指令,伪指令 尤其EQU DW DB(微机和单片机中的作用稍微不同,但是规则机制相同)微机原理中的汇编指令和伪指令是标准的,单片机的指令和伪指令是在微机标准版基础上修改的版

    微机原理中表明 变量用伪指令DW,DB 单片机中的伪指令EQU C语言中的变量来源与汇编的伪指令(微机和单片机中的作用稍微不同,但是规则机制相同)微机原理中的汇编指令和伪指令是标准的,单片机的指令和伪 ...

  8. [渝粤教育] 昆明理工大学 微机原理与接口技术(付丽霞) 参考 资料

    教育 -微机原理与接口技术(付丽霞)-章节资料考试资料-昆明理工大学[] 第一讲测验 1.[单选题]除了单片机这一名称之外,单片机还可称为( ). A.CPU B.嵌入式微控制器 C.微处理器 D.微 ...

  9. 长春理工大学微型计算机原理,微机原理

    本书为普通高等教育 十一五 *规划教材. ¥40.20定价:¥42.00(9.58折) 彭虎 编著/2016-06-01 本书结合应用实例.习题与实验,实现实践环节的一体化,巩固理论学习,特别是硬件实 ...

最新文章

  1. 各种函数调用约定及浮点数传参
  2. Swift标准库源码阅读笔记 - Array和ContiguousArray
  3. composer 笔记
  4. 揭开容器的神秘面纱:帮助初学者深入了解容器技术
  5. Ethercat解析(十四)之初始化流程
  6. extract-text-webpack-plugin---webpack插件
  7. Redis 安装与简单示例 第一篇
  8. erp采购总监个人总结_ERP采购总监总结
  9. PhotoKit在线图片编辑器
  10. ​手机APP应用软件开发
  11. DatawhaleLeeML-Task05-网络设计的技巧第二部分
  12. P5960 【模板】差分约束算法
  13. CP Editor 编辑器(为竞赛而生的编辑器)的安装与配置
  14. 成功靠奋斗,奋斗靠坚持
  15. 六年级上册计算机教案人教版,人教版数学六年级上册教学设计
  16. java 文件名排序_Java笔记:像win里一样文件名排序
  17. C++无法输出txt文件全部内容以及输出出现乱码的解决方法
  18. 创建RAID5磁盘阵列和RAID10磁盘阵列
  19. 一种用于黑色素瘤预后的自动肿瘤浸润淋巴细胞开源算法
  20. 雷达图的4种绘制方法

热门文章

  1. 学计算机换屏幕,更换笔记本电脑屏幕图解
  2. VQA(Visual Question Answering)技术
  3. vs2017community进行DirectX开发_问题小节
  4. css怎样清除外边距,CSS 外边距
  5. 一台服务器怎么玩才有意思?
  6. 适配器改造Servlet并优化
  7. 账户系统设计从入门到精通
  8. windows建立隐藏账户
  9. 未来的直播网站源码可实现,CycleGAN,视频换脸?
  10. Perl 语言学习笔记 (一)