《第二章 STC15F2K60S2单片机的基本结构ppt课件》由会员分享,可在线阅读,更多相关《第二章 STC15F2K60S2单片机的基本结构ppt课件(110页珍藏版)》请在金锄头文库上搜索。
1、1 第二章STC15F2K60S2单片机的基本结构本章学习目标掌握STC15F2K60S2单片机的基本结构掌握单片机I O口的使用掌握单片机应用系统的典型构成 2 一 单片机的内部结构单片微型计算机 简称单片机 在一片芯片上集成了前述微型计算机的功能结构 有些单片机不仅集成了CPU 存储程序和数据的存储器 I O接口 定时 计数器等常规资源 而且还集成了工业测控系统中常用的模拟量模块 2 1STC15F2K60S2单片机的基本结构 3 单片机产品8051内核是Intel8051系列单片机的基本标准 许多参考书上将这种单片机称为MCS 51系列单片机 MCS 51系列单片机的典型产品为8051
2、它有4K 8ROM 128字节RAM 2个16位定时 计数器 4个8位I O口 一个串行口 5个中断源二十世纪80年代 Intel将8051内核转让或出售给几家著名的IC厂商 如Philips Atmel等 这样 8051单片机就变成众多制造厂家支持的 发展成为上百个产品的大家族 最常用的宏晶STC系列单片机 Atmel公司的AT89系列等51系列 等等 只要是8051内核的单片机 它们的最基本结构是相同的 并且 指令系统完全兼容标准8051单片机 4 以目前市场上常见的8051内核单片机STC15F2K60S2为例 说明单片机的内部结构 STC12F2K60S2单片机主要集成了以下资源 增强
3、型8051内核 单时钟机器周期 速度比传统8051内核单片机快8 12倍60KBFlash程序存储器 1KB数据Flash 2048字节的SRAM3个16位可自动重装载的定时 计数器 T0 T1 T2 可编程时钟输出功能至多42根I O口线2个全双工异步串行口 UART 1个高速同步通信端口 SPI 8通道10位ADC3通道PWM 可编程计数器阵列 捕获 比较单元内部高可靠上电复位电路和硬件看门狗内部集成高精度R C时钟 常温工作时 可以省去外部晶振电路 5 STC15F2K60S2单片机的内部结构图 STC15F2K60S2单片机内部结构框图 6 STC15F2K60S2单片机的内部资源中央
4、处理器 CPU 程序存储器 Flash 数据存储器 RAM 数据Flash存储器定时 计数器I O接口通用异步串行通信接口 UART 中断系统SPI接口高速A D转换模块PWM 或捕获 比较单元 看门狗电路电源监控片内RC振荡器等模块几乎包含了数据采集和控制中所需的所有单元模块 可称得上一个片上系统 SOC 7 1 CPU结构单片机的中央处理器 CPU 由运算器和控制器组成 1 运算器以8位算术 逻辑运算部件ALU为核心 加上通过内部总线而挂在其周围的暂存器TMP1 TMP2 累加器ACC 寄存器B 程序状态标志寄存器PSW以及布尔处理机组成了整个运算器的逻辑电路 8 算术逻辑单元ALU 用来
5、完成二进制数的四则运算和布尔代数的逻辑运算 累加器ACC又记作A 是一个具有特殊用途的8位寄存器 在CPU中工作最频繁 用来存放操作数和运算结果 寄存器B 是专门为乘 除法设置的寄存器 也是一个8位寄存器 用来存放乘法和除法中的操作数及运算结果 对于其他指令 它只作暂存器用 程序状态字 PSW 又称为标志寄存器 一个8位寄存器 用来存放执行指令后的有关状态信息 供程序查询和判别之用 9 PSW中有些位的状态是在指令执行过程中自动形成的 有些位可以由用户采用指令加以改变 PSW的各位定义如下所示 10 CY PSW 7 进位标志位当执行加 减法指令时 如果操作结果的最高位D7出现进 借位 则CY
6、置 1 否则清 0 执行乘除运算后 CY清零 此外 CPU在进行移位操作时也会影响这个标志位 11 AC PSW 6 辅助进位标志位当执行加 减法指令时 如果低四位数向高四位数产生进 借位 则AC置 1 否则清零 12 F0 PSW 5 用户标志0 该位是由用户定义的一个状态标志 可以用软件来使它置 1 或清 0 也可以由软件测试F0控制程序的流向 F1 PSW 1 用户标志1 该位是由用户定义的一个状态标志 与F0类似 可以用软件来使它置 1 或清 0 也可以由软件测试F1控制程序的流向 13 RS1 RS0 PSW 4 PSW 3 工作寄存器组选择控制位 其详细介绍见后续内容 OV PSW
7、 2 溢出标志位 指示运算过程中是否发生了溢出 在执行指令过程中自动形成 14 P PSW 0 奇偶标志位累加器ACC中1的个数为偶数 P 0 否则P 1 每个指令周期都由硬件来置 1 或清 0 在具有奇偶校验的串行数据通信中 可以根据P设置奇偶校验位 15 布尔处理机 是单片机CPU中运算器的一个重要组成部分 功能 为用户提供丰富的位操作功能 有相应的指令系统 硬件有自己的 累加器 进位位C 即CY 和自己的位寻址RAM和I O空间 是一个独立的位处理机 大部分位操作均围绕着其累加器 进位位C完成 对任何可直接寻址的位 布尔处理机可执行置位 取反 转移 位的读写等操作 在任何可寻址的位 或该
8、位内容取反 和进位标志C之间 可执行逻辑与 或操作 其结果送回到进位标志C 16 2 控制器控制器是CPU的大脑中枢 包括定时控制逻辑 指令寄存器 译码器 地址指针DPTR及程序计数器PC 堆栈指针SP RAM地址寄存器 16位地址缓冲器等 17 程序计数器PC是一个16位的程序地址寄存器 专门用来存放下一条需要执行的指令的内存地址 能自动加1 当CPU执行指令时 根据程序计数器PC中的地址从存储器中取出当前需要执行的指令码 并把它送给控制器分析执行 随后程序计数器中的地址自动加1 以便为CPU取下一个需要执行的指令码做准备 当下一个指令码取出执行后 PC又自动加1 这样 程序计数器PC一次次
9、加1 指令就被一条条执行 18 堆栈主要用于保存临时数据 局部变量 中断或子程序的返回地址 STC15F2K60S2单片机的堆栈设在内部RAM中 是一个按照 先进后出 规律存放数据的区域 堆栈指针SP是一个8位寄存器 能自动加1或减1 当数据压入堆栈时 SP自动加1 数据从堆栈中弹出后 SP自动减1 复位后 寄存器默认值为07H 堆栈区在08H开始的区域 用户通常将堆栈区域用指令设置在内部RAM的80H FFH之间 19 数据指针DPTR一个16位专用寄存器 由DPL 低8位 和DPH 高8位 组成 DPTR可以直接进行16位操作 也可分别对DPL和DPH按字节进行操作 STC15F2K60S
10、2单片机有两个16位的数据指针DPRT0和DPTR1 这两个数据指针共用同一个地址 可通过设置辅助寄存器AUXR1中的DPS AUXR1 0 位来选择具体使用哪一个数据指针 20 2 存储器的结构 STC15F2K60S2结构特点 程序存储器和数据存储器的寻址空间是分开的 结构划分 片内集成有4个物理上相互独立的存储器空间 程序Flash存储器 数据Flash存储器 EEPROM 内部数据存储器和外部数据存储器 21 STC15F2K60S2单片机存储器配置示意图 22 1 程序Flash存储器功能 存放用户程序 数据和表格等信息 空间大小 STC15F2K60S2片内集成了60KB的程序Fl
11、ash存储器 地址为0000H F000H 单片机复位后 程序计数器PC的内容为0000H 从0000H单元开始执行程序 23 特殊单元在程序Flash存储器中有些特殊的单元 这些单元是中断服务程序的入口地址 0003H外部中断0中断服务程序的入口地址000BH定时 计数器0中断服务程序的入口地址0013H外部中断1中断服务程序的入口地址001BH定时 计数器1中断服务程序的入口地址0023H串行通信口1中断服务程序的入口地址002BHADC中断服务程序的入口地址0033H低电压检测中断服务程序的入口地址003BHPCA中断服务程序的入口地址0043H串行通信口2中断服务程序的入口地址004B
12、HSPI中断服务程序的入口地址 24 中断服务程序的入口地址0053H外部中断2中断服务程序的入口地址005BH外部中断3中断服务程序的入口地址0063H定时 计数器2中断服务程序的入口地址0083H外部中断4中断服务程序的入口地址响应中断时 单片机自动转到相应的中断入口地址去执行程序 由于大部分相邻中断入口地址之间只有8个地址单元 无法保存完整的中断服务程序 一般在中断入口的地址区存放一条无条件转移指令 指向真正存放中断服务程序的空间 中断响应后 CPU执行这条转移指令 转去执行中断服务程序 25 使用指令读取程序存储器中保存的表格常数等内容时 使用MOVC指令 程序Flash存储器的擦写次
13、数为10万次以上 大大提高了芯片利用率 降低了开发成本 26 2 数据存储器 STC15F2K60S2数据存储器也称为随机存取数据存储器 空间划分在物理上和逻辑上都分为两个地址空间 内部数据存储区和扩展数据存储区 27 1 内部数据存储区 又称为内部RAM 256字节内部RAM 存放中间结果和过程数据 内部RAM的地址范围是00H FFH 共256个单元 分三部分 低128字节RAM 00H 7FH 也称为基本RAM区 基本RAM区又分为工作寄存器区 位寻址区 用户RAM和堆栈区 可以直接寻址和间接寻址 用 MOV 和 MOV Ri 形式的指令访问 高128字节RAM 80H FFH 只能间接
14、寻址 用 MOV Ri 形式的指令访问 特殊功能寄存器 SFR 区 地址范围为80H FFH 只可直接寻址 用 MOV 形式的指令访问 28 内部数据存储器地址空间 工作寄存器区位寻址区通用用户RAM和堆栈区特殊功能寄存器区 内部数据存储器地址空间分配 29 工作寄存器区地址分配 00H 1FH共32个单元 分为四组 每一组称为一个寄存器组 每一组包括8个8位的工作寄存器 分别是R0 R7 功能 通过使用工作寄存器 可以提高运算速度 也可以使用其中的R0或R1存放八位地址值 访问一个256字节外部RAM块中的单元 另外 R0 R7也可以用作计数器 在指令作用下加1或减1 30 工作寄存器组的选
15、择 PSW寄存器中的RS1和RS0两位组合决定当前使用的工作寄存器组 可以通过位操作指令直接修改RS1和RS0的内容 选择不同的工作寄存器组 工作寄存器组选择 31 位寻址区20H 2FH之间的单元既可以按字节存取 也可以按位存取共128位 地址范围是00H 7FH 内部RAM中的位地址 32 除了20H 2FH之间的单元可以位寻址外 特殊功能寄存器中 直接地址可被8整除的寄存器 除了IP 7 IP 6和IE 6以外 也可以进行位寻址 图3 11特殊功能寄存器中的位地址 33 用户RAM和堆栈区内部RAM中的30H 7FH单元是用户RAM和堆栈区 一个8位的堆栈指针SP 并且堆栈区只能设置在内
16、部数据存储区 当有子程序调用和中断请求时 返回地址等信息被自动保存在堆栈内 STC15F2K60S2单片机复位后 SP为07H 使堆栈事实上由08H单元开始 考虑08H 1FH单元分别属于工作寄存器组1 3 若在程序设计中用到这些工作寄存器 则在用户初始化程序中 最好把SP的值改变为80H或更大的值 STC15F2K60S2单片机的堆栈是朝着地址增大的方向生成的 即将数据压入堆栈后 SP的值增大 34 高128字节RAM和特殊功能寄存器对于STC15F2K60S2单片机 80H FFH既为高128字节RAM区的地址范围 又为特殊功能寄存器区 SFR 的地址范围 地址空间重叠 但物理上是独立的 使用时 通过不同的寻址方式加以区分 高128字节的RAM区使用间接寻址访问 特殊功能寄存器使用直接寻址访问 由于堆栈操作也是间接寻址方式 所以 高128位数据RAM亦可作为堆栈区使用 35 除了程序计数器PC和4个工作寄存器组外 其余的寄存器都在SFR区中 特殊功能寄存器大体分为两类 一类与芯片的引脚有关 如P0 P5 它们实际上是6个锁存器 每个锁存器附加上相应的输出驱动器和输入缓冲器就构成了一