第三章 IAP15W4K58S4单片机的硬件结构
任课教师:刘忠国 山东大学课程中心网站: http://course.sdu.edu.cn/G2S/stcmcu.cc 网站:http://www.gxwmcu.com/ STC15系列单片机器件手册----1473页 (2015/6/29更新)
第三章 IAP15W4K58S4单片机的硬件结构 本章学习目标 3.1 理解模型机的结构及工作过程 3.4 掌握单片机的引脚(I/O口的使用) 3.5 掌握单片机应用系统的典型构成 05:32
§3.1模型机的结构及工作过程 3.1.1模型机的结构简介 微型计算机的结构模型(简称模型机)。 模型机的主要构成: 三总线(地址总线、数据总线和控制总线) 中央处理器(CPU) 存储器 I/O接口 05:32
3.1.1模型机的结构简介 I/O接口 机器码 8086汇编语言 MOV A, #07H B0H 07H 运算器 控制器 运算器 控制器 图3-1 模型机的结构 05:32
3.1.1模型机的结构简介 1、中央处理器的组成 中央处理器(CPU)由运算器和控制器组成。 (1)运算器 定义: 运算器是计算机中加工和处理数据的功能 部件。 功能: 对数据进行加工处理,主要包括算术和逻辑 运算,如加、减、乘、与、或、非运算等。 还暂时存放参与运算的数据和中间结果。 05:32
1、中央处理器的组成 运算器组成部分 算数逻辑单元ALU(Arithmetic Logical Unit):主 要完成算术、逻辑运算。 累加寄存器(简称累加器)A(Accumulator):用 于存放操作数或运算结果。 寄存器组:由其它寄存器组成,主要用于存放操 作数或运算结果。 标志寄存器F(Flag):存放运算结果的标志(零、 正负、进位、溢出等)。 05:32
(2)控制器 1、中央处理器的组成 功能:控制器用于控制和指挥计算机内各功能部件协 调动作,完成计算机程序功能。 控制器组成 程序计数器PC(Program Counter):用于存放将要取出的 指令地址, 指令取出后, 其内容自动加1。 指令寄存器IR(Instruction Register): 存放指令操作码。 指令译码器ID(Instruction Decode):用于将指令的操作码 翻译成机器能识别的命令信号。 微操作信号发生器MOSG(Microoperation Signal Generator ): 用于产生一系列微操作控制信号。 地址寄存器AR(Address Register):存放操作数(结果)单元地 址 数据寄存器DR(Data Register):用于存放操作数。 05:32
3.1.1模型机的结构简介 2、存储器的结构 功能:主要用于保存程序和数据。 组成部分:包含地址译码器、存储单元和控制逻辑。 存储器访问过程 (1)读操作 CPU首先将地址寄存器AR的内容放到地址总线AB上, 地址总线上的内容进入地址译码器,由地址译码器进 行译码,选通相应的存储单元。 被选通的存储单元的内容就出现数据总线上,在控 制信号的作用下,CPU从数据总线上读取数据到数据寄 存器DR,从而完成存储器的读操作。 05:32
存储器访问过程 (2)写操作 CPU将地址寄存器AR的内容送到地址总线AB上,地 址总线上的内容进入地址译码器,由地址译码器进行 译码,以选通相应的存储单元。 在控制信号的作用下,CPU将要写入的数据通过数据 总线写入到被选通的存储单元,完成存储器的写操作。 05:32
执行过程:读取指令分析指令执行指令保存结果 在让计算机进行计算之前,应做如下工作: 用助记符号指令(汇编语言)编写源程序); 3.1.2模型机的工作过程 :通过执行指令完成计算控制功能 执行过程:读取指令分析指令执行指令保存结果 在让计算机进行计算之前,应做如下工作: 用助记符号指令(汇编语言)编写源程序); 用汇编软件(汇编程序)将源程序汇编成计算机能 识别的机器语言程序; 将数据和程序通过输入设备送入存储器中存放。 例如,计算7+10=?,结果在A中。 微机8086汇编语言 汇编语言语句 注释 MOV A, #07H ;07送入累加器A ADD A, #0AH ;10与A中内容相加, 结果在A中 HLT ;暂停 机器码 B0H 07H 04H 0AH F4H 05:32
例如, 计算7+10=?, 结果在A中。 假设程序在存储器中的存储格式 (设程序从00H开始存放)如图示。 读取指令阶段的执行过程如下: 地址 存储内容 00H B0H 01H 07H 02H 04H 03H 0AH F4H 机器码 B0H 07H 04H 0AH F4H 假设程序在存储器中的存储格式 (设程序从00H开始存放)如图示。 读取指令阶段的执行过程如下: ①CPU将程序计数器PC的内容00H送地址寄存器AR。 ②程序计数器PC的内容自动加1变为01H,为取下一条指 令作好准备。 ③地址寄存器AR将00H通过地址总线AB送至存储器地址 译码器译码,选中00H单元。 ④CPU发出“读”命令。 ⑤所选中00单元的内容B0H由存储器送至数据总线DB上。 ⑥经数据总线DB, CPU将读出内容B0H送数据寄存器DR。 05:32 地址译码
工作过程:读取指令分析指令执行指令保存结果 ⑦数据寄存器DR将其内容送指令寄存器IR中, 经过译 码, CPU“识别”出此操作码为两字节指令的第一个字节, 再取出下一个字节(机器码)后得知是“MOV A, #07H” 指令, 于是控制器发出执行这条指令的控制命令。 读立即数(下个机器码)到A 加1 需重复上述取指译码过程 译码产生微控制命令 地址译码 图3-4 读取第一条指令第一个字节的示意图 “MOV A, #07H” 机器码:B0H 07H 05:32
读第一条指令第二个字节(即执行该指令)的示意图 “MOV A, #07H” (机器码:B0H 07H), 再取出下一个字节 即取机器码07H的过程: 加1 地址译码 图3-5 执行第一条指令示意图 05:32
执行第二条指令 “ADD A, 0AH”(机器码: 04H 0AH) 执行第二条指令的取指过程与第一条相同, 只是指令码 地址不同。 经过对第二条指令操作码(第1字节04H)的分析(译码)得 知该指令为加法指令,执行第2字节过程如下: ①程序计数器PC的内容(03H)送AR。 ②程序计数器PC的内容自动加1并回送PC。 ③地址寄存器AR的内容经地址总线AB送到存储器地址 译码器。 00H B0H 01H 07H 02H 04H 03H 0AH F4H ④CPU发出“读”命令。 ⑤所选中的03H单元的内容0AH送到数据总线DB。 ⑥数据总线DB上的内容送数据寄存器DR。 05:32 地址译码
执行第二条指令 “ADD A, 0AH”(机器码: 04H 0AH) ⑦数据寄存器DR内容送B寄存器,再送算术逻辑单元ALU一端。 ⑧累加器A的内容送ALU的另一端, 完成加法运算。 ⑨ALU相加的结果输出到A。 图3-6 执行第二条指令操作示意图 05:32
§3.2 IAP15W4K58S4单片机的内部结构 单片微型计算机(简称单片机)在一片芯片上集 成了前述微型计算机的功能结构, 有些单片机不仅集成了CPU、存储程序和数 据的存储器、I/O接口、定时/计数器等常规资 源,而且还集成了工业测控系统中常用的模 拟量采集模块。 05:32
§3.2 单片机的内部结构 ——单片机产品 8051内核是Intel 8051系列单片机的基本标准,许多参 考书上将这种单片机称为MCS-51系列单片机。 MCS-51系列单片机典型产品为8051,它有4K×8ROM, 128字节RAM, 2个16位定时/计数器, 4个8位I/O口,一 个串行口。 上世纪80年代,Intel将8051内核出售给几家著名的IC厂 商,如Philips,Atmel等。这样,8051单片机就成为众 多厂家支持,发展成为上百个产品的大家族。 最常用有宏晶STC系列单片机,Atmel公司AT89系列 等51系列。只要是8051内核单片机,它们基本结构是 相同的,并且,指令系统完全兼容标准8051单片机。 05:32
§3.2 IAP15W4K58S4单片机的内部结构 以增强型8051内核单片机 IAP15W4K58S4为例,说明单片机的内 部结构。见图3-6 IAP15W4K58S4几乎包含了数据采集和 控制中所需的所有单元模块, ——可称得上一个片上系统(SOC)
图3-6 IAP15W4K58S4单片机的内部结构框图 图3-6 IAP15W4K58S4单片机内部结构框图
IAP15W4K58S4单片机集成了以下典型资源: 增强型8051内核,单时钟机器周期,速度比传统8051 内核单片机快8~12倍。 58KB Flash程序存储器,可用于存储用户程序。对于 IAP型的单片机,没有用于程序存储器的Flash可以用 作数据Flash,用于保存掉电后不丢失的参数。Flash 存储器的擦写次数可达10万次以上。 4096B的SRAM,相当于计算机的内存,可用于保存 程序中所用的变量。 5个16位可自动重装载的定时/计数器(T0、T1、T2、 T3和T4),具有可编程时钟输出功能。
IAP15W4K58S4单片机集成了以下典型资源: 至多62根 (64引脚封装) I/O(输入/输出)口线,以实 现数据的并行输入输出。 4个全双工异步串行口(UART),可以实现单片 机和其他设备之间的串行数据传送。 1个高速同步通信端口(SPI),可以与具有SPI的 设备进行通信。 中断控制系统。具有5路外部中断,下降沿中断或双 边沿(上升沿和下降沿)触发电路,掉电模式下可 由外部中断低电平触发中断方式唤醒。
中央处理器(CPU)由运算器和控制器组成 以8位算术/逻辑运算部件 ALU为核心,加上通过内部总 线而挂在其周围的暂存器 TMP1、TMP2、累加器ACC、寄 存器B、程序状态标志寄存器 PSW以及布尔处理机组成了整 个运算器的逻辑电路。 05:32
1 运算器 算术逻辑单元ALU:用来完成二进制数的四则运算和 布尔代数的逻辑运算。 1 运算器 算术逻辑单元ALU:用来完成二进制数的四则运算和 布尔代数的逻辑运算。 累加器ACC又记作A:是一个具有特殊用途的8位寄存 器,在CPU中工作最频繁,用来存放操作数和运算结 果。 寄存器B:是专门为乘、除法设置的寄存器,也是一 个8位寄存器,用来存放乘法和除法中的操作数及运 算结果,对于其他指令,它只作暂存器用。 程序状态字(PSW):又称为标志寄存器,一个8位 寄存器,用来存放执行指令后的有关状态信息,供 程序查询和判别之用。 05:32
程序状态标志寄存器PSW (8位) PSW中有些位的状态是在指令执行过程中自动形成 的,有些位可以由用户采用指令加以改变。 位号 D7 D6 D5 D4 D3 D2 D1 D0 符号 CY AC F0 RS1 RS0 OV F1 P CY CY(PSW.7):进位标志位 当执行加/减法指令时,如果操作结果的最高位D7出 现进/借位,则CY置“1”,否则清“0”。 执行乘除运算后,CY清零。此外,CPU在进行移位操 作时也会影响这个标志位。 05:32
程序状态标志寄存器PSW (8位) 位号 D7 D6 D5 D4 D3 D2 D1 D0 符号 CY AC F0 RS1 RS0 OV F1 AC(PSW.6):辅助进位标志位(Auxiliary Carry) 当执行加/减法指令时,如果低四位数向高四位数产生 进/借位,则AC置“1”,否则清零。 F0(PSW.5):用户标志位(F0)。 是由用户定义的一个状态标志。可用软件来使它置“1” 或清“0” ,也可以由软件测试F0控制程序的流向。 F1(PSW.1):用户标志1 (F1) 。 是由用户定义的一个状态标志。可用软件来使它置“1” 或清“0” ,也可以由软件测试F1控制程序的流向。 05:32
程序状态标志寄存器PSW (8位) 位号 D7 D6 D5 D4 D3 D2 D1 D0 符号 CY AC F0 RS1 RS0 OV F1 RS1,RS0(PSW.4~PSW.3):工作寄存器组选择控 制位,其详细介绍见后续内容。 OV(PSW.2):溢出标志位。指示运算过程中是否 发生了溢出,在执行指令过程中自动形成。 P(PSW.0):奇偶标志位 累加器ACC中1的个数为偶数,P=0;否则P=1。每个指 令周期都由硬件来置“1”或清“0”。 在有奇偶校验的串行通信中,可根据P设置奇偶校验位。 05:32
SETB C; CPL bit; J(N)C rel; J(N)B bit, rel; MOV bit, C 布尔处理机 是单片机CPU中运算器的一个重要组成部分。 功能: 为用户提供丰富的位操作功能, 有相应指令系 统, 硬件有自己的“累加器” (进位标志位C,即CY),有 自己的位寻址RAM和I/O空间, 是一个独立的位处理机。 大部分位操作均围绕着其累加器——进位位C完成。 对任何可直接寻址的位,布尔处理机可执行置位、取 反、等于1(0)转移、位的读写等操作。(见附录E-5) 在任何可寻址的位(或该位内容取反)和进位标志C之 间,可执行逻辑与、或操作, 其结果送回到进位标志C。 SETB C; CPL bit; J(N)C rel; J(N)B bit, rel; MOV bit, C 05:32
2. 控制器 控制器是CPU的大脑中枢, 包括定时控制逻辑、指令寄存 器、译码器、(数据)地址指针DPTR及程序计数器PC 、 堆栈指针SP 、 RAM地址寄存器、 16位(程序)地址缓冲 器等。 程序计数器PC 是一个16位的程序地址寄存器,专门用来存放下一条 需要执行的指令的内存地址,能自动加1。 CPU执行指令时,根据程序计数器PC中地址从存储器中 取出当前需执行的指令码,并把它送给控制器分析执行, 随后程序计数器中的地址自动加1,为CPU取下一个需要 执行的指令码做准备。 当下一个指令码取出执行后,PC又自动加1。这样,程 序计数器PC一次次加1,指令就被一条条执行。 05:32
2. 控制器——堆栈 主要用于保存临时数据、局部变量、中断或子程序的 返回地址。 2. 控制器——堆栈 主要用于保存临时数据、局部变量、中断或子程序的 返回地址。 IAP15W4K58S4单片机的堆栈设在内部RAM中,是一个按 照“先进后出”规律存放数据的区域。 堆栈指针SP是一个8位寄存器,能自动加1或减1。 SP指向堆栈栈顶:当数据压入堆栈时,SP先自动加1,数 据再入栈;出栈时,数据先从堆栈中弹出,SP再自动减1。 复位后, 寄存器SP默认值为07H, 这样堆栈区在08H开 始的区域。 用户通常可用指令将堆栈区域设置在内部 RAM的8 30H ~ F 7FH之间(单片机手册上写错了)。 05:32
2. 控制器——数据指针DPTR(也称地址指针) 是16位专用寄存器,由DPL (低8位)和DPH (高8位)组成。 DPTR可直接进行16位操作, 也可分别对DPL和DPH 按字节进行操作。 IAP15W4K58S4单片机有两个16位数据指针DPTR0和 DPTR1, 这两个数据指针共用同一个地址(82H, 83H)。 可通过设置辅助寄存器AUXR1中的DPS(AUXR1.0)位 来选择具体使用哪一个数据指针(DPS=0, 选择DPTR0; DPS=1,选择DPTR1)。 见47页表3-2 辅助寄存器AUXR1 位号 D7 D6 D5 D4 D3 D2 D1 D0 位名称 S1_S1 S1_S0 CCP_S1 CCP_S0 SPI_S1 SPI_S0 DPS 05:32
§3.3 IAP15W4K58S4单片机的存储器 结构特点: 程序存储器和数据存储器的寻址空间分开。 结构特点: 程序存储器和数据存储器的寻址空间分开。 结构划分: 片内集成3个物理上相互独立的存储器空间: 程序Flash存储器(没用作程序存储器的Flash存储器可作 EEPROM使用)、内部数据存储器和扩展数据存储器。 数据用MOVC指令访问 用MOV指令访问 物理上内部, 逻辑上属于外部, 用MOVX访问 图3-7 IAP15W4K58S4单片机存储器配置示意图
1、程序Flash存储器 功能:存放用户程序、数据和表格等信息。 空间大小: IAP15W4K58S4单片机片内集成了58KB 的程序Flash存储器,地址为0000H~E7FFH。单片机 复位后,程序计数器PC的内容为0000H,从0000H单 元开始执行程序。 IAP15W4K58S4不能访问外部程序存 储器,因无访问外部程序存储器的总线。 没用作程序存储器的Flash存储器可作 EEPROM使用。程序Flash的擦写次数 为10万次以上, 大大提高了芯片利用率, 降低了开发成本。
1、程序Flash存储器——中断服务程序的入口地址 000BH 定时/计数器0中断服务程序的入口地址 0013H 外部中断1中断服务程序的入口地址 001BH 定时/计数器1中断服务程序的入口地址 0023H 串行通信口1中断服务程序的入口地址 002BH ADC中断服务程序的入口地址 0033H 低电压检测中断服务程序的入口地址 003BH PCA中断服务程序的入口地址 0043H 串行通信口2中断服务程序的入口地址 004BH SPI中断服务程序的入口地址 中断向量表 单片机复位后, 程序计数器PC内容为0000H, 从0000H 单元开始执行程序。 ORG 0000H LJMP MAIN
1、程序Flash存储器——中断服务程序的入口地址 中断服务程序的入口地址(续) 0053H 外部中断2中断服务程序的入口地址 005BH 外部中断3中断服务程序的入口地址 0063H 定时/计数器2中断服务程序的入口地址 0083H 外部中断4中断服务程序的入口地址 008BH:串行通信口3中断服务程序的入口地址 0093H:串行通信口4中断服务程序的入口地址 009BH:定时/计数器3中断服务程序的入口地址 00A3H:定时/计数器4中断服务程序的入口地址 00ABH:比较器中断服务程序的入口地址 00B3H:PWM中断服务程序的入口地址 00BBH:PWM异常检测中断服务程序的入口地址 中断向量表
1、程序Flash存储器——中断服务程序的入口地址 响应中断时,单片机自动转到相应的中断入口地址 去执行程序。 因相邻中断入口地址间只有8个地址单元,无法保存 完整中断服务程序,一般在中断入口地址区存放一条 无条件转移指令,指向真正存放中断服务程序空间。 中断响应后,CPU执行这条转移指令,转去执行中断 服务程序。 使用指令:读取程序存储器中保存的表格常数等内容 时,使用MOVC指令。 05:32
2、数据存储器—IAP15W4K58S4 数据存储器也称为随机存取数据存储器(RAM)。 空间划分 在物理上和逻辑上都分为两个地址空间:内部数据存储 区和扩展数据存储区 。 (1)内部数据存储区(又称为内部RAM) 256字节内部RAM,存放中间结果和过程数据。内部RAM 地址范围是00H~FFH,共256个单元,分三部分: ①低128字节RAM(00H~7FH) 地址重叠, 用寻址方式区别 ②高128字节RAM(80H~FFH) ③特殊功能寄存器(SFR)区: 地址范围为80H~FFH 05:32
2、数据存储器—IAP15W4K58S4 (1) 内部数据存储区(又称为内部RAM)三部分详细介绍: ①低128字节RAM(00H~7FH):也称为基本RAM区。 基本RAM区又分为工作寄存器区、位寻址区、用户 RAM和堆栈区。 可直接寻址, 也可寄存器间接寻址。用“MOV direct” 和“MOV @Ri” 形式的指令访问。 ②高128字节RAM(80H~FFH):只能间接寻址。 用“MOV @Ri”形式的指令访问。 ③特殊功能寄存器(SFR)区:地址范围为80H~FFH, 只可直接寻址,用“MOV direct”形式的指令访问。 05:32
(1) 内部数据存储区 地址空间分配 80H~FFH 只能间接寻址访问 通用用户RAM和堆栈区 ~ 可直接寻址或间接寻址 (1) 内部数据存储区 地址空间分配 80H~FFH 只能间接寻址访问 FFH ~ 80H 特殊功能寄存器区(80H~FFH) 只能直接寻址访问 通用用户RAM和堆栈区 可直接寻址或间接寻址 7FH ~ 30H 工作寄存器区 位寻址区 用户RAM和堆栈区 高128字节RAM 特殊功能寄存器区 位寻址区(16字节,共128位)也可字节寻址 2FH ~ 20H 3区(R7~R0) 2区(R7~R0) 1区(R7~R0) 0区(R7~R0) 18H~1FH 10H~17H 4个工作寄存器区也可做RAM单元使用 08H~0FH 00H~07H 图3-8内部数据存储器地址空间 05:32
工作寄存器区 地址分配:00H~1FH共32个单元。分为四组(每一组称 为一个寄存器组), 每一组包括8个8位的工作寄存器, 分别是R0~R7。 功能:通过使用工作寄存器,可提高运算速度,也可用 其中R0或R1存放八位地址值,访问一个256字节(可在逻 辑上的外部)RAM块中单元。 另外,R0~R7也可用作计数器,在指令作用下加1或减1。 间接寻址 方式 “ MOV(X) @Ri ” 3区(R7~R0) 2区(R7~R0) 1区(R7~R0) 0区(R7~R0) 18H~1FH 10H~17H 08H~0FH 00H~07H 转移指令“ DJNZ Rn, rel” 05:32
工作寄存器组的选择: 例 “ MOV A, @R0 ” PSW寄存器中的RS1和RS0两位组合决定当前使用的工作寄存器组。可通过位操作指令修改RS1和RS0的内容,选择不同的工作寄存器组。 3区(R7~R0) 2区(R7~R0) 1区(R7~R0) 0区(R7~R0) 18H~1FH 10H~17H 08H~0FH 00H~07H 09H 08H 07H 数据压栈前SP+1→ 默认SP指针→ 表3-1 工作寄存器组选择 RS1 (PSW.4) RS0 (PSW.3) 工作寄存器组 工作寄存器地址 R7~R0对应的地址为07H~00H 1 R7~R0对应的地址为0FH~08H 2 R7~R0对应的地址为17H~10H 3 R7~R0对应的地址为1FH~18H R0 复位值 05:32
位寻址区 20H~2FH之间单元既可按字节存取, 也可按位存取,共128位, 位地址范围: 00H~7FH。 位寻址 : MOV C, 20H 直接寻址 : MOV A, 20H 字节地址: 20H 图3-9 内部RAM中的位地址 05:32
位寻址区--图3-10特殊功能寄存器SFR中位地址 特殊功能寄存器SFR中位地址范围: 80H~0FFH。 图3-10 可位寻址的特殊功能寄存器中的位地址 05:32
用户RAM和堆栈区 内部RAM中的30H~7FH单元是用户RAM和堆栈区。 有一个8位的堆栈指针SP,并且堆栈区只能设置在内 部数据存储区。当有子程序调用和中断请求时,返回 地址等信息被自动保存在堆栈内。 IAP15W4K58S4单片机复位后,SP为07H,使堆栈事 实上由08H单元开始(数据进栈前SP先加1,再进栈), 考虑08H~1FH单元分别属于工作寄存器组1~3, 若在 程序中用到这些工作寄存器, 则在用户初始化程序中, 最好把SP的值改变为80H或更大 30H~7FH中的值。 IAP15W4K58S4单片机的堆栈是朝地址增大的方向生 成, 即数据压栈操作后, SP的值增大(先SP+1, 再入栈)。 05:32
高128字节RAM和特殊功能寄存器 对于IAP15W4K58S4单片机,80H~FFH既为高128字节 RAM区的地址范围,又为特殊功能寄存器区(SFR)的地 址范围,地址空间重叠,但物理上是独立的。 使用时,通过不同的寻址方式加以区分:高128字节 的RAM区使用间接寻址访问,特殊功能寄存器使用直 接寻址访问。 因堆栈操作也是间直接寻址方式,所以,高128位数据 RAM亦可作为堆栈区使用特殊功能寄存器可进出堆栈。 除了程序计数器PC和4个工作寄存器组外,其余的寄 存器都在SFR区中。(见教材表3-2) 05:32
特殊功能寄存器 特殊功能寄存器大体分为两类 ①一类与芯片的引脚有关。如P0~P5,它们实际上 是6个锁存器,每个锁存器附加上相应的输出驱动器 和输入缓冲器就构成了一个并行口。(见表3-2) ②另一类为芯片内部功能的控制或者内部寄存器。 如与中断屏蔽及优先级控制、定时器、串行口、SPI 接口等相关的寄存器。(见表3-2) IAP15W4K58S4单片机的特殊功能寄存器及其复位值 如表3-2所列。 05:32
(2) 扩展数据存储区on-chip expanded RAM(XRAM) 外部数据存储区也称为扩展RAM区(简称, XRAM)。 IAP15W4K58S4单片机一共可以访问64KB的扩展数 据存储空间。 IAP15W4K58S4单片机片内集成了 3840B的XRAM,地址范围为0000H~0EFFH,可用 于存放数据。 注意,这里的“内部”和“外部”是针对8051内核的 逻辑上的概念,不是指芯片内部和外部。 在汇编语言中,XRAM使用“MOVX @DPTR” 或者“MOVX @Ri”指令访问。 在C语言中,可使用xdata声明存储类型即可。 如:unsigned char xdata i= 0; 05:32
(2) 扩展数据存储区 (XRAM) 访问片内集成的外部RAM时,不影响P0口、P2口、 P4.2(WR)、P4.4(RD)和ALE (P4.5)。 IAP15W4K58S4单片机还可以访问片外扩展的 64KB外部数据存储器。 IAP15W4K58S4单片机的外部扩展I/O端口与扩展 数据存储器统一编址,因此外部I/O端口的地址占 用扩展数据存储器的地址单元,外部扩展I/O端口 也用MOVX指令访问。 05:32
(2) 扩展数据存储区 (XRAM) 单片机内部扩展RAM是否可访问受辅助寄存器AUXR (地址为8EH, 复位值为01H)中的EXTRAM位控制。 位号 D7 D6 D5 D4 D3 D2 D1 D0 位 名称 T0x12 T1x12 UART_M0x6 T2R T2_C/ T2x12 EXTRAM S1ST2 EXTRAM: 0: 内部扩展RAM可以存取; 地址小于0F00H时, 访问内 部扩展RAM; 地址大于或等于0F00H时, 则访问单片机 外部扩展的RAM或I/O空间。 1: 禁止访问内部扩展RAM。
§3.4 单片机的引脚 3.4.1 单片机的引脚及功能 封装 (a)LQFP-44 封装 图3-11 IAP15W4K58S4单片机的引脚图
3.4.1 单片机的引脚及功能 封装 (b) DIP– 40 封装 图3-11 IAP15W4K58S4单片机的引脚图
3.4.1 单片机的引脚及功能 图3-12 IAP15W4K58S4单片机的逻辑符号图
3.4.1 单片机的引脚及功能 DIP-40封装的IAP15W4K58S4单片机和LQFP-44封装相比,除了没有P4.0、P4.3、P4.6、P4.7引脚外,其他资源和的单片机完全相同。 由于DIP封装的单片机焊接比较容易,因此,对于初学者,最好选用DIP封装的单片机进行学习。 注意:在实际应用中,设计单片机应用系统的原理图时,一般应使用逻辑符号图,以便进行电路分析,而设计应用系统的印刷电路板图时,必须使用单片机的引脚图。 05:32
3.4.1 单片机的引脚及功能 电源引脚 外接晶体引脚 控制和复位引脚 输入/输出(I/O)引脚 引脚 1. 电源引脚 Vcc:一般接电源的+5V。具体的电压幅度应参考 单片机的手册。 GND:接电源地。 05:32
3.4.1 单片机的引脚及功能 2. 外接晶体引脚 XTAL1和XATL2 芯片内部一个反相放大器的输入端和输出端。常用于连接晶体振荡器。 2. 外接晶体引脚 XTAL1和XATL2 /P1.6 芯片内部一个反相放大器的输入端和输出端。常用于连接晶体振荡器。 /P1.7 晶振频率可在4MHz~48MHz间选择,典型值是11.0592MHz(因设计单片机通信应用系统时,用这个频率的晶振可准确地得到9600bits/s和19200bits/s的波特率)。 电容C1、C2对时钟频率有微调作用,可在5~100pF之间选择,典型值是47pF。 05:32
2. 外接晶体引脚 IAP15W4K58S4单片机内部集成高精度R/C时钟,工作时钟可用内部振荡器或外部晶振产生的时钟。 2. 外接晶体引脚 IAP15W4K58S4单片机内部集成高精度R/C时钟,工作时钟可用内部振荡器或外部晶振产生的时钟。 40引脚和44引脚封装的IAP15W4K58S4单片机出厂标准配置是用外部时钟。 内部集成的高精度R/C时钟工业环境下温漂为±1%,常温下温飘5‰,频率范围为5MHz~35MHz,可在编程时设置。 对时钟频率要求不太敏感的场合,内部R/C振荡器完全能够满足要求 用内部R/C振荡器时钟时, XTAL1和XTAL2引脚悬空。 用在系统编程(In-System Programming,ISP)工具对IAP15W4K58S4单片机下载用户程序时,可在选项中设置选用外部晶振时钟或者选用内部R/C振荡器时钟。 宏晶官网可下载最新版本stc-isp-15xx-v6.86.exe 05:32
3. 控制和复位引脚 (1) ALE(与P4.5复用) 功能:当访问外部存储器或外部扩展的并行I/O口时, ALE(地址锁存使能)输出用于锁存地址的低位字节。 标准8051单片机的ALE 脚对系统时钟进行6分频输出, 可对外提供时钟。 当8051单片机时钟频率较高时,ALE脚是一干扰源。 IAP15W4K58S4单片机直接禁止ALE脚对系统时钟进行6分 频输出,彻底清除此干扰源,有利于系统抗干扰设计。 若设计中需单片机输出时钟,可用IAP15W4K58S4单片机 的可编程时钟输出脚(P5.4/SYSCLKO, T2CLKO/P3.0, T1CLKO/P3.4和T0CLKO/P3.5等,见7.2节)对外输出时钟。 IAP15W4K58S4单片机的ALE引脚在用MOVX指令访问片外 扩展器件时输出地址锁存信号。 05:32
3. 控制和复位引脚 (2) RST(与P5.4复用) 当振荡器运行时,在此引脚上出现两个机器周期的高 电平将使单片机复位。 3. 控制和复位引脚 (2) RST(与P5.4复用) 当振荡器运行时,在此引脚上出现两个机器周期的高 电平将使单片机复位。 如果需要单片机接上电源就可以复位,则需要使用上 电复位电路。 VPD: 传统C51单片机备用电源引脚 SS_3 /SYSCLKO /RST /P5.4 图3-14 上电复位电路图 05:32
(2) RST(与P5.4复用) 引脚 P5.4/RST/MCLKO SYSCLKO脚出厂时默认为I/O口,可 在STC-ISP编程软件下载程序时,将其设置为RST复位 脚。 IAP15W4K58S4单片机内 部集成了MAX810专用复位 电路,时钟频率在12MHZ 以下时,复位脚可接1K电 阻再接地,也可用图3-14所 示的传统复位电路。 图3-14 上电复位电路图 05:32
3.4.2 单片机的输入/输出(I/O)引脚 LQFP-44封装格式的IAP15W4K58S4单片机最多可有42根I/O口线: P0口(8根):P0.0~P0.7 P1口(8根):P1.0~P1.7 P2口(8根):P2.0~P2.7 P3口(8根):P3.0~P3.7 P4口(8根):P4.0~P4.7 P5口(2根):P5.4、P5.5。 1. I/O口的工作模式 4种模式:准双向口/弱上拉,推挽/强上拉,输入/高阻 和开漏模式。复位后为准双向口/弱上拉模式。 每个口的工作模式由2个控制寄存器中的相应位控制 (PnM0和PnM1,n=0、1、2、3、4、5、6、7 )。 05:32
1. I/O口的工作模式 4种工作模式:准双向口/弱上拉,推挽/强上拉,输 入/高阻和开漏模式。 每个口的工作模式由2个控制寄存器中的相应位控制 (PnM0和PnM1,n=0,1,2,3,4,5、6、7 )。 例如: P0M0和P0M1用于设定P0口的工作模式: 位号 D7 D6 D5 D4 D3 D2 D1 D0 P0M0 P0M1 寄存器 设置P0.7 设置P0.6 设置P0.5 设置P0.4 设置P0.3 设置P0.2 设置P0.1 设置P0.0 P0M0 1 P0.3 P0.2 P0.1 P0.0 P0M1 工作 模式 准双 向口 推挽 输入/高阻 开漏 以此类推 05:32
1. I/O口的工作模式 表3-3 I/O口工作模式设置 PnM1 [7:0] PnM0 I/O口工作模式 准双向口 (传统8051单片机I/O口模式), 灌电流可达20mA,拉电流为270μA,由于制造误差,实际为150uA~270uA 1 推挽输入输出(强上拉输出, 可达20mA, 要加限流电阻, 尽量少用) 仅为输入 (高阻) 开漏(Open Drain), 内部上拉电阻断开, 要外加上拉电阻 05:32
1. I/O口的工作模式 例, 若设置P1.7为开漏模式, P1.6为强推挽输入输出模 式, P1.5为高阻输入模式, P1.4, P1.3, P1.2, P1.1和P1.0 为弱上拉(准双向口 )模式, 则P1M0和P1M1设置如下: P1口 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P1M0 1 P1M1 工作 模式 开漏 推挽 输入/高阻 准双 向口 则可用下面代码设置: MOV P1M0, #11000000B; MOV P1M1, #10100000B; 或MOV P1M0, #C0H 或MOV P1M1, #A0H 05:32
2. IAP15W4K58S4单片机I/O口的结构 (1)准双向口(弱上拉)工作模式的结构 IAP15W4K58S4单片机的每个I/O口在弱上拉时能承受 20mA的灌电流(最好使用限流电阻,如1KΩ)。 整个芯片的工作电流推荐不要超过90mA。即从MCU- Vcc流入的电流不超过90mA,从MCU-GND流出的电流不 超过90mA,整体流入/流出电流都不能超过90mA。 30μA 20mA 200μA 强 极弱 弱 P0~P5 输出低时,灌电流最大可达20mA 图3-15 准双向口工作模式的I/O位结构 05:32
0输入 (1)准双向口(弱上拉)工作模式的结构 I/O口可用作输出和输入功能而不需重新配置口线输出 状态。 当口线输出锁存器为“1”时I/O口高电平驱动能 力很弱,允许外部装置将其拉低(即允许输入低电平, 此 时T3与施密特管形成正反馈, 引脚钳位在0电平,输入低)。 引脚输出为低时, 其驱动能力很强, 可吸收20mA大电 流。 1 1 30μA 20mA 200μA 1 强 极弱 弱 P0~P5 1 截止 通 通 截止 1 0输入 止 止 1 1 输出低时,灌电流最大可达20mA 通 05:32
(1)准双向口(弱上拉)工作模式的结构 每个端口都包含一个锁存器,即特殊功能寄存器 P0~P7。这种结构在数据输出时,具有锁存功能, 即在重新输出新的数据之前,口线上的数据一直保 持不变。 但对输入信号是不锁存的,所以外设输入的数据必 须保持到取数指令执行为止。 为了便于叙述,以后将6 8个端口及其锁存器都表示 为P0~P7。 05:32
(1)准双向口(弱上拉)工作模式的结构 当口线寄存器为1且引脚本身也为1时, T3导通。T3 提供基本驱动电流使准双向口输出为1。 30μA 20mA 200μA 1 强 极弱 弱 P0~P5 截止 通 通 截止 1 1 05:32
(1)准双向口(弱上拉)工作模式的结构 当口线锁存为1时,T2导通。当引脚悬空时, 这个极 弱上拉源产生很弱的上拉电流将引脚上拉为高电平。 当口线锁存为0时,T1、T2和T3均截止,T4导通,引 脚输出为低电平。 1 1 30μA 20mA 200μA 1 强 极弱 弱 P0~P5 1 截止 通 通 截止 1 悬空 止 止 1 1 输出低时,灌电流最大可达20mA 通 05:32
(1)准双向口(弱上拉)工作模式的结构 当口线锁存器由0到1跳变时,T1用来加快准双向口由逻辑0到逻辑1的转换。发生这种情况时,T1导通约2个时钟使引脚能迅速地上拉到高电平。 准双向口带有一个施密特触发输入及干扰抑制电路。 延迟2时钟1 1 30μA 20mA 200μA 1 1 强 极弱 弱 P0~P5 1 截止 止 为0 2个时钟 通 止 通 1 导通 2个时钟 1 1 通 05:32
(1)准双向口(弱上拉)工作模式的结构 当从端口引脚上输入数据时,T4应一直处于截止状态。 30μA 20mA 200μA 强 极弱 弱 P0~P5 截止 通 截止 1 1 1 外部 输入0 截止 通 1 05:32
(2)推挽输出(强上拉输出)工作模式的结构 推挽输出工作模式的结构 1 导通 截止 1 截止 1 导通 图3-16 推挽输出工作模式的I/O位结构 05:32
(2)推挽输出(强上拉输出)工作模式的结构 推挽输出工作模式的下拉结构与准双向口的下拉结构 相同, 但当锁存器为“1”时可提供持续的强上拉。推挽 工作模式一般用于需更大驱动电流的情况。 此时,若输出高电平,拉电流最大可达20mA;若输出低电 平,灌电流也可达20mA。 推挽输出模式,也带有施密特触发输入及干扰抑制电路。 输出高时,拉电流最大可达20mA 输出低时,灌电流最大可达20mA 05:32
2. IAP15W4K58S4单片机I/O口的结构 (3)仅为输入(高阻)工作模式的结构 输入口带有一个施密特触发输入以及一个干扰抑制电路。 注意,仅为输入(高阻)工作模式下, I/O口不提供20mA灌电流的能力。 图3-17 仅为输入(高阻)工作模式的I/O位结构 05:32
2. IAP15W4K58S4单片机I/O口的结构 (4)开漏输出工作模式的结构 图3-18 开漏输出工作模式的I/O位结构 Vcc 外接上拉电阻 无此类上拉配置 图3-18 开漏输出工作模式的I/O位结构 05:32
(4)开漏输出工作模式的结构 当口线锁存器为0时,(开漏输出关断所有上拉场效应管),T2开启。当作为一个逻辑输出时,这种配置方式必须有外部上拉电阻,即通过电阻外接到Vcc。 这种方式的下拉结构与准双向口模式下拉结构相同。 这种工作模式下,输出低电平时,灌电流可达20mA。 开漏端口带有一个施密特触发输入及干扰抑制电路。 Vcc 1 1 截止 1 输出低时,灌电流最大可达20mA 开启 05:32
3. I/O口的复用功能 ---通过设置相关寄存器选择功能 P0口可复用为数据总线(D7~D0)、地址总线低8位 (A7~A0)、串口3、串口4、T3时钟输出、T3脉冲 输入、T4时钟输出、T4脉冲输入、PWM输出控制。 (1) P0口 表3-4 P0口的复用功能 引脚 复 用 功 能 P0.0 AD0/RXD3(串口3数据接收端) P0.1 AD1/TXD3(串口3数据发送端) P0.2 AD2/RXD4(串口4数据接收端) P0.3 AD3/TXD4(串口4数据发送端) P0.4 AD4/T3CLKO(T3时钟输出) P0.5 AD5/T3(T3的外部输入)/PWMFLT_2(PWM异常停机控制第二切换引脚) P0.6 AD6/T4CLKO(T4时钟输出)/PWM7_2(PWM输出通道7第二切换引脚,上电后默认为高阻输入) P0.7 AD7/T4(T4外部输入)/ PWM6_2(PWM输出通道6第二切换引脚,上电后默认为高阻输入)
3. I/O口的复用功能 (2)P1口 P1口可复用为ADC转换输入(ADC7~ADC0)、捕获/比较/脉 宽调制(CCP)、SPI通信线、第二串口、第三串口、系统时 钟输出、外接晶体引脚、PWM输出、比较器的结果输出等。 表3-5 P1口的复用功能 引脚 复 用 功 能 P1.0 ADC0/CCP1(捕获/比较/脉宽调制通道1) /RXD2(串口2数据接收端) P1.1 ADC1/CCP0(捕获/比较/脉宽调制通道0) /TXD2(串口2数据发送端) P1.2 ADC2/ECI(可编程计数器阵列定时器的外部时钟输入)/SS(SPI从器件选择)/CMPO(比较器的比较结果输出) P1.3 ADC3/ MOSI(SPI主机输出从机输入) P1.4 ADC4/ MISO(SPI主机输入从机输出) P1.5 ADC5/ SCLK(SPI时钟) P1.6 ADC6/ XTAL2(外接晶体引脚)/RXD_3(串口1数据接收端第三切换引脚)/SYSCLKO_2(系统时钟输出第二切换引脚)/PWM6(PWM输出通道6,上电后默认为高阻输入) P1.7 ADC7/ XTAL1(外接晶体引脚)/TXD_3(串口1数据发送端第三切换引脚)/PWM7(PWM输出通道7,上电后默认为高阻输入)
3. I/O口的复用功能: (3) P2口 P2口可作为地址总线的高8位输出(A15~A8)。另外,P2口还用于SPI和捕获/比较/脉宽调制的备用切换端口以及PWM输出。 表3-6 P2口的复用功能 引脚 复 用 功 能 P2.0 A8/RSTOUT_LOW(复位后输出低电平引脚,可以使用ISP工具设置复位后的输出电平) P2.1 A9/ SCLK_2(SPI时钟第二切换引脚)/PWM3(PWM输出通道3,上电后默认为高阻输入) P2.2 A10/ MISO_2(SPI主机输入从机输出第二切换引脚)/PWM4(PWM输出通道4,上电后默认为高阻输入) P2.3 A11/ MOSI_2(SPI主机输出从机输入第二切换引脚)/PWM5(PWM输出通道5,上电后默认为高阻输入) P2.4 A12/ECI_3(可编程计数器阵列定时器的外部时钟输入第三切换引脚) /SS_2(SPI从器件选择第二切换引脚)/PWMFLT(PWM异常停机控制) P2.5 A13/CCP0_3(捕获/比较/脉宽调制通道0第三切换引脚) P2.6 A14/ CCP1_3(捕获/比较/脉宽调制通道1第三切换引脚) P2.7 A15/ PWM2_2(PWM输出通道2第二切换引脚, 上电后默认为高阻输入)
3. I/O口的复用功能: (4) P3口 P3口可复用为外部中断输入、计数器输入、时钟输出、串口1、PWM输出等功能。 引脚 复 用 功 能 P3.0 RXD(串口1数据接收端) / (外部中断4) /T2CLKO(T2的时钟输出) P3.1 TXD(串口1数据发送端)/T2(T2的外部输入) P3.2 /INT0(外部中断0输入) P3.3 /INT1(外部中断1输入) P3.4 T0(T0的外部输入)/ T1CLKO(T1时钟输出)/ECI_2(可编程计数器阵列定时器的外部时钟输入第二切换引脚) P3.5 T1(T1的外部输入)/ T0CLKO(T0时钟输出)/ CCP0_2(捕获/比较/脉宽调制通道0第二切换引脚) P3.6 /INT2(外部中断2输入)/RXD_2(串口1数据接收端第二切换引脚)/CCP1_2(捕获/比较/脉宽调制通道1第二切换引脚) P3.7 /INT3(外部中断3输入)/TXD_2(串口1数据发送端第二切换引脚)/PWM2(PWM输出通道2,上电后默认为高阻输入)
3. I/O口的复用功能: (5) P4口 P4口的复用功能可配置为SPI通信、读写控制信号、串口2、地址锁存信号、PWM输出等。 引脚 复 用 功 能 P4.0 MOSI_3(SPI主输出从输入第三切换引脚) P4.1 MISO_3(SPI主输入从输出第三切换引脚) P4.2 /WR(外部总线写控制信号)/PWM5_2(PWM输出通道5第二切换引脚,上电后默认为高阻输入) P4.3 SCLK_3(SPI时钟第三切换引脚) P4.4 /RD(外部总线读控制信号)/PWM4_2(PWM输出通道4第二切换引脚,上电后默认为高阻输入) P4.5 ALE(地址锁存控制信号,主要用于外部总线扩展)/PWM3_2(PWM输出通道3第二切换引脚,上电后默认为高阻输入) P4.6 RXD2_2(串口2数据接收端第二切换引脚) P4.7 TXD2_2(串口2数据发送端第二切换引脚)
3. I/O口的复用功能: (6) P5口 P5.0可复用为RxD3_2, P5.1可复用为TxD3_2, P5.2 可复用为RxD4_2, P5.3可复用为TxD4_2(只在48引脚 和64引脚封装的芯片上才有)。 P5.4可复用为RST(复位脚)/ SYSCLKO(系统时钟 输出引脚)/SS_3(SPI接口的从机选择信号第三切 换引脚)/CMP-(比较器负极输入端,用于该功能时, 该端口需要设置为高阻输入)。 P5.5可复用为CMP+(比较器正极输入端,用于该功 能时,该端口需要设置为高阻输入)。 P6和P7口没有复用功能(只在64引脚封装的芯片上才 有)。
3. I/O口的复用功能 各个I/O口的复用功能是通过设置下面的特殊功能寄 存器实现的: (1)辅助寄存器AUXR1(也称为P_SW1,地址为A2H, 复位值为0000 0000B) (2)端口配置寄存器P_SW2(地址为BAH,复位值为 xxxx x000B) (3)时钟分频控制寄存器CLK_DIV(地址为97H,复 位值为0000 0000B) (4)外部中断使能和时钟输出寄存器INT_CLKO(地 址为8FH,复位值为x000 0000B)
3. I/O口的复用功能 各个I/O口的复用功能是通过设置下面的特殊功能寄 存器实现的: 表3-9 特殊功能寄存器的各位定义 位号 寄存器 D7 D6 D5 D4 D3 D2 D1 D0 AUXR1 S1_S1 S1_S0 CCP_S1 CCP_S0 SPI_S1 SPI_S0 DPS P_SW2 EAXSFR DBLPWR P31PU P30PU S4_S S3_S S2_S CLK_DIV SYSCKO_S1 SYSCKO_S0 ADRJ Tx_Rx SYSCLKO_2 CLKS2 CLKS1 CLKS0 INT_CLKO EX4 EX3 EX2 SYSCKO_S2 T2CLKO T1CLKO T0CLKO
表3-10 捕获/比较/脉宽调制(CCP)通道的切换 3. I/O口的复用功能 捕获/比较/脉宽调制(CCP)通道可以在三个地方切 换,由CCP_S1和CCP_S0两个控制位选择,其选择 方法如表3-10所示。 表3-10 捕获/比较/脉宽调制(CCP)通道的切换 CCP_S1 CCP_S0 切 换 引 脚 CCP在[P1.1/CCP0,P1.0/CCP1] 1 CCP在[P3.5/CCP0_2,P3.6/CCP1_2] CCP在[P2.5/CCP0_3,P2.6/CCP1_3] 无效
3. I/O口的复用功能 SPI可以在三个地方切换,由SPI_S1和SPI_S0两 个控制位选择,其选择方法如表3-11所示。 切 换 引 脚 SPI在[P1.2/SS,P1.3/MOSI,P1.4/MISO,P1.5/SCLK] 1 SPI在[P2.4/SS_2,P2.3/MOSI_2,P2.2/MISO_2,P2.1/SCLK_2] SPI在[P5.4/SS_3,P4.0/MOSI_3,P4.1/MISO_3,P4.3/SCLK_3] 无效
3. I/O口的复用功能 串口1可以在三个地方切换,由S1_S1和S1_S0两个控 制位选择,其选择方法如表3-12示。 表3-12 串口1的引脚切换 S1_S1 S1_S0 切 换 引 脚 串口1在[P3.0/RXD,P3.1/TXD] 1 串口1在[P3.6/RXD_2/XTAL2,P3.7/TxDX2/XTAL1] 串口1在[P1.6/RxD_3,P1.7/TxD_3],串口1在P1口时要使用内部时钟 无效
3. I/O口的复用功能 串口2可以在两个地方切换,由S2_S控制位选择: 0:串口2在[P1.0/RxD2,P1.1/TxD2]
3. I/O口的复用功能 SYSCKO_S2 ~ SYSCKO_S0用于设定系统时钟对外分 频输出控制: 表3-13 系统时钟分频及对外时钟输出控制 SYSCKO_S2 SYSCKO_S1 SYSCKO_S0 系统时钟分频及对外输出控制 系统时钟不对外输出时钟 1 系统时钟对外输出时钟,输出时钟频率=系统时钟频率 系统时钟对外输出时钟,输出时钟频率=系统时钟频率/2 系统时钟对外输出时钟,输出时钟频率=系统时钟频率/4 系统时钟对外输出时钟,输出时钟频率=系统时钟频率/16 系统时钟是指对主时钟进行分频后供给CPU、定时器、串行口、SPI、CCP/PWM/PCA、A/D转换的实际工作时钟;主时钟可以是内部R/C时钟,也可以是外部输入的时钟 或外部晶体振荡产生的时钟。SYSCLK是指系统时钟频率,SYSCLKO是指系统时钟输出。
3. I/O口的复用功能 系统时钟和主时钟的分频关系由CLKS2~CLKS0控制位选择 表3-14 系统时钟和主时钟的分频关系选择 CLKS2 CLKS1 CLKS0 系统时钟和主时钟的分频关系 系统时钟频率=主时钟频率,不分频 1 系统时钟频率=主时钟频率/2 系统时钟频率=主时钟频率/4 系统时钟频率=主时钟频率/8 系统时钟频率=主时钟频率/16 系统时钟频率=主时钟频率/32 系统时钟频率=主时钟频率/64 系统时钟频率=主时钟频率/128 系统时钟是指对主时钟进行分频后供给CPU、定时器、串行口、SPI、CCP/PWM/PCA、A/D转换的实际工作时钟;主时钟可以是内部R/C时钟,也可以是外部输入的时钟 或外部晶体振荡产生的时钟。SYSCLK是指系统时钟频率,SYSCLKO是指系统时钟输出。
3. I/O口的复用功能 系统时钟对外输出位置的选择由SYSCLKO_2控制位 选择: 0:在P5.4/SYSCLKO对外输出时钟; DPS为数据指针选择位: 0:使用默认数据指针DPTR0; 1:使用另一个数据指针DPTR1。
4. IAP15W4K58S4单片机的I/O口的使用 (1) P4口和P5口的使用 对IAP15W4K58S4单片机P4口和P5口的访问,如同 访问常规的P0/P1/P2/P3口一样,并且均可按位寻址, P4的地址C0H,P5口的地址在C8H。 (2) 上拉电阻的连接 虽然作为准双向口使用时,单片机内 部已集成了上拉场效应管,但在实际 应用时,一般情况下,最好还是外接上 拉电阻。例如,当外接的是SPI/I2C等 漏极开漏的电路时。 以P0.0为例,电路连接如图所示。典型上拉电阻阻值为5.1K或者10K。 05:32
(3) 拉电流方式和灌电流方式 IAP15W4K58S4单片机I/O口线作为输出可提供20mA 的驱动能力, 使用时, 可采用拉电流或灌电流方式。 以P0.0控制发光二极管电路为例,电路连接如图所示。 发光二极管驱动电流大约数mA ~20mA。 特别注意 图中限流电阻不能省略,否则,会毁坏I/O口。 图3-20 拉电流方式和灌电流方式 05:32
(3) 拉电流方式和灌电流方式 采用灌电流方式时,应将单片机的I/O口设置为弱上拉/准双向口工作模式; (3) 拉电流方式和灌电流方式 采用灌电流方式时,应将单片机的I/O口设置为弱上拉/准双向口工作模式; 采用拉电流方式时,应将单片机的I/O口设置为推挽输出/强上拉工作模式。 在实际使用时,应尽量采用灌电流方式,这样可以提高系统的负载能力和可靠性。 使用时应该特别注意 做行列矩阵按键扫描电路时,也需要在按键扫描电 路中的两侧各加300的限流电阻,否则,会毁坏I/O 口。 05:32
(3) 拉电流方式和灌电流方式 之所以做行列矩阵按键扫描电路时也需加限流电阻, 因 为实际工作时可能出现2个I/O口均输出低电平的情况, 并且在按键按下时,就短接在一起, 而按要求一个CMOS 电路的2个输出脚是不应该直接短接在一起的, Why? 其原因是在按键扫描电路中,一个口为了读另外一个口 的状态,必须先置高才能读另外一个口的状态, 而8051单片机的弱上拉口在由0变为1时,会有2个时钟的 强推挽高输出电流输出到另外一个输出为低的I/O口,就 有可能造成I/O口损坏。 05:32
(4) 典型的三极管控制电路 单片机I/O引脚本身驱动能力有限,如果需要驱动功率较大的器件,如小型继电器或者固态继电器,可用单片机I/O引脚控制三极管进行输出。以P0.0为例。 若用弱上拉控制,建议加上拉电阻R1(3.3K~10K);若不加上拉电阻R1, 建议R2值在15K以上, 或用强推挽输出。 IAP15W4K58S4 三极管基极电流IB是数十μA级别的 图3-21 典型的三极管控制电路 05:32
4、典型的三极管控制电路 当需要驱动的功率器件较多时,建议采用ULN2803(18引 脚,或16脚ULN2003;TI, ST等公司产),其内部采用达林 顿结构,是专门用来驱动继电器的芯片,甚至在芯片内 部做了一个消去线圈反电动势的二极管。 ULN2803输出端允许通过IC电流600mA,耐压BVCEO约50V。 ULN2003输出端允许通过IC电流200mA(最大500mA),饱 和压降VCE约为1V左右(200mA时),耐压BVCEO约为50V。 输出口的外接负载可根据以上参数估算。采用集电极 开路输出,输出电流大,可以直接驱动继电器或固体 继电器(SSR)。 ULN2003(ULN2803)可以驱动7(8)个继电器。 05:32
4. IAP15W4K58S4单片机的I/O口的使用 (5) I/O外部状态的输入 存在的问题: 当I/O口工作于准双向口时, 由于 IAP15W4K58S4单片机是1个时钟周期(1T)的8051 单片机,速度很快, 如果通过指令执行由低变高指令后立即读外部状 态,此时由于实际输出还没有变高,有时可能读 入的状态不对。 解决方法:在软件设置由低变高后加1到2个空操 作指令 (NOP) 延时,然后再读I/O口的状态。 05:32
(6) 管脚 P1.7/XTAL1与P1.6/XTAL2的特别说明 IAP15W4K58S4系列单片机的所有I/O口上电复位后 均为准双向口/弱上拉模式。 但是由于P1.7和P1.6口还可以分别作外部晶体或时钟 电路的引脚XTAL1和XTAL2,所以P1.7/XTAL1和 P1.6/XTAL2上电复位后的模式不一定就是准双向口/ 弱上拉模式。 当P1.7和P1.6口作为外部晶体或时钟电路引脚XTAL1 和XTAL2使用时,P1.7/XTAL1和P1.6/XTAL2上电复 位后的模式是高阻输入。 05:32
(7) 管脚P5.4/RST的特别说明 P5.4/RST即可作普通I/O使用,也可作复位管脚。当用 户用ISP烧录程序将P5.4/RST设置成普通I/O口用时, 其 上电后为准双向口/弱上拉模式。 每次上电时, 单片机会自动判断上次用户用ISP烧录程 序是将P5.4/RST设置成普通I/O口还是复位脚。 若上一次用户是将P5.4/RST设置成普通I/O口,则单片 机会将P5.4/RST上电后的模式设置成准双向口/弱上拉。 若上次是将P5.4/RST设成复位脚, 则上电后, P5.4/RST 仍为复位脚。 ISP烧录程序只在调试时用, 设置项: 05:32
4. IAP15W4K58S4单片机的I/O口的使用 (8)专用PWM模块相关I/O引脚 专用PWM模块相关引脚有:P1.6、P1.7、 P2.1、P2.2、P2.3、P3.7,单片机复位后, 这些引脚为高阻状态,使用时需将其设置 为用户所需的工作模式。
§3.5 单片机应用系统的典型构成 1、单片机最小系统构成 在实际工程应用中,由于应用条件及控制要求的不同, 单片机外围电路的组成各不相同。 §3.5 单片机应用系统的典型构成 1、单片机最小系统构成 在实际工程应用中,由于应用条件及控制要求的不同, 单片机外围电路的组成各不相同。 单片机最小系统是指在尽可能少的外部电路条件下,能 使单片机独立工作的系统。 IAP15W4K58S4集成了58KB程序存储器、4096字节RAM、高可靠复位电路和高精度R/C振荡器,一般不需外部复位电路和外部晶振。 只需要接上电源, 并在Vcc和GND之间接上滤波电容C1和C2。 05:32
1、单片机最小系统构成 为了能够给单片机下载程序,可在RXD和TXD引脚上连接RS232和TTL的转换电路,以连接计算机,通过下载工具将用户程序下载到单片机中。 RS232和TTL的转换电路: STC15W系列支持USB接口直接下载程序 计算机串口是RS232电平 单片机串口是TTL电平 MAX232, MAX3232 图3-23 RS232和TTL转换电路 05:32
§3.5单片机应用系统的典型构成 3、总线扩展方式的单片机应用系统构成 应用背景 3、总线扩展方式的单片机应用系统构成 应用背景 组成单片机应用系统时,如果存储器容量不够,或 需要扩展并行I/O,则可使用端口进行系统的扩展。 05:32
一个带有数据存储器和并行I/O扩展的单片机应用系统图 74LS138等产生多个扩展芯片的片选线 图3-24 带总线扩展的IAP15W4K58S4单片机应用系统的连接示意图 05:32
一个带有数据存储器和并行I/O扩展的单片机应用系统图 05:32
3、总线扩展方式的单片机应用系统构成 宏晶公司的实验箱中用IS62C256扩展了32KB的SRAM。 只扩展一个芯片IS62C256,其地址A15(P2.7)~A0范围: 0000H~7FFFH 图3-25 32KB SRAM的扩展电路连接
3、总线扩展方式的单片机应用系统构成 为了说明IAP15W4K58S4单片机访问外部RAM的过程, 首先介绍标准8051单片机时序中的相关概念。 (1)时钟周期 (T状态):CPU的基本时间计量单位, 与晶振频率有关。 (2)机器周期:单片机的基本操作周期为机器周期。 标准8051单片机的一个机器周期分为6个状态(S1~ S6),每个状态由两个脉冲组成(称为两相),前一 个周期叫P1,后一个周期叫P2。 05:32
/PSEN: Program Store Enable 3、总线扩展方式的单片机应用系统构成 一个机器周期由12个时钟周期(也称为振荡周期)组成,如图所示。 单字单周期指令 图3-26 标准8051的时序 /PSEN: Program Store Enable 外部程序存储器读选通信号 05:32
3、总线扩展方式的单片机应用系统构成 IAP15W4K58S4单片机是1时钟周期/机器周期(简称1T, 即最短的机器周期是1时钟周期)的8051单片机,在同 样的外部时钟频率下执行同样的代码,其指令执行速 度要比标准8051单片机快8~12倍。 当用户在较低的外部时钟频率下运行时,与标准8051 内核相比,不仅降低了系统噪声和电源功耗,而且提 高了处理能力。 IAP15W4K58S4单片机的总线速度是可以设置的。通过 设置总线速度控制寄存器BUS_SPEED寄存器相关的位, 可以达到设置总线速度的目的。 05:32
3、总线扩展方式的单片机应用系统构成 BUS_SPEED寄存器(地址:A1H,复位值:XXXXXX10B)定义: 位号 D7 D6 D5 位名称 - EXRTS1 EXRTS0 EXRTS1和EXRTS0设置外部RAM定时选择(Extand RAM Time Selector)。 执行MOVX指令时读写控制信号的脉冲宽度可设置,设置关系表: 表3-15 EXRTS1和EXRTS0的设置 EXRTS1 EXRTS0 建立/保持/读写时间 1个时钟周期 1 2个时钟周期 4个时钟周期 8个时钟周期 图3-27中的 EXRAC时钟周期数 利用MOVX指令访问外部RAM所需的时钟如表3-16所示。 05:32
3、总线扩展方式的单片机应用系统构成 表3-16 利用MOVX指令访问外部RAM所需的时钟 BUS_SPEED寄存器(地址:A1H,复位值:XXXXXX10B)定义: 片内扩展 位号 D7 D6 D5 D4 D3 D2 D1 D0 位名称 - EXRTS1 EXRTS0 与EXRTS1,0无关 EXRTS1和EXRTS0设置外部RAM定时选择(Extand RAM Time Selector)。 执行MOVX指令时读写控制信号的脉冲宽度,设置关系表: 片 外 扩 展 表3-13 EXRTS1和EXRTS0的设置 EXRST1 EXRTS0 建立/保持/读写时间 1个时钟周期 1 2个时钟周期 4个时钟周期 8个时钟周期 利用MOVX指令访问外部RAM所需的时钟如表3-14所示。 05:32
3、总线扩展方式的单片机应用系统构成 访问物理上片外扩展RAM指令所需时钟, 可用下面计算 公式: MOVX @R0/R1 write(写操作):5×N+3 read(读操作):5×N+2 MOVX @DPTR write(写操作):5×N+2 read(读操作):5×N+1 当EXRTS[1:0] = [0,0]时,上式中N=1; 当EXRTS[1:0] = [0,1]时,上式中N=2; 当EXRTS[1:0] = [1,0]时,上式中N=4; 当EXRTS[1:0] = [1,1]时,上式中N=8. N是图3-27中的EXRAC时钟周期数 BUS_SPEED寄存器: 位号 D7 D6 D5 D4 D3 D2 D1 D0 位名称 - EXRTS1 EXRTS0 05:32
3、总线扩展方式的单片机应用系统构成 IAP15W4K58S4单片机访问片外扩展RAM指令速度是可调的。 写操作:5×N+2 读操作:5×N+1 图3-27 访问单片机外部RAM时的时序图 05:32
3、总线扩展方式的单片机应用系统构成 需要特别注意 当IAP15W4K58S4应用于总线扩展方式时,用于总线 方式的P0、P2和P4口的P4.2和P4.4不可再用于普通 I/O口功能,即使在地址空间较宽裕时P2口没有用于 高8位地址线的I/O口线也不可用于普通I/O功能。 因在总线扩展方式下, P0口作地址/数据总线口用时, 由于访问外部存储器的操作不断,P0口不断出现低8 位地址或数据,故此时P0口不能再作通用I/O口使用。 此时P2口已当作地址总线口使用,由于访问外部存储 器的操作不断,P2口不断送出高8位地址,故此时P2口 也不能再作通用I/O口使用。 05:32
3、总线扩展方式的单片机应用系统构成 以上介绍了IAP15W4K58S4单片机的应用系统 构成方式。由于IAP15W4K58S4单片机内部已 经有58KB程序存储器和4096字节RAM,这对 于一般应用的存储器需求已经足够。 因此,非总线扩展方式的应用最常见。 05:32
第3章 作业 3-2 IAP15W4K58S4单片机的存储器分为哪几个 空间?中断服务程序的入口地址分别是什么? 32个通用(工作)寄存器各对应哪些RAM单元? 3-3 位地址29H, 61H, 7FH, 90H, E0H, F1H, 各对 应哪些单元的哪些位? 3-4 简述 IAP15W4K58S4单片机的各个输入/输出 端口(I/O口)的工作模式及结构。 3-5 如何设置IAP15W4K58S4单片机I/O口的工作 模式?若设置P1.7为强推挽输出, P1.6为开漏, P1.5为弱上拉, P1.4、P1.3、P1.2、P1.1及P1.0 为高阻输入, 应如何设置相关寄存器? 05:32