W79E225A/226A/227A 前期规格书 8-位微控制器 目录1. 概述 ..................................................................................................................................................................6 2. 特征 ..................................................................................................................................................................6 3. 产品型号列表 ..................................................................................................................................................7 3.1 无铅 (ROHS) 产品型号信息列表 ...........................................................................................................7 4. 管脚配置 ..........................................................................................................................................................8 5. 管脚描述 ........................................................................................................................................................10 5.1 6. 端口4 ......................................................................................................................................................11 存储器组织 ................................................................................................................................................14 6.1. 程序存储器 ............................................................................................................................................14 6.2. 数据存储器 ............................................................................................................................................14 6.3. 辅助SRAM.............................................................................................................................................15 6.4. NVM 存储器...........................................................................................................................................15 6.4.1 控制 .....................................................................................................................................................20 7 特殊功能寄存器 ............................................................................................................................................22 8 电源管理 ........................................................................................................................................................27 8.1 空闲模式 ................................................................................................................................................27 8.2 掉电模式 ................................................................................................................................................27 9 复位条件 ........................................................................................................................................................29 9.1 复位来源 ................................................................................................................................................29 9.1.1 9.1.2 9.1.3 9.1.4 10 外部复位 ........................................................................................................................................29 上电复位 (POR) ............................................................................................................................29 看门狗定时器复位 ........................................................................................................................29 复位状态 ........................................................................................................................................29 中断 ............................................................................................................................................................30 10.1 中断源 ....................................................................................................................................................30 10.2 中断优先级 ............................................................................................................................................30 10.2.1 11 中断响应时间 ................................................................................................................................34 可编程定时器/计数器 ...............................................................................................................................35 11.1 定时器/计数器0&1 ................................................................................................................................35 11.1.1 时基选择 ........................................................................................................................................36 - 1 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 11.1.2 11.1.3 11.1.4 11.1.5 11.2 模式0 ..............................................................................................................................................37 模式1 ..............................................................................................................................................37 模式2 ..............................................................................................................................................37 模式3 ..............................................................................................................................................38 定时器/计数器 2 ....................................................................................................................................38 11.2.1 11.2.2 11.2.3 11.2.4 捕获模式 ........................................................................................................................................39 向上计数,自动重装模式.............................................................................................................39 向上/下计数,自动重装模式 .......................................................................................................40 波特率发生器 ................................................................................................................................41 12 看门狗定时器 ............................................................................................................................................42 13 脉冲宽度调制输出 (PWM).......................................................................................................................45 13.1 PWM特征 ..............................................................................................................................................45 13.2 PWM控制寄存器...................................................................................................................................46 13.3 PWM 管脚结构......................................................................................................................................48 13.4 PWM 死区时间控制..............................................................................................................................50 13.5 死区时间嵌入 ........................................................................................................................................51 13.6 PWM 输出改写......................................................................................................................................52 13.7 边沿对齐的PWM(向上计数) ................................................................................................................55 13.8 中心对齐的 PWM(向上/下 计数) .........................................................................................................59 13.9 单事件模式(向上计数)..........................................................................................................................61 13.10 侦测发生器 ........................................................................................................................................63 13.11 PWM掉电/唤醒 功能.........................................................................................................................65 14 运动反馈模块 ............................................................................................................................................67 14.1 输入捕获模块 (IC).................................................................................................................................67 14.1.1 14.1.2 14.2 正交编码器接口 (QEI) ..........................................................................................................................75 14.2.1 14.2.2 14.2.3 14.2.4 14.2.5 14.2.6 15 比较器模式 ....................................................................................................................................74 重装载模式 ....................................................................................................................................75 自由计数模式 ................................................................................................................................76 比较计数模式 ................................................................................................................................76 x2/x4 计数模式 ..............................................................................................................................77 计数的方向 ....................................................................................................................................77 向上计数 ........................................................................................................................................79 向下计数 ........................................................................................................................................79 串行口 ........................................................................................................................................................80 15.1 模式0 ......................................................................................................................................................82 15.2 模式 1 .....................................................................................................................................................83 -2- 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 15.3 模式 2 .....................................................................................................................................................84 15.4 模式 3 .....................................................................................................................................................85 15.5 贞错误检测 ............................................................................................................................................86 15.6 多机通讯 ................................................................................................................................................86 16 I2C串行控制 ..............................................................................................................................................87 16.1 SIO 端口 ................................................................................................................................................87 16.2 I2C 控制寄存器 .....................................................................................................................................88 16.2.1 16.2.2 16.2.3 16.2.4 16.2.5 16.2.6 16.2.7 16.3 I2C 的操作模式 .....................................................................................................................................90 16.3.1 16.3.2 16.3.3 16.3.4 16.4 主传输模式 ....................................................................................................................................90 主接模式 ........................................................................................................................................90 从接模式 ........................................................................................................................................90 从传模式 ........................................................................................................................................90 数据传输5种操作模式 ..........................................................................................................................91 16.4.1 16.4.2 16.4.3 16.4.4 16.4.5 17 从机地址寄存器, I2ADDR............................................................................................................88 数据寄存器, I2DAT.......................................................................................................................88 控制寄存器, I2CON ......................................................................................................................89 状态寄存器, I2STATUS ...............................................................................................................89 I2C时钟波特率位, I2CLK .............................................................................................................89 I2C 超时计数器, I2Timer .............................................................................................................89 I2C 从机地址标识 .........................................................................................................................90 主机/传输模式 ...............................................................................................................................92 主机/接收 模式 ..............................................................................................................................93 从机/传输 模式 ..............................................................................................................................94 从机/接收模式 ...............................................................................................................................95 GC 模式 .........................................................................................................................................96 SPI..............................................................................................................................................................97 17.1 概述 ........................................................................................................................................................97 17.2 模块描述 ................................................................................................................................................97 17.3 功能描述 ..............................................................................................................................................100 17.3.1 17.3.2 17.3.3 17.3.4 17.3.5 17.3.6 17.3.7 主机模式 ......................................................................................................................................100 从机模式 ......................................................................................................................................103 从机选择 ......................................................................................................................................105 /SS 输出使能 ...............................................................................................................................105 SPI I/O 管脚模式 ........................................................................................................................107 可编程串行时钟的相位和极性...................................................................................................107 双接收缓冲数据寄存器...............................................................................................................109 -3- 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 17.3.8 LSB 优先使能 ..............................................................................................................................110 写冲突检测 ..................................................................................................................................110 发送完成中断 ..........................................................................................................................110 17.3.11 模式故障 ..................................................................................................................................110 17.3.9 17.3.10 18 模拟数字转换器 ......................................................................................................................................113 18.1 ADC 操作 .............................................................................................................................................113 18.2 ADC 的分辨率和仿真电源 .................................................................................................................114 19 控访问保护 ..............................................................................................................................................115 20 端口4结构 ................................................................................................................................................116 21 在线编程 (ISP) ........................................................................................................................................119 21.1 位于LDFASH中的装载程序 ................................................................................................................119 21.2 位于APFASH中的装载程序 ................................................................................................................119 22 配置位 ......................................................................................................................................................119 22.1 配置 0 ...................................................................................................................................................119 22.2 配置 1 ...................................................................................................................................................120 23 特殊功能寄存器细部列表描述 ..............................................................................................................120 24 指令系统 ..................................................................................................................................................168 24.1 指令时序 ..............................................................................................................................................175 24.2 外部数据存储器访问时序 ..................................................................................................................178 25 电器特征 ..................................................................................................................................................181 25.1 绝对最大额定值 ..................................................................................................................................181 25.2 直流特性 ..............................................................................................................................................181 25.3 交流特征 ..............................................................................................................................................184 外部时钟特性 ..............................................................................................................................184 25.3.2 交流特征说明 ..............................................................................................................................184 25.3.3 MOVX 在使用STRETCH时的特性 ............................................................................................185 25.3.1 25.4 ADC直流特性......................................................................................................................................186 25.5 I2C 总线时序特征 ...............................................................................................................................188 25.6 程序读周期 ..........................................................................................................................................189 25.7 数据读周期 ..........................................................................................................................................189 25.8 数据写周期 ..........................................................................................................................................190 26 典型应用电路 ..........................................................................................................................................191 26.1 外扩程序存储器和晶体振荡器...........................................................................................................191 26.2 外扩数据存储器及晶体振荡器...........................................................................................................191 -4- 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 27 27.1 27.2 封装信息 ..................................................................................................................................................192 44L PLCC ............................................................................................................................................192 48L LQFP (7X7X1.4MM FOOTPRINT 2.0MM) ......................................................................................193 28 应用指南 ..................................................................................................................................................194 29 文件版本描述 ..........................................................................................................................................200 芯唐电子科技(上海)有限公司 (8位单片机)uC微控制器产品部 上海市长宁区延安西路2299号27楼 电话:021-62365999 -5- 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 1. 概述 W79E22X 系列是一个快速8051/52兼容微处理器;它的内核经过重新设计,提高了时钟速度和存储器访 问周期速度。经过这种改进以后,在相同的时钟频率下,它的指令执行速度比标准8051/52要快许多。 一般来说,按照指令的类型,W79E22X 系列 的指令执行速度是标准8051/52的1.5-3倍。整体来看, W79E22X 系列的速度比标准的8051快2.5倍。在相同的吞吐量及低频时钟情况下,电源消耗也降低。由 于采用全静态CMOS设计,W79E22X 系列能够在低时钟频率下运行,减少电源消耗。 W79E22X 系列内含256字节的片上RAM,; 1/2/2-KB NVM 数据FLASH EPROM; 1/2/2-KB 辅助的auxRAM; 4个8位双向可位寻址的I/O口; 另外一个 4位 端口P4以及2位端口P5; 3个16位 定时器/计数器; 2个 UART; 1路I2C通信接口(主/从); 1路SPI通信接口, 8 路 12 位 可配置死区的PWM 和8 路 10位ADC. 支持 20个中断源,4级中断. W79E22X 系列内含16/32/64-KB具有ISP功能的Flash程序空间,用于存储装载程序的4KB辅助Flash 程序 空间。程序空间可以通过设置安全位进行保护。 2. 特征 • 全静态8位CMOS加速51微控制器,时钟频率可达40MHZ • 16/32/64KB可以在线编程的(ISP)应用程序Flash 程序空间 (APROM) • 4-KB.用于存储装载程序的4KB辅助Flash程序空间(LDROM) 用户在 执行ISP时需将 P4.3 或 P3.6 和 P3.7拉低,然后给一个外部复位信号可进入ISP功能。 • 1/2/2-KB AUX-RAM, 软件选择,通过 MOVX 访问. • 1/2/2-KB NVM 数据FLASH,可以存储数据 • 256 字节便签 RAM. • 4个8-bit, 双向可位寻址的I/O口; 端口0有内置的上拉电阻通过软件使能 • 1个4-bit I/O口 端口4 可用于输出片选信号 • 1个2-bit I/O口 端口5 • 3个16-位定时器/计数器 • 1个 16-位定时器 3 带反馈模式. • 运动反馈模块- QEI 解码 以及3 路输入捕获器.. • 8路12位PWM • 带可编辑死区输出 z • 三种操作模式: 边沿对齐模式, 中心对齐模式和单事件模式. • 使用与BLDC 马达应用的可改写输出控制 • 8路10位ADC •两个全双工串口,并具有帧错误检测和地址自动识别功能 •1个I2C通信接口(主/从). •1个SPI通信接口(主/从) • 对外部RAM及外设的访问周期可以进行软件编程 •支持20个中断源,4级中断 -6- 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 •软件复位功能 •在掉电模式下,ALE/PSEN的状态是可以选择的 •内置电源管理 •代码保护机制 •封装: -- 无铅封装 PLCC 44: W79E225APG -- 无铅封装 LQFP 48: W79E225ALG -- 无铅封装 PLCC 44: W79E226APG -- 无铅封装 LQFP 48: W79E226ALG -- 无铅封装 PLCC 44: W79E227APG -- 无铅封装 LQFP 48: W79E227ALG 3. 产品型号列表 3.1 无铅 (RoHS) 产品型号信息列表 芯片编号 程序空间 内存 W79E225APG 16KB 256B + 1KB W79E225ALG W79E226APG W79E226ALG W79E227APG W79E227ALG 16KB 32KB 32KB 64KB 64KB 256B + 1KB 256B + 2KB 256B + 2KB 256B + 2KB 256B + 2KB 工作频率 最高 40MHz 最高 20MHz 工作电压 4.5V ~ 5.5V 2.7V[1] ~ 5.5V 最高 24MHz 4.5V ~ 5.5V 最高 40MHz 最高 20MHz 4.5V ~ 5.5V 2.7V[1] ~ 5.5V 最高 24MHz 4.5V ~ 5.5V 最高 40MHz 最高 20MHz 4.5V ~ 5.5V 2.7V[1] ~ 5.5V 最高 24MHz 4.5V ~ 5.5V 最高 40MHz 最高 20MHz 4.5V ~ 5.5V 2.7V[1] ~ 5.5V 最高 24MHz 4.5V ~ 5.5V 最高 40MHz 最高 20MHz 4.5V ~ 5.5V 2.7V[1] ~ 5.5V 最高 24MHz 4.5V ~ 5.5V 最高 40MHz 最高 20MHz 4.5V ~ 5.5V 2.7V[1] ~ 5.5V 最高 24MHz 4.5V ~ 5.5V -7- 数据 FLASH 封装 1KB PLCC-44 Pin 1KB LQFP-48 Pin 2KB PLCC-44 Pin 2KB LQFP-48 Pin 2KB PLCC-44 Pin 2KB LQFP-48 Pin 备注 内嵌 空间 外扩 空间 内嵌 空间 外扩 空间 内嵌 空间 外扩 空间 内嵌 空间 外扩 空间 内嵌 空间 外扩 空间 内嵌 空间 外扩 空间 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 4. 管脚配置 STADC, P4.0 2 AVDD 3 ADC7, P1.7 4 ADC6, P1.6 TXD1, ADC3, P1.3 5 ADC4, P1.4 RXD1, ADC2, P1.2 6 ADC5, P1.5 BRAKE, ADC1, P1.1 SPCLK, AD2, P0.2 AVSS MOSI, AD1, P0.1 T2, ADC0, P1.0 MISO, AD0, P0.0 1 44 43 42 41 40 7 39 P4.1, T2EX, IC2, INDX 8 38 P3.0, RXD 9 37 P3.1, TXD 36 P3.2, INT0 SS, AD3, P0.3 10 INT2, AD4, P0.4 11 INT3, AD5, P0.5 12 INT4, AD6, P0.6 13 INT5, AD7, P0.7 14 XTAL1 W79E225 W79E226 W79E227 (PLCC 44-Pin) 35 P3.3, INT1 34 P3.4, T0, IC0, QEA 33 P3.5, T1, IC1, QEB 32 P3.6, WR 15 31 P3.7, RD XTAL2 16 30 EA VSS 17 29 VDD 23 ALE PSEN P2.7, A15, SDA P2.6, A14, SCL P2.5, A13, PWM5 P2.4, A12, PWM4 24 25 26 27 28 RST 22 P2.0, A8, PWM0 21 P2.1, A9, PWM1 20 P2.2, A10, PWM2 19 P2.3, A11, PWM3 18 -8- 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 AVSS T2, ADC0, P1.0 BRAKE, ADC1, P1.1 RXD1, ADC2, P1.2 TXD1, ADC3, P1.3 ADC4, P1.4 ADC5, P1.5 ADC6, P1.6 ADC7, P1.7 AVDD STADC, P4.0 IC2, T2EX, P4.1 48 47 46 45 44 43 42 41 40 39 38 37 MISO, AD0, P0.0 1 36 P3.0, RXD MOSI, AD1, P0.1 2 35 P3.1, TXD SPCLK, AD2, P0.2 3 34 P3.2, INT0 SS, AD3, P0.3 4 33 P3.3, INT1 INT2, AD4, P0.4 5 32 P3.4, T0, IC0, QEA INT3, AD5, P0.5 6 31 P3.5, T1, IC1, QEB INT4, AD6, P0.6 7 30 P3.6, WR INT5, AD7, P0.7 8 XTAL1 W79E225 W79E226 W79E227 (LQFP 48-Pin) 13 14 15 16 17 18 19 20 21 22 -9- 23 24 P2.0, A8, PWM0 VDD RST 25 P2.1, A9, PWM1 12 P2.2, A10, PWM2 EA ALE P2.3, A11, PWM3 P4.3 26 P2.4, A12, PWM4 27 11 P2.5, A13, PWM5 10 VSS P2.6, A14, SCL XTAL2 P2.7, A15, SDA P4.2 P5.0, PWM6 28 PSEN P3.7, RD 9 P5.1, PWM7 29 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 5. 管脚描述 标识符 类型 EA I 描 述 外部访问使能:此管脚使能处理器访问外部ROM。当 EA 保持高电平时,处理 器访问内部ROM。如果 EA 管脚为高电平ROM的地址和数据就不会出现在总 线上。 注释:这个管脚没有内部上拉或者下拉,在执行内部APROM时需要在外部接 上拉,同样要执行外部的APROM,则需要把这个管脚拉低。 PSEN O H 程序存储使能: 在执行取指令(fetch)和MOVC的操作时,此管脚允许外部 ROM数据出现在P0口的地址/数据总线上。当访问内部ROM时,此管脚上不 输出 PSEN 的选通信号。 ALE O H 地址锁存使能: ALE用于将P0口地址锁存,使其和数据分离。 RST I L 复位: 振荡器运行时,此管脚上出现两个机器周期的高电平将使器件复位。 XTAL1 I 石英晶体1:晶体振荡器的输入。此管脚可由一个外部时钟驱动。 XTAL2 O 石英晶体2:晶体振荡器的输出。XTAL2是XTAL1的反相端。 VSS I 地:地电位 VDD I 电源:电源工作电压 AVDD I 模拟电源正 AVSS I 模拟地 P0.0−P0.7 I/O DSH 端口0是一个8位,双向I/O口,A2H的位0置位可以使能端口0的内置上拉电 阻;在访问外部存储器时,端口0可用作低位地址/数据总线。 P0.0, AD0,MISO P0.1, AD1, MOSI P0.2, AD2,SPCLK P0.3, AD3,/SS P0.4, AD4,INT2外部中断2 P0.5, AD5,INT3外部中断3 P0.6, AD6,INT4外部中断4 P0.7, AD7, INT5外部中断5 P1.0−P1.7 I/O S H 端口1是一个具有内部上拉电路的8位双向I/O 口。有复用功能如下: P1.0, ADC0, T2 P1.1, ADC1, BRAKE P1.2, ADC2, RXD1 P1.3, ADC3, TXD1 P1.4, ADC4 - 10 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 P1.5, ADC5 P1.6, ADC6 P1.7, ADC7 P2.0-P2.7 I/O S H 端口2:端口2是一个具有内部上拉电路的8位双向I/O 口。此端口提供访问外 部存储器的高位地址。 P2.6 P2.7 可以软件配置成 I2C 连续端口. P2.0~ P2.5 提供 PWM0 ~ PWM5 P2.0, A8, PWM0 P2.1, A9, PWM1 P2.2, A10, PWM2 P2.3, A11, PWM3 P2.4, A12, PWM4 P2.5, A13, PWM5 P2.6, A14, SCL P2.7, A15, SDA 注:a、P2.6和P2.7只能为开漏口。 P3.0-P3.7 I/O S H 端口3是一个具有内部上拉电路的8位双向I/O 口。所有位都有复用功能,如 下: P3.0, RXD P3.1, TXD P3.2, /INT0 外部中断0 P3.3, /INT1外部中断1 P3.4, T0, IC0, QEA P3.5, T1, IC1, QEB P3.6, /WR外部数据存储器写选通 P3.7, /RD外部数据存储器读选通 z P4.0-P4.3 I/O S H 端口4:4-位可位寻址的双向I/O 口,复用功能如下: P4.0, STADC P4.1, T2EX, IC2, P4.2 P4.3 注:在PLCC封装的形式中没有P4.2和P4.3。 P5.0-P5.1 I/O S H 端口5:2位I/O 口,不可位寻址.复用功能如下: P5.0, PWM6 P5.1, PWM7 注:P5.0和P5.1在PLCC的封装形式中没有。 注 : I: 输入, O: 输出, I/O: 双向, H: 拉高, L: 拉底, D: 开漏 S: Schmitt 触发 5.1 端口4 端口 4地址A5H,是一个4位可编程的多功能I/O口,每一个管脚都可以通过软件单独进行配置,每个管 - 11 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 脚有4种工作模式。 模式0 :P4.0 ~ P4.3与P1口功能相同的双向I/O口,默认端口 4 具有普通I/O 功能. 模式1:P4.0~P4.3是在指定地址单元处与 RD 信号同步的读信号,这些信号可以作为外部设备的片选信 号。 模式2:P4.0~P4.3是在指定地址单元处与 WR 信号同步的写信号,这些信号可以作为外部设备的片选信 号。 模式3:P4.0~P4.3是在指定地址单元处与 RD / WR 信号同步的读,写信号,这些信号可以作为外部设备 的片选信号。 片选信号的地址范围取决于寄存器P4xAH ,P4xAL P4CONA 和 P4CONB的内容,. P4xAH 和 P4xAL 包 含P4.X16位地址,P4CONA 和 P4CONB包含端口 4 模式控制. 端口4控制寄存器A P4CONA 位: 地址: 92h 7 6 5 4 3 2 1 0 P41FUN1 P41FUN0 P41CMP 1 P41CMP 0 P40FUN1 P40FUN0 P40CMP 1 P40CMP 0 端口4控制寄存器B P4CONB 位: 位名称 地址: 93h 7 6 5 4 3 2 1 0 P43FUN1 P43FUN0 P43CMP 1 P43CMP 0 P42FUN1 P42FUN0 P42CMP 1 P42CMP 0 功能 P4xFUN1, 端口4 之功能: P4xFUN0 =00: 模式 0. P4.x 与端口1 功能相同的I/O口。 =01: 模式 1. P4.x 是片选时用的读信号。地址范围取决于P4xAH, P4xAL 以及 P4xCMP1, P4xCMP0 位. =10: 模式 2. P4.x 是片选时用的写信号。地址范围取决于P4xAH, P4xAL 以及 P4xCMP1, P4xCMP0 位. =11: 模式 3. P4.x 是片选时用的读/写信号。 地址范围取决于P4xAH, P4xAL 以及 P4xCMP1, P4xCMP0 位. P4xCMP1, 端口4 片选模式地址比较: P4xCMP0 =00: 与基址寄存器P4XAh和 P4xAL进行16位(A15-A0)地址比较 =01: 与基址寄存器P4xAH和 P4xAL进行15位(A15-A1)地址比较 =10: 与基址寄存器P4xAH和 P4xAL进行14位(A15-A2)地址比较 =11: 与基址寄存器P4xAH和 P4xAL进行 8位(A15-A8)地址比较 - 12 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 P4.0基地址低字节寄存器 P40AL 位: 地址: 94h 7 6 5 4 3 2 1 0 A7 A6 A5 A4 A3 A2 A1 A0 P4.0基地址高字节寄存器 P40AH 位: 地址: 95h 7 6 5 4 3 2 1 0 A15 A14 A13 A12 A11 A10 A9 A8 P4.1基地址低字节寄存器 P41AL 位: 地址: 96h 7 6 5 4 3 2 1 0 A7 A6 A5 A4 A3 A2 A1 A0 P4.1基地址高字节寄存器 P41AH 位: 地址: 97h 7 6 5 4 3 2 1 0 A15 A14 A13 A12 A11 A10 A9 A8 P4.2基地址低字节寄存器 P42AL 位: 地址: 9Ah 7 6 5 4 3 2 1 0 A7 A6 A5 A4 A3 A2 A1 A0 P4.2基地址高字节寄存器 P42AH 位: 地址: 9Bh 7 6 5 4 3 2 1 0 A15 A14 A13 A12 A11 A10 A9 A8 P4.3基地址低字节寄存器 P43AL 位: 地址: 9Ch 7 6 5 4 3 2 1 0 A7 A6 A5 A4 A3 A2 A1 A0 P4.3基地址高字节寄存器 P43AH 位: 地址: 9Dh 7 6 5 4 3 2 1 0 A15 A14 A13 A12 A11 A10 A9 A8 助记符: 端口 4片选信号极性 P4CSIN 位: 地址: A2h 7 6 5 4 3 2 1 0 P43INV P42INV P41INV P40INV -保留 PWDNH RMWFP PUP0 位 名称 功能 7-4 P4xINV P4.x 做片选信号时的有效极性。 1 = 高电平有效 - 13 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 0 = 低电平有效 注:x=3,2,1,0 2 PWDNH 设置 ALE 和 PSEN 在掉电模式下的状态。 1: ALE 和 PSEN 在掉电模式下输出逻辑高电平。 0: ALE 和 PSEN 在掉电模式下输出逻辑低电平。 1 RMWFP 控制“读-修改-写”指令读入的通道。当该位置位以后,“读-修改-写”指令读入通道是 从端口的管脚而不是特殊功能寄存器。 0 PUP0 使能端口0内部的弱上拉。 端口 4 P4 位: 地址: A5h 7 6 5 4 3 2 1 0 -保留 -保留 -保留 -保留 P4.3 P4.2 P4.1 P4.0 位 名称 功能 3-2 P4 GPIO. 1 P4 GPIO. 复用功能T2EX/IC2 :定时器 2 外部触发/捕获输入 0 P4 GPIO. 复用功能 STADC. 外部触发ADC中断输入. 6. 存储器组织 W79E22X 系列将存储器分为2个独立的区域; 程序存储器区和数据存储器区。程序存储器区用来存放程 序代码,数据存储器区用来存放数据及存储器映射的设备需要用到的数据。 6.1. 程序存储器 W79E22X 系列 包括 16/32/64K 字节 FLASH程序空间(APROM) 和 4K 字节的 FLASH程序空间(LD ROM) 里面存储用于ISP功能的装载程序, 1/2/2K 字节的NVM 数据Flash用于存储数据. W79E22X 系列 中的AP Flash可以根据LDROM 中的装载程序进行串行或并行下载。系统复位后程序默 认运行在APROM中. 一般情况下,上电以后程序执行的是APROM里面程序,但是设置编程寄存器以后可以迫使单片机跳到 4K的LDROM里面去执行下载程序去更新APROM里面的程序。复位以后,单片机执行新的APROM里面 的应用程序。ISP功能使得在应用芯片不开机壳更新程序方面更加方便有效率。 6.2. 数据存储器 W79E22X 系列最多可以访问64KB的外部数据存储器。这个存储器区域用MOVX指令来访问。不同于其 他8051的衍生产品, W79E22X 系列还内建一个1/2/2KB字节的MOVX SRAM数据存储器。数据存储器 的地址范围为0000h 和 03FFH/07FFH。对该数据存储器的访问是受软件控制的,可以通过寄存器 PMR的 DMEO位使能访问该区域,访问地址范围为03FFH/07FFH的MOVX指令将读写MOVX SRAM数据存储器 的内容。当地址范围超过07FFH后,系统将通过 端口0和2访问外部数据存储器。当软件禁止访问该区域 时,该区域将被映射为外部数据存储器。任何访问地址为03FFH/07FFH的MOVX指令都将访问到外部数 据存储器。这是W79E22X 系列默认的运行环境。另外W79E22X 系列还有标准的256字节暂存数据存储 器。这片区域可以间接或直接访问。由于这片区域只有256字节,因此仅适用于数据量较小的场合。当 - 14 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 数据量较多时,可以考虑同时使用2个数据存储器。片上MOVX SRAM,同外部RAM一样只可由MOVX 指令来访问,但是片上MOVX SRAM拥有最快的访问速度。 FFFFH FFH Indirect Addressing RAM SFRs Direct Addressing Only 80H 7FH Direct & Indirect Addressing RAM 64K Bytes External Data memory 00H 07FFH 03FFH 16/64K Bytes On Chip AP0 Flash 1/2K byte On Chip SRAM 3FFFH 07FFH 0000H 0FFFH 1/2K Byte On Chip NVM Flash EPROM 03FFH MOVX Indirect Addressing 0000H 4K Bytes LD Flash 0000H 0000H 图 5-1: W79E22X 系列存储器示意图 6.3. 辅助SRAM W79E22X 系列有1/2/2-KB AUX-RAM, 通过 MOVX 访问. 通过设定DMEO 位使能 对1/2/2-KB AUX-RAM 的访问,1/2/2K的AUX-RAM不会和256字节的便签存储器相冲突,它们有不同的寻址方式和指令。设置 PMR的DMEO位将是能片上的1/2/2K的SRAM同时EnNVM位必须清除,因为这两个是用同样的指令去访 问的。 电源管理寄存器 PMR 位: 地址: C4h 7 6 5 4 3 2 1 0 -保留 -保留 -保留 -保留 -保留 ALEOFF -保留 DME0 位 名称 功能 2 ALEOFF 该位置1 后,当系统不访问外部程序和数据存储器时系统不会发出ALE信号。当访 问外部存储器时,系统会自动产生 ALE信号而不管此时 ALEOFF是否置位。 0 = ALE 信号不被关闭;1 = ALE 信号被关闭 0 DME0 该位决定用户是否可以访问片上“MOVX SRAM” 该位置一后系统便可以访问片上 SRAM. 置1将访问片上 2 KB MOVX SRAM. 6.4. NVM 存储器 W79E22X 系列 1/2/2-KB NVM存储器结构如下图所示 - 15 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 FFFFH FFH Indirect Addressing RAM SFRs Direct Addressing Only 80H 7FH Direct & Indirect Addressing RAM 64K Bytes External Data memory 00H 07FFH 03FFH 16/64K Bytes On Chip AP0 Flash 1/2K byte On Chip SRAM 3FFFH 07FFH 0000H 0FFFH 1/2K Byte On Chip NVM Flash EPROM 03FFH MOVX Indirect Addressing 0000H 4K Bytes LD Flash 0000H 0000H . 由于AUX-RAM、NVM和外部数据存储器交替占用同一物理地址,所以就需对谁使用进行定义,如下表 所示: EnNVM DME0 0 0 使能外部RAM读/写通过MOVX 0 1 使能AUX-RAM读/写通过MOVX 数据存储区域 使能NVM读/写通过MOVX. 当EER 或 1 X EWR 发送和NVM flas正在擦写时,将不能够置 位和读NVM数据. 表 5-1: MOVX 访问数据存储器使能位设定 EnNVM = 1 NVM Size = SRAM (1K) Addr ≤ 1K Addr > 1K MOVX A, @DPTR (Read) NVM Ext memory MOVX A, @R0 (Read) NVM NOP MOVX A, @R1 (Read) NVM NOP MOVX @DPTR, A (Write) NOP Ext memory MOVX @R0, A (Write) NOP NOP MOVX @R1, A (Write) NOP NOP 指令 Read access Write access 表 5-2: W79E225 MOVX 读/写 ENNVM = 1 指令 NVM SIZE = SRAM (2K) - 16 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 ADDR ≤ 2K Read access Write access ADDR > 2K MOVX A, @DPTR (Read) NVM1 Ext memory1 MOVX A, @R0 (Read) NVM2 NOP MOVX A, @R1 (Read) 2 NVM NOP MOVX @DPTR, A (Write) NOP Ext memory1 MOVX @R0, A (Write) NOP NOP MOVX @R1, A (Write) NOP NOP 表 5-3: W79E226/227 MOVX 读/写 Page 15 64Bytes Page 14 64Bytes 03FFH 03C0H 03BFH 0380H 03FFH | | | | | | 1K Bytes Flash EPROM 0000H Page 03 64Bytes Page 02 64Bytes Page 01 64Bytes Page 00 64Bytes 00FFH 00C0H 00BFH 0080H 007FH 0040H 003FH 0000H 图 5-2: W79E225 NVM 存储器映射 - 17 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 07FFH Page 31 64Bytes 07C0H 07BFH Page 30 64Bytes 0780H 07FFH | | | | | | 2K Bytes Flash EPROM 0000H 00FFH Page 03 64Bytes 00C0H 00BFH Page 02 64Bytes 0080H 007FH Page 01 64Bytes 0040H 003FH Page 00 64Bytes 0000H 图 5-3: W79E226/227 NVM 存储器映射 页 始起地址 结束地址 页 始起地址 结束地址 0 0000h 003Fh 16 0400h 043Fh 1 0040h 007Fh 17 0440h 047Fh 2 0080h 00BFh 18 0480h 04BFh 3 00C0h 00FFh 19 04C0h 04FFh 4 0100h 013Fh 20 0500h 053Fh 5 0140h 017Fh 21 0540h 057Fh 6 0180h 01BFh 22 0580h 05BFh 7 01C0h 01FFh 23 05C0h 05FFh 8 0200h 023Fh 24 0600h 063Fh 9 0240h 027Fh 25 0640h 067Fh 10 0280h 02BFh 26 0680h 06BFh 11 02C0h 02FFh 27 06C0h 06FFh - 18 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 12 0300h 033Fh 28 0700h 073Fh 13 0340h 037Fh 29 0740h 077Fh 14 0380h 03BFh 30 0780h 07BFh 15 03C0h 03FFh 31 07C0h 07FFh [Note: Page 16-31 is for W79E227 only] 表 5-3: W79E22X 系列 NVM 页 (n) 区域定义表 片内RC振荡器可以为1/2/2K 的NVM 数据Flash 提供 6MHz +/- 25% 的固定时钟,片内RC振荡器只有在 擦和写的时候使能,通过设定 NVMCON 寄存器的 EWR 或 EER 位,EWR 或 EER 位在擦写完成后由 硬件置位,擦写时间由硬件自动控制。 Internal Signal EER ERC EWR 6MHz RC OSC Flag 1/2K Bytes NVM Data Memory Block Clock Source NVMF To NVM Interrupt ENVM(Enable NVM Interrupt) EnNVM 图 5-2: NVM 控制 NVM 控制 NVMCON 地址: 9Eh 7 6 5 4 3 2 1 0 EER EWR EnNVM -保留 -保留 -保留 -保留 NVMF 位: 位 名称 功能 7 EER NVM 页擦除位:该位设为’1’,把NVM 数据页中的内容擦成’FFH’。NVM数据存储器 有32个页,每页大小为64字节。通过NVMADDRH和NVMADDRL 寄存器选择页后, 在设定该位后,该页将会被清除, NVMF置 “1”, 将不能够对NVM数据进行擦写。 6 EWR 把该位设置为 ’1’ 向NVM写一个字节的数据。完成后 , NVMF 位将被置 “1”, NVMF置 “1”, 将不能够对NVM数据进行擦写。 5 EnNVM 使能读NVM数据区域:0: MOVX 指令不能够读NVM数据存储器. 1: MOVX 指令能够读NVM数据存储器, 外部 RAM 或 AUX-RAM 不可以读 0 NVMF NVM 数据擦/写完成标志位 如果NVM 数据擦/写完成, 这位将被硬件置“1”需要软件清零。同时将产生中断当 NVM 读/ 写中断开 - 19 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 NVM 数据 NVMDAT 7 位: 地址: D3h 6 5 4 3 2 1 0 NVMDAT.7 NVMDAT.6 NVMDAT.5 NVMDAT.4 NVMDAT.3 NVMDAT.2 NVMDAT.1 NVMDAT.0 位 7~0 名称 功能 NVMDAT.7 写NVM数据寄存器,读NVM 数据使用MOVC 指令. ~NVMDAT.0 NVM 低位地址 NVMADDRL 7 位: 6 地址: DBh 5 4 3 2 1 0 NVMADDR NVMADDR NVMADDR NVMADDR NVMADDR NVMADDR NVMADDR NVMADDR L.7 L.6 L.5 L.4 L.3 L.2 L.1 L.0 位 名称 功能 7~0 NVMADDRL.7 NVM 地址. ~NVMADDRL.0 NVM高位地址 NVMADDRH 位: 地址: EBh 7 6 5 4 3 2 -保留 -保留 -保留 -保留 -保留 NVMADDR NVMADDR NVMADDR H.10 H.9 H.8 位 名称 功能 2-0 NVMADDRH.10 ~ NVMADDRH.8 NVM 高位地址 1 0 6.4.1 控制 使能 EnNVM (NVMCON.5)位读写 NVM (读/写/擦除). 写 数 据 到 NVM 存 储 器 前 , 必 须 先 擦 除 该 页 。 页 擦 除 首 先 设 定 页 地 址 和 页 通 过 NVMADDRH 和 NVMADDRL 位 , 然后置位 EER (NVMCON.7) 和 EnNVM (NVMCON.5). 将自动执行页面的擦除,完成 后,NVMF 将由硬件置位. NVMF 必须由软件清除. 如果 ENVM (EIE1.5)使能将产生中断请求. 擦除完成 后EER 将由硬件清除. 总共的擦除时间将大约为5ms. 在 写 时 , 必 须 分 别 置 位 NVMADDRH/L 和 NVMDAT, 然 后 置 位 EWR (NVMCON.6) 和 EnNVM (NVMCON.5) 使能数据写,完成后置位NVMF,NVMF位必须由软件清除,如果 ENVM (EIE1.5)使能将 产生中断请求,编程时间大约50us. 以下是一些关于NVM的使用示例 通过 MOVX A,@DPTR/R0/R1读NVM 指令: 例 1: DPTR=0x07FF, R0/R1 = 0xFF, XRAMAH=0x07, EnNVM=1 MOVX A,@DPTR Æ 读 NVM 数据地址 0x07FF MOVX A,@R0 Æ读 NVM 数据地址0x07FF MOVX A,@R1 Æ读 NVM 数据地址0x07FF 例2: DPTR = 0x2000, EnNVM=1, DME0=0 - 20 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 MOVX A,@DPTR Æ 读外部 RAM 数据地址 0x2000, 通过SFR寄存器擦NVM 例 1 : NVMADDRH = 0x07, NVMADDRL = 0xF0, 31页使能. 置位EER, 31页擦除. 例 2: NVMADDRH = 0x10, NVMADDRL = 0x00, NVM 擦除 指令无效 (地址超过 NVM 分界). 通过 SFR 寄存器写 NVM: 例 1: NVMADDRH = 0x07, NVMADDRL = 0xF0 置位 EWR 后, 数据写到 NVM 地址= 0x07F0 位置 例 2: NVMADDRH = 0x10, NVMADDRL = 0x00, 置位 EWR, NVM 写 指令无效 (地址超过 NVM 分界). 在擦的过程中不能写,就像在写的过程中不能擦是一样的。 NVMF 没有通过软件清除 ,擦写将无效 . 写 NVMADDRH 和 NVMADDRL将无效,在擦除和写的时候, 写NVMDAT 将无效仅当写NVM时. Enable N VM data m em ory that can be Erased , W ritten or R ead Active E rase or W rite To set E ER or E W R is invalid Active Erase or W rite C leare EnN d V M K eeping Eraes or W rite E nN V M The N V M m em ory can’ t be read E ER / EW R B us y E rase or W rite time Erase or W rite time NVMF After finished, hardw are w ill clear Finished E rase or W rite, then set N V M F flag To clear flag N V Mby F softw are Finished E rase or W rite, then set N V M F flag A fter finished, can be it read by M O VX 图 5-3: NVM 数据存储器时序 为了安全,NVM数据Flash可以锁存位进行锁存. 注: 1. NVMF标志 可 由软件或硬件中断产生置位,当NVM数据存储区域的擦除或写入动作完成 时。 2. 当使用程序擦写 NVM 据存储器时,系统计数器将继续取下一条指令. 3. 当系统在空闲模式并且开全局中断和NVM中断时,读或写NVM数据存储器将退出空闲模式. - 21 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 7 特殊功能寄存器 W79E22X 系列用特殊功能寄存器(SFRs)来控制监测系统运行和系统的模式。特殊功能寄存器位于80HFFH的地址空间内,只能用直接寻址的方式来访问。 这个功能特别适用于只想修改寄存器中的某一位而不影响其他位的场合。可位寻址的特殊功能寄存器, 其地址编号是以0或8结尾。W79E22X 系列中含有标准8051/8052中所有的特殊功能寄存器,同时也 加入了一些新的特殊功能寄存器。在一些应用场合,8052中未被定义的位被赋予了新的功能。下表 列出了W79E22X 系列中的特殊功能寄存器,每行分了8列。 CCL0 /PCNTL CCH0 /PCNTH CCL1 /PLSCNTL CCH1 /PLSCNTH INTCTRL SPCR SPSR SPDR I2CSADEN EIPH I2ADDR NVMADD RH I2DAT I2STATUS I2CLK I2TIMER ADCCON ADCH ADCL PDTC1 PDTC0 PWMCON4 WDCON PWMPL PWM0L NVMADD RL PWMCON1 PWM2L PWM6L PWMCON3 D0 PSW PWMPH PWM0H NVMDAT QEICON PWM2H PWM6H WDCON2 C8 T2CON T2MOD RCAP2L RCAP2H TL2 TH2 PWMCON2 PWM4L C0 SCON1 SBUF1 T3MOD T3CON PMR FSPLT ADCPS TA B8 IP SADEN SADEN1 POVM POVD PIO PWMEN PWM4H B0 P3 P5 RCAP3L RCAP3H EIP1H IPH A8 IE SADDR SADDR1 SFRAL SFRAH SFRFD SFRCN A0 P2 XRAMAH P4CSIN CAPCON0 CAPCON1 P4 CCL2 /MAXCNTL CCH2 /MAXCNTH 98 SCON SBUF P42AL P42AH P43AL P43AH NVMCON CHPCON 90 P1 EXIF P4CONA P4CONB P40AL P40AH P41AL P41AH 88 TCON TMOD TL0 TL1 TH0 TH1 CKCON CKCON1 80 P0 SP DPL DPH TL3 TH3 F8 EIP EIE1 F0 B E8 EIE I2CON E0 ACC D8 EIP1 PCON 表 7-1: 特殊功能寄存器列表 - 22 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 SYMBOL DEFINITION ADD MSB RESS LSB INTCTRL INTERRUPT CONTROL REGISTER FFH - BIT_ADDRESS, SYMBOL - RESET INT5CT1 INT5CT0 INT4CT1 INT4CT0 INT3CT1 INT3CT0 xx00 0000B CCH1 CAPTURE COUNTER HIGH 1 FEH /PLSCNTH REGISTER CCH1.7 CCH1.6 CCH1.5 CCH1.4 CCH1.3 CCH1.2 CCH1.1 CCH1.0 /PLSCN /PLSCN /PLSCN /PLSCN /PLSCN /PLSCN /PLSCN /PLSCN 0000 0000B TH.7 TH.6 TH.5 TH.4 TH.3 TH.2 TH.1 TH.0 CCL1 /PLSCNTL CAPTURE COUNTER LOW 1 FDH REGISTER CCL1.7 CCL1.6 CCL1.5 CCL1.4 CCL1.3 CCL1.2 CCL1.1 CCL1.0 /PLSCN /PLSCN /PLSCN /PLSCN /PLSCN /PLSCN /PLSCN /PLSCN 0000 0000B TL.7 TL.6 TL.5 TL.4 TL.3 TL.2 TL.1 TL.0 CCH0 /PCNTH CAPTURE COUNTER HIGH 0 FCH REGISTER CCH0.7 CCH0.6 CCH0.5 CCH0.4 CCH0.3 CCH0.2 CCH0.1 CCH0.0 /PCNTH. /PCNTH. /PCNTH. /PCNTH. /PCNTH. /PCNTH. /PCNTH. /PCNTH. 0000 0000B 7 6 5 4 3 2 1 0 CCL0 /PCNTL CAPTURE COUNTER LOW 0 FBH REGISTER CCL0.7 CCL0.6 CCL0.5 CCL0.4 CCL0.3 CCL0.2 CCL0.1 CCL0.0 /PCNTL. /PCNTL. /PCNTL. /PCNTL. /PCNTL. /PCNTL. /PCNTL. /PCNTL. 0000 0000B 7 6 5 4 3 2 1 0 EIP1 EXTENDED INTERRUPT PRIORITY 1 - EIE1 INTERRUPT ENABLE 1 F9H - - ENVM ECPTF ET3 EBK EPWM ESPI xx00 0000B EIP EXTENDED INTERRUPT PRIORITY F8H (FF) PS1 (FE) PX5 (FD) PX4 (FC) PWDI (FB) PX3 (FA) PX2 (F9) - (F8) PI2C 0000 00x0B EIPH EXTENDED INTERRUPT HIGH PRIORITY F7H PS1H PX5H PX4H PWDIH PX3H PX2H - PI2CH 0000 00x0B FAH I2CSADEN I2C SLAVE ADDRESS MASK F6H - PNVMI PCPTF PT3 PBKF PPWMF PSPI xx00 0000B I2CSAD I2CSAD I2CSAD I2CSAD I2CSAD I2CSAD I2CSAD I2CSAD 1111 1110B EN.7 EN.6 EN.5 EN.4 EN.3 EN.2 EN.1 EN.0 SPDR SERIAL PERIPHERAL DATA F5H REGISTER SPD.7 SPD.6 SPD.5 SPD.4 SPD.3 SPD.2 SPD.1 SPD.0 xxxx xxxxB SPSR SERIAL PERIPHERAL STATUS REGISTER F4H SPIF WCOL SPIOVF MODF DRSS - - - 0000 0xxxB SPCR SERIAL PERIPHERAL CONTROL REGISTER F3H SSOE SPE LSBFE CPOL CPHA SPR1 SPR0 0000 0100B B B REGISTER F0H (F7) (F6) (F5) (F4) (F3) (F2) (F1) (F0) 0000 0000B I2TIMER I2C TIMER COUNTER REGISTER EFH - - - - - ENTI DIV4 TIF xxxx x000B I2CLK I2C CLOCK RATE EEH I2CLK.7 I2CLK.6 I2CLK.5 I2CLK.4 I2CLK.3 I2CLK.2 I2CLK.1 I2CLK.0 0000 0000B I2STAT US.7 I2STATUS I2C STATUS REGISTER EDH I2DAT I2C DATA I2STAT US.6 I2STAT US.5 MSTR I2STAT US.4 I2STAT US.3 - - - 1111 1000B ECH I2DAT.7 I2DAT.6 I2DAT.5 I2DAT.4 I2DAT.3 I2DAT.2 I2DAT.1 I2DAT.0 0000 0000B NVMADDRH NVM HIGH BYTE ADDRESS EBH - I2ADDR I2C SLAVE ADDRESS EAH ADDR.7 ADDR.6 ADDR.5 ADDR.4 ADDR.3 ADDR.2 ADDR.1 GC 0000 0000B I2CON I2C CONTROL REGISTER E9H - ENS STA STO SI AA I2CIN - X000 000xB EIE EXTENDED INTERRUPT ENABLE E8H (EF) ES1 (EE) EX5 (ED) EX4 (EC) EWDI (EB) EX3 (EA) EX2 (E9) (E8) EI2C 0000 00x0B PWMCON4 PWM CONTROL REGISTER E7H 4 PWMEO PWMOO PWM6O PWM7O M M M M - - BKF 0000 xxx0B PDTC0 DEAD TIME CONTROL REGISTER 0 E6H PDTC0. PDTC0. PDTC0. PDTC0. PDTC0. PDTC0. PDTC0. PDTC0. 0000 0000B 7 6 5 4 3 2 1 0 PDTC1 DEAD TIME CONTROL REGISTER 1 E5H PDTC1. PDTC1. PDTC1. PDTC1. PDTC1. PDTC1. PDTC1. PDTC1. 0000 0000B 7 6 5 4 3 2 1 0 ADCL ADC CONVERTER RESULT LOW BYTE E3H ADCLK1 ADCLK0 - SYMBOL DEFINITION ADD MSB RESS LSB ADCH ADC CONVERTER RESULT HIGH BYTE E2H ADC.9 ADCCON ADC CONTROL REGISTER E1H ACC ACCUMULATOR E0H - - - - - - NVMAD NVMAD NVMAD xxxx x000B DRH.10 DRH.9 DRH.8 - ADC.1 ADC.0 BIT_ADDRESS, SYMBOL ADC.8 RESET ADC.7 ADC.6 ADC.5 ADCEN - ADCEX ADCI ADCS AADR2 AADR1 AADR0 0x00 0000B (E7) (E5) (E4) (E3) (E2) (E1) (E0) 0000 0000B (E6) - 23 - ADC.4 00xx xxxxB ADC.3 ADC.2 xxxx xxxxB 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 PWMCON3 PWM CONTROL REGISTER 3 DFH PWM7B PWM6B PWM5B PWM4B PWM3B PWM2B PWM1B PWM0B 0000 0000B PWM6L PWM 6 LOW BITS REGISTER DEH PWM6.7 PWM6.6 PWM6.5 PWM6.4 PWM6.3 PWM6.2 PWM6.1 PWM6.0 0000 0000B PWM2L PWM 2 LOW BITS REGISTER DDH PWM2.7 PWM2.6 PWM2.5 PWM2.4 PWM2.3 PWM2.2 PWM2.1 PWM2.0 0000 0000B PWMCON1 PWM CONTROL REGISTER 1 DCH PWMRU Load N PWMF CLRPW PWM6I M PWM4I PWM2I PWM0I 0000 0000B DBH NVMAD NVMAD NVMAD NVMAD NVMAD NVMAD NVMAD NVMAD 0000 0000B DRH.7 DRH.6 DRH.5 DRH.4 DRH.3 DRH.2 DRH.1 DRH.8 PWM0L PWM 0 LOW BITS REGISTER DAH PWM0.7 PWM0.6 PWM0.5 PWM0.4 PWM0.3 PWM0.2 PWM0.1 PWM0.0 0000 0000B PWMPL PWM COUNTER LOW REGISTER D9H PWMP.7 PWMP.6 PWMP.5 PWMP.4 PWMP.3 PWMP.2 PWMP.1 PWMP.0 0000 0000B WDCON WATCH-DOG CONTROL D8H (DF) - NVMADDRL NVM LOW BYTE ADDRESS (DE) POR (DD) - (DC) - (DB) WDIF (DA) WTRF (D9) EWT (D8) RWT 0100 0000B - - STRLD 0000 0000B WDCON2 WATCH-DOG CONTROL2 D7H - - - - - PWM6H PWM 6 HIGH BITS REGISTER D6H - - - - PWM6.1 PWM6.1 PWM6.9 PWM6.8 xxxx 0000B 1 0 PWM2H PWM 2 HIGH BITS REGISTER D5H - - - - PWM2.1 PWM2.1 PWM2.9 PWM2.8 xxxx 0000B 1 0 QEICON QEI CONTROL REGISTER D4H - - - DISIDX DIR NVMDAT NVM DATA D3H NVMDA NVMDA NVMDA NVMDA NVMDA NVMDA NVMDA NVMDA 0000 0000B T.7 T.6 T.5 T.4 T.3 T.2 T.1 T.0 PWM0H PWM 0 HIGH BITS REGISTER D2H - - - - PWM0.1 PWM0.1 PWM0.9 PWM0.8 xxxx 0000B 1 0 PWMPH PWM COUNTER HIGH REGISTER D1H - - - - PWMP.1 PWMP.1 PWMP.9 PWMP.8 xxxx 0000B 1 0 PSW PROGRAM STATUS WORD D0H (D7) CY (D6) AC (D5) F0 (D4) RS1 (D3) RS0 PWM4L PWM 4 LOW BITS REGISTER QEIM1 (D2) OV QEIM0 (D1) F1 QEIEN (D0) P xxx0 0000B 0000 0000B CFH PWM4.7 PWM4.6 PWM4.5 PWM4.4 PWM4.3 PWM4.2 PWM4.1 PWM4.0 0000 0000B PWM CONTROL REGISTER PWMCON2 2 CEH BKCH BKPS TH2 T2 REG. HIGH CDH TH2.7 TH2.6 TH2.5 TH2.4 TH2.3 TH2.2 TH2.1 TH2.0 0000 0000B TL2 T2 REG. LOW CCH TL2.7 TL2.6 TL2.5 TL2.4 TL2.3 TL2.2 TL2.1 TL2.0 0000 0000B RCAP2H T2 CAPTURE LOW CBH RCAP2H RCAP2H RCAP2H RCAP2H RCAP2H RCAP2H RCAP2H RCAP2H 0000 0000B .7 .6 .5 .4 .3 .2 .1 .0 RCAP2L T2 CAPTURE HIGH CAH RCAP2L RCAP2L RCAP2L RCAP2L RCAP2L RCAP2L RCAP2L RCAP2L 0000 0000B .7 .6 .5 .4 .3 .2 .1 .0 T2MOD TIMER 2 MODE C9H HC5 HC4 HC3 HC2 T2CR - - DCEN C8H (CF) TF2 (CE) EXF2 (CD) RCLK (CC) TCLK (CB) EXEN2 (CA) TR2 (C9) (C8) C/ T CP/RL2 T2CON TIMER 2 CONTROL BPEN BKEN FP1 FP0 PMOD1 PMOD0 0000 0000B 0000 0xx0B 0000 0000B TA TIME ACCESS REGISTER C7H TA.7 TA.6 TA.5 TA.4 TA.3 TA.2 TA.1 TA.0 0000 0000B DDIO DISABLE DIGITAL I/O C6H DDIO.7 DDIO.6 DDIO.5 DDIO.4 DDIO.3 DDIO.2 DDIO.1 DDIO.0 0000 0000B FSPLT FAULT SAMPLING TIME REGISTER C5H SCMP1 SCMP0 SFP1 SFP0 SFCEN SFCST SFCDIR LSBD PMR POWER MANAGEMENT REGISTER C4H - - - - - ALEOFF - T3CON TIMER 3 CONTROL C3H TF3 - - - - TR3 DEFINITION ADD MSB RESS LSB T3MOD TIMER 3 MODE CONTROL C2H ENLD SBUF1 SERIAL BUFFER 1 C1H SBUF1.7 SBUF1.6 SBUF1.5 SBUF1.4 SBUF1.3 SBUF1.2 SBUF1.1 SBUF1.0 xxxx xxxxB SCON1 SERIAL CONTROL 1 C0H (BF) (BE) SM0_1/F SM1_1 E_1 (BD) SM2_1 (BC) REN_1 (BB) TB8_1 PWM4H PWM 4 HIGH BITS REGISTER BFH - - - PWM4.1 PWM4.1 PWM4.9 PWM4.8 xxxx 0000B 1 0 SYMBOL DME0 - - ICEN1 - 24 - ICEN0 T3CR - (BA) RB8_1 xxxx x0x0B 0xxx x0x0B BIT_ADDRESS, SYMBOL ICEN2 0000 0000B RESET - (B9) TI_1 - (B8) RI_1 0000 0xxxB 0000 0000B 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 PWM7E PWM6E PWM5E PWM4E PWM3E PWM2E PWM1E PWM0E 0000 0000B N N N N N N N N PWMEN PWM OUTPUT ENABLE REGISTER PIO PWM PIN OUTPUT SOURCE BDH SELECT PIO7 POVD PWM OUTPUT STATE REGISTERS BCH POVD.7 POVD.6 POVD.5 POVD.4 POVD.3 POVD.2 POVD.1 POVD.0 0000 0000B POVM PWM OUTPUT OVERRIDE CONTROL REGISTERS BBH POVM.7 POVM.6 POVM.5 POVM.4 POVM.3 POVM.2 POVM.1 POVM.0 0000 0000B BEH PIO6 PIO5 PIO4 PIO3 PIO2 PIO1 PIO0 0000 0000B SADEN1 SLAVE ADDRESS MASK 1 BAH SADEN1 SADEN1 SADEN1 SADEN1 SADEN1 SADEN1 SADEN1 SADEN1 0000 0000B .7 .6 .5 .4 .3 .2 .1 .0 SADEN SLAVE ADDRESS MASK B9H SADEN. SADEN. SADEN. SADEN. SADEN. SADEN. SADEN. SADEN. 0000 0000B 7 6 5 4 3 2 1 0 IP INTERRUPT PRIORITY B8H (BF) (BE) PADC (BD) PT2 - PADCH PT2H - (BC) PS (BB) PT1 (BA) PX1 (B9) PT0 (B8) PX0 0000 0000B PSH PT1H PX1H PT0H PX0H x000 0000B PBKFH PPWMH PSPIH IPH INTERRUPT HIGH PRIORITY B7H EIP1H EXTENDED INTERRUPT HIGH PRIORITY 1 B6H - RCAP3H RELOAD CAPTURE 3 HIGH REGISTER B5H RCAP3H RCAP3H RCAP3H RCAP3H RCAP3H RCAP3H RCAP3H RCAP3H 0000 0000B .7 .6 .5 .4 .3 .2 .1 .0 RCAP3L RELOAD CAPTURE 3 LOW REGISTER B4H RCAP3L RCAP3L RCAP3L RCAP3L RCAP3L RCAP3L RCAP3L RCAP3L 0000 0000B .7 .6 .5 .4 .3 .2 .1 .0 P5 PORT 5 B1H - PNVMIH PCPTFH PT3H - - (B6) WR (B4) (B5) (B3) T0/ T1/ ICO/QE /INT1 IC1/QEB A - - xx00 0000B - PWM7 PWM6 xxxx xx11B (B2) /INT0 (B1) TXD (B0) RXD 1111 1111B PORT 3 B0H (B7) RD SFRCN F/W FLASH CONTROL AFH - WFWIN NOE NCE CTRL3 CTRL2 CTRL1 CTRL0 x011 1111B SFRFD F/W FLASH DATA AEH D7 D6 D4 D3 D2 D1 D0 xxxx xxxxB P3 D5 SFRAH F/W FLASH HIGH ADDRESS ADH A15 A14 A13 A12 A11 A10 A9 A8 0000 0000B SFRAL F/W FLASH LOW ADDRESS ACH A7 A6 A5 A4 A3 A2 A1 A0 0000 0000B SADDR1 SLAVE ADDRESS 1 AAH SADDR1 SADDR1 SADDR1 SADDR1 SADDR1 SADDR1 SADDR1 SADDR1 0000 0000B .7 .6 .5 .4 .3 .2 .1 .0 SADDR SLAVE ADDRESS A9H SADDR. SADDR. SADDR. SADDR. SADDR. SADDR. SADDR. SADDR. 0000 0000B 7 6 5 4 3 2 1 0 IE INTERRUPT ENABLE A8H (AF) EA (AE) EADC (AD) ET2 (AC) ES (AB) ET1 (AA) EX1 (A9) ET0 (A8) EX0 0000 0000B INPUT CAPTURE 2 HIGH CCH2/MAX A7h REGISTER/ MAXIMUM CNTH COUNTER HIGH REGISTER CCH2.7 CCH2.6 CCH2.5 CCH2.4 CCH2.3 CCH2.2 CCH2.1 CCH2.0 /MAXCN MAXCN /MAXCN /MAXCN /MAXCN /MAXCN /MAXCN /MAXCN 0000 0000B TH.6 TH.3 TH.2 TH.0 TH.7 TH.5 TH.4 TH.1 INPUT CAPTURE 2 LOW CCL2/MAX REGISTER/ MAXIMUM CNTL COUNTER LOW REGISTER A6h CCL2.7 CCL2.6 CCL2.5 CCL2.4 CCL2.3 CCL2.2 CCL2.1 CCL2.0 /MAXCN /MAXCN /MAXCN /MAXCN /MAXCN /MAXCN /MAXCN /MAXCN 0000 0000B TL.4 TL.3 TL.2 TL.7 TL.6 TL.5 TL.1 TL.0 P4 PORT 4 A5H - SYMBOL DEFINITION ADD MSB RESS LSB - - - P4.3 P4.2 T2EX/IC STADC 2 BIT_ADDRESS, SYMBOL xxxx 1111B RESET CPTF2 CPTF1/ DIRF CPTF0/ QEIF xx00 0000B CCT0.1 CCT0.0 CCLD1 CCLD0 0000 0000B P40INV - PWDNH RMWFP P0UP 0000 x000B - - A10 A9 A8 0000 0000B (A5) A13/ PWM5 (A4) A12/ PWM4 (A3) A11/ PWM3 (A2) A10/ PWM2 (A1) A9/ PWM1 (A0) A8/ PWM0 1111 1111B SWRST/ REBOO T LD/AP - - - LDSEL ENP 0000 0000B EER EnNVM NVMF 000x xxx0B CAPTURE CONTROL 1 CAPCON1 REGISTER A4H - - ENF2 ENF1 ENF0 CAPCON0 CAPTURE CONTROL 0 REGISTER A3H CCT2.1 CCT2.0 CCT1.1 CCT1.0 P4CSIN P4 CS SIGN A2H P43INV P42INV P41INV XRAMAH RAM HIGH BYTE ADDRESS A1H - - - P2 PORT 2 A0H (A7) A15/ SDA (A6) A14/ SCL CHPCON ON CHIP PROGRAMMING CONTROL 9FH NVMCON NVM CONTROL 9EH EWR - 25 - - - - - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 P43AH HI ADDR. COMPARATOR OF 9DH P4.3 A15 A14 A13 A12 A11 A10 A9 A8 0000 0000B P43AL LO ADDR. COMPARATOR OF P4.3 A7 A6 A5 A4 A3 A2 A1 A0 0000 0000B P42AH HI ADDR. COMPARATOR OF 9BH P4.2 A15 A14 A13 A12 A11 A10 A9 A8 0000 0000B P42AL LO ADDR. COMPARATOR OF P4.2 9AH A7 A6 A5 A4 A3 A2 A1 A0 0000 0000B 9CH SBUF SERIAL BUFFER 99H SBUF.7 SBUF.6 SBUF.5 SBUF.4 SBUF.3 SBUF.2 SBUF.1 SBUF.0 xxxx xxxxB SCON SERIAL CONTROL 98H (9F) (9E) SM0/FE SM1 (9D) SM2 (9C) REN (9B) TB8 (9A) RB8 (99) TI (98) RI 0000 0000B P41AH HI ADDR. COMPARATOR OF 97H P4.1 A15 A14 A13 A12 A11 A10 A9 A8 0000 0000B P41AL LO ADDR. COMPARATOR OF P4.1 A7 A6 A5 A4 A3 A2 A1 A0 0000 0000B P40AH HI ADDR. COMPARATOR OF 95H P4.0 A15 A14 A13 A12 A11 A10 A9 A8 0000 0000B P40AL LO ADDR. COMPARATOR OF P4.0 94H A7 A6 A5 A4 A3 A2 A1 A0 0000 0000B P4CONB P4 CONTROL REGISTER B 93H P43FUN P43FUN P43CMP P43CMP P42FUN P42FUN P42CMP P42CMP 0000 0000B 1 0 1 0 1 0 1 0 P4CONA P4 CONTROL REGISTER A 92H P41FUN P41FUN P41CMP P41CMP P40FUN P40FUN P40CMP P40CMP 0000 0000B 1 0 1 0 1 0 1 0 EXIF EXTERNAL INTERRUPT FLAG 91H IE5 IE4 IE3 IE2 - - - - 0000 xxxxB P1 PORT 1 90H (97) ADC7 (96) ADC6 (95) ADC5 (94) ADC4 (93) TXD1/ ADC3 (92) RXD1/ ADC2 (91) ADC1/ Brake (90) T2/ ADC0 1111 1111B CCDIV1 CCDIV0 0000 0000B 96H CKCON1 CLOCK CONTROL 1 8FH - - - - - - CKCON CLOCK CONTROL 8EH WD1 WD0 T2M T1M T0M MD2 MD1 MD0 0000 0001B TH1 TIMER HIGH 1 8DH TH1.7 TH1.6 TH1.5 TH1.4 TH1.3 TH1.2 TH1.1 TH1.0 0000 0000B TH0 TIMER HIGH 0 8CH TH0.7 TH0.6 TH0.5 TH0.4 TH0.3 TH0.2 TH0.1 TH0.0 0000 0000B TL1 TIMER LOW 1 8BH TL1.7 TL1.6 TL1.5 TL1.4 TL1.3 TL1.2 TL1.1 TL1.0 0000 0000B TL0 TIMER LOW 0 8AH TL0.7 TL0.6 TL0.5 TL0.4 TL0.3 TL0.2 TL0.1 TL0.0 0000 0000B TMOD TIMER MODE 89H GATE C /T M1 M0 GATE C /T M1 M0 0000 0000B 88H (8F) TF1 (8E) TR1 (8D) TF0 (8C) TR0 (8B) IE1 (8A) IT1 (89) IE0 (88) IT0 0000 0000B TCON TIMER CONTROL PCON POWER CONTROL 87H SMOD SMOD0 - - GF1 GF0 PD IDL 00xx 0000B TH3 TIMER HIGH 3 85H TH3.7 TH3.6 TH3.5 TH3.4 TH3.3 TH3.2 TH3.1 TH3.0 0000 0000B TL3 TIMER LOW 3 84H TL3.7 TL3.6 TL3.5 TL3.4 TL3.3 TL3.2 TL3.1 TL3.0 0000 0000B DPH DATA POINTER HIGH 83H DPH.7 DPH.6 DPH.5 DPH.4 DPH.3 DPH.2 DPH.1 DPH.0 0000 0000B DEFINITION ADDR MSB ESS LSB DPL DATA POINTER LOW 82H DPL.7 DPL.6 DPL.5 DPL.4 DPL.3 DPL.2 DPL.1 DPL.0 0000 0000B SP STACK POINTER 81H SP.7 SP.6 SP.5 SP.4 SP.3 SP.2 SP.1 SP.0 0000 0111B P0 PORT 0 80H (87) INT5 (86) INT4 (85) INT3 (84) INT2 (83) /SS (82) SPCLK (81) MOSI (80) MISO 1111 1111B SYMBOL BIT_ADDRESS, SYMBOL RESET 表 7-2: 特殊功能寄存器 - 26 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 8 电源管理 W79E22X 系列 有若干节电选项来帮助用户减少电源消耗。W79E22X 系列的节电模式有掉电模式、空 闲模式。 8.1 空闲模式 用户通过将1 写入PCON.0,使系统进入空闲模式。把系统放入空闲模式的指令是系统在进入空闲模式前 执行的最后一条指令。在空闲模式下,提供给CPU的时钟被切断,但是中断、定时器、串行口的时钟照 常工作。这样CPU就进入冻结状态;程序计数器、堆栈指针、程序状态字、累加器及其它一些寄存器的 内容保持不变。ALE和 PSEN 在空闲模式下处于高电平状态。各个端口维持进入空闲模式前的逻辑状 态。有2种方式可以让系统从空闲模式中退出。由于中断控制器依旧在工作,因此任何使能的中断都可以 让系统退出空闲模式。当这样的中断发生时,系统将自动清除空闲位,退出空闲模式并转向相应的中断 服务程序。在中断服务程序完成后,系统将在使系统进入空闲模式的那条指令之后继续程序的运行。 复位同样可以使系统退出空闲模式。实现复位的方式有在RST脚上输入高电平,上电复位以及看门狗定 时器复位。外部复位时,高电平至少要维持2个机器周期(8个时钟周期),以便系统识别外部复位信 号。复位后程序指针数值为0000H,所有SFR都回到初始状态。由于时钟并没有停止工作因此程序会被 立即执行。在空闲模式下,看门狗定时器依旧工作,因此如果看门狗定时器中断打开,看门狗定时器溢 出后会产生中断使系统退出空闲模式。软件必须复位看门狗定时器,以便在看门狗定时器溢出并经过 512个时钟周期后将系统复位。当W79E22X 系列 系列以复位的方式从空闲模式中退出后,系统将从头 开始执行指令。 电源控制寄存器 PCON Bit: 地址: 87h 7 6 5 4 3 2 1 0 SMOD SMOD0 -保留 -保留 GF1 GF0 PD IDL 位 名称 功能 1 PD 1:系统进入掉电模式;该模式下,所有时钟停止工作,程序也不再执行. 0 IDL 1:系统进入空闲模式;该模式下,CPU的时钟停止工作,程序停止运行;但串口、 定时器、中断的时钟没有停止,这些功能模块仍正常运行. 8.2 掉电模式 用户通过将1 写入PCON.1,使系统进入掉电模式。把系统放入掉电模式的指令是系统在进入掉电模式前 最后执行的一条指令。在掉电模式下,系统所有的时钟都停止工作设备进入停止状态。系统所有的工作 都停止,这样电源的消耗就降至最低。在这种清况下,埠上输出其相应SFR寄存器内的值。 复位以及电平跳变出发的中断可以使系统退出掉电模式。外部复位可让系统退出中断,RST脚上的高电 平将终止掉电模式,然后重新开启时钟。程序将从0000H处开始执行,由于在掉电模式中时钟停止工 作,因此看门狗定时器不能提供复位功能让系统退出掉电模式。 如果EA=1,外部中断被设置为电平触发方式而且相应的外部中断开放,那么外部中断输入脚上的低电平 将迫使系统退出掉电模式。如果上面所述的条件满足,当外部中断输入脚上有低电平信号时,该信号将 重新启动时钟。设备转向相应的中断服务程序,在ISR服务完成后,系统将从使系统进入掉电模式的那 条指令之后继续程序的运行. - 27 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 PORT0 PORT1 PORT2 PORT3 PORT4 PORT5 1 Data Data Data Data Data Data 1 1 Float Data Address Data Data Data 内部 0 0 Data Data Data Data Data Data 外扩 0 0 Float Data Data Data Data Data 模式 程序空间 ALE Idle 内部 1 Idle 外扩 Power Down Power Down PSEN 表 8-1: 空闲/ 掉电模式外部引脚状况 - 28 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 9 复位条件 用户有很多与硬件相关的选项来将W79E22X 系列系列复位。一般来说许多寄存器在复位后都将回到其 初始值,而不管复位的类型如何。但有些标志位的状态取决于复位的类型。用户可以根据这些标志位来 判断复位的类型。有2种方法可以将系统复位:1.外部复位信号;2.看门狗定时器复位。 有三种方法可以复位W79E22X 系列,外部复位,看门狗定时器复位,上电复位。一般来说,许多寄器 在复位以后将回到初始值,但有些标志位取决于复位的类型,用户可以根据这些标志位来判断复位的类 型。 9.1 9.1.1 复位来源 外部复位 系统在每个机器周期的C4态对RST管脚进行连续的采样。因此RST管脚上的电平至少要维持2个机器周 期,以保证系统检测到有效的RST高电平。然后复位电路将同步发出复位信号,因此复位是一个同步的 动作,要求时钟在此期间一直运行来实现外部复位。系统进入复位状态以后,只要RST脚上电平一直为 高,那么系统就一直处于复位状态中。在RST信号撤除后,系统仍将会在2个机器周期内保持复位状态, 然后才从0000H处开始执行程序。对外部复位来说,没有与之配套的标志位。但是由于另外的2种复位模 式都有相应的标志位存在,那么当其他2个标志位为零时,可以将外部复位认为是默认的复位情况。 软件在读取POR位以后必须将其清除,否则将会影响到将来对复位状态的判断。如果发生掉电的情况 (VDD低于Vrst),那么系统将会回到复位状态。当电源恢复正常,系统会再进行一次上电复位延迟并设 置POR标志位。 9.1.2 上电复位 (POR) 如果供电电压下降到复位电压以下,设备将会进入复位状态。当供电恢复正常,设备就执行了一次上电 复位,POR置位。软件需要将POR清零,否则后面产生复位时将很难判断复位的来源。 9.1.3 看门狗定时器复位 看门狗定时器是一个带可编程溢出时间的自由运行的定时器。用户可以在任何时候清除看门狗定时器, 使它重新开始计数。当看门狗定时器溢出后,将会产生一个中断(如果该中断打开)如果用户允许看门 狗定时器产生复位信号,那么在其溢出(未被清零)且经过512个时钟后看门狗定时器会产生一个复位 信号。这样会使系统进入复位状态。这个状态由硬件维持2个机器周期。一旦退出复位状态,系统将从 0000H处执行代码. 9.1.4 复位状态 大多数SFR在复位后回到其初始状态。程序计数器被设为0000H,而且只要复位状态一直保持,它也将 维持0000H的数值不变。但是复位不影响片上RAM的状态。RAM中的数据在复位期间维持不变。但是堆 栈指针变为07H,因此堆栈的数据会丢失。如果VDD低于2V(维持RAM中数据所需的最小电压),那么 RAM中的数据就会丢失。因此第一次上电复位后RAM中的数据不确定,而当电源电压跌至2V以下后, RAM中数据丢失。WDCON SFR =0x0x0xx0b (外部复位),WTPF=1(看门狗复位),WTPF=0(上电 复位)WTPF的值将不变(外部复位)。 POR在上电复位后置位。EWT在上电复位时清除,WTRF (WDCON.2)在看门狗定时器复位后置位, 其他复位情况下对该位无影响。 POR, WDIF, EWT 和 RWT需要TA 来写。 复位状态下WDCON的复位值 - 29 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 WDCON Watch-Dog Control D8H (DF) - (DE) POR (DD) - (DC) - (DB) WDIF (DA) WTRF (D9) EWT (D8) RWT x0xx 0000B External reset x0xx 0100B Watchdog reset x1xx 0000B Power on reset 10 中断 W79E22X 系列 的中断分4个优先级20个中断源。每个中断源都有相应的优先级设置位 ,标志位中断向 量及使能位。另外系统可以关闭或打开所有中断。 10.1 中断源 外部中断 INT0 和 INT1 按照IT0和IT1的设置可以是边沿触发或是电平触发。TCON中的IE0和IE1 位是外 部中断的标志位,检测这2位的状况可以知道是否产生了外部中断。在边沿触发模式中,系统在每个机器 周期都要采样INTx脚。如果在一个周期里采样到高电平在下一个周期里采样到低电平,那么系统就检测 到了一个高电平到低电平的跳变,此时相应的IEx位置位,同时向系统申请中断服务。由于系统在每个机 器周期都要对外部中断进行采样,因此外部中断输入脚上的高电平或低电平至少要维持一个机器周期。 当系统响应中断执行中断服务程序时,IEx位被自动清除。如果选择电平触发方式,那么中断请求源的低 电平信号必须保持到系统响应该中断。在进入中断服务程序时,IEx位不会被硬件清零。如果外部中断输 入脚上的电平在中断服务程序完成后依然保持,系统会立即识别该中断再次进入同样的中断服务程序。 外部中断INT2 只能边沿触发. 默认的情况下, 相应的外部中断 2 ~ 5 手动软件清除. 置位HCx位 ( T2MOD 寄存器)可以配置成硬件清除。当TF0、TF1 标志位置位时会产生定时器0 和定时器1 中断。 当定时器溢出时这些标志位会置位。当执行定时器中断服务程序时,这些标志位会被硬件自动清零。 TF2 和EXF2置位会产生定时器2 中断. 完成ADC转换后产生ADC中断,该位不能由硬件自动清零,用户需要用软件清零。 I2C在完成一个动作后可以产生中断,标志位是SI;SI由硬件置’1’,如果I2C中断允许,将产生I2C中断。 该位不能自动清’0’,用户必须软件清’0’. T看门狗定时器可以用作系统监控器或是一个简单的定时器。无论以何种方式工作,当定时器超时后。 看门狗定时器中断标志WDIF(WDCON.3)会置位,如果EIE.4=1,那么这时会产生一个中断。 所有中断产生标志均可由硬件置位/复位,同样若软件将这些位置位也可以引发中断。各个中断可以由IE 寄存器中的相应位来打开或关闭。IE中有一个中断总控制位,可以打开或关闭所有的中断。 10.2 中断优先级 对中断来说,系统为其提供3种优先级:最高、高、低和最低。可以单独的将中断源设置为高低优先级, 很自然较低的中断源不能中断较高的中断源。但是系统中存在一个预定义的中断处理顺序结构,用于处 理同时产生且优先级又相同的中断。结构的具体方式见下表。各个中断按照其中断优先级顺序编号。 中断源 标志位 中断向量 清除方式 优先级 外部中断 0 IE0 0003H 硬件, 根据引脚状况 1(最高) 定时器0溢出 TF0 000BH 硬件, 软件 2 外部中断 1 IE1 0013H 硬件, 根据引脚状况 3 定时器1溢出 TF1 001BH 硬件, 软件 4 串口中断 RI + TI 0023H 软件 5 - 30 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 定时器2 溢出 TF2 + EXF2 002BH 软件 6 ADC中断 ADCI 0033H 软件 7 I2C中断 I2C1 SI 003BH 软件 8 串口中断 1 RI_1 + TI_1 007BH 软件 9 SPI 中断 SPIF + MODF + SPIOVF 0083H 软件 10 外部中断 2 IE2 0043H 硬件, 软件 11 外部中断 3 IE3 004BH 硬件, 软件 12 外部中断 4 IE4 0053H 硬件, 软件 13 外部中断 5 IE5 005BH 硬件, 软件 14 PWM Period PWMF 0073H 软件 15 PWM Brake BKF 006BH 软件 16 定时器3溢出 TF3 008BH 软件 17 Capture Input/Direction Interrupt/QEI CPTF0/QEIF + CPTF1/DRIF+ CPTF2 0093H 软件 18 NVM 中断 NVMF 009BH 软件 19 看门狗定时器中断 WDIF 0063H 软件 20 表 10- 1: 中断优先权结构 每个机器周期都检测中断标志和中断优先权。如果满足特定条件硬件将执行内部产生的LCALL 指令,目 标地址是中断向量地址。产生LCALL的条件是: 1. 较低优先级的中断不会打断同等优先级的中断和较高优先级的中断服务程序 2. 在正在执行指令的最后一个周期检测中断标志 3. 正在执行的指令不包括写IE, EIE, EIE1, IP, EIP, EIP1, IPH, EIPH 或EIP1H寄存器的指令并且不是 RETI. 如果上述的任何一个条件不满足,LCALL 就不会发生。在每一个指令周期都会检测中断标志。如果上述 条件有一个不满足,虽然标志位置’1’,也不能响应中断。当所有的条件都满足了,中断标志已经消失, 该中断也不能再被回应。 处理器响应一个有效的中断是通过执行一个LCALL 指令将程序转移到中断入口地址。引起中断的中断标 志可能被清除也有可能不被清除。当进入中断服务程序定时,器中断的TF0、TF1标志会被硬件清除。外 部中断INT0和INT1只有在它们的触发条件发生时他们的标志被清除。串行中断标志不能由硬件清除。看 门狗定时器中断标志 WDIF必须有软件清除。硬件执行一个长调指令。该指令保存程序计数器的内容到 堆栈,但是不保存程序状态字PSW。当中断发生时PC被装入中断向量地址。 - 31 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 中断高优先级 IPH 位: 地址: B7h 7 6 5 4 3 2 1 0 -保留 PADCH PT2H PSHH PT1H PX1H PT0H PX0H 位 名称 功能 6 PADCH 1:设置ADC中断为最高优先级 5 PT2H 1:设置定时器2中断为最高优先级 4 PSH 1:设置串口1中断为最高优先级 3 PT1H 1:设置定时器1中断为最高优先级 2 PX1H 1:设置外部中断1中断为最高优先级 1 PT0H 1:设置定时器0中断为最高优先级 0 PX0H 1:设置外部中断0中断为最高优先级 中断优先级 IP 位: 地址: B8h 7 6 5 4 3 2 1 0 -保留 PADC PT2 PS PT1 PX1 PT0 PX0 位 名称 功能 6 PADC 1:设置中断ADC的优先权是较高优先级. 5 PT2 1:设置定时器2中断为较高优先级 4 PS 1:设置串口1中断为较高优先级 3 PT1 1:设置定时器1中断为较高优先级 2 PX1 1:设置外部中断1中断为较高优先级 1 PT0 1:设置定时器0中断为较高优先级 0 PX0 1:设置外部中断0中断为较高优先级 扩展中断高优先级 EIPH 位: 地址: F7h 7 6 5 4 3 2 1 0 PS1H PX5H PX4H PWDIH PX3H PX2H -保留 PI2CH 位 名称 功能 7 PS1H = 1 串口1中断最高优先级. 6 PX5H = 1 外部中断5最高优先级. 5 PX4H = 1 外部中断4最高优先级. 4 PWDIH = 1 看门狗最高优先级. 3 PX3H = 1 外部中断3最高优先级. - 32 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 2 PX2H = 1 外部中断2最高优先级. 0 PI2CH = 1 I2C中断最高优先级. 扩展中断优先级寄存器 EIP 位: 地址: F8h 7 6 5 4 3 2 1 0 PS1 PX5 PX4 PWDI PX3 PX2 -保留 PI2C 位 名称 功能 7 PS1 串口1中断高优先级. 6 PX5 外部中断5高优先级. 5 PX4 外部中断4高优先级. 4 PWDI 看门狗高优先级. 3 PX3 外部中断3高优先级. 2 PX2 外部中断2高优先级. 0 PI2C I2C中断高优先级. 优先权位 中断优先级 IPH/EIPH/EIP1H IP/EIP/EIP1 0 0 Level 0 (最低优先权) 0 1 Level 1 1 0 Level 2 1 1 Level 3 (最高优先权) 表 11- 2: 四级中断优先权 每一个中断源都可以单独的设为 4 个中断级别之一,设置方法是通过设置或清除 IP, IPH, EIP, EIPH, EIP1 和 EIP1H寄存器的相应位。中断不会打断同等优先级的中断和较高优先级的中断服务程序中断; 最高优先权中断不会被任何中断打断;故若同时有2个中断请求,较高优先级的中断先执行服务程序。 若具有同等优先级中断同时请求中断,由内部有一个监测顺序来决定执行中断服务程序的顺序。 如下表所示的内容是:中断源、标志位、向量地址、允许位、优先权位、仲裁序列,并且描述了那一个 唤醒CPU 的掉电模式。 描述 中断标志位 向量地 中断允许位 - 33 - 中断优先权 仲裁序列 唤醒掉 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 址 电 外部中断0 IE0 0003H EX0 (IE.0) IPH.0,IP.0 1(最高) 是 定时器0中断 TF0 000BH ET0 (IE.1) IPH.1,IP.1 2 否 外部中断1 IE1 0013H EX1 (IE.2) IPH.2,IP.2 3 是 定时器1中断 TF1 001BH ET1 (IE.3) IPH.3,IP.3 4 否 串口中断 RI + TI 0023H ES (IE.4) IPH.4,IP.4 5 否 定时器2中断 TF2 + EXF2 002BH ET2 (IE.5) IPH.5,IP.5 6 否 ADC中断 ADCI 0033H EADC (IE.6) IPH.6,IP.6 7 否 I2C中断 I2C SI 003BH EI2C (EIE.0) EIPH.0, EIP.0 8 否 串口 1 中断 RI_1 + TI_1 007BH ES1 (EIE.7) EIPH.7, EIP.7 9 否 SPI 中断 SPIF/MODF/S PIOVF 0083H ESPI (EIE1.0) EIP1H.0, EIP1.0 10 否 外部中断2 IE2 0043H EX2 (EIE.2) EIPH.2, EIP.2 11 否 外部中断3 IE3 004BH EX3 (EIE.3) EIPH.3, EIP.3 12 否 外部中断4 IE4 0053H EX4 (EIE.5) EIPH.5, EIP.5 13 否 外部中断5 IE5 005BH EX5 (EIE.6) EIPH.6, EIP.6 14 否 PWM Period PWMF 0073H EPWM (EIE1.1) EIP1H.1, EIP1.1 15 否 PWM Brake BKF 006BH EBK (EIE1.2) EIP1H.2, EIP1.2 16 否 定时器3中断 TF3 008BH ET3 (EIE1.3) EIP1H.3, EIP1.3 17 否 Capture Input/Direction Interrupt/QEI CPTF0/QEIF + CPTF1/DRIF+ CPTF2 0093H ECPTF (EIE1.4) EIP1H.4, EIP1.4 18 否 NVM 中断 NVMF 009BH ENVMI (EIE1.5) EIP1H.5, EIP1.5 19 否 看门狗定时器中断 WDIF 0063H EWDI (EIE.4) EIPH.4, EIP.4 20 否 10.2.1 中断响应时间 每一个中断源的响应时间取决于几个方面,如中断自身特点和指令的执行。外部中断 INT0 和RI+TI在机 器周期的C3采样并且他们相应的中断标志IEx自动的置位或清除。定时器0和1溢出标志在机器周期的C3 置位,在下一个机器周期检测中断标志。如果有1个中断请求满足3个条件,硬件将自动产生长跳指令, 该指令需要4个机器周期。这样从中断标志置位到执行中断服务程序最少只需要5个机器周期。 很长的响应时间应该可以预知的如果三个条件有一个不满足,如果有较高或同等优先级的中断正在执行 中断服务程序。很明显中断等待时间正在执行的中断服务程序的长短。如果检测机器周期正在执行指 令,需等待指令执行完毕,最大的响应时间(如果不在其它中断的服务程序)发生在W79E216/217系列执 行写IE, IP, IPH, EIE, EIP, EIPH, EIE1, EIP1 或 EIP1H和MUL、DIV 指令。中断中断源的最长响应时间 - 34 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 是12 机器周期,其中包括检测中断1机器周期,完成IE, IP, IPH, EIE, EIP, EIPH, EIE1, EIP1 或EIP1H访 问2机器周期,完成MUL或DIV 指令5机器周期和完成硬件LCALL中断向量位置4机器周期。 也就是说一个简单中断系统中断响应时间总是大于5机器周期并且不大于12机器周期。最大的等待时间 是12机器周期既是48时钟周期。注标准 8051最小等待时间为8机器周期既是96时钟周期。 这可以减少 50%时钟周期。 11 可编程定时器/计数器 W79E22X 系列系列有3个16位可编程定时器/计数器 11.1 定时器/计数器0&1 TM0 和TM1 是16位 定时器/计数器, 这些定时器中都有2个8位寄存器以构成16位的计数寄存器。对于定 时器0它们是TH0(高8位的计数寄存器)和TL0(低8位的计数寄存器)。定时器1 也有类似的计数寄存 器TH1和TL1。可以将它们设置为定时器(对机器周期进行计数)和外部事件计数器。 将它们设置为定时器后,定时器将对时钟周期计数。时钟源可以是系统时钟的12分频或是系统时钟的4 分频。在计数器模式下,每当检测到外部计数输入脚上的负电平跳变(T0针对定时器0,T1针对定时器 1),计数寄存器的内容就会加一。T0和T1上的电平在每个机器周期的C4态被采样,如果在一个机器周 期采样到高电平,在下一个机器周期采样到低电平,那么就会确认一个电平由高到低的跳变,计数器寄 存器指针加一。由于需要2个机器周期来确认管脚上的电平负跳变,因此外部输入信号的最大频率是主频 的24分之一。无论是定时器还是计数器,计数寄存器都在机器周期的C3态加一。因此在定时器模式下, 在T0 和T1 脚上检测到的电平负跳变会在紧跟着检测到该电平跳变后的那个机器周期中使计数器加1。 定时器0低字节 TL0 Bit: 地址: 8Ah 7 6 5 4 3 2 1 0 TL0.7 TL0.6 TL0.5 TL0.4 TL0.3 TL0.2 TL0.1 TL0.0 定时器1低字节 TL1 Bit: 地址: 8Bh 7 6 5 4 3 2 1 0 TL1.7 TL1.6 TL1.5 TL1.4 TL1.3 TL1.2 TL1.1 TL1.0 定时器0高字节 TH0 Bit: 地址: 8Ch 7 6 5 4 3 2 1 0 TH0.7 TH0.6 TH0.5 TH0.4 TH0.3 TH0.2 TH0.1 TH0.0 定时器1高字节 TH1 Bit: 地址: 8Dh 7 6 5 4 3 2 1 0 TH1.7 TH1.6 TH1.5 TH1.4 TH1.3 TH1.2 TH1.1 TH1.0 由TMOD寄存器中的 C / T 位来确定定时器/计数器以何种方式工作。每个定时器/计数器都有它自己的模 式选择位;TMOD中用第2位选择定时器/计数器0 的功能、第6位来选择定时器/计数器1的功能。此外每 个定时器/计数器都可以选定4种运行方式中的一种来运行。由TMOD中的M0 和M1位来选择定时器的工 作模式。 - 35 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 定时器模式控制寄存器 TMOD Bit: 7 GATE 6 C/T 地址: 89h 5 M1 4 M0 3 GATE TIMER1 位 1 M1 0 M0 功能 7 GATE 6 C/ T 5 4 M1 M0 3 GATE 2 C/ T 1 M1 0 M0 模式选择位: M1 M0 0 0 0 1 1 0 11.1.1 C/T TIMER0 名称 1 2 1 门控位为1时, 定时器/计数器的运行除受TRx控制外还受 int n 控制,当TRx和 int n 均 为1时定时器/计数器开始运行。该位为0时,定时器的运行只受TRx的控制 定时器/计数器工作方式选择:为0时以定时器的方式运行;为1时对TX脚上的高到低 电平变化进行计数 模式选择位 模式选择位 门控位为1时, 定时器/计数器的运行除受TRx控制外还受 int n 控制,当TRx和 int n 均 为1时定时器/计数器开始运行。该位为0时,定时器的运行只受TRx的控制 定时器/计数器工作方式选择:为0时以定时器的方式运行;为1时对TX脚上的高到低 电平变化进行计数 模式选择位 如下表 模式选择位 如下表 模式 模式 0: 8-位定时器,有5位的预分频。 模式 1: 16-位定时器,没有5位的预分频。 模式 2: 8位从THx中自动重装定时器 模式3: (仅适用于T0 )TL0是受定时器0 控制的8位定时器/计数器。 TH0 是受定时 器1控制的8位定时器/计数器。定时器1在此方式下不工作。 时基选择 W79E22X 系列为定时器提供2种时钟源,一种是标准8051时钟源,即系统工作频率的1/12为计数时钟 源。这种运行方式保证了时间循环与标准的8051一致,这也是W79E22X 系列默认的定时器时钟来源。 用户也可以选择让时钟以加速的方式来运行,这时的计数时钟源是系统工作频率的1/4,这样就将计数速 度加快了3倍。由CKCON中的T0M和T1M 位来选择加速计数模式。复位后这些为变为0 ,定时器工作在 标准8051/52模式下。如果用户要将计数器设为加速模式。 时钟控制寄存器 CKCON 位: 位 地址: 8Eh 7 6 5 4 3 2 1 0 WD1 WD0 T2M T1M T0M MD2 MD1 MD0 名称 功能 定时器2时钟选择: 5 T2M 0: 定时器2的时钟选择为1/12系统时钟。 1: 定时器2的时钟选择为1/4系统时钟。 - 36 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 定时器1时钟选择: 4 T1M 0: 定时器1的时钟选择为1/12系统时钟。 1: 定时器1的时钟选择为1/4系统时钟。 定时器 0 时钟选择: 3 T0M 0: 定时器 0的时钟选择为1/12系统时钟。 1: 定时器 0的时钟选择为1/4系统时钟。 11.1.2 模式0 模式0下,是13位的定时器/计数器,由8位的THx和TLx的低5位组成,TLx的高3位被忽略。TLx会在时钟 源的负跳变处加一,当TLx的第五位由1变0后,THx开始计数。当THx的数值由FF变为00以后,TCON 中的溢出标志位TFx会置位。 当TRx置位且GATE为0或 INTx 为1时,计数输入才有效。 C / T =0时,定时器/计数器对时钟周期进行计 数, C / T =1时对P1.2(T0)以及P0.7(T1)上的1到0跳变进行计数。当13位的定时器计数值变为1FFFH 后,下一次计数会使其变为0000H。此时相关的溢出标志位置位如果中断打开,此时还会产生一个定时 器中断。注意如果将其用作定时器那么时钟源可以是系统时钟周期的1/12或1/4。 11.1.3 模式1 模式1与模式0 非常相似,只是模式1下定时器/计数器为16位的,而非13位。 1/4 1 Fosc 1/12 T0=P3.4 (T1=P3.5) Timer1 functions are shown in parentheses T0M=CKCON.3 (T1M=CKCON.4) 0 M1, M0=TMOD.1, TMOD.0 (M1, M0=TMOD.5, TMOD.4) C/T=TMOD.2 (C/T=TMOD.6) 0 00 0 1 4 7 TL0 (TL1) TR0=TCON.4 (TR1=TCON.6) 0 11 7 TH0 (TH1) TFx Interrupt TF0 (TF1) GATE=TMOD.3 (GATE=TMOD.7) INT0=P3.2 (INT1=P3.3) 图 11-1: 定时器/计数器 0 & 1 模式 0 和模式 1 11.1.4 模式2 模式2下定时器/计数器为自动重装模式。此模式下TLx是一个8位的计数器,THx保存重装计数值。当TLx 由FFH向00H溢出后,TCON中的TFx标志置位THx中内容重装至TLx,继续计数过程。重装过程中THx 内的值保持不变。当TRx置位且GATE为0或 INTx 为1时,计数器才真正开始工作。同其它2种方式一 样,模式2的时钟源可以是系统时钟周期的1/12或1/4。也可对Tn脚上的脉冲输入计数。 - 37 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 1/4 Timer1 functions are shown in parentheses T0M=CKCON.3 (T1M=CKCON.4) 1 C/T=TMOD.2 (C/T=TMOD.6) Fosc 1/12 TL0 (TL1) 0 0 0 7 1 T0=P3.4 (T1=P3.5) TFx Interrupt TF0 (TF1) TR0=TCON.4 (TR1=TCON.6) 0 7 TH0 (TH1) GATE=TMOD.3 (GATE=TMOD.7) INT0=P3.2 (INT1=P3.3) 图 11-2: 定时器/计数器 0 & 1 模式 2 11.1.5 模式3 他们的模式3 有着不同的工作方式。对定时器/计数器1 来说模式3 会将其停止;对定时器/计数器0来说 模式3下TL0 和TH0是 2个独立的8位计数寄存器。下图表示这种模式下的逻辑关系。模式3下TL0用定时 器0的控制位:如 C / T , GATE, TR0, INT0 和TF0。TL0可以用来对时钟周期来计数(时钟源的1/12或 1/4)以及对T0 脚上的1到0 跳变计数。TH0 只能对内部时钟源计数,并使用定时器/计数器1的控制位 (TR1和TF1)。当需要额外的8位定时器时可以使用模式3 。 当定时器0处于模式3时,定时器1依然可 以工作在模式0、1、2下,但它的灵活性受到限制。虽然基本功能得以维持,但已不能对TF1和TR1进行 控制。此时定时器1依然可以使用GATE及INT1脚。另外可以通过将其放入或离开模式3的方式来打开或 关闭它。它同样可以用作串行口的波特率发生器。 1/4 T0M=CKCON.3 1 C/T=TMOD.2 Fosc 1/12 T0=P3.4 0 0 TL0 0 7 TF0 Interrupt 7 TF1 Interrupt 1 TR0=TCON.4 GATE=TMOD.3 INT0=P3.2 TH0 0 TR1=TCON.6 图 11-2: 定时器/计数器模式 3 11.2 定时器/计数器 2 定时器/计数器2 是由T2MOD进行配置并受T2CON寄存器进行控制的16 位向上/向下定时器/计数器。定 时器/计数器2有捕捉和重装功能。同定时器0、1一样定时器2 有灵活的设置方式和对时钟源的选择。定 时器/计数器2 的时钟源可以是外部输入时钟(T2 脚),也可是被12或者4分频的震荡器时钟。TR2=1时 - 38 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 该时钟运行,TR2=0时该时钟停止。 11.2.1 捕获模式 捕捉模式由T2CON中的 CP / RL2 位来设置,置1后定时器/计数器2进入捕捉模式。在捕捉模式下定时器/ 计数器2 为一个16位向上计数器。当计数值由FFFFH变为0000H后TF2置位并且产生一个中断。 如果EXEN2=1,那么T2EX 脚上的负跳变会使TL2和TH2中的数值装入RCAP2L和RCAP2H寄存器中。 此时T2CON中的EXF2 位会置位,并产生一个中断。将T2CR位置位,W79E22X 系列会在TL2和TH2中 的值被捕捉后自动将定时器2复位。 (RCLK,TCLK, CP / RL2 )= (0,0,1) 1/4 T2M=CKCON.5 1 Fosc 1/12 T2=P1.0 0 C/T2=T2CON.1 0 T2CON.7 TL2 TH2 TF2 1 Timer2 Interrupt TR2=T2CON.2 RCAP2L RCAP2H T2EX=P4.1 EXF2 T2CON.6 EXEN2=T2CON.3 图 11-3: 定时器 2 16 位捕获模式 11.2.2 向上计数,自动重装模式 当T2CON中 CP / RL2 =0且T2MOD中DCEN=0时定时器2进入向上计数,自动重装方式。此模式下定时 器2是16位的向上计数器,当计数值由FFFFH向0000H翻转时,RCAP2L和RCAP2H中的内容被自动重 装至TL0和TH0。重装时TF2置位。如果EXEN2=1,那么T2EX脚上的负跳变也会引起一次重装动作,这 时T2CON中的EXF2位置位。 - 39 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 (RCLK,TCLK, CP / RL2 )= (0,0,0) & DCEN= 0 T2M=CKCON.5 1/4 1 Fosc C/T2=T2CON.1 0 0 1/12 T2CON.7 TL2 TH2 TF2 1 T2=P1.0 Timer2 Interrupt TR2=T2CON.2 RCAP2L RCAP2H T2EX=P4.1 EXF2 T2CON.6 EXEN2=T2CON.3 图 11-4: 16 位自动重装向上计数器 11.2.3 向上/下计数,自动重装模式 当T2CON中 CP / RL2 =0且T2MOD中DCEN=1时定时器2进入向上/向下计数,自动重装方式。此模式下 定时器2是计数方向受T2EX控制的计数器。当T2EX脚上的电平为1,计数器就向上计数。当向上计数溢 出后,捕捉寄存器中的数值被自动重装至计数器中。当计数器的数值计数到与捕捉寄存器中的数值相同 时,TL2和TH2中会自动装入FFFFH并开始向下计数。2种情况下重装时都会使TF2、EXF2置位,但在 这种模式下EXF2 的置位不会引发中断。 (RCLK,TCLK, CP / RL2 )= (0,0,0) & DCEN= 1 Down Counting Reload Value 0FFh 1/4 1 Fosc 1/12 T2=P1.0 0FFh T2M=CKCON.5 0 C/T2=T2CON.1 0 1 T2CON.7 TL2 TH2 Timer2 Interrupt TF2 TR2=T2CON.2 RCAP2L T2EX=P4.1 RCAP2H Up Counting Reload Value EXF2 T2CON.6 图 11-5: 16 位自动重装向上/下计数器 - 40 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 11.2.4 波特率发生器 当T2CON中的RCLK=1且TCLK=1时,定时器2 进入波特率发生器模式。在此模式下,定时器2是一个16 位的自动重装计数器,当计数值从FFFFH向0000H翻转后TL2 和TH2 会自动重装。这时TF2 不会置位, 如果EXEN2=1,那么T2EX脚上的负跳变会使T2CON中的EXF2置位,产生一个中断。 RCLK+TCLK=1, CP / RL2 =0 Timer1 Overflow 1/2 Fosc 1/2 0 C/T2=T2CON.1 0 TL2 T2=P1.0 TH2 Timer2 Overflow 1 1 RCLK= T2CON.5 1 0 TCLK= T2CON.4 TR2=T2CON.2 1 RCAP2L RCAP2H T2EX=P4.1 EXF2 SMOD= PCON.7 1/16 Rx Clock 1/16 Tx Clock 0 Timer2 Interrupt T2CON.6 EXEN2=T2CON.3 图 11-6: 波特率发生器模式 - 41 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 12 看门狗定时器 看门狗定时器是一个自行运行定时器,用户可通过编程将其设置为系统监控器,时基发生器或事件定时 器。该定时器基于一组分频器,对系统时钟频率进行分割。分频器输出可选,并决定溢出时间。溢出 时,如果看门狗有效(且看门狗定时器复位打开),将引起系统复位。看门狗溢出中断以及看门狗复位 功能可由软件设置,将2者的功能合并或分离(即看门狗定时器溢出并使系统复位以及看门狗定时器仅溢 出而不引发系统复位)。 看门狗定时器主要用作一个系统监控器,在实时控制的应用中尤为重要。如果出现电源脉冲干扰或电磁 干扰,处理器将会运行不确定的代码。如果不及时检查,整个系统可能会崩溃。用户可以在软件中使用 看门狗定时器来防止程序运行的错误;用户在软件中适当的地方安排看门狗定时器复位程序,每当运行 到看门狗定时器复位程序时就将看门狗定时器复位防止看门狗定时器复位的产生。如果系统受到干扰, 程序运行发生异常,系统就可能不会运行看门狗定时器的复位代码,此时系统就会被看门狗定时器复 位。 看门狗定时器可以用作一个简单的定时器,此时中断和复位功能被关闭。每次超时时间到以后WDIF位会 置位。可以对WDIF位进行轮询来检测看门狗定时器的溢出与否,并用RWT位来复位看门狗定时器。看 门狗定时器也可用作一个能超长计时的定时器,在这种模式下看门狗定时器中断有效,每次溢出后并在 EA=1 时会产生看门狗定时器中断。 0 Fosc 16 17 19 (WD1, WD0) WDIF 00 01 Reset Watchdog RWT(WDCON.0) Time-out 10 20 22 Interrupt EWDI(EIE.4) WTRF 11 512 clock delay 23 25 Reset Enable watchdog timer reset EWT(WDCON.1) 图 12-1: 看门狗定时器 看门狗定时器必须从RWT开始,因为这样可以保证定时器在一个确定的状态开始。RWT置位后看门狗定 时器开始计时,WD1和WD0(CKCON.7 和 CKCON.6)可以选择溢出时间间隔。RWT置位后自动清零。 WD1 WD0 Interrupt time-out Reset time-out Number of Clocks Time @ 10 MHz Time @ 11.0592 MHz Time @ 25 MHz 0 0 217 217 + 512 131072 13.11 mS 11.85 mS 5.24 mS 1 20 0 1 1 0 1 2 23 2 26 2 20 + 512 1048576 104.86 mS 94.81 mS 41.94 mS 23 + 512 8388608 838.86 mS 758.52 mS 335.54 mS 26 + 512 67108864 6710.89 mS 6068.15 mS 2684.35 mS 2 2 2 表 12-1:看门狗定时器溢出时间 当看门狗定时器溢出,看门狗定时器溢出标志位(WDCON.3)置位,如果看门狗定时器复位功能使能并且 看门狗没有复位,看门狗将会在512个时钟周期后复位,复位持续两个机器周期,同时看门狗定时器复 位标志位置位,用户可以由此位判断出是看门狗定时器引起的复位。 外部复位和看门狗定时器复位只能重启看门狗定时器不能关闭看门狗定时器。在上电/掉电复位后看门狗 被关闭。 下面讨论看门狗定时器控制位: - 42 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 看门狗定时器控制寄存器 WDCON 位: 地址: D8h 7 6 5 4 3 2 1 0 -保留 POR -保留 -保留 WDIF WTRF EWT RWT 位 名称 功能 3 WDIF 看门狗定时器中断标志。如果看门狗中断使能,硬件会将该位置1 表示看门狗定时器 中断产生。如果看门狗定时器中断关闭,那么该位的置位表示看门狗定时器已经超 时。该位必须由软件来清零。 2 WTRF 看门狗定时器复位标志。当看门狗定时器产生中断后,硬件会将该位置位。软件可以 读取该位的状态,但必须由软件来将该位清除。一个掉电复位也会清除该位。软件可 以用该位来判断复位的原因。如果EWT=0,看门狗定时器对该位不会有影响。 1 EWT 看门狗定时器复位使能位。将该位置1会使能看门狗定时器复位功能。 0 RWT 复位看门狗定时器;该位将看门狗定时器置为一个已知的状态;它同样可以用来在看 门狗定时器溢出前将其复位。该位自动被硬件清除 EWT, WDIF和RWT被时控保护寄存器保护,这样能够防止一些不确定代码使能或者关闭看门狗定时 器。 示例如下: org 63h mov TA,#AAH mov TA,#55H clr WDIF jnb execute_reset_flag,bypass_reset ; Test if CPU need to reset. jmp $ ; Wait to reset bypass_reset: mov TA,#AAH mov TA,#55H setb RWT reti org 300h mov mov mov mov mov mov mov setb setb jmp ckcon,#01h ckcon,#61h ckcon,#81h ckcon,#c1h TA,#aah TA,#55h WDCON,#00000011B EWDI ea $ start: ; ; ; ; Select 2 ^ 17 timer ; Select 2 ^ 20 timer ; Select 2 ^ 23 timer ; Select 2 ^ 26 timer ; Wait time out - 43 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 时钟控制 WD1, WD0: CKCON.7, CKCON.6 – 看门狗定时器模式选择位。这两位选择看门狗定时器溢出时间,复 位在看门狗定时器溢出512个周期后,默认的是最短的溢出周期217 个时钟周期。 时钟控制寄存器 CKCON 位: 地址: 8Eh 7 6 5 4 3 2 1 0 WD1 WD0 T2M T1M T0M MD2 MD1 MD0 位 名称 功能 7 WD1 看门狗定时器模式选择位1 6 WD0 看门狗定时器模式选择位0. WD1, WD0: 看门狗定时器模式选择位: 这些位决定看门狗定时器的溢出时间。对4个溢出时间选项来说,系统复位时间是看门狗定时器溢出后 +512个时钟。 WD1 0 0 1 1 WD0 0 1 0 1 INTERRUPT TIME-OUT 217 20 2 RESET TIME-OUT 17 + 512 20 + 512 23 + 512 26 + 512 2 2 23 2 2 26 2 2 - 44 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 13 脉冲宽度调制输出 (PWM) 13.1 PWM特征 z 4路 12-位PWM 4 路独立的PWM 输出: PWM0, PWM2, PWM4 & PWM6. 4路补充的PWM可以编程死区时间。 (PWM0,PWM1), (PWM2,PWM3), (PWM4,PWM5), (PWM6,PWM7) z 三种操作模式: 边沿对齐模式, 中心对齐模式和单事件模式. z 可以在一对PWM中插入可编程死区时间. z 输出马达控制 z 硬件/软件钳制保护. z 支出2种独立的中断: 向上/下 计数或向下溢出 产生中断I. 外部钳制产生中断. z 操作模式可调. z 高 源电流/灌电流. PWM0 ~ PWM7 P2[5:0] (PWM[5:0]) 和 P5[1:0] (PWM [7:6])输出PWM. CPU 复位后,依据控制寄存器 和极性设定来控制每路PWM通道输出. 间隔时间由12–位 向上/向下计数器控制. PWM 控制时钟的频率为 FPWM = FOSC/分频. 图 13-1: PWM 框图如下: PWM0 Generator PWM0 & PWM1 Dead Time Generator Output Control PWM0 PWM2 Generator PWM2 & PWM3 Dead Time Generator Output Control PWM2 PWM Logic control PWM4 Generator PWM4 & PWM5 Dead Time Generator Output Control Brake Control PWM6 Generator PWM6 & PWM7 Dead Time Generator Output Control PWM Time Base Control PWM1 PWM I/O Pin Drive Block PWM3 PWM4 PWM5 PWM6 PWM7 Brake Condition 图 13-1: PWM 框图 - 45 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 13.2 PWM控制寄存器 PWM 溢出通过 PWMCON1 寄存器控制.如果钳制引脚在PWM控制中未过到钳制功能, “PWM钳制未使 用” 功能将输出特定的状态,当PWM 未使用时. 钳制控制通过PWMCON2寄存器设定。软件钳制和外部引脚钳制设定请参考钳制条件表。钳制确定时, PWM输出由PWMnB设定,软件钳制,把BKEN置“1” 将允许钳制功能,由BPEN和BKCH位设定, (BPEN, BKCH) = (0,0),钳制确定;(BPEN, BKCH) = (0,1),PWM输出与PWMRUN位一致;当PWM不 运行时也就是说PWMRUN=0,PWM输出由PWMnB设定;当PWM正在运行时,PWMRUN = 1并保持 PWM输出。 W79E22X系列外部钳制引脚钳制PWM可以产生钳制中断,可以在中断服务程序或查询钳制标志(BKF) 确定外部引脚是否钳制PWM。 如果钳制引脚拉低,BKPS = 0,BKF(PWMCON3.0)将会被置“1”和 PWNRUN将会被清除,PWM停止运行;在钳制脚释放后,PWM输出条件由PWMnB设定。 钳制引脚确定后,运行位将会自动清除,BKF标志将会自动置’1’。在用户程序里,可以通过检测 PWMCON或允许PWM的钳制中断来判断是不是由钳制引脚引起的钳制发生。另外的检测方法是通过钳 制由钳制引脚和钳制引脚的外部中断引脚。最后的方法是,如果检测程序发现钳制的时间不够长,在引 起钳制的钳制条件消失时, 无论PWM处于什么状态,PWM输出在本周期内不会立即取消钳制;这样防 止钳制解除后,PWM会进入混乱状态。 为了平缓的解除外部钳制引脚的钳制,PWM继续运行. • 通过软件设定PWMCON2 进行 钳制管脚使能. • 比较寄存器设置成000H,PWMn输出高;比较寄存器置成3FFH, PWMn输出低. • 清 BKF 标志位. • 设定 PWMCON1使能 PWM运行和装载. • 写 PWMP (0, 2, 4, and 6) 计数寄存器(检测脉冲和装载计数器的值 ) • 设定 PWMCON1运行和传递. 当比较寄存器设置成000H,PWMn输出高;如果比较寄存器置成3FFH, PWMn输出低. - 46 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 PWMRUN Brake Flag BKFn BKCH load PWMP Register BPEN Fosc Posc Prescaler (1/1, 1/2, 1/4, 1/16) Fpwm 12-bits up/down counter control block Counter match PWMP/ underflow D SET CLR Q Pin=0 1 Pin=1 Enable External Brake Pin Brake Control Block BKEN PWMRUN 0 (BPEN,BKCH) = (1,0) BKPS Brake Pin P1.1 PWM Brake Interrupt Output Brake Condition PWMF PWM Period Interrupt Q S/W Clear (FP1, FP0) (PMOD1, PMOD0) CLRPWM X PWM mode Y Clear Counter PWM0I > ++ Compare Register0 PWM0 PWM1 PWM0 register X Y PWM2I - PWM2 > + PWM3 Compare Register2 PWM2 register X Y PWM4I - Dead-time insertion & Override Control PWM5 > + PWM6 Compare Register4 PWM4 register PWM4 PWM7 X Y PWM6I > + Compare Register6 PWM6 register 图 14-2: PWM 时基发生和钳制功能 每一路PWM 输出的脉冲宽度 取决由 比较寄存器的值. 每路 PWM 由(PWMPH,PWMPL), (PWM0H,PWM0L), (PWM2H,PWM2L), (PWM4H,PWM4L) 和 (PWM6H,PWM6L)决定.: 边缘模式: 周期 = (pwmp +1) *时钟周期* 1/分频 占空比 =占空比* 时钟周期 单事件模式: 周期 = (pwmp) *时钟周期 /分频 - 47 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 = (duty) *时钟周期 /分频 占空比 (分频 1, 1/2, 1/4) (duty-1) *时钟周期/分频 < Duty < (duty) *时钟周期/分频 (分频 1/16) Centre aligned: 周期 = (pwmp* 2) *时钟周期 /分频 = (duty*2 - 1) *时钟周期 /分频 占空比 注: “duty” 可参考 PWM0~3 寄存器的值. 13.3 PWM 管脚结构 如下表所示, 控制 PWM的管脚结构 位(PWMEE/PWMOE) 和SFR PWMCON4 威 (PWMEOM/PWMOOM/PWM6OM/PWM7OM). PWMEE/PWMOE (OPTION BITS) PWMEOM/PWMOOM /PWM6OM/PWM7OM PIO.X (X = 0-7) X 0 X Tri-state 1 (Disable) 1 X Quasi (I/O output) 0 (Enable) 1 0 Push Pull (PWM output) 0 (Enable) 1 1 Push Pull (I/O output) 管脚结构 表 13-1: PWM 管脚结构 (内部 ROM 状态) PWMEE/PWMOE (OPTION BITS) PWMEOM/PWMOOM /PWM6OM/PWM7OM PIO.X (X = 0-7) PIN OUTPUT 1 (Disable) X X External access Push Pull 0 (Enable) X X External access Push Pull (strong) 管脚结构 表 13-2: PWM 管脚结构 (内部 ROM 状态) Note: PWMEOM/PWMOOM/PWM6OM/PWM7OM 在系统复位时将清零. 因此, 管脚默认为PWM的 三态状态. 用户可以根据需要设定 GPIO/PWM 输出. - 48 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 Vdd PWMEE Quasi Driver PWMEOM PWMEE 0=Open 1=Short PIOn PWMe output I/O 0 0=tri-state 1=push-pull/quasi 1 tri-state buf PWM0, 2, 4 buf PWMe/PIOn: n,e = 0,2,4 PWMEE: PWM Channel 0, 2 & 4 Enable (Option Bit) PWMEOM: PWM Channel 0, 2 & 4 Output Mode (SFR PWMCON4.7 Bit) 图 13-3: PWM0, 2 & 4 I/O 口 Vdd PWMOE Quasi Driver PWMOOM PWMOE 0=Open 1=Short PIOn PWMo output I/O 0 0=tri-state 1=push-pull/quasi 1 tri-state buf PWM1, 3, 5 buf PWMo/PIOn: o,n = 1,3,5 PWMOE: PWM Channel 1, 3 & 5 Enable (Option Bit) PWMOOM: PWM Channel 1, 3 & 5 Output Mode (SFR PWMCON4.6 Bit) 图 13-4: PWM1, 3 & 5 I/O 口 Vdd PWM6E Quasi Driver PWM6OM PWM6E 0=Open 1=Short PIO6 PWM6 output I/O 0=tri-state 1=push-pull/quasi 0 tri-state buf 1 PWM6 buf PWM6E: PWM Channel 6 Enable (Option Bit) PWM6OM: PWM Channel 6 Output Mode (SFR PWMCON4.5 Bit) 图 13-5: PWM6 I/O 口 - 49 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 Vdd PWM7E Quasi Driver PWM7OM PWM7E 0=Open 1=Short PIO7 0=tri-state 1=push-pull/quasi 0 PWM7 output PWM7 1 I/O tri-state buf buf PWM7E: PWM Channel 7 Enable (Option Bit) PWM7OM: PWM Channel 7 Output Mode (SFR PWMCON4.4 Bit) 图 13-6: PWM7 I/O 口 EPOL (Option Bit) PWM Initial State Low PWMeEN 0 1 High 0 PWM Output (PWM0,2,4,6) 1 B 0 1 PWMeB In Brake Condition Note: e = 0,2,4,6 图 13-7: PWM 偶数输出 OPOL (Option Bit) PWM Initial State Low High 0 PWMoEN 1 0 PWM Output (PWM1,3,5,7) 1 C PWMoB 0 1 In Brake Condition Note: o = 1,3,5,7 图 13-8: PWM 奇数输出 13.4 PWM 死区时间控制 - 50 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 PWM 模块具有 4种占空比 周期发生器. 0 ~ 3. 总共8路PWM 输出通道, 0 ~7. 8路 PWM 输出成奇偶组合. PWM1 补充 PWM0. PWM3补充PWM2, PWM5补充 PWM4 .PWM7 补充 PWM6. 使能PWMeEN和 PWMoEN 时 实现此功能. Note: PWM 成对输出(PWM2, 3), (PWM4, 5) 和 (PWM6, 7) (PWM0, 1). (如下图). PDTC0.0 DT Enable PWM0I X Y PDTC0.4 Rising/Falling POVM.0 + > - 0 POVD.0 1 PWM0 generator PWM0 Dead Time Control B POVM.1 0 PWM1 Posc POVD.1 1 C PDTC1[7:0] 图 14-9: PWM 死区时间控制 13.5 死区时间嵌入 死区时间在管脚的上升沿和下降沿插入. 为了防止损坏电源驱动,用户需接PWM 输出脚. 每路成对输出 的PWM 模块具有6 位计数器,插入死区时间. 根据边沿是上升沿或下降沿,一对互补的输出中的一个将延 时到定时器减到零才调变,如下图所示,在一对PWM 输出中插入死区时间的时序图. PWM0 without Dead-Time PWM1 without Dead-Time PWM0 with Dead-Time PWM1 with Dead-Time Dead-Time Interval Note: PDTC0.4 selects insertion at rising edge 图 14-10: 成对死区时间补充 (上升沿) - 51 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 PWM0 without Dead-Time PWM1 without Dead-Time PWM0 with Dead-Time PWM1 with Dead-Time Dead-Time Interval Note: PDTC0.4 selects insertion at falling edge 图 13-11: 成对死区时间补充 (下降沿) 注: 用户需检查电源开关未被使用,当PWM 输出为高时. PDTCO 和 PDTC1 受时控访问保护. I 13.6 PWM 输出改写 Start PWM0EN = 1? No Yes Odd Override (POVM.1 = 1?) No Even Override (POVM.0 = 1?) Yes Yes (PWM0 = POVD.0) if PWM1EN = 1 {//Override Mode PWM1 = POVD.1} else PWM1 = Initial State Odd Override (POVM.1 = 1?) No No Odd Override (POVM.1 = 1?) PWM0 = PWM Initial State if PWM1EN = 1 PWM1 = /PWM0 else PWM1 = Initial State Yes PWM0 = PWM Initial State if PWM1EN = 1 PWM1 = POVD.1 else PWM1 = Initial State Yes No PWM0 = normal pwm output if PWM1EN = 1 PWM1 = POVD.1 else PWM1 = Initial State (PWM0 = POVD.0) if PWM1EN = 1 {//Complementary + Override Mode PWM1 = /PWM0} else PWM1 = Initial State if PWM1EN = 1 {//Complementary Mode PWM0 = normal pwm output PWM1 = /PWM0} else { Independent Mode PWM0 = normal pwm output PWM1 = Initial State } 图 13-12: Override 框图 每路PWM 改写输出受 POVD 和 POVM 寄存器控制. 该功能允许用户在占空比周期 单元设定 PWM I/O - 52 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 口独立的逻辑状态.. PWM override 位同BLDC一样控制不同类型的马达The POVD 控制8位, POVD[7:0]. 复位后 POVD 为 00H. POVM控制 8位, POVM[7:0].该位决定 PWM I/O口输出状态复位后, POVM为 00H. POVM[7:0] 为独立的 高8位. 当POVM[7:0] 置位, 相应得 POVD[7:0] 将产生PWM 的输出结果. 当 POVM位有置位, on the PWM I/O口输出的状态将由POVD 位决定. 图 14-13 补充模式下的改写功能. a POVD1 POVD0 b PWM1 g c f d e PWM0 图 14-13: 改写位补充模式 假设上升沿插入死区时间; 例: POVM0 = 1 和 POVM1 = 0; PWM0EN 和 PWM1EN = 1; a. b. c. d. e. f. g. 奇数位有效模式. 偶数位有效模式, 死区时间插入. 死区时间后偶数 PWM 有效. 偶数 override 位 禁止, 当 PWM 无效时. 死区时间插入. 死区时间后 奇数 PWM 有效. - 53 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 1 2 3 4 5 6 PWM7 PWM6 PWM5 PWM4 PWM3 PWM2 PWM1 PWM0 图 13-14: 奇/偶 输出 1 STATE POVM PWMEEN = 1 PWMOEN = 1 POVD 1 1111 1111b 0110 0100b 2 1111 1111b 1010 0001b 3 1111 1111b 0000 1001b 4 1111 1111b 0001 1000b 5 1111 1111b 1001 0010b 6 1111 1111b 0100 0110b 表 13-3: 奇/偶 输出 1 - 54 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 #2: POVM #1: POVM 1 PWM7 2 3 PWM Initial State PWM6 PWM5 PWM Initial State PWM4 PWM3 PWM Initial State PWM2 PWM1 1 4 2 3 #3: POVM 4 1 PWM7 PWM7 PWM6 PWM6 PWM5 PWM5 PWM4 PWM4 PWM3 PWM3 PWM2 PWM2 PWM1 PWM1 PWM0 PWM0 PWM Initial State PWM0 2 3 4 图 13-15: Override 输出 #1: POVM #2: POVM (Odd not overridenot in (Odd not Override in State complementary) complementary) (PWMeEN = 1, (PWMeEN = 1, PWMoEN = 0) PWMoEN = 1) #3: POVM (Odd with Override not in complementary) (PWMeEN = 1, PWMoEN = 1) POVD 1 0001 0100b 0001 0100b 1011 1110 0000 0000b 2 0000 0101b 0000 0101b 1010 1111 0000 0000b 3 0100 0001b 0100 0001b 1110 1011 0000 0000b 4 0101 0000b 0101 0000b 1111 1010 0000 0000b 表 13-4: Override 输出 13.7 边沿对齐的PWM(向上计数) - 55 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 1. 12-bit up counter matches PWMP 2. Update new duty cycle register (PWM0,2,4 and 6) if Load=1 3. Update new PWM period register (PWMP) if Load=1 PWMP (new) PWMP (old) PWM0 (new) PWM0 (old) New Duty cycle PWM0 waveform New PWM period PWM period New PWM0 is written New PWMP is written 图 13-16: 边沿对齐的 PWM 在边缘对齐的PWM 模式下, 12 位计数器从0开始计数和PWM0的值进行匹配. 一旦匹配发生, PWM0输出 低. 系统复位后, PWM0 的波形图由载入的配置位决定. PWM0置位. 计数器寄存器将继续计数,得到匹配 的值. PWMP 保持 PWM0 输出高 的波形. 应该注意的是 PWM0 和 PWMP有一个双向缓冲寄存器 用于计 算占空比和PWM 时基周期计数. 当计数器的值和PWMP匹配,将自动更新占空比 周期寄存器. - 56 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 Set PMOD[1:0] = 00 Start : Load = 1 PWMRUN = 1, CLRPWM = 1 Load PWMn and PWMP to working registers 揕 oad? auto clear by hardware (h/w) PWMnI = 1? (output inverted?) No Yes PWMn output : Non Inverted 1 if counter < PWMn 0 if counter > PWMn PWMn output : Inverted 0 if counter < PWMn 1 if counter > PWMn Counter counting up Counter = PWMn? No PWMn output toggle Counter continues counting up Counter = PWMP? No PWMn output toggle Reset counter to zero (h/w) PWMF flag set No Load = 1? Yes Load new PWMP/PWMn value to working register 图 13-17: 边缘对齐 框图 - 57 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 Start Initialize SFR; PWMP = 7FFH; PWM0 = 3FFH; Configure SFR; PWMCON2 = 1100 0000B; //<default> PWM clock source = Fosc // Edge-aligned mode // Brake not asserted // Brake No any activity {Set PWMCON2 = 1100 0001B; // Single Shot Mode} {Set PWMCON2 = 1100 0010B; // Center Aligned Mode} PWMEN = 0000 0001B; // Enable PWM0 output IE = 1000 0000B; // Enable EA EIE1 = 0000 0010; // Enable PWM interrupt Note: Option bit PWMEE = Enable Start PWM PWMCON1 = 1101 0000B; // // // // // PWMRUN counter starts running Load PWMP & PWMn value to counter Clear counter to 0 Clear PWM flag PWM output non inverted User monitor Output PWM0 output pin using scope. Refer Figure 12-16 to Figure 12-19 and Figure 12-22 图 13-18: 边缘对齐 流程图 PWMP (7FF) PWM0 (3FF) PWM0 Waveform PWM Period PWM Period PWM Period PWM Period PWM Period 图 13-19: PWM0 边缘对齐的波形输出 - 58 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 13.8 中心对齐的 PWM(向上/下 计数) 1. 12-bit up counter matches PWMP 2. Update new duty cycle register (PWM0,2,4 and 6) if Load=1 3. Update new PWM period register (PWMP) if Load=1 PWMP (new) PWMP (old) PWM0 (new) PWM0 (old) New Duty cycle PWM0 waveform PWM period New PWM0 is written PWM period New PWM period New PWMP is written 图 13-20: 中心对齐 模式 当PWM 时基配置为向上/向下 计数模式时,模块将产生中心对齐的PWM信号.计数器将从 0计数 和 PWM0的值向匹配; 将保持 PWM0 输出为低.当占空比的值和PWMP向匹配,并且PWM时基在向下计数 时,PWM的比较输出驱动为有效状态,当PWM向上计数, 占空比的值和PWMP向匹配,将产生无效的状态. 如果特定的占空比寄存器中的值为0,相应得PWM引脚的输出在整个PWM周期中将无效, 如果特定的占空 比中的值大于比较寄存器中的值,相应得PWM引脚的输出在整个PWM周期中将有效 - 59 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 Set PM OD[1:0] = 10 Start : Load = 1 PW M RUN = 1, CLRPW M = 1 Load PW M n and PW M P to working registers 揕 oad? auto clear by hardware (h/w) No PW M nI = 1? (output inverted?) PW M n output : Non Inverted 1 if counter < PW M n 0 if counter > PW M n Yes PW M n output : Inverted 0 if counter < PW M n 1 if counter > PW M n Counter counting up No Counter = PW M n? PW M n output toggle Counter continues counting up Counter = PW M P? No Yes Counter Counting down from PW M P Counter = PW M n? No Yes PW M n output toggle Counter continues counting down Counter = 0 ? No Yes PW M F flag set No Load = 1? Yes Load new PW M P/PW M n value to working register 图 13-21: 中心对齐 框图 - 60 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 PWMP (7FF) PWM0 (3FF) PWM0 Waveform PWM Period PWM Period PWM Period 图 13-22: PWM0 中心对齐 波形输出 13.9 单事件模式(向上计数) PWMRUN is cleared by hardware PWMP PWM0 0 PWM period 图 13-23: 单事件模式 当 PWM 配置为单事件模式.PWM模块将产生单脉冲,设定PMOD1:PMOD0 为 ‘01’( PWMCON3 寄存器). 此种模式用于驱动某些类型的电子换相电机很有用. 在该模式下, PWM 将向下计数(PWMRUN 置位) . 当 计数的值和PWMP寄存器相匹配, PWM将产生中断 ( PWM 中断允许). PWM 占空比 由PWMx 寄存器设 定, x = 0,2,4,6 举例单事件模式:- 1. 2. 3. 4. 5. 6. 初始化 (EPOL 位控制) PWM0EN=0, POVM.0=0, PWM0I=0, PWM0=0000H(保持比较器输出为低), PWMP=0001H. PWMRUN=1 PWM0EN=1, PWM0 管脚输出为 0. PWMP=xxxxH(控制周期), PWM0=yyyyH(控制占空比) PWMRUN=1 Note: 在单事件模式下,用户需设定CLRPWM ,PWMRUN ,LOAD , PWMn , PWMP , 寄存器. - 61 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 Set PMOD[1:0] = 01 Initialize Set Initial state = 0 by EPOL option bit PWMxEN=0, POVM.x=0, PWMxI=0, PWMx=0000H, PWMP=0000H Set PWMxEN=1, PWMP=xxxxH, PWMx=yyyyh Start : Load = 1 PWMRUN = 1, CLRPWM = 1 Load PWMn and PWMP to working registers 揕 oad? auto clear by hardware (h/w) No PWMnI = 1? (output inverted?) Yes PWMn output : Non Inverted 1 if counter < PWMn 0 if counter > PWMn PWMn output : Inverted 0 if counter < PWMn 1 if counter > PWMn Counter counting up Counter = PWMn? No PWMn output toggle Counter continues counting up Counter = PWMP? No Reset counter to zero (h/w) PWMF flag set PWMRUN clear to zero (h/w) END 图 13-24: 单事件模式框图 - 62 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 13.10 侦测发生器 侦测功能可以有于外部钳制状态下 侦测逻辑的跳变. FSPLT位用来使能该功能.下图为侦测功能的模块框 图. SFP[1:0] SFCST (read only) SFCDIR (read only) Fosc/4 Fosc/8 Fosc/16 Fosc/128 LSBD BPEN BKEN SFCEN 0 1 2 3 8-bit fault counter FCNT clr 4 16 64 128 0 1 2 3 LSBD Comp BKFs BKFn (See note) 1 Brake Interrupt Flag (BKF) 0 SCMP[1:0] BKF Note: BKFn is a another brake flag generated without smart detector enabled. 图 13-25: 侦测发生器 LSBD = 1 (FSPLT.0) 使能侦测功能. 8 位计数器通过 SFCEN (FSPLT.3)位 使能. 该计数器可以通过 SFP1-0 (FSPLT.5-4) 选择时钟. 8位比较器的值计数器的值可以通过 SCMP1-0 (FSPLT1-0) 位来选择. 初始侦测到钳制脚为低, 8 位计数器 将使能. 将引起计数器的增加. 当计数器的值和比较寄存器的值向匹 配, BKF 将有效. - 63 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 FCNT decr. FCNT incr. FCNT incr. Compare value FCNT = 0 Set by S/W Clr by S/W SFCEN SFCST=1 (start counting) SFCST SFCST=0 (stop counting) Set by H/W Clr by H/W Set by H/W Clr by S/W BK F External Brake Signal 图 13-26: 侦测发生器时序图 侦测功能 有2 种状态位; SFCST 和 SFCDIR. SFCST 表示8 计数器的状态, SFCDIR 表示计数器的方式, 当 SFCST = 0, SFCDIR 将保持这种状态.通过设定SFCEN = 0,软件将清除8位计数器. 下表为不同频率下的钳制时间40MHz 和 20MHz. FOSC/X 1/4 1/8 1/16 1/128 SCMP[1:0] 4 16 64 128 10,000,000 0.40us 1.60us 6.40us 12.80us 5,000,000 0.80us 3.20us 12.80us 25.60us 2,500,000 1.60us 6.40us 25.60us 51.20us 312,500 12.80us 51.20us 204.80us 409.60us 表 13-5: Example the accumulated low level time at 40 MHz FOSC/X 1/4 1/8 1/16 1/128 SCMP[1:0] 4 16 64 128 5,000,000 0.80us 3.20us 12.80us 25.60us 2,500,000 1.60us 6.40us 25.60us 51.20us 1,250,000 3.20us 12.80us 51.20us 102.40us 156,250 25.60us 102.40us 409.60us 819.20us 表 13-6: Example the accumulated low level time at 20 MHz - 64 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 13.11 PWM掉电/唤醒 功能 下图为PWM掉电/唤醒 功能.默认掉电唤醒后,PWM输出为底.若输出为高状态, 用户可设定 PWMn为FFFh 和 (EPOL/OPOL位). PWM Power-down procedure (Assume Initial state = 0 by EPOL/OPOL option bits) Configure special condition: PWMn=0000H Set Load = 1 PWMF? No Clear PWMF Power-down: PCON.1 = 1 END 图 13-27: PWM 掉电流程 (pwm 输出为低) - 65 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 PWM wake-up from power-down procedure Wake-up from power-down Set PCON.1 = 0 Set PWMx, PWMP SFRs acccordingly Set PWMRUN = CLRPWM = Load = 1 END 图 13-28: PWM 掉电唤醒模式 - 66 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 14 运动反馈模块 运动反馈模块根据电机运动反馈的应用中外围模块设设计,该模块包括两个子模块: 输入捕获模块 (IC). 正交编码器 (QEI). 共有三个 16 位的寄存器用于运动反馈模块,该特殊功能寄存器分别由两个 8 位特殊功能寄存器组合而 成,对应于两个不同的子模块,特殊功能寄存器定义有所不同。在共用的这定时器3中,这些模块提供了 一些选项用于控制。大部分的QEI及IC子模块可以完全编程灵活控制,适用于广泛用途。图15-2提供了 一个精简的图表用于说明运动反馈模块。. 注: 输入脚为IC及QEI模块共用,一种设定只能在当时应用于一个模块,默认条件为IC模块模式 设定。 14.1 输入捕获模块 (IC) 捕获模块的功能是侦测和测量脉冲宽度和方波的周期。 支持3路输入捕获和数字噪声滤波器,该模块由特殊功能寄存器CAPCON0和CAPCON1配置。输入捕获 管脚有施密特触发结构。 这种工作模式主要由以下功能支持: • • 3 路捕获功能模块. 定时器 3 模块. 每路捕获模块由2个字节的捕获寄存器,噪声过滤器和可编程的边沿触发器构成。噪声过滤器是用来滤除 触发脉冲输入中多于的干扰波形或脉冲。 噪声滤波器可以由位ENFx(CAPCON1)使能,如果噪声滤波器使能,捕获逻辑将对4个连续的同样的输入 捕获值进行采样来识别一个捕获事件。下面是一个可执行的数字噪声滤波器: . J Tx D SET CLR Q Q D SET CLR Q Q D SET CLR Q Q D SET CLR Q K SET CLR Q Tx filtered Q Q clk 图 14-1: 噪声滤波器 和所有的边缘触发模式触发的必要条件一样,输入捕获的必要条件是脉冲间隔为一个机器周期的宽度。 少于3个系统周期不能触发,脉冲宽度是3或者大于3小于4个系统周期可以触发但是不能保证100%,因 为输入取样是在机器周期的C3阶段。 触发器可以通过对CCTx [1:0] (CAPCON0)编程进行选择,支持正边缘,负边缘和正负边缘,每个捕获模 - 67 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 块都有自己的使能位,是ICEN0-2。[注: x=0/1/2,捕获0/1/2模块]。捕获模块分别由外部管脚IC0, IC1 和 IC2触发. 如果ICENx 使能,每次外部管脚触发,自由运行的16位计数器的TL2和TH2(定时器2模块)将 被捕获 / 传送到捕获寄存器, CCLx 和 CCHx 取决于外部触发的管脚。这个动作会引起 CPTFx 标志位置 位,如果ECPTF 置位,将会产生中断。CPTF0-2标志对中断模块是符合逻辑的“OR”,标志位由硬件置 位,软件清除,中断标志的优先权需要由软件决定. 将T3CR(T3MOD.3)置位将会允许硬件在TL3和TH3被捕获之后自动复位定时器3。在捕获寄存器捕获定 时器值后,T3CR被赋予高优先级来复位计数器。 Capture 0 Block CCL0 CCH0 Capture 1 Block Capture 2 Block IC1 IC2 CCT0[1:0] CPTF0 With Schmitt Trigger IC 0 ENF0 [00] [1] [01] Noise Filter ICEN0 [10] CPTF1 Reset Timer3 T3CR CPTF0 CPTF1 CPTF2 DIV by 1,4,16,32 Fosc TL3 CPTF2 CMP/RL3 TMF3 TH3 0 TF3 TR3 CCDIV[1:0] 1 TOVF3 00 CPTF0 01 ENLD CPTF1 10 CMP/RL3 CPTF2 11 = TMF3 CMP/RL3 RCAP3L RCAP3H CCLD[1:0] Timer 3 Block Note:TOVF3 = Timer 3 overflow TMF3 = Internal Timer 3 Flag signal. Input Capture 2 block (refer to 图 14-3). 图 14-2: 定时器 3/捕获/比较/重装载 模式 - 68 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 Input Capture 2 Block CCT2[1:0] With Schmitt Trigger ENF2 [00] Noise Filter IC2 ICEN2 QEIEN DISIDX CPTF2 [01] [10] 1=enable input capture 2 0=disable input capture 2 图 14-3: Input Capture 2 block diagram Note: When QEI enabled (QEIEN=1), input capture 2 (IC2) still can detect edge changes. . The following table shows the bits setting for enabling input capture 2 edge detection. QEIEN DISIDX 0 X(don’t care) 1 0 1 1 ICEN2 INPUT CAPTURE 2 EDGE DETECTION 0 Disabled. 1 Enabled. 0 Disabled. 1 Enabled. X Disabled, - 69 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 Ex1: Falling edge detection, reload mode 1 m /c IC0 00 01 02 100 Unknown Capture 0 Register RCAP3 0000H Rel oad XX TM 3 Counter Rel oa d CPTF0 00 01 02 100H Read Capture counter to get period width Keeps 0000H Ex2: Rising edge detection, reload mode 1 m /c IC0 00 01 02 100 Unknown Capture 0 Register RCAP3 0000H Rel oad XX TM 3 Counter Rel oad CPTF0 00 01 02 100H Read Capture counter to get period width Keeps 0000H Ex3: Rising and Falling edge detection, reload mode 1 m /c IC0 01 Capture 0 Register RCAP3 0000H Legend: m/c = machine cycle 02 00 01 02 FC Rel oad 00 Rel oad XX TM 3 Counter Rel oad CPTF0 00 01 02 FCH 02H Keeps 0000H Read Capture counter to get pulse width 图 14-4: 输入捕获时序 - 70 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 Start Initialize SFR/ACC; RCAP3L = RCAP3H = 0; ACC = 0; Configure SFR; CKCON1 CAPCON0 CAPCON1 T3MOD IE EIE1 = 0000 0000B; //<default> timer3 clk = Fosc = 0000 0101B; // falling edge IC0 and reload by capture 0 block = 0000 1000B; // enable digital filter for IC0 = 1001 0000B; // ICEN0 = ENLD = 1 = 1000 0000B; // Enable EA = 0001 0000B; // Enable IC0 interrupt, ECPTF = 1 Start timer 3 T3CON = 0000 0100B; // TR3 = 1. No ACC = 2? User read the capture register (should be 100H), and calculate the period base on frequency selected. END 图 14-5: 用 IC0 上升沿和下降沿脉冲宽度侦测程序流量 (ACC 在中断服务程序中是增量)。. - 71 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 Start Initialize SFR/ACC; RCAP3L = RCAP3H = 0; ACC = 0; Configure SFR; CKCON1 CAPCON0 CAPCON1 T3MOD IE EIE1 = 0000 0000B; //<default> timer3 clk = Fosc = 0000 0001B; // rising edge IC0 and reload by capture 0 block = 0000 1000B; // enable digital filter for IC0 = 1001 0000B; // ICEN0 = ENLD = 1 = 1000 0000B; // Enable EA = 0001 0000B; // Enable IC0 interrupt, ECPTF = 1 Start timer 3 T3CON = 0000 0100B; // TR3 = 1. No ACC = 2? User read the capture register (should be 100H), and calculate the period base on frequency selected. END - 72 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 图 14-6: 用 IC0 上升沿和下降沿脉冲宽度侦测程序流量 (ACC 在中断服务程序中是增量). Start Initialize SFR/ACC; RCAP3L = RCAP3H = 0; ACC = 0; Configure SFR; CKCON1 = 0000 0000B; //<default> timer3 clk = Fosc CAPCON0 = 0000 1001B; // rising and falling edge IC0 and // reload by capture 0 block CAPCON1 = 0000 1000B; // enable digital filter for IC0 T3MOD = 1001 0000B; // ICEN0 = ENLD = 1 IE = 1000 0000B; // Enable EA EIE1 = 0001 0000B; // Enable IC0 interrupt, ECPTF = 1 Start timer 3 T3CON = 0000 0100B; // TR3 = 1. No ACC = 2? User read the capture register (should be 02H), and store the value in the register. END 图 14-7: 用 IC0 上升沿和下降沿脉冲宽度侦测程序流量 (ACC 在中断服务程序中是增量). - 73 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 FFFFH Reload Mode ENLD = 1 TF3 set when overflow (If ENLD = 0, timer reload from 0) Reload/Compare Value RCAP3 TF3 set when compare match Compare Mode 0000H 图 14-8: 比较/重装载 功能 FFFFH ICEN0 = 1 CPTF0 flag set CCL0/CCH0 Registers TL3/TH3 Value Input capture 0 trigger 0000H Timer 3 External Input Capture 0 图 14-9: 输入捕获 0 触发 14.1.1 比较器模式 定时器 3 可以配置成比较器模式. 将寄存器T3CON中的 CMP/RL3 位置位可以使能比较器模式. RCAP3 将作为一个比较寄存器. 定时器3向上计数直到和RCAP3中的值匹配,TF3 将会置位 (如果ET3置 位将产生一个中断请求) ,定时器从0重装载然后再次开始计数。 - 74 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 14.1.2 重装载模式 定时器 3 可以配置成重装载模式, 将T3CON 寄存器的 CMP/RL3 位置0可以使能重装载模式. 在这种模 式下, RCAP 当作重装载计存器. 当定时器3溢出, 寄存器RCAP3L 和 RCAP3H 被重装载到寄存器TH3 和TL3。如果ENLD置位,TF3置位,如果ET3置位,将产生一个中断请求。但是,如果ENLD=0,定时 器3将会用0重装载,然后向上计数。 另外一个重装载源也可以通过配置CCLD[1:0] 由输入捕获管脚产生。如果ICENx 置位,外部管脚T0,T1 和T2各自的触发也会引起重装载。这个动作也会分别使寄存器CAPCON1中的CPTF0,CPTF1 或 CPTF2标志置位。 14.2 正交编码器接口 (QEI) 正交编码器接口(QEI) 用于解码马达的转向及转速等信息,可用于正交编码器反馈的模块中。 QEI模块包括: z 两个相位输入引脚: QEA 和 QEB. z 16位含读取所存(PCNT)向上/下脉冲计数(PLSCNT) z 四组脉冲计数模式: z z 模式0: x4 自由计数模式 模式1: x2 自由计数模式 模式2: x4 比较计数模式 模式3: x2 比较计数模式 3 个中断源: 脉冲计数中断(CPTF0/QEIF) 位移检测中索引脉冲中断端 (CPTF1/DIRF). 捕获器2输入中断(CPTF2) 正交编码接口QEI 与捕获计数器共用三组16位特殊功能寄存器 输入捕获模式 QEI 模式 捕获0计数寄存器 (CCH0, CCL0) 脉宽读取寄存器 (PCNTH, PCNTL) 捕获1计数寄存器 (CCH1, CCL1) 脉宽计数寄存器 (PLSCNTH, PLSCNTL) 捕获2计数寄存器 (CCH2, CCL2) 最大计数寄存器 (MAXCNTH, MAXCNTL) - 75 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 Mode Select bits IC 0 / QEA IC 1 / QEB IC 2 /INDX Latch 16 - bit counter Noise Filter CHA* Noise Filter CHB* Noise Filter PCNT / Capture 0 register DRIF / CPTF 1 DIR Direction Clock QEI Control Logic INDX Read access to low byte of PCNT PLSCNT / Capture 1 register Compare / Reload QEIF / Control Logic CPTF 2 MAXCNT / Capture 2 register 图 14-10: QEI 模块框图 QEI控制逻辑侦测根据QEA和QEB之间相位超前或滞后的关系,产生相位索引(DIR)以及时钟用以脉冲计 数。比较器/重装载逻辑通过对比比较器寄存器与脉冲数的最大值作为比较模式。自由计数模式中,脉冲 数目可由0增加至65535。比较计数模式中,计数值会直至MAXCNT的设定值而停止,该值不会因为QEI 模式的改变而改变,也不会因为关闭QEI模式而改变。 In QEI mode, when IC2 edge (rising/falling edge is programmable through CAPCON0) has been detected, CPTF2 will be set (if QEIEN=ICEN2=1 and DISIDX=0), and the only way to clear it is by software. Fosc clock CHA* min. 4 clocks CHB* min. 4 clocks min. 1 clock min. 1 clock IC2/INDX min. 4 clocks CHA*/CHB* - QEA/B after going through noise filter.. 图 14-11: QEA/QEB/IC2 timing requirement. 14.2.1 自由计数模式 计数器根据方向寄存器(DIR)设定向上或向下计数。当计数器溢出后QEIF置位。 14.2.2 比较计数模式 计数器根据方向寄存器( DIR )设定向上或向下计数。在x2计数的超前QEA边沿模式,以及x4计数 - 76 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 QEA/QEB边沿 模 式 中 ,当计数器向上计数时,如果 PLSCNT=MAXCNT ,则 QEIF 将被设定为高, PLSCNT会被清零 。在x2计数的超前QEA边沿模式,以及x4计数QEA/QEB边沿模式中,当计数器向下 计数至零时,比较器控制器会将MAXCNT中的数据装载至PLSCNT中,并将QEIF置1。该模式提供转子 的正相位,如果转子每转一圈,正交编码器输出1024个脉冲,在x4模式下用户可以对MAXCNT中写入数 值 4095 ,或在 x2 模式下写入数值 2047 并在初始化转子为转动时重置 PSCNT ,当 PLSCNT 内的值达到 MAXCNT,说明转子已转动一圈。 14.2.3 x2/x4 计数模式 x2 计数模式中,脉宽计数器根据QEA及QEB信号相位的QEA每个边沿增加或减少计数。 x4 计数模式中,脉宽计数器根据QEA及QEB信号相位的QEA和QEB每个边沿增加或减少计数。 14.2.4 计数的方向 如果QEA超前QEB,脉冲计数器加1。如果QEA落后QEB,脉冲计数器减1。QEI控制信号的变化使DIR 位 (QEICON.3) 被置位或清除;通过这样的逻辑可以判定计数的方向,当 QEA 超前 QEB , DIR 被置位 (=1),正向计数器在每个边沿加1;当QEA落后QEB时,DIR被清位,正向计数器在每个边沿减1。列表 参考如下: 当前转换 前一次转换 上升 QEA 计数控制 (DIR) 下降 QEB QEA QEB 9 QEA 上升沿 9 DEC (0) 9 QEA 下降沿 9 QEB 上升沿 INC (1) DEC (0) INC (1) 9 INC (1) QEB 下降沿 9 DEC (0) 9 INC (1) 9 DEC (0) 表 14-1: 计数方向列表 - 77 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 CH * A C H B* D IR U p -c o u n tin g D o w n -c o u n tin g C le a re d b y s o ftw a re D R IF Q E IF C le a re d b y s o ftw a re N N 10 9 9 8 8 7 P u ls e C o u n te r (P L S C N T ) 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0 P u ls e c o u n te r re lo a d P u ls e c o u n te r re lo a d M o d e 0 /2 : X 4 c o u n tin g m o d e N o te : M o d e 0 : 4 X fre e - c o u n tin g m o d e , N = 6 5 5 3 5 M o d e 2 : 4 X c o m p a re -c o u n tin g m o d e , N = M A X _ C N T C H A * & C H B * a re o u tp u t s ig n a ls o f d ig ita l filte r 图 14-12: X4 Counting Mode 由于每一对QEA/QEB输入脉冲上升或下降计数比x2模式更加频繁,QEI x4 计数模式适用于于更精密的 转子位置控制。该模式可通过设定 QEI 模式选择位 (QEIM1:QEIM0) 设定 ‘00b’ 或 ‘10b’ 设定。在该模式 中,QEI会在每个QEA及QEB信号的每个边沿检测信号。 CH * A C H B* D IR U p -co u n tin g D o w n -co u n tin g C leared by so ftw are D R IF Q E IF C leared by softw are N N 5 4 P u lse C o u n ter (P L S C N T ) 4 3 3 2 2 1 1 0 P u lse co u n ter relo ad 0 M o d e1/3 : X 2 co u n tin g m o d e P u lse co u n ter relo ad N o te: M o d e1 : 2 X free-co u n tin g m o d e, N = 6 5 5 3 5 M o d e3 : 2 X co m p are-co u n tin g m o d e, N = M A X _ C N T C H A * & C H B * are o u tp u t sig n als o f d ig ital filter 图 14-13: X2 Counting Mode - 78 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 QEI x2 计数模式通过QEI模式选择位(QEIM1:QEIM0)设定‘01b’ 或‘11b’。在该模式中,QEI仅判定QEA 输入信号的每个边沿。每个QEA信号的上升或下降沿都会使计数器产生计数。 14.2.5 向上计数 在QEA超前于QEB的状态下,DIR位为1时,软件需要对QEIF做清除的动作。在自由计数模式中,计数 器计数至65535后,下一个超前状态的信号边沿将会使QEIF变为高,并将PLSCNT清零。在比较计数模 式中,计数器计数直至与MAX_CNT寄存器内的值相同,然后计数器清零。转子转向变为滞后状态,会 使PLSCNT寄存器数值减少。在x2的模式下,仅CHA边沿会使QEIF置1,而x4模式CHA和CHB的边沿都 可使QEIF置1。 14.2.6 向下计数 x2/x4计数方式有另一种向下计数的模式。当DIR向下计数至0时DIRF将被至1。在该模式下PLSCNT将由 MAX_CNT的值向下计数,在自由计数模式下降由65535开始向下技术。当向下计数至0时,MAX_CNT 内的值会被自动重新装载,下一个边沿信号时QEIF将被置1。在自由计数模式下,计数器将以16位的值 计算,当值达到65525时,QEIF将在下一个边沿被置1。对于x2模式,仅CHA边沿使QEIF置1;对于x4 模式CHA和CHB边沿都能使QEIF置1。 - 79 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 15 串行口 W79E22X 系列有2个全双工串行口,串行口可以为用户提供帧错误检测、自动地址识别等附加功能。该 串行口提供同步及异步通信方式。在同步模式下串行口产生时钟并以半双工的方式工作。在异步模式 下,能以全双工的方式工作,即可以同时收发数据。发送,接收寄存器均用SBUF(SBUF1用于第二个串 口)来访问。对SBUF/SBUF1的写是发送数据,从SBUF读是读取数据。串行口能以4种不同的方式工 作。以下描述的是串口0,对串口1同样适用。 串口 0 可以用定时器 1 or 2 做为波特率发生器, 串口 1 只能用定时器 1做为波特率发生器. 串行口0控制 SCON 位: 位 7 6 5 4 3 2 1 0 SM0/FE SM1 SM2 REN TB8 RB8 TI RI 名称 7 地址: 98h SM0/FE 功能 串行口0,模式0控制位或贞错误标志位。PCON特殊功能寄存器中的SMOD0位决定该 位的功能。 (SM0) 见下面描述 (FE) 该位的置位表示一个无效的停止位。该位必须由软件来清除。 6 SM1 串行口模式位1 5 SM2 多机通信控制。将该位置 1 ,则使能模式 2 及模式 3 下的多机通信功能。在模式 2 或 3 下,如果SM2置1,那么收到的第九位数据RB8是0的话,RI将不会置位。在模式1下 如果SM2置1,那么在没有收到有效的停止位前RI是不会置位的。在模式0下,SM2位 控制着串行口的时钟。如果清0,那么串行口的时钟是系统时钟的12分频。这样系统 就与标准8052兼容。如果该位置1,那么串行口的时钟是系统时钟的4分频,这样就加 快了同步通信的速度。 4 REN 接收使能: 1: 打开串行口接收功能. 0: 关闭该功能. 3 TB8 模式2和3中要被发送的第九位数据。软件可以根据需求将该位置1或清0。 2 RB8 模式2和3中接收到的第九位数据。模式1下,若SM2=0则RB8是接收到的停止位。模式 0下该位无意义。 1 TI 发送中断标志:模式0下该标志由硬件在发送完8位数据后置位,而在其他模式下在串 行发送到停止位的开始时置位。该位必须由软件来清除。 0 RI 接收中断标志:模式0下该标志由硬件在接收到8位数据后置位,而在其他模式下在串 行接收到停止位的中间时置位。该位必须由软件来清除。 SM1, SM0: 串行口0模式位: SM0 SM1 模式 0 0 0 0 1 1 说明 同步 数据长度 8 异步 10 - 80 - 波特率 4/12 Tclk 可变 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 1 0 2 异步 11 64/32 Tclk 1 1 3 异步 11 可变 串行口0数据缓冲寄存器 SBUF 位: 地址: 99h 7 6 5 4 3 2 1 0 SBUF.7 SBUF.6 SBUF.5 SBUF.4 SBUF.3 SBUF.2 SBUF.1 SBUF.0 位 名称 功能 7-0 SBUF 串行口0接收或发送的数据都放在这个寄存器中。实际上该地址上有2个独立的8位 寄存器。一个用于接收数据,一个用于发送数据。对它进行读操作将会接收串行 数据,对它进行写操作则发送串行数据。 串行口1控制1 SCON1 位: 位 7 地址: C0h 7 6 5 4 3 2 1 0 SM0_1/F E_1 SM1_1 SM2_1 REN_1 TB8_1 RB8_1 TI_1 RI_1 名称 功能 串行口1,模式0控制位或贞错误标志位。PCON特殊功能寄存器中的SMOD0位决定该 位的功能。下面会描述SM0_1/FE_1的运行功能。当用作贞错误标志时,该位的置位表 SM0_1/ 示一个无效的停止位。该位必须由软件来清除。 FE_1 SM0:如下表 FE_1:此位为非法停止位,只能通过软件清0 6 SM1_1 串行口模式位1 5 多机通信控制。将该位置1,则使能模式2及模式3下的多机通信功能。在模式2或3下, 如果SM2置1,那么收到的第九位数据RB8是0的话,RI将不会置位。在模式1下如果 SM2_1置1,那么在没有收到有效的停止位前RI是不会置位的。在模式0下,SM2_1位 SM2_1 控制着串行口的时钟。如果清0,那么串行口的时钟是系统时钟的12分频。这样系统就 与标准8052/8051兼容。如果该位置1,那么串行口的时钟是系统时钟的4分频,这样就 加快了同步通信的速度。 4 REN_1 接收使能,置1时打开串行口接收功能,否则关闭该功能。 3 TB8_1 模式2和3中要被发送的第九位数据。软件可以根据需求将该位置1或清0。 2 RB8_1 1 TI_1 发送中断标志:模式0下该标志由硬件在发送完8位数据后置位,而在其他模式下在串 行发送到停止位的开始时置位。该位必须由软件来清除。 0 RI_1 接收中断标志:模式0下该标志由硬件在接收到8位数据后置位,而在其他模式下在串 行接收到停止位的中间时置位。该位必须由软件来清除。 模式2和3中接收到的第九位数据。模式1下,若SM2_1=0则RB8_1是接收到的停止 位。模式0下该位无意义。 SM1_1, SM0_1: 串行口1模式位: - 81 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 SM0_1 0 SM1_1 0 模式 0 说明 同步 数据长度 8 0 1 1 异步 10 可变 1 0 2 异步 11 时钟的64或32分之一 1 1 3 异步 11 可变 串行口1数据接收缓冲 1 位: 波特率 时钟的4或12分之一 SBUF1 地址: C1h 7 6 5 4 3 2 1 0 SBUF_1. 7 SBUF_1. 6 SBUF_1. 5 SBUF_1. 4 SBUF_1. 3 SBUF_1. 2 SBUF_1. 1 SBUF_1. 0 位 名称 功能 7-0 SBUF_1 串行口1接收或发送的数据都放在这个寄存器中。实际上该地址上有2个独立的8位 寄存器。一个用于接收数据,一个用于发送数据。对它进行读操作将会接收串行 数据,对它进行写操作则发送串行数据。 15.1 模式0 该模式提供与外部设备进行同步通信的方式。在该模式下,串行数据由RXD脚进行收发,而TXD脚用于 产生移位时钟。在发送或接收时TXD上的时钟由W79E22X 系列提供。这种方式下是以半双工的形式进 行通信,每帧接收或发送8位数据。数据的最低位被最先发送或接收,波特率固定为振荡源频率的1/12或 1/4。波特率由SM2(SCON.5;0=1/12;1=1/4)位来决定,当SM2=0时波特率为时钟平率的1/12,当 SM2=1时波特率为时钟频率的1/4。模式0中的可编程波特率功能是标准8051/8052和W79E22X 系列的 唯一区别。 下图是模式0的功能方块图。任何一次写操作倒SBUF开始一次传输。数据由RXD线进行收发。TXD线用 来输出移位时钟,移位时钟用来给W79E22X 系列和其他设备串行接收/发送数据。对SBUF的写将会发 送数据,此时移位时钟启动数据从RXD脚串行移出,直至送完8位数据。如果SM2=1,在TXD脚上的移 位时钟下跳变之前RXD上的数据会维持1个时钟周期。,之后TXD脚上的电平变低并维持2个时钟周期, 之后TXD脚上电平变高。如果SM2=0,RXD上的数据在TXD变低前会维持3个时钟周期,之后TXD上电 平会变低6个时钟周期,之后再变高。这样就保证了在接收端数据可以在TXD的上升沿处同步,在TXD的 下降沿处被接收。 - 82 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 Write to SBUF Fosc Transmit Shift Register Internal Data Bus PARIN LOAD SOUT CLOCK 1/12 1/4 TX START TX SHIFT SM2 0 1 TX CLOCK TI RX CLOCK RI REN TX START Serial Interrupt RI TXD P3.1 Alternate Output Function SHIFT CLOCK LOAD SBUF RX SHIFT Serial Controllor RXD P3.0 Alternate Input Function RXD P3.0 Alternate Output Function Read SBUF CLOCK SIN PAROUT SBUF Internal Data Bus Receive Shift Register 图 15-1 模式 0 下的串口 TI标志位在发送完最后一位数据后的C1态置1,当REN=1 且RI=0时串行口接收数据。移位时钟被激活, 串行口会在移位时钟的上升沿锁定数据。外部设备要在移位时钟的下降沿处送出数据。这个过程持续到8 位数据全部发送完毕。RI会在TXD的最后一个下降沿处置1,这时接收动作结束,RI要由软件清零。 15.2 模式 1 在模式1下,串行口以全双工的方式工作。串行通信的数据贞由10位数据组成,在RXD和TXD脚上进行 收发。10位数据组成如下:起始位(0),8位数据(最低位在前),终止位(1)。在接收端,停止位 进入SCON的RB8位。在该模式下波特率可变,波特率可以是定时器1溢出率的1/16或1/32。由于定时器 1 的溢出率可以按需要设定,因此波特率的选择范围很宽。 向SBUF写入数据后将启动一次发送动作,串行数据的第一位在一个16分频计数器的第一次翻转后的C1 态,被送到TXD脚,下一位数据在下一次16分频计数器翻转后的C1态送至TXD脚。因此数据的传送与这 个16分频的计数器同步,而不是直接写入接收端的SBUF。在发送完9位数据后,会发送停止位。在停止 位输出到TXD脚以后,TI会在C1态置位。这发生在向SBUF写入数据后16分频计数器的第11次翻转以 后。当REN=1 时系统进行接收操作,接收器以所选波特率的16倍速度采样RXD脚状态。 当RXD脚上接收到1-0跳变就启动接收器接收。接收的值是3次采样中至少2次相同的值,以保证接收准 确。在起始位,如果接收到的值不为0 ,则起始位无效,复位接收电路,当再次接收到一个由1-0 的跳变 时重新启动接收器。如果接收值为0 起始位有效,接收器开始接收本贞的其余信息。 在接收了8位数据以后,还将接收一个停止位,进入RB8,之后RI置位。但这种情况是在RI=0,且 SM2=0或接收到的停止位为1时才有效。 如果上述条件满足,则停止位进入RB8,8位数据进入SBUF,RI置位,否则丢弃接收到的贞数据。在停 止位的中间,接收器重启,开始新的一次接收。 . - 83 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 Timer 1 Overflow Transmit Shift Register Timer 2 Overflow 1/2 SMOD 0 TCLK RCLK Internal Data Bus Write to SBUF 1 STOP 0 START LOAD PARIN SOUT TXD CLOCK 1 0 1 0 1 TX START 1/16 1/16 TX SHIFT TX CLOCK Serial Controllor RX CLOCK SAMPLE 1-To-0 DETECTOR TX START TI Serial Interrupt RI LOAD SBUF Read SBUF RX SHIFT CLOCK PAROUT RXD BIT DETECTOR SIN D8 SBUF Internal Data Bus RB8 Receive Shift Register 图 15-2 模式 1 下的串口 15.3 模式 2 该模式用 11位数据来进行全双工异步通信。下图是对他的功能描述。数据由起始位位( 0),8位数据 (最低位在前),可编成的第9位数据(TB8)和停止位组成。第9位数据接收至RB8。波特率是振荡器 频率的1/16或 1/32, 由PCON中的SMOD位来选择。 向SBUF中写入数据启动一次发送, 串行数据的第一位在一个16分频计数器的第一次翻转后的C1态,被 送到TXD脚,下一位数据在下一次16分频计数器翻转后的C1态送至TXD脚。因此数据的传送与这个16分 频的计数器同步,而不是直接写入接收端的SBUF。在发送完9位数据后,会发送停止位。在停止位输出 到TXD脚以后,TI会在C1态置位,这发生在向SBUF写入数据后16分频计数器的第11次翻转以后。 当REN=1 时系统进行接收操作,接受器以所选波特率的16倍速度采样RXD脚状态。当RXD脚上接收到 1-0跳变就启动接收器接收。接收的值是3次采样中至少2次相同的值,以保证接收准确。在起始位,如果 接收到的值不为0 ,则起始位无效,复位接收电路,当再次接收到一个由1-0 的跳变时重新启动接收器。 如果接收值为0 起始位有效,接收器开始接收本贞的其余信息。 在接收了9位数据以后,还将接收一个停止位,进入RB8,之后RI置位。但这种情况是在RI=0,且 SM2=0或接收到的停止位为1时才有效。 如果上述条件满足,则停止位进入RB8,8位数据进入SBUF,RI置位,否则丢弃接收到的贞数据。在停 止位的中间,接收器重启,开始新的一次接收。 - 84 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 Transmit Shift Register 1 TB8 Internal Data Bus 0 Fosc/2 Write to SBUF 1/2 STOP D8 PARIN TXD SOUT START LOAD CLOCK SMOD 0 TX START 1 1/16 1/16 TX SHIFT TX CLOCK Serial Controllor RX CLOCK Serial Interrupt RI SAMPLE 1-To-0 DETECTOR TI LOAD SBUF TX START RX SHIFT Read SBUF CLOCK PAROUT BIT DETECTOR RXD SIN D8 Internal Data Bus SBUF RB8 Receive Shift Register 图 15-3 模式 2 下的串口 15.4 模式 3 模式3中除了波特率可编程外,其他方面都与模式2相同。用户必须在进行串行通信前初始化SFR寄存 器。初始化动作包括模式和波特率的选择。如果是用模式1 或模式3,那么定时器1也要被初始化。在所 有的模式中向SBUF写入数据将启动一次发送。在模式0中当RI=0和REN=1时启动一次接收。这时TXD 脚上会出现同步时钟,并在RXD脚上传送8位数据。在其他模式下,接收动作在REN=1且接收到数据后 就启动。外部设备以发送起始位的方式来开始串行通信。 Transmit Shift Register Timer 1 Overflow Timer 2 Overflow Write to SBUF 1/2 SMOD 0 TCLK RCLK 1 TB8 Internal Data Bus 0 STOP D8 PARIN START LOAD 1 SOUT TXD CLOCK 0 1 0 1 TX START 1/16 1/16 TX SHIFT TX CLOCK Serial Controllor RX CLOCK TX START Serial Interrupt RI SAMPLE 1-To-0 DETECTOR TI LOAD SBUF RX SHIFT Read SBUF CLOCK PAROUT RXD BIT DETECTOR SIN D8 SBUF Internal Data Bus RB8 Receive Shift Register 图 15-4 模式 3 下的串口 - 85 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 SM1 SM0 模式 类型 0 0 0 同步 0 1 1 异步 1 0 2 异步 1 1 3 异步 波特率时钟 4 or 12 TCLKS Timer 1 or 2 32 or 64 TCLKS Timer 1 or 2 贞大小 起始位 终止位 第9位 8位 无 无 无 10 位 1 1 无 11 位 1 1 0, 1 11位 1 1 0, 1 Table 15-1: 串行口的模式 15.5 贞错误检测 当没有检测到一个有效的停止位时,可能就出现了一个贞错误。这表示一个无效的串行数据接收。通常 错误是由串行通信线上的干扰造成的。W79E22X 系列可以检测这种错误,并将标志位置位,以供软件 进行检测。. SCON.7.是FE标志(贞错误标志)(FE_1) 。在标准8051种该位是SM0 ,但在W79E22X 系列中它有 附加功能称为SM0/FE。他们其实是相互独立的标志位。一个是SM0 ,一个是FE。具体访问哪一个位是 由SMOD0(PCON.6)决定的。当SMOD0=1时访问FE标志位,当SMOD0=0时访问SM0位。 FE标志由硬件置位且必须由软件清0。注意在对FE标志位进行读写时,SMOD0必须为1。如果FE置位, 那么下次接收到的正确数据贞不会将其清除。对该位的清除必须由软件来完成。 15.6 多机通讯 多机通信利用模式2和模式3下的第九位数据,RI仅在接收的数据贞的地址符合本机地址或系统进行广播 通信时置位。硬件所具有的特性,免除了要软件进行地址识别的麻烦。 在多机通信模式下,当第9位置1 时,发送的数据是地址贞。当主机想对从机发送数据块,它首先发送从 机的地址贞,当从机在接收地址贞时,他们的SM2 位必须为高。这保证他们能在接收到地址贞时产生中 断。自动地址识别功能保证只有在接收到的地址和本机地址符合时才产生中断。地址比较由硬件来完 成。 被寻址的从设备将SM2位清零,然后准备开始接收数据。SM2=0后,每当接收到一个有效数据贞从机就 会产生一个中断。未被寻址的从设备不会受到影响,因为他们在等待自身地址的到来。在模式1 中,第 九位是停止位,1是有效的停止数据。如果SM2=1那么只有在接收到有效数据且自身被寻址后RI才会置 1。 主机可以用从机地址来选择性的访问从机。可以用广播的方式来寻址所有的从机。从机的地址由SADDR 和SADEN寄存器来定义,从机地址是由SADDR设定的8位数据,如果SADEN中相应的位置0则SADDR 中对应的位就无效。只有当SADEN中的相应位为1,SADDR中的数据才有效。 下面的代码说明如何定义从机地址,以及寻址不同的从机 Slave 1: SADDR 1010 0100 SADEN 1111 1010 Given 1010 0x0x - 86 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 Slave 2: SADDR 1010 0111 SADEN 1111 1001 Given 1010 0xx1 从机1和2 的地址在最低位处不同, 在从机1中该位被忽略,而在从机2中该位有效。因此要与从机2通信 的话,那么他地址数据的位1应该为1。如果主机要与所有从机通信,那么地址数据的位0=1且位1=0。位 3被忽略。这样就形成了广播地址。 主机能用广播的方式来和所有从机通信,地址是SADDR和SADEN中数据的逻辑与。相应得位如果为0, 那么该位就被忽略。在大多数应用场和,广播地址是FFH,而在上面的例子中从机1的广播地址是 (1111111X),从机2的广播地址是(11111111)。 SADDR 和SADEN的地址分别是 A9h和B9h。复位后,2个寄存器的值均为0;这样广播地址和给定的地 址都无效,这样多机通信功能就被关闭。 16 I2C串行控制 连接在2线制(SDA和SCL)I2C总线上的2个设备之间可以相互交换信息。主要特性如下: – 在主机和从机之间数据双向传输 – 多总机总线(没有中心总机) – 总线上出现两个主机同时传输数据的无冲突仲裁 – 通过串行同步时钟在同一条总线上不同的设备可以使用不同的速率通信。 – 串行同步时钟可以作为握手协议可以控制数据传输 – I2C总线可以用作测试和侦测等目的 STOP Repeated START START STOP SDA tBUF tLOW tr SCL tHD;STA tf tHIGH tHD;DAT tSU;DAT tSU;STA tSU;STO 图 16-1: I2C 总线时序 I2C 逻辑实现自动字节传输。串行传输和状态寄存器(I2STAUS)反映I2C 总线的状态。 I2C总线的SCL和SDA 分别为 P2.6 和 P2.7. 使用前必须把这些端口设定成高, 当 I2C 端口使能设定 ENS为高, 内部的状态将受 I2CON 和I2C 硬件控制. 当一个动作结束,I2STATUS将会被更新并且同时SI 被硬件置’1’。之后会进入中断服务程序(如果SI中断允许 EA 和 EI2C 都为高) 。I2STATUS是一个8-位只 读寄存器。低3位一直为0,直到SI 位被软件清除。 16.1 SIO 端口 SIO端口是串行I/O口,支持所有的I2C总线收发传输模式。SIO端口是自动字节传输操作。I2CON的 ENS1位置'1'允许该端口,CPU 到SIO端口的接口是通过7个特殊功能寄存器来设定,详见I2C 控制寄存 器的章节,SIO到I2C总线硬件接口是通过2个引脚:SDA (P2.7,串行数据线)和SCL (P2.6,串行时钟线)。 - 87 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 允许SIO,必须把P2.6和P2.7 输出锁存成逻辑1。P2.6 和P2.7用于I2C功能时必须加上拉电阻,这2个管 脚为开漏模式。 16.2 I2C 控制寄存器 I2C控制寄存器 (I2CON) 控制 传输/接收过程, I2DAT寄存器的内容是准备发送的或刚接收的串行数据一 个字节的数据,I2STATUS控制发送或接收的数据的状态. SYMBOL DEFINITION I2TIMER I2C Timer Counter Register I2CLK I2C Clock Rate I2STATUS I2C Status Register ADDRESS EFH MSB - - BIT_ADDRESS, SYMBOL - - - ENTI LSB RESET DIV4 TIF xxxx x000B EEH I2CLK.7 I2CLK.6 I2CLK.5 I2CLK.4 I2CLK.3 I2CLK.2 I2CLK.1 I2CLK.0 0000 0000B EDH I2STAT US.7 I2STAT US.6 I2STAT US.5 I2STAT US.4 I2STAT US.3 - - - 1111 1000B I2DAT I2C Data ECH I2DAT.7 I2DAT.6 I2DAT.5 I2DAT.4 I2DAT.3 I2DAT.2 I2DAT.1 I2DAT.0 0000 0000B I2ADDR I2C Slave Address EAH ADDR.7 ADDR.6 ADDR.5 ADDR.4 ADDR.3 ADDR.2 ADDR.1 GC 0000 0000B I2CON I2C Control Register E9H - x000 000xB I2CSADEN I2C Maskable Slave Address F6H I2CSAD I2CSAD I2CSAD I2CSAD I2CSAD I2CSAD I2CSAD I2CSAD 1111 1110B EN.7 EN.6 EN.5 EN.4 EN.3 EN.2 EN.1 EN.0 ENS STA STO SI AA I2CIN - 表 16-1: I2C 控制寄存器端口 16.2.1 从机地址寄存器, I2ADDR I2C 端口有一个从机地址寄存器,在主机模式下该寄存器不起作用. 在从机模式下, 在从机模式这七位将 会被作为本机地址。I2C硬件将检测地址是否匹配。 I2C端口支持全呼功能,如果GC位被置位,I2C端口硬件将会回复全呼功能地址(00H)。清零GC位将 会关闭全呼功能。 当GC位被置位以后从机可以在I2C总线上面接受从主机发送过来的全呼地址(00H)。这种特别的从机 模式就是GC模式。 16.2.2 数据寄存器, I2DAT 该寄存器的内容是准备发送的或刚接收的串行数据一个字节的数据。只要不在移位处理的过程,CPU可 以读写访问8-位可直接寻址的特殊功能寄存器。当SIO的状态设定后和串行中断标志(SI)置’1’;只要 SI=‘1’,I2DAT中的数据一直是稳定的。在数据移出的过程中,总线上的数据同时也在移动;I2DAT 的内 容一直是总线上出现的最后一个字节。在主机发送数据从机接收数据的模式中,不需要仲裁来保证 I2DAT中的数据正确。 移位寄存器包含I2DAT和应答位9-位,应答位由SIO的硬件控制,CPU不能访问。I2DAT中的串行数据和 应答位在串行时钟SCL线的上升沿移出。当一个字节被移位元到I2DAT后,I2DAT中的串行资料是可以 使用的,应答位(ACK或NACK)在第9个时钟返回。串行数据在每一个下降沿(SCL时钟) 从I2DAT移出输 出,在每一个上升沿(SCL时钟)资料移进I2DAT。 I2C Data Register: I2DAT.7 I2DAT.6 I2DAT.5 I2DAT.4 I2DAT.3 I2DAT.2 I2DAT.1 I2DAT.0 shifting direction 图 16-2: I2C 数据移位 - 88 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 16.2.3 控制寄存器, I2CON 有2位会受到硬件的影响: SI位受SIO硬件的影响; 当串行中断请求和STO位被清除即条件显示在总线 上,SI位被硬件置’1’。当ENS = "0"时,STO位被清除。 ENS 置位允许I2C串行功能。SDA和SCL口必须保持逻辑1状态。 STA I2C开始标志位. 置STA为高进入主机模式。如果总线为空闲,I2C 硬件检测I2C的总线状态 和产生开始条件。 STO I2C 为主机模式时, STO 位置 ’1’ , 将在 I2C 总线上输出 STOP 条件。当检测到总线上出现 STOP条件。I2C硬件清除STO标志,在从机模式,STO标志被置‘1’恢复总线错误条件。在 改模式下没有STOP条件传输到I2C总线上。然而I2C 硬件动作好像有STOP条件已经被接收 并切换到不可寻址的从接收模式。STO标志由硬件自动清除。如果I2C在主机模式 (在从机 模式, I2C 产生一个内部的 STOP 条件不传输到总线上 ) ,如果 STA 和 STO 位同时被置 ’1’ , STOP条件被传输到I2C总线。随后I2C传输开始条件。 SI I2C 端口 1 中断标志位. SI标志由硬件置’1’ ,必须由软件清’0’;如果EA和ES位(在IE寄存器) 被置’1’,串行中断请求,可以产生中断。SI被置’1’ SCL在线的串行时钟为低的时间延长并 且串行传输数据保持,在线的串行时钟为高的时间不受串行中断标志SI的影响。 AA 接收应答标志位 AA=1在应答时钟脉冲下,SCL上没有应答(SDA上高电平):1) 接收到自己的地址;2) SIO 为主机接收模式,已经接收一个数据。3) SIO为可寻址的从机接收模式,已经接收一个数 据。 AA=0 在应答时钟脉冲下,SCL上没有应答(SDA上高电平): 1) SIO为主机接收模式,已 经接收一个数据。2) SIO为可寻址的从机接收模式,已经接收一个数据。 I2CIN 默认值为0,允许通过SDA引脚输入. 当为1时将被禁止,防止漏电流。在掉电模式下将被禁 止输入。 16.2.4 状态寄存器, I2STATUS I2STATUS是一个8-位只读寄存器。低3位一直为0。其余是状态码。有23个可能的状态码,当 I2STATUS的内容是F8H,没有串行中断请求。所有的其它I2STATUS值对应I2C 端口的状态。 当每一个 进入状态,就会产生状态中断请求(SI = 1). 在SI被硬件置’1’ 1个机器周期后或在SI被软件清除之后,有 效状态码出现在I2STATUS中。 另外,00H状态表示总线错误。总线错误发生在START或STOP条件出现在帧结构不正确的位置。不正 确的位置比如是在串行传输地址字节、数据字节或应答位期间。 16.2.5 I2C时钟波特率位, I2CLK 当 SIO 在主机模式下, I2C 数据的波特率由 I2CLK 寄存器设定。在从机模式下是很重要的;在从机模式 下,SIO将自动与主机I2C设备时钟频率同步,可高达400 KHz。 I2C数据波特率设定是:I2C的数据波特率 = Fcpu / (I2CLK+1)。Fcpu=Fosc/4,如果Fosc = 16MHz, I2CLK = 40(28H),I2C的数据波特率I2C = 16MHz /(4X (40 +1)) = 97.56K位/秒。 16.2.6 I2C 超时计数器, I2Timer W79E22X 系列的 I2C 逻辑模块提供一个 14 位的时钟溢出计数器能够帮助用户解决总线停滞问题,当 SI 复位后用户可以通过对 ENTI 置位(ENTI=1)来启动时钟溢出计数器。如果 I2C 总线在等待来自总线 上设备有效信号的时间太长,时钟溢出定时器就会溢出,并且置位 TIF(TIF=1)申请一个 I2C 的中断。 当 SI=1 或 TIF=1 时 I2C 产生中断请求. SI 和 TIF 必须由软件清除。 - 89 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 16.2.7 I2C 从机地址标识 该寄存器使能I2C 的自动地址识功能(I2CSADEN = 1),I2CSADEN 所有的位设为0时,没有引入任何 的地址将产生一个中断。 0 Fosc 1/4 1 Enable 14-bits Counter TIF To I2C Interrupt Clear Counter DIV4 SI ENS1 ENTI SI 图 17-3: I2C 时钟溢出 16.3 I2C 的操作模式 5种操作模式:主机/传输,主机/接收,从机/传输,从机/接收和GC 模式。 在实际应用中,I2C端口可以作为主机和从机,有主机和从机I2CON中的STA,STO和AA置位后,SI被 清除后,SIO 硬件才开始下一个动作,当一个动作结束,I2STATUS将会被更新并且同时SI被硬件 置’1’。之后会进入中断服务程序(如果SI中断允许),新状态码可以被用为软件判断哪一个中断进入中断 服务程序。 16.3.1 主传输模式 主机产生开始信号,置位STA,主机向总线传输从机地址(一般为7位)+W(1),等待接收应答 (ACK)信号。接收到应答信号后,向被寻址到的从机发送数据,等待ACK信号。数据发送完毕后发送 结束信号,置位STO。 16.3.2 主接模式 主机产生开始信号,置位STA,向总线传输从机地址(一般为7位)+R(0),等待接收应答(ACK)信 号。接收到应答信号后,主机接收从机发送的数据,等待ACK信号,数据发送完毕后发送结束信号,置 位STO。 16.3.3 从接模式 设定自身的寻址地址,即从机地址,对I2ADDR寄存器进行设定,被主机寻址到,即接收到总线传输的地 址寻址信号与从机自身地址相符,此时发送应答信号ACK。向总线发送数据+ACK,发送结束,由主机停 止总线。 16.3.4 从传模式 设定自身的寻址地址,即从机地址,对I2ADDR寄存器进行设定,被主机寻址到,即接收到总线传输的地 址寻址信号与从机自身地址相符,此时发送应答信号ACK,向总线发送自身从机地址+R(0)。接收主机 发送的数据,并给出应答信号ACK,接收结束,由主机停止总线. - 90 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 16.4 数据传输5种操作模式 5种操作模式:主机/传输,主机/接收,从机/传输,从机/接收和GC 模式。I2CON中的STA,STO和AA 位将决定SIO硬件下一次的状态在SI位清除后。置位后,SI被清除后,SIO 硬件才开始下一个动作,当 一个动作结束,I2STATUS将会被更新并且同时SI被硬件置’1’。之后会进入中断服务程序(如果EA=1, EI2=1),新状态码可以被用为软件判断哪一个中断进入中断服务程序。 Last state Last action is done Next setting in I2CON Expected next action New state next action is done 08H A START has been transmitted. (STA,STO,SI,AA)=(0,0,0,X) SLA+W will be transmitted; ACK bit will be received. (1) Data byte will be transmitted: Software should load the data byte (to be transmitted) into I2DAT before new I2CON setting is done. (2) SLA+W (R) will be transmitted: Software should load the SLA+W/R (to be transmitted) into I2DAT before new I2CON setting is done. (3) Data byte will be received: Software can read the received data byte from I2DAT while a new state is entered. 18H SLA+W has been transmitted; ACK has been received. 图 16-3: I2C 流程图 - 91 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 16.4.1 主机/传输模式 Set STA to generate a START. From Slave Mode (C) 08H A START has been transmitted. (STA,STO,SI,AA)=(0,0,0,X) SLA+W will be transmitted; ACK bit will be received. From Master/Receiver (B) 18H SLA+W will be transmitted; ACK bit will be received. or 20H SLA+W will be transmitted; NOT ACK bit will be received. (STA,STO,SI,AA)=(0,0,0,X) Data byte will be transmitted; ACK will be received. (STA,STO,SI,AA)=(0,1,0,X) A STOP will be transmitted; STO flag will be reset. (STA,STO,SI,AA)=(1,0,0,X) A repeated START will be transmitted ; 28H Data byte in S1DAT has been transmitted ; ACK has been received . 10H A repeated START has been transmitted. (STA,STO,SI,AA)=(1,1,0,X) A STOP followed by a START will be transmitted; STO flag will be reset. Send a STOP Send a STOP followed by a START or 30H Data byte in S1DAT has been transmitted ; NOT ACK has been received . (STA,STO,SI,AA)=(0,0,0,X) SLA+R will be transmitted; ACK bit will be transmitted; SIO1 will be switched to MST/REC mode. 38H Arbitration lost in SLA+R/W or Data byte. To Master/Receiver (A) (STA,STO,SI,AA)=(0,0,0,X) I2C bus will be release; Not address SLV mode will be entered . Enter NAslave - 92 - (STA,STO,SI,AA)=(1,0,0,X) A START will be transmitted when the bus becomes free. Send a START when bus becomes free 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 16.4.2 主机/接收 模式 Set STA to generate a START. From Slave Mode (C) 08H A START has been transmitted. (STA,STO,SI,AA)=(0,0,0,X) SLA+R will be transmitted; ACK bit will be received. From Master/Transmitter (A) 48H SLA+R has been transmitted ; NOT ACK has been received . 40H SLA+R has been transmitted; ACK has been received . (STA,STO,SI,AA)=(0,0,0,0) Data byte will be received ; NOT ACK will be returned. 58H Data byte has been received ; NOT ACK has been returned . (STA,STO,SI,AA)=(1,1,0,X) A STOP followed by a START will be transmitted; STO flag will be reset. Send a STOP followed by a START (STA,STO,SI,AA)=(0,1,0,X) A STOP will be transmitted; STO flag will be reset. 50H Data byte has been received ; ACK has been returned . (STA,STO,SI,AA)=(1,0,0,X) A repeated START will be transmitted ; 10H A repeated START has been transmitted. Send a STOP 38H Arbitration lost in NOT ACK bit. (STA,STO,SI,AA)=(0,0,0,1) Data byte will be received; ACK will be returned. (STA,STO,SI,AA)=(0,0,0,X) SLA+R will be transmitted; ACK bit will be transmitted; SIO1 will be switched to MST/Tx mode. To Master/Transmitter (B) (STA,STO,SI,AA)=(1,0,0,X) A START will be transmitted; when the bus becomes free Send a START when bus becomes free (STA,STO,SI,AA)=(0,0,0,X) I2C bus will be release; Not address SLV mode will be entered . Enter NAslave 图 16-4: 主机/接收模式 - 93 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 16.4.3 从机/传输 模式 Set AA A8H Own SLA+R has been received ; ACK has been return. or B0H Arbitration lost SLA+R/W as master; Own SLA+R has been received ; ACK has been return. (STA,STO,SI,AA)=(0,0,0,0) Last data byte will be transmitted ; ACK will be received. C8H Last data byte in S 1DAT has been transmitted ; ACK has been received . (STA,STO,SI,AA)=(0,0,0,1) Data byte will be transmitted; ACK will be received. C0H Data byte or Last data byte in S 1DAT has been transmitted; NOT ACK has been received . B8H Data byte in S1DAT has been transmitted; ACK has been received . (STA,STO,SI,AA)=(0,0,0,0) Last data will be transmitted ; ACK will be received. (STA,STO,SI,AA)=(0,0,0,1) Data byte will be transmitted; ACK will be received. A0H A STOP or repeated START has been received while still addressed as SLV /REC. (STA,STO,SI,AA)=(1,0,0,1) Switch to not address SLV mode ; Own SLA will be recognized ; A START will be transmitted when the bus becomes free . (STA,STO,SI,AA)=(1,0,0,0) Switch to not addressed SLV mode ; No recognition of own SLA ; A START will be transmitted when the becomes free. (STA,STO,SI,AA)=(0,0,0,1) Switch to not addressed SLV mode ; Own SLA will be recognized. (STA,STO,SI,AA)=(0,0,0,0) Switch to not addressed SLV mode ; No recognition of own SLA . Enter NAslave Send a START when bus becomes free To Master Mode (C) 图 16-5: 从机/传输模式 - 94 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 16.4.4 从机/接收模式 Set AA 60H Own SLA+W has been received; ACK has been return. or 68H Arbitration lost SLA+R/W as master; Own SLA+W has been received; ACK has been return. (STA,STO,SI,AA)=(0,0,0,0) Data byte will be received ; NOT ACK will be returned. (STA,STO,SI,AA)=(0,0,0,1) Data byte will be received; ACK will be returned. 80H Previously addressed with own SLA address ; Data has been received ; ACK has been returned . 88H Previously addressed with own SLA address ; NOT ACK has been returned . A0H A STOP or repeated START has been received while still addressed as SLV /REC. (STA,STO,SI,AA)=(1,0,0,1) Switch to not address SLV mode ; Own SLA will be recognized ; A START will be transmitted when the bus becomes free . (STA,STO,SI,AA)=(0,0,0,1) Data will be received; ACK will be returned. (STA,STO,SI,AA)=(0,0,0,0) Data will be received; NOT ACK will be returned. (STA,STO,SI,AA)=(1,0,0,0) Switch to not addressed SLV mode ; No recognition of own SLA ; A START will be transmitted when the becomes free. (STA,STO,SI,AA)=(0,0,0,1) Switch to not addressed SLV mode ; Own SLA will be recognized. (STA,STO,SI,AA)=(0,0,0,0) Switch to not addressed SLV mode ; No recognition of own SLA . Enter NAslave Send a START when bus becomes free To Master Mode (C) 图 16-6: 从机/接收模式 - 95 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 16.4.5 GC 模式 Set AA 70H Reception of the general call address and one or more data bytes ; ACK has been return . or 78H Arbitration lost SLA+R/W as master; and address as SLA by general call ; ACK has been return . (STA,STO,SI,AA)=(X,0,0,0) Data byte will be received; NOT ACK will be returned. (STA,STO,SI,AA)=(X,0,0,1) Data byte will be received; ACK will be returned. 90H Previously addressed with General Call ; Data has been received ; ACK has been returned . 98H Previously addressed with General Call; Data byte has been received ; NOT ACK has been returned . (STA,STO,SI,AA)=(X,0,0,1) Data will be received; ACK will be returned. (STA,STO,SI,AA)=(X,0,0,0) Data will be received; NOT ACK will be returned. A0H A STOP or repeated START has been received while still addressed as SLV /REC. (STA,STO,SI,AA)=(1,0,0,1) Switch to not address SLV mode ; Own SLA will be recognized ; A START will be transmitted when the bus becomes free . (STA,STO,SI,AA)=(1,0,0,0) Switch to not addressed SLV mode ; No recognition of own SLA ; A START will be transmitted when the becomes free. (STA,STO,SI,AA)=(0,0,0,1) Switch to not addressed SLV mode ; Own SLA will be recognized. (STA,STO,SI,AA)=(0,0,0,0) Switch to not addressed SLV mode ; No recognition of own SLA . Enter NAslave Send a START when bus becomes free To Master Mode (C) 图 16-7:GC 模式 - 96 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 17 SPI 17.1 概述 W79E22X 系列 有支持高速串行通信的SPI模块, 有能力提供速率5 Mbit/s 的数据传送速度, SPI有以 下特性: • • • • • • • 主机和从机模式 从机输出选择 可编程的串口时钟极性和相位 双接收缓冲数据寄存器 LSB 优先使能 写冲突检测 传输完成中断 17.2 模块描述 下面的图表是SPI模块图表,展示了SPI的体系结构。SPI寄存器板块是SPI模块的主要组成部分,包括逻 辑控制,波特率控制和管脚逻辑控制: a. 移位寄存器和读出数据缓冲器:传送数据是单缓冲器,接收数据是双缓冲器。在传送完成之前 传送的数据不能写入移位装置。当 SPIF=1,用户将不能对移位寄存器进行写操作,用户在对移 位进存器进行写操作之前须将 SPIF 清零。接收逻辑由相应得读数据缓冲器组成,从而使移位装 置保持空闲状态来接受第二个数据。第一个接收到的数据将被传送到读数据缓冲器。 b. SPI 控制板块:该板块提供配置 SPI 设备控制功能,主机或从机,时钟相位和极性,MSB/LSB 访问优先选择和从机输出选择使能。 c. 波特率控制:该功能控制 CPU 时钟的 4 种不同的选择 1/8, 1/32, 1/128 和 1/256. 可以通过选择 SPR [1:0] 位来实现. SPR1 SPR0 分频 波特率 0 0 8 5MHz 0 1 32 1.25MHz 1 0 128 312.50kHz 1 1 256 156.25kHz 表 17-1 SPI 波特率选择(基于 40 MHz 总线时钟) d.SPI 寄存器。有 3 个寄存器支持 SPI 的工作,他们是: • SPI控制寄存器(SPCR) • SPI状态寄存器(SPSR) • SPI数据寄存器 (SPDR) 这些寄存器提供控制状态,数据存储和波特率选择的功能。 详细的关于位的描述可以在SFR部分找到。 当使用SPI上拉模式必须置PUP0位为高。 - 97 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 e.管脚逻辑控制。控制 SPI 管脚的功能。 - 98 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 Internal MCU clock S MSB LSB 8-BIT SHIFT REGISTER MISO M MOSI S READ DATA BUFFER SELECT CLOCK SPR0 SPR1 M PIN CONTROl LOGIC DIVIDER /8, /32, /128, /256 CLOCK LOGIC SPCLK SPI STATUS REGISTER SPI Interrupt Request DRSS SPR0 SPR1 CPHA CPOL MSTR LSBFE SPE SPE SSOE SPIF WCO L SPIOVF MOD F DRSS SPI CONTROL SSOE MSTR SPE MSTR SS SPI CONTROL REGISTER Internal Data Bus 图 17-1: SPI 模块图 - 99 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 17.3 功能描述 17.3.1 主机模式 SPI工作模式可以通过位MSTR配置为主机模式或从机模式,当MSTR=1选择主机模式,当MSTR=0选择 从机模式。在主机模式,只有主机的SPI设备可以开始发送数据。对主机SPDR寄存器的写开始传送。在 SPCLK控制下在MOSI管脚传送数据。在从机设备锁住数据位之前主机将数据在MOSI上放置半个周期。 在数据传输前和传输过程中 SS 必须保持低电平。 1 SPCLK Cycles 2 3 4 5 6 7 8 SPCLK (Output, CPOL=0) MOSI/MISO /SS (output to slave) 2 MSB 6 5 4 3 2 1 1 LSB 4 3 SPIF Master transfer in progress Master writes to SPDR: 1. /SS asserted. 2. During master transmit, data is shifting out through MOSI. During master receive, data is shifting in through MISO. 3. SPIF asserted at the end of transmission. 4. /SS negated. Note: When CPHA = 0, /SS output must go high between successive SPI characters. When CPOL = 0, SPCLK idle low. 图 17-2:主机传输模式 (CPOL = 0, CPHA = 0) - 100 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 1 SPCLK Cycles 2 3 4 5 6 7 8 SPCLK (Output, CPOL=1) MOSI/MISO /SS (output to slave) 2 MSB 6 5 4 3 2 1 1 LSB 4 3 SPIF Master transfer in progress Master writes to SPDR: 1. /SS asserted. 2. During master transmit, data is shifting out through MOSI. During master receive, data is shifting in through MISO. 3. SPIF asserted at the end of transmission. 4. /SS negated. Note: When CPHA = 0, /SS output must go high between successive SPI characters. When CPOL = 1, SPCLK idle high. 图 17-3: 主机传输模式 (CPOL = 1, CPHA = 0) - 101 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 1 2 3 4 5 6 7 8 MSB 6 5 4 3 2 1 LSB SPCLK Cycles SPCLK (Output, CPOL=0) 2 MOSI/MISO 1 /SS (output to slave) 4 3 SPIF Master transfer in progress Master writes to SPDR: 1. /SS asserted. 2. During master transmit, data is shifting out through MOSI. During master receive, data is shifting in through MISO. 3. SPIF asserted at the end of transmission. 4. /SS negated. Note: When CPHA = 1, /SS output can stay low between successive SPI characters. When CPOL = 0, SPCLK idle low. 图 17-4: 主机传输模式(CPOL = 0, CPHA = 1) SPCLK Cycles 1 2 3 4 5 6 7 8 MSB 6 5 4 3 2 1 LSB SPCLK (Output, CPOL=1) MOSI/MISO /SS (output to slave) 2 1 4 3 SPIF Master transfer in progress Master writes to SPDR: 1. /SS asserted. 2. During master transmit, data is shifting out through MOSI. During master receive, data is shifting in through MISO. 3. SPIF asserted at the end of transmission. 4. /SS negated. Note: When CPHA = 1, /SS output can stay low between successive SPI characters. When CPOL = 1, SPCLK idle high. - 102 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 图 17-5: 主机传输模式(CPOL = 1, CPHA = 1) 17.3.2 从机模式 当作为从机模式时,SPCLK管脚变为输入,它将被另外一个主机的SPI设备控制, SS 管脚也变为输 入,同样的,在数据传输完成前保持低电平状态。如果 SS 变为高电平,SPI将被迫进入闲置状态。如果 SS 管脚在传输的过程中被置高,那么传输将被取消,同时接受数据的BUFFE也将进入闲置状态。 数据在MOSI管脚从主机向从机流动,在MISO管脚从从机向主机流动。当在串行总线上传送或接收数据 时用SPDR,只有对该寄存器的写可以开始传送或接收一位,并且只发生在主机设备。在一个数据位传 送完成之后,主机和从机的SPIF位都置位. 对SPDR的读实际上就是对缓冲器的读。为了防止缓冲器溢出和由于溢出导致的数据丢失,SPIF必须在 数据第二次从移位寄存器向读缓冲器传送前清零。 1 SPCLK Cycles 2 3 4 5 6 7 8 SPCLK (Input, CPOL=0) MOSI/MISO /SS (input) 2 MSB 6 5 4 3 2 1 LSB 1 4 SPIF 3 Slave transfer in progress Slave writes to SPDR: 1. /SS asserted. 2. During slave transmit, data is shifting out through MISO. During slave receive, data is shifting in through MOSI. 3. SPIF asserted at the end of transmission. 4. /SS negated. Note: When CPHA = 0, /SS input must go high between successive SPI characters. When CPOL = 0, SPCLK idle low. 图 17-6: 从机传输模式 (CPOL = 0, CPHA = 0) - 103 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 1 SPCLK Cycles 2 3 4 5 6 7 8 SPCLK (Input, CPOL=1) MOSI/MISO 2 MSB 6 5 4 3 2 1 LSB 1 4 SPIF 3 Slave transfer in progress Slave writes to SPDR: 1. /SS asserted. 2. During slave transmit, data is shifting out through MISO. During slave receive, data is shifting in through MOSI. 3. SPIF asserted at the end of transmission. 4. /SS negated. Note: When CPHA = 0, /SS input must go high between successive SPI characters. When CPOL = 1, SPCLK idle high. 图 17-7: 从机传输模式(CPOL = 1, CPHA = 0) SPCLK Cycles 1 2 3 4 5 6 7 8 MSB 6 5 4 3 2 1 LSB SPCLK (Input, CPOL=0) MOSI/MISO /SS (input) 2 1 4 SPIF 3 Slave transfer in progress Slave writes to SPDR: 1. /SS asserted. 2. During slave transmit, data is shifting out through MISO. During slave receive, data is shifting in through MOSI. 3. SPIF asserted at the end of transmission. 4. /SS negated. Note: When CPHA = 1, /SS input can stay low between successive SPI characters. When CPOL = 0, SPCLK idle low. 图 17-8: 从机传输模式(CPOL = 0, CPHA = 1) - 104 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 SPCLK Cycles 1 2 3 4 5 6 7 8 MSB 6 5 4 3 2 1 LSB SPCLK (Input, CPOL=1) MOSI/MISO /SS (input) 2 1 4 SPIF 3 Slave transfer in progress Slave writes to SPDR: 1. /SS asserted. 2. During slave transmit, data is shifting out through MISO. During slave receive, data is shifting in through MOSI. 3. SPIF asserted at the end of transmission. 4. /SS negated. Note: When CPHA = 1, /SS input can stay low between successive SPI characters. When CPOL = 1, SPCLK idle high. 图 17-9: 从机传输模式(CPOL = 1, CPHA = 1) 17.3.3 从机选择 在主机设备能够和从机设备交换数据之前,从机选择( SS )输入设备必须确定。从机 SS 在数据传输前 和数据传输中必须保持低电平。主机 SS 必须保持高电平。无论外围串行设备是否工作,其他三个管脚 都用于SPI。主机和从机CPHA的状态影响 SS 的工作,主机和从机CPHA的设定需要一样。当CPHA = 0 ,移位时钟是 SS 的 OR 。在这种时钟相位模式中, SS 在一个 SPI 信息的连续的字符之间必须为高电 平。当CPHA = 1, SS 在连续的SPI字符之间可以为低。在仅有一个SPI从机的情况下,只有在CPHA=1 的时钟模式中,它的 SS 可以和VSS连接在一起。 17.3.4 /SS 输出使能 只能在主机模式中使用,SPCR寄存器中的位SSOE可以使能 SS 输出。 SS 输出管脚和丛机的 SS 输入 管脚连接在一起。当选择外部设备时 SS 输出在每次发送时自动为低电平,在闲置状态取消选定外部设 备时变为高电平。 DRSS SSOE 主机模式 0 0 SS 输入(模式故障)。详见SPI I/O模式部 分 SS 输入(不被SSOE影响) 0 1 保留 SS 输入(不被SSOE影响) 1 0 SS 通用I/O (无模式故障) SS 输入(不被SSOE影响) 从机模式 - 105 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 1 1 SS 输出(无模式故障) SS 输入(不被SSOE影响) 在主机模式时(SSOE=DRSS= 0),如果 SS 侦测到低电平模式故障将被设置。当侦测到模式故障,硬件 将会清除MSTR位和SPE位,在此期间如果ESPI=1将产生中断请求。 SPIF SPIOVF SS MODF ESPI EA MSTR SSOE DRSS SPI interrupt request 图 17-10: SPI 中断请求 - 106 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 17.3.5 SPI I/O 管脚模式 当SPI禁止(SPE = 0) ,相应的I/O将随端口模式设置(SFR P2M1 & P2M2)决定。当SPI使能(SPE = 1), SPI管脚I/O由遵循下面表格。无论配置为主机还是从机, SS 管脚总是准双向模式。 MISO MOSI CLK 主机 输入 输出 输出 从机 当 SS = 0输出[2] 输入 输入 否则为输入模式 SS 输出[1]: DRSS=0,SSOE=0 输入: DRSS=1, SSOE=1 输入 输入 = 准双向模式,输出= 推挽模式 输出[1] = SS 的这种输出模式是准双向输出模式。当主机输出 SS 为低时主机需要侦测模式故障。 输出[2] = 在从机模式,MISO只有在 SS =0时是输出模式。 其他情况必须为输入模式(准双向)。 17.3.6 可编程串行时钟的相位和极性 时钟极性控制位CPOL选择为高或是低对传送格式没有太大的影响。通过采样SCK边缘上奇数数据或偶 数数据的数目,时钟相位控制位CPHA选择两种不同的传送协议中的一种,因此这两位可以选择SPI系统 的4种不同的时钟形式。 主机SPI设备和正在通信的从机设备的时钟的极性和相位必须保持一致。 当CPHA=0。 SS 线在每个连续的串行字节之间必须取消和重新确定。当 SS 为低时如果从机向SPI数据 寄存器SPDR写数据,结果会是写冲突错误。当CPHA=1, SS 在连续传输之间保持低电平。 - 107 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 1 SPCLK Cycles 2 3 4 5 6 7 8 SPCLK (Output, CPOL=0) MOSI/MISO 2 MSB 6 5 4 3 2 1 LSB 1 /SS (output to slave) 4 3 SPIF Master transfer in progress Master writes to SPDR: 1. /SS asserted. 2. During master transmit, data is shifting out through MOSI. During master receive, data is shifting in through MISO. 3. SPIF asserted at the end of transmission. 4. /SS negated. Note: When CPHA = 0, /SS output must go high between successive SPI characters. When CPOL = 0, SPCLK idle low. 图 17-2 SPCLK Cycles 1 2 3 4 5 6 7 8 MSB 6 5 4 3 2 1 LSB SPCLK (Input, CPOL=1) MOSI/MISO /SS (input) 2 1 4 SPIF 3 Slave transfer in progress Slave writes to SPDR: 1. /SS asserted. 2. During slave transmit, data is shifting out through MISO. During slave receive, data is shifting in through MOSI. 3. SPIF asserted at the end of transmission. 4. /SS negated. Note: When CPHA = 1, /SS input can stay low between successive SPI characters. When CPOL = 1, SPCLK idle high. 图 18-9 - 108 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 图 17-9如上图所示,不同的CPOL和CPHA设置下SPI的传输格式。当CPHA = 0,数据是SPCLK第一个 边缘上采样的样品,当CPHA=1时,数据是SPCLK第二个边缘上采样的样品。在改变CPOL设置之前, SPE必 须首先禁止。 17.3.7 双接收缓冲数据寄存器 发送方向是单缓冲器,接收方向是双缓冲器,这意味着新的需要传送的数据在之前的数据传送完成之前 不能写进移位装置;但是接收到的数据被传送到了一个相同的数据缓冲器,这样移位装置就是空闲的, 可以接收第二个串行字节。在下一个字节准备好传送之前,第一个字节已经从读数据缓冲器中读出,缓 冲区溢出情况不会发生。如果缓冲区溢出发生,SPIOVF置位,在缓冲区溢出期间,第二个字节的串行 数据不能成功的传送到数据寄存器,数据寄存器将保持之前接收到的字节的值。 - 109 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 Data (N) Receiving SPI Shift Register Data (N+1) Receiving Data (N) Progressing Data (N+2) Receiveing Data (N+1) Progressing Data (N+2) Progressing SPIF SPI Data Register Data (N) Data (N) Data (N+2) SPIOVF When Data (N) is received, the SPIF will be set. If SPIF is not clear, the SPIOVF will be set, Data (N) will be kept. The Data (N+1) will be lost. To clear this bit by software. When Data (N+2) is received, the SPIF will be set. The SPI receive data timing waveform 图 17-11: SPI 适时溢出波形 17.3.8 LSB 优先使能 在默认情况在,SPI设备首先传送最高有效位。该设备提供一个控制位LSBFE允许SPI首先传送最低有效 位。 17.3.9 写冲突检测 写冲突检测显示当正在进行一次传送时,设备正在试图写数据到SPDR。SPDR在传送方不是双缓冲器, 对 SPDR 的写被直接写进 SPI 移位寄存器,如果这种写在转移过程中被误用,将发生一个写冲突错误 (WCOL将被置位)。如果转移连续稳定没有受到干扰,那么导致错误的写数据是没有写进移位装置。一 次写冲突通常是一个从机错误,原因是当主机开始一次传送时主机知道传送正在进行,所以主机没有理 由产生写冲突错误,尽管SPI逻辑可以在主机和从机之间进行写冲突检测。 17.3.10 发送完成中断 这个设备由中断标志( SPIF )组成。在数据传送完成之后或者当一个新的数据已经收到并且复制到 SPDR中,这个标志将由外围设备置位。如果中断使能(设定ESPI),将产生SPI中断请求。 SPIF 由软 件清除。 17.3.11 模式故障 当多个SPI设备同时想作为主机时错误出现在多主机系统,这种错误叫模式故障。 当SPI系统被配置为一个主机, SS 输入线为低电平,一个模式故障已经发生---通常是因为两个设备同时 想作为主机。一旦有多个设备同时配置为主机,将会有机会出现在两个管脚驱动之间争夺。在推挽 CMOS驱动,这种争夺将导致永久性损伤。模式故障试图通过禁止驱动来保护设备,SPCR 中的控制位 MSTR 和 SPE 被清除,服从于ESPI 控制位产生一个中断。 其他预防需要防止驱动器损坏。如果两个设备同时被用作主机,模式故障不能保护任何一个除非其中一 个选择另外一个为从机。设备损坏的程度取决于两个设备试图作为主机的时间。 MODF位由SPI硬件自动置位。如果MSTR控制位置位,从机选择输入变为0,这种条件在通常运行的情 - 110 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 况下不被允许。在 SS 置位的情况下,对SPI系统来说它是一个输出管脚。在这种特殊情况下,模式故 障功能是内向的,MODF保持0状态。该标志位由软件清除。 下图表示多个主机/从机硬件取样口。 MASTER/SLAVE MMCU1 MASTER/SLAVE MMCU2 MISO MISO MOSI SCK /SS /SS 0 1 2 3 SLAVE MCU 0 SLAVE MCU 1 I/O PORT MISO MOSI /SS SCK MISO MOSI /SS SCK MISO MOSI /SS 0 1 2 3 SCK I/O PORT MOSI SCK SLAVE MCU 2 图 17-12: SPI 多主机/从机环境 - 111 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 MMCU1/2 Start A Configuration (master); MSTR = 1, SPE = 1 SSOE = 0, DRSS = 0 S/w should configure SPR0-1, CPHA, CPOL, LSBFE accordingly. N SPI intr? Y Mode fault detected Y MODF? N Configure P0[3:0] to Fh (input). SPIF Y N Missing data. S/W should take appropriate actions here. SPIOVF N Read SPDR Clear M ODF flag Clear SPIF flag Eg. Checking /SS line. N Y SPI overflow Read SPDR Missing data. S/W should take appropriate actions here. Clear SPIF & SPIOVF flag OK to reconfigure? Y A N Send data? Y W rite SPDR 图 17-13: SPI 多主机/从机 s/w 流程图 - 112 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 18 模拟数字转换器 ADC包含有DAC、比较器、逐次比较寄存器和逐次比较控制器。DAC是把逐次比较寄存器的内容转换成 电压(VDAC) ;比较器是把模拟输入电压 (Vin)和(VDAC)相比较并回馈到逐次比较控制器。 MSB DAC Successive Approximation Register Successive Approximation Control Logic LSB Start Ready (Stop) Comparator V DAC Vin + 图 18-1逐次逼近式ADC 18.1 ADC 操作 ADCS 可以只有软件置位也可以由硬件或软件置位。当ADCCON.5 (ADCEX) =0时,是软件开始模式, 把控制位ADCCON.3 (ADCS)置‘1’即可以开始ADC转换。当ADCCON.5 =1时,是软件或硬件开始模 式, ADCCON.3 (ADCS)置‘1’或STADC (P4.0)上的有效上升沿开始ADC转换。当使用STADC (P4.0)上 的有效上升沿开始ADC转换时低电平至少保持一个机器周期,之后的高电平也至少保持一个机器周期。 转换结果的 高8 位放在特殊功能寄存器ADCH, 剩下的两位存放在ADCL.1 (ADC.1) 和ADCL.0 (ADC.0). 用户可以忽略ADCCON中的最低两位,作为8-位的ADC使用 (高8位存放在ADCH中)。在任何情况下, 总的转换时间共有50个ADC输入时钟周期。 控制位ADCCON.0~ADCCON.2 被用作8选1多路模拟开关控制。ADC转换步骤不受外部或软件开始转换 的影响。转换结束的结果也不会影响若ADCI = 逻辑1;ADC在转换过程中系统将不能进入空闲或掉电模 式。转换结束结果 (ADCI = 逻辑 1) 仍然不影响空闲模式。 P1.0 到 P1.7 作为8路模拟输入端口. 可通过设定寄存器(DDIO) 为 高实现这8位为 ADC 输入引脚 。 - 113 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 ADC Conversion Block ADCPS ADCCH.0 ADCCH.1 ADCCH.2 ADCCH.3 ADCCH.4 ADCCH.5 ADCCH.6 ADCCH.7 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 Vref+ Analog Input Multiplexer AADR[2:0] 0 ADCS ADC.0 | ADC.9 Enable ADC ADCEN ADCS Start Conversion 1 P4.0 AVDD 10-bits ADC Block ADCI ADCEX Fosc/4 Fosc/8 Fosc/16 Reserved 00 01 10 11 ADC Clock Input ADCCLK[1:0] AVSS 图 18-2: ADC 框图 18.2 ADC 的分辨率和仿真电源 ADC有自己的电源输入脚 (AVDD and AVSS )和一个参考电压输入脚(Vref+) 连接到DAC的各自电阻阶梯 网络。该阶梯网络由电阻分成1023个相等的阶梯;第一个阶梯是AVss上的0.5XR,最后一个阶梯是 Vref+下的0.5XR。总共有1024XR电阻阶梯。该结构确定DAC的单调变化并误差均匀。 输入电压在AVss和[(Vref+) + ½ LSB]之间,10-位ADC结果会是00 0000 0000 b = 000H;输入电压在 [(Vref+) – 3/2 LSB]和Vref+之间,10-位ADC结果会是11 1111 1111B = 3FFH。AVref+和AVSS可以在 AVDD + 0.2V和AVSS – 0.2 V之间。Avref+应该是比AVSS的电位高,并且输入电压(Vin)应该在AVref+ 和AVSS之间。 下面是计算结果方程式: Result = 1024 × Vin AVref + or Result = 1024 × V DD V SS - 114 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 19 控访问保护 W79E22X 系列 有一个新的特性,如看门狗定时器,这些对系统的正常运行来说非常的重要。如果不加 以保护,无关代码可能会改写看门狗定时器的相应位,而使系统工作不正常或失控。为了保护这些位, W79E22X 系列 提供了一种保护机制,来控制对这些位的写操作。这种保护是通过时控访问来实现的。 在这种方式下,对被保护的位的访问是受时间限制的。要对他进行写操作,那么时控窗口必须打开,否 则写操作无效。当条件满足时,时控窗口开放3个机器周期。在3个机器周期过后,时控窗口自动关闭。 要打开时控窗口,必须先向TA寄存器写入AAH,再写入55H。TA寄存器的地址是C7H,下面列出对时控 寄存器进行访问的推荐代码: TA REG 0C7h MOV TA, #0AAh MOV TA, #055h ;定义位于C7H处的新寄存器TA 当软件向TA写入AAh后,计数器开始计数,计数器会等待3个机器周期来接受55h;如果在3个机器周期内 接收到了55h,那么时控窗口被打开。时控窗口开放3个机器周期,期间用户可以对被保护的位进行读写。 一旦时控窗口关闭,那么要重复上述过程来访问被保护的位。 时控访问的例子: 例1:有效访问 MOV MOV MOV TA, #0AAh TA, #055h WDCON, #00h ; 3 M/C ; 注: M/C =机器周期 ; 3 M/C ; 3 M/C 例2:有效访问 MOV TA, #0AAh MOV TA, #055h NOP SETB EWT ; 3 M/C ; 3 M/C ; 1 M/C ; 2 M/C 例3:有效访问 MOV MOV ORL TA, #0Aah ; 3 M/C TA, #055h ; 3 M/C WDCON, #00000010B ; 3M/C MOV MOV NOP NOP CLR TA, #0AAh TA, #055h 例4:无效访问 POR ; 3 M/C ; 3 M/C ; 1 M/C ; 1 M/C ; 2 M/C - 115 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 例5:无效访问 MOV TA, #0AAh 3 M/C NOP 1 M/C MOV TA, #055h 3 M/C SETB EWT 2 M/C 在前2个例子中,对被保护位的写是在3个机器周期以内完成的。例3中对保护位的写操作是在时控窗口 关闭后进行的,此时不会对被保护的位产生效果。 例4中是在第4个机器周期对被保护位进行写操作,因 此写操作根本无效。 20 端口4结构 端口4是一个多功能的端口,有通用的I/O功能和读写片选信号的功能。通过设置P4xM1和P4xM0可以选 择4种不同的模式。片选功能让用户可以激活外部设备。 端口4 控制寄存器 A 位: 7 6 5 4 3 2 1 0 P41M1 P41M0 P41C1 P41C0 P40M1 P40M0 P40C1 P40C0 助记符: P4CONA 地址: 92h 端口 4 控制寄存器 B 位: 7 6 5 4 3 2 1 0 P43M1 P43M0 P43C1 P43C0 P42M1 P42M0 P42C1 P42C0 助记符: P4CONB 地址: 93h 位 名称 功能 P4xM1, P4xM0 端口4 之功能:. =00: 模式 0. P4.x 与端口1 功能相同的I/O口。 =01: 模式 1. P4.x 是片选时用的读信号。地址范围取决于P4xAH, P4xAL 以及 P4xC1, P4xC0位。 =10: 模式 2. P4.x 片选时用的写信号。地址范围取决于P4xAH, P4xAL 以及 P4xC1, P4xC0位。 =11: 模式 3. P4.x 是片选时用的读/写信号。地址范围取决于P4xAH, P4xAL 以及 P4xC1, P4xC0位。 P4xC1, P4xC0 端口4 片选模式地址比较: =00: 与基址寄存器P4Xah和 P4xAL进行16位(A15-A0)地址比较 =01: 与基址寄存器P4xAH和 P4xAL进行15位(A15-A1)地址比较 =10: 与基址寄存器P4xAH和 P4xAL进行14位(A15-A2)地址比较 =11: 与基址寄存器P4xAH和 P4xAL进行 8位(A15-A8)地址比较 P40AH, P40AL: - 116 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 比较器P4.0的基地址寄存器,P40AH包含高字节地址,P40AL包含低字节地址。 P41AH,P41AL: 比较器P4.1的基地址寄存器,P41AH包含高字节地址,P41AL包含低字节地址。 P42AH, P42AL: 比较器P4.2的基地址寄存器,P42AH包含高字节地址,P42AL包含低字节地址。 P43AH, P43AL: 比较器P4.3的基地址寄存器,P43AH包含高字节地址,P43AL包含低字节地址。 端口 4 位: 7 6 5 4 3 2 1 0 - - - - P4.3 P4.2 P4.1 P4.0 助记符: P4 地址: A5h P4.3-0 端口4是一个带内部上拉的双向I/O口. 端口4片选极性 位: 7 6 5 4 3 2 1 0 P43INV P42INV P42INV P40INV - PWDNH RMWFP PUP0 助记符: P4CSIN P4xINV 地址: A2h P4.x 做片选信号时的有效极性 1 = 高电平有效 0 = 低电平有效 PWDNH 设置 ALE 和 PSEN 在掉电模式下的状态。 1: ALE 和 PSEN 在掉电模式下输出逻辑高电平。 0: ALE 和 PSEN 在掉电模式下输出逻辑低电平。 RMWFP 控制“读-修改-写”指令读入的通道。当该位置位以后,“读-修改-写”指令读入通道是从端口的 管脚而不是特殊功能寄存器。 PUP0 使能端口0内部的弱上拉。 - 117 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 P4xCSINV P4 REGISTER DATA I/O P4.x RD_CS MUX 4->1 WR_CS READ WRITE RD/WR_CS PIN P4.x ADDRESS BUS P4xM0 P4xM1 EQUAL REGISTER P4xAL P4xAH Bit Length Selectable comparator P4.x INPUT DATA BUS REGISTER P4xC0 P4xC1 图 21-1 端口 4 结构图表 下面是一个将P4.0作为地址1234H ~1237H 写选通信号的例子P4.1 ~ P4.3作为通用I/O。 MOV P40AH, #12H MOV P40AL, #34H ; Define the base I/O address 1234H for P4.0 as an special function MOV P4CONA, #00001010B ; Define the P4.0 as a write strobe signal pin and the compared address is [A15:A2] MOV P4CONB, #00H ; P4.1~P4.3 as general I/O port which are the same as PORT1 MOV P4CSIN, #10H ; Write the P40CSINV =1 to inverse the P4.0 write strobe polarity 如果有指令向1234H-1237H写数据,比如MOVX @DPTR,A (DPTR=1234H~1237H),在P4.0将会输出正 极性写选通信号,并且指令“MOV P4,#XX”将会把数据#XX的第一位到第三位送到P4.3~ P4.1。 - 118 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 21 在线编程 (ISP) 21.1 位于LDFash中的装载程序 CPU一般运行APFlash中的程序,当CPU进入空闲模式前,将03H写入CHPCON,那么CPU在进入空闲 模式后会切换至LDFlash并执行一个复位操作。H/W重启模式同样会将CPU切换至LDFlash中。将 SFRCN置位将使用户的更新程序来更新APFlash中0区和1区的内容。将SWRESET置位,系统将在更新 后回到APFlash中执行程序。CPU在复位后重新开始程序的执行。 21.2 位于APFash中的装载程序 CPU一般运行APFlash中的程序,当CPU进入空闲模式前,将01H写入CHPCON,将SFRCN置位将使 用户的更新程序来更新LDFlash 或另一个APFlash区的内容。在CPU更新完程序以后,CPU将继续运行 用户APFlash中的程序。 22 配置位 W79E22X 系列 有2个配置位(CONFIG1,CONFIG2),这2个配置位必须在上电之前设置,一旦程序开 始执行就不能改了。这些特性是通过2个flash EPROM 字节来完成配置,这2个flash EPROM可以编程和 校验。在代码编程结束后,代码可以加密。 22.1 配置 0 位 描 述 B0 =0: 锁止 B1 =0: MOVC 禁止 B2 保留 B3 保留 B4 =1: 禁止 P3.6 和 P3.7进入H/W重启模式 =0: 允许 P3.6 和 P3.7进入H/W重启模式 B5 =1: 禁止 P4.3进入H/W重启模式 =0: 允许 P4.3进入H/W重启模式 B6 保留 B7 =1: 晶振 > 24MHz =0: 晶振< 24MHz 表 22-1 Config0 选择位 B0: 锁止位 此位是用来保护用户在W79E22X 系列 中的程序代码。在完成编程和校验操作后,设置此位。一旦该位 设置为0,就无法再对Flash EPROM的数据和特殊设置寄存器进行访问。 B1: MOVC 禁止 - 119 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 此位用来限制MOVC指令的可访问区域。它可防止外部程序存储器的MOVC指令读取内部程序代码。当 此位被设置为0,外部程序存储器的MOVC 指令只可以访问外部存储器代码,而不能访问内部存储器。 内部程序存储器的 MOVC 指令可以访问内部和外部存储器中的 ROM 数据。如果此位设置为 1 ,则对 MOVC指令没有限制。 B4:用 P3.6 和 P3.7进入H/W重启模式 如果该位为0那么当RST=1,且P3.6=0,P3.7=0时系统进入4K LDFLASH中,系统进入LDFlash来更新 用户程序。 B5: 用 P4.3 进入H/W重启模式 如果该位为0那么当RST=1,且P4.3=0时系统进入4K LDFLASH中,系统进入LDFlash来更新用户程序 B7: 时钟频率选择位. 时钟频率高于24MHz置高该位,否则置底。 22.2 配置 1 位 名称 功能 Bit0 PWMOE PWM奇数 1, 3 ,5,使能. 1: 禁止 (输出). 0: 使能PWM相应的引脚输出. Bit1 PWMEE PWM奇数 0, 2 ,4,使能. 1: 禁止 (默认). 0: 使能PWM相应的引脚输出. Bit2 OPOL 系统复位后定义PWM 的输出极性, OPOL controls odd PWM outputs. 1: 初始化输出高 0: 初始化输出底 Bit3 EPOL 系统复位后定义PWM 的输出极性, EPOL control even PWM outputs. 1: 初始化输出高 0: 初始化输出底 Bit 4-5 - 保留 Bit 6 PWM6E PWM通道 6 输出 使能. 1: 禁止 (默认). 0: 使能PWM相应的引脚输出. Bit 7 PWM7E PWM通道 7 输出 使能. 1: 禁止 (默认). 0: 使能PWM相应的引脚输出. 表 22-2: Config 1 选择位 23 特殊功能寄存器细部列表描述 - 120 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 端口0; 位 7 6 5 4 3 2 1 0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 助记符: P0 地址: 80h 端口0是一个8位,双向I/O口,.作为一个复用I/0口P0可以作为外部数据/程序存储器的地址/数据总线。 当ALE输出信号为高时,总线上是地址信号,当ALE是低时,总线上棉的双向的数据信号。 这个总线可 以读取外部的ROM也可以读写外部的RAM。复位时P0口是一个三态门,当P0口作为I/O口用时必须接上 拉电阻。 位 名称 功能 0 P0.0 MISO: SPI 主 收 从发 1 P0.1 MOSI: SPI主发从收. 2 P0.2 SPCLK: SPI 时钟 3 P0.3 /SS: 从机选择 4 P0.4 INT2:外部中断2 5 P0.5 INT3: 外部中断3. 6 P0.6 INT4: 外部中断4. 7 P0.7 INT5: 外部中断5. 堆栈指针 位: 7 6 5 4 3 2 1 0 SP.7 SP.6 SP.5 SP.4 SP.3 SP.2 SP.1 SP.0 助记符: SP 地址: 81h 堆栈指针存储暂存RAM中堆栈的起始地址,就是说他总指向栈顶。 数据指针低字节 位: 7 6 5 4 3 2 1 0 DPL.7 DPL.6 DPL.5 DPL.4 DPL.3 DPL.2 DPL.1 DPL.0 助记符: DPL 地址: 82h 标准8052中16位数据指针的低字节 数据指针高字节 位: 7 6 5 4 3 2 1 0 DPH.7 DPH.6 DPH.5 DPH.4 DPH.3 DPH.2 DPH.1 DPH.0 地址: 83h 助记符:DPH 标准8052中16位数据指针的高字节 . 定时器3低字节 - 121 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 位: 7 6 5 4 3 2 1 0 TL3.7 TL3.6 TL3.5 TL3.4 TL3.3 TL3.2 TL3.1 TL3.0 助记符: TL3 地址: 84h 位 名称 功能 7-0 定时器3LSB 定时器3LSB 定时器3高字节 位: 7 6 5 4 3 2 1 0 TH3.7 TH3.6 TH3.5 TH3.4 TH3.3 TH3.2 TH3.1 TH3.0 助记符: TH3 地址: 85h 位 名称 功能 7-0 定时器3MSB 定时器3MSB 电源控制: 位: 7 6 5 4 3 2 1 0 SMOD SMOD0 - - GF1 GF0 PD IDL 地址: 87h 助记符:PCON 位 名称 功能 7 SMOD 该位置1时,会使串行口在模式1,2,3下的波特率加倍 6 SMOD0 贞错误检测使能:该位置1时,SCON.7表示一个贞错误它是FE(贞错误)标志。 当该位0,SCON.7的功能与标准8052中SCON.7相同。 5-4 - 保留 3-2 GF1-0 这2位是通用的标志位。 1 PD 将该位置 1 ,系统进入掉电模式;该模式下,所有时钟停止工作,程序也不再执 行。 0 IDL 将该位置 1 ,系统进入空闲模式;该模式下, CPU 的时钟停止工作,程序停止运 行;但串口、定时器、PWM, ADC, SPI和中断的时钟没有停止,这些功能模块仍 正常运行。 定时器控制: 位: 7 6 5 4 3 2 1 0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 地址: 88h 助记符:TCON 位 名称 功能 7 TF1 定时器1溢出标志;在定时器1溢出时该位置1。当程序响应定时器1中断执行相应 - 122 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 的中断服务程序时,该位自动清0。软件也可对该位置位或清零。 6 TR1 定时器1启动控制:该位由软件来置位或清零来启动或关闭定时器。 5 TF0 定时器0溢出标志;在定时器1溢出时该位置1。当程序响应定时器0中断执行相应 的中断服务程序时,该位自动清0。软件也可对该位置位或清零。 4 TR0 定时器0启动控制:该位由软件来置位或清零来启动或关闭定时器。 3 IE1 外部中断1标志;当 INT1 上出现电平跳变时由硬件置1;若被设置为下沿触发并导 致中断转跳的话,会自动清除为0,否则完全根据外部中断。 2 IT1 外部中断1触发方式控制;1:低电平边沿触发; 0:低电平触发 1 IE0 外部中断0标志;当 INT0 上出现电平跳变时由硬件置1;若被设置为下沿触发并导 致中断转跳的话,会自动清除为0,否则完全根据外部中断。 0 IT0 外部中断0触发方式控制;外部下降沿或者低电平触发的时候由软件控制是置位还 是清除。 定时器模式控制: 位: 7 6 5 4 3 2 1 0 GATE C/ T M1 M0 GATE C/ T M1 M0 TIMER1 TIMER0 助记符: TMOD 地址: 89h 功能 位 名称 7 GATE 门控位为1时, 定时器/计数器 1 的运行除受TRx控制外还受INT1控制,当TR1和INT1均 为1时定时器/计数器开始运行。该位为0时,定时器的运行只受TR1的控制 6 C/ T 定时器/计数器工作方式选择:为0时以定时器的方式运行;为1时对TX脚上的高到低电 平变化进行计数 5 M1 模式选择位 4 M0 模式选择位 3 GATE 门控位为1时, 定时器/计数器 0 的运行除受TR0控制外还受INT0控制,当TR0和INT0 均 为1时定时器/计数器开始运行。该位为0时,定时器的运行只受TR0的控制 2 C/ T 定时器/计数器工作方式选择:为0时以定时器的方式运行;为1时对TX脚上的高到低电 平变化进行计数 1 M1 模式选择位 1 0 M0 模式选择位 0 M1, M0: Mode模式选择位: M1 M0 模式 - 123 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 0 0 模式 0: 8-位定时器,有5位的预分频。 0 1 模式 1: 16-位定时器,没有预分频。 1 0 模式 2: 8位从THx中自动重装定时器 1 1 模式3: (仅适用于T0 )TL0是受定时器0 控制的8位定时器/计数器。 TH0 是受定 时器1控制的8位定时器/计数器。定时器1在此方式下不工作。 定时器0低字节 位: 7 6 5 4 3 2 1 0 TL0.7 TL0.6 TL0.5 TL0.4 TL0.3 TL0.2 TL0.1 TL0.0 助记符: TL0 地址: 8Ah TL0.7-0 定时器 0低字节 定时器1低字节 位: 7 6 5 4 3 2 1 0 TL1.7 TL1.6 TL1.5 TL1.4 TL1.3 TL1.2 TL1.1 TL1.0 地址: 8Bh 助记符:TL1 TL1.7-0 定时器 1低字节 定时器 0高字节 位: 7 6 5 4 3 2 1 0 TH0.7 TH0.6 TH0.5 TH0.4 TH0.3 TH0.2 TH0.1 TH0.0 助记符: TH0 地址: 8Ch TH0.7-0 定时器 0高字节 定时器 1高字节 位: 7 6 5 4 3 2 1 0 TH1.7 TH1.6 TH1.5 TH1.4 TH1.3 TH1.2 TH1.1 TH1.0 地址: 8Dh 助记符:TH1 TH1.7-0 定时器 1高字节 时钟控制 位: 7 6 5 4 3 2 1 0 WD1 WD0 T2M T1M T0M MD2 MD1 MD0 地址: 8Eh 助记符:CKCON 位 名称 功能 7 WD1 看门狗定时器模式选择位1 6 WD0 看门狗定时器模式选择位0. - 124 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 定时器2时钟选择: 5 T2M 0: 定时器2的时钟选择为1/12系统时钟。 1: 定时器2的时钟选择为1/4系统时钟。 定时器1时钟选择: 4 T1M 0: 定时器1的时钟选择为1/12系统时钟。 1: 定时器1的时钟选择为1/4系统时钟。 定时器0时钟选择: 3 T0M 0: 定时器0的时钟选择为1/12系统时钟。 1: 定时器0的时钟选择为1/4系统时钟。 MOVX选择 位2: 2 MD2 MD2, MD1, and MD0 可以选择扩展的MOVX指令 默认值为1 (注: 当访问片上SRAM, 这一位将不起作用, MOVX 指令 一直是2个机器周期) 1 MD1 MOVX 选择 位1. 0 MD0 MOVX选择位 0. WD1, WD0: 看门狗定时器模式选择位: 这些位决定看门狗定时器的溢出时间。对4个溢出时间选项来说,系统复位时间是看门狗定时器溢出后 +512个时钟。 WD1 0 WD0 0 INTERRUPT TIME-OUT 217 20 0 1 2 1 0 223 1 1 226 MD2, MD1, MD0: MOVX模式选择位: MD2 MD1 MD0 0 0 0 RESET TIME-OUT 17 + 512 20 + 512 23 + 512 26 + 512 2 2 2 2 STRETCH VALUE 0 MOVX DURATION 2个机器周期 0 0 1 1 3个机器周期(默认) 0 1 0 2 4个机器周期 0 1 1 3 5个机器周期 1 0 0 4 6个机器周期 1 0 1 5 7个机器周期 1 1 0 6 8个机器周期 1 1 1 7 9个机器周期 时钟控制位1 - 125 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 位: 7 6 5 4 3 2 1 0 - - - - - - CCDIV1 CCDIV0 助记符: CKCON1 地址: 8Fh 位 名称 功能 7-2 - 保留 1-0 CCDIV 定时器3时钟选择. CCDIV1 CCDIV0 定时器3时钟 0 0 Fosc 0 1 Fosc/4 1 0 Fosc/16 1 1 Fosc/32 端口1 位: 7 6 5 4 3 2 1 0 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 助记符: P1 地址: 90h 位 名称 功能 7-0 P1 通用 I/O 口. 大多数指令可以对这个端口进行读操作,在读-修改-写的指令中可以 读出端口信息,管脚复用功能如下: 复用功能 1 复用功能 2 P1.0 T2: 定时器/计数器2 ADC0: 模拟输入0 P1.1 PWM 使能 ADC1: 模拟输入1 P1.2 RXD1 ADC2: 模拟输入2 P1.3 TXD1 ADC3: 模拟输入3 P1.4 ADC4: 模拟输入4 P1.5 ADC5: 模拟输入5 P1.6 ADC6: 模拟输入6 P1.7 ADC7: 模拟输入7 外部中断标志位 位: 7 6 5 4 3 2 1 0 IE5 IE4 IE3 IE2 - - - - 地址: 91h 助记符:EXIF - 126 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 位 名称 功能 7 IE5 外部中断标志位5,硬件置位当检测到INT5上升沿/下降沿/上升下降沿 6 IE4 外部中断标志位4,硬件置位当检测到INT4上升沿/下降沿/上升下降沿 5 IE3 外部中断标志位3,硬件置位当检测到INT3上升沿/下降沿/上升下降沿 4 IE2 外部中断标志位2,硬件置位当检测到INT2上升沿/下降沿/上升下降沿 3-0 - 保留 端口4控制寄存器A 位: 7 6 5 4 3 2 1 0 P41FUN1 P41FUN0 P41CMP 1 P41CMP 0 P40FUN1 P40FUN0 P40CMP 1 P40CMP 0 助记符: P4CONA 地址: 92h 端口4控制寄存器B 位: 7 6 5 4 3 2 1 0 P43FUN1 P43FUN0 P43CMP 1 P43CMP 0 P42FUN1 P42FUN0 P42CMP 1 P42CMP 0 助记符: P4CONB 地址: 93h 位名称 功能 P4xFUN1, P4xFUN0 端口4 之功能: =00: 模式 0. P4.x 与端口1 功能相同的I/O口。 =01: 模式 1. P4.x 是片选时用的读信号。地址范围取决于P4xAH, P4xAL 以及 P4xCMP1, P4xCMP0 位. =10: 模式 2. P4.x 是片选时用的写信号。地址范围取决于P4xAH, P4xAL 以及 P4xCMP1, P4xCMP0 位. =11: 模式 3. P4.x 是片选时用的读/写信号。 地址范围取决于P4xAH, P4xAL 以及 P4xCMP1, P4xCMP0 位. P4xCMP1, P4xCMP0 端口4 片选模式地址比较: =00: 与基址寄存器P4XAh和 P4xAL进行16位(A15-A0)地址比较 =01: 与基址寄存器P4xAH和 P4xAL进行15位(A15-A1)地址比较 =10: 与基址寄存器P4xAH和 P4xAL进行14位(A15-A2)地址比较 =11: 与基址寄存器P4xAH和 P4xAL进行 8位(A15-A8)地址比较 P4.0基地址低字节寄存器 位: 7 6 5 4 3 2 1 0 A7 A6 A5 A4 A3 A2 A1 A0 助记符: P40AL 地址: 94h - 127 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 P4.0基地址高字节寄存器 位: 7 6 5 4 3 2 1 0 A15 A14 A13 A12 A11 A10 A9 A8 助记符: P40AH 地址: 95h P4.1基地址低字节寄存器 位: 7 6 5 4 3 2 1 0 A7 A6 A5 A4 A3 A2 A1 A0 助记符: P41AL 地址: 96h P4.1基地址高字节寄存器 位: 7 6 5 4 3 2 1 0 A15 A14 A13 A12 A11 A10 A9 A8 地址: 97h 助记符:P41AH 串行口控制 位: 7 6 5 4 3 2 1 0 SM0/FE SM1 SM2 REN TB8 RB8 TI RI 助记符: SCON 位 名称 7 SM0/FE 地址: 98h 功能 串行口0,模式0控制位或贞错误标志位。PCON特殊功能寄存器中的SMOD0位决定该 位的功能。 (SM0) 见下面描述 (FE) 该位的置位表示一个无效的停止位。该位必须由软件来清除。 6 5 SM1 串行口模式位1 SM2 多机通信控制。将该位置 1 ,则使能模式 2 及模式 3 下的多机通信功能。在模式 2 或 3 下,如果SM2置1,那么收到的第九位数据RB8是0的话,RI将不会置位。在模式1下 如果SM2置1,那么在没有收到有效的停止位前RI是不会置位的。在模式0下,SM2位 控制着串行口的时钟。如果清0,那么串行口的时钟是系统时钟的12分频。这样系统 就与标准8052兼容。如果该位置1,那么串行口的时钟是系统时钟的4分频,这样就加 快了同步通信的速度。 接收使能: 4 REN 1: 打开串行口接收功能. 0: 关闭该功能. 3 TB8 模式2和3中要被发送的第九位数据。软件可以根据需求将该位置1或清0。 2 RB8 模式2和3中接收到的第九位数据。模式1下,若SM2=0则RB8是接收到的停止位。模式 0下该位无意义。 - 128 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 1 TI 发送中断标志:模式0下该标志由硬件在发送完8位数据后置位,而在其他模式下在串 行发送到停止位的开始时置位。该位必须由软件来清除。 0 RI 接收中断标志:模式0下该标志由硬件在接收到8位数据后置位,而在其他模式下在串 行接收到停止位的中间时置位。该位必须由软件来清除。 SM1, SM0: 串行口模式位: SM0 SM1 模式 0 0 0 说明 同步 数据长度 8 波特率 4/12 Tclk 0 1 1 异步 10 可变 1 0 2 异步 11 64/32 Tclk 1 1 3 异步 11 可变 串行数据缓冲寄存器 位: 7 6 5 4 3 2 1 0 SBUF.7 SBUF.6 SBUF.5 SBUF.4 SBUF.3 SBUF.2 SBUF.1 SBUF.0 助记符: SBUF 地址: 99h 位 名称 功能 7-0 SBUF 串行口0接收或发送的数据都放在这个寄存器中。实际上该地址上有2个独立的8位 寄存器。一个用于接收数据,一个用于发送数据。对它进行读操作将会接收串行 数据,对它进行写操作则发送串行数据。 P4.2基地址低字节寄存器 位: 7 6 5 4 3 2 1 0 A7 A6 A5 A4 A3 A2 A1 A0 助记符: P42AL 地址: 9Ah P4.2基地址高字节寄存器 位: 7 6 5 4 3 2 1 0 A15 A14 A13 A12 A11 A10 A9 A8 地址: 9Bh 助记符:P42AH P4.3基地址低字节寄存器 位: 7 6 5 4 3 2 1 0 A7 A6 A5 A4 A3 A2 A1 A0 地址: 9Ch 助记符:P43AL P4.3基地址高字节寄存器 位: 7 6 5 4 3 2 1 0 A15 A14 A13 A12 A11 A10 A9 A8 - 129 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 助记符: P43AH 地址: 9Dh NVM 控制 7 6 5 4 3 2 1 0 EER EWR EnNVM - - - - NVMF 位: 地址: 9Eh 助记符:NVMCON 位 名称 7 EER 功能 NVM 页擦除位 该位设为’1’,把NVM 数据页中的内容擦成’FFH’。NVM数据存储器有32个页,每 页大小为64字节。通过NVMADDRH和NVMADDRL 寄存器选择页后,在设定该 位后,该页将会被清除, NVMF置 “1”, 将不能够对NVM数据进行擦写。 6 EWR 5 EnNVM 把该位设置为’1’向NVM写一个字节的数据。完成后, NVMF 位将被置 “1”, NVMF 置 “1”, 将不能够对NVM数据进行擦写。 使能读NVM数据区域 0: MOVX 指令不能够读NVM数据存储器. 1: MOVX 指令能够读NVM数据存储器, 外部 RAM 或 AUX-RAM 不可以读 4~1 - 0 NVMF 保留. NVM 数据擦/写完成标志位 如果NVM 数据擦/写完成, 这位将被硬件置“1”需要软件清零。同时将产生中断当 NVM 读/ 写中断开 ISP 控制寄存器 位: 7 6 5 4 3 2 1 0 SWRST/ HWB - LD/AP - - - LDSEL ENP 助记符: CHPCON 位 7 地址: 9Fh 名称 功能 W:SWRST R:HWB 将该位置1,将会复位系统(功能与给系统进行外部复位一样)系统将回到初始 状态并自动清除该位。对该位进行读操作时,若读到逻辑1则表明进入了ISP硬件 重启模式。 注: P4.3 仅当 48L LQFP 封装有效. 6 - 保留. 5 LD/AP (只读) 0: 系统执行APFlashs中的程序 4-2 - 1: 系统在执行LDFlash中的程序 保留. - 130 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 1 LDSEL (只写) 装载程序位置选择 0: 设备将从APFlash中获取指令代码. 1: 设备将从LDFlash中获取指令代码. 0 ENP ISP模式使能 1: 置1后系统将将进入ISP模式。系统将按照特殊功能寄存器的设置执行 ISP功能, 如擦除、编程、读等操作。 0: 关ISP模式 进入 ISP 模式先置位 ENP 为高,写 LDSEL 使系统进入空闲模式,进入空闲模式后系统将从 AP 或 LD ROM执行程序。 端口 2 Bit: 7 6 5 4 3 2 1 0 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 地址: A0h 助记符:P2 位 名称 功能 7-0 P2 端口2是内部有上拉的双向I/O口,在访问外部存储器时输出高8位地址。 复用功能 P2.0 PWM0 输出. P2.1 PWM1输出. P2.2 PWM2输出. P2.3 PWM3输出. P2.4 PWM4输出. P2.5 PWM5输出. P2.6 SCL, I2C 时钟. P2.7 SDA, I2C 数据. XRAMAH 位: 7 6 5 4 3 2 1 0 - - - - - A10 A9 A8 助记符: XRAMAH 地址: A1h 位 名称 功能 7-3 - 保留. 2-0 A10-8 通过 A15-8用XRAMAH作为存储器的高地址 , 当系统执行 MOVX指令用 R0 (or R1) 根据 EnNVM 和 DME0 设定, 和 地址,存储器的读写方式不一样。 - 131 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 片上固定1/2/2K 字节SRAM. 注:用户在使用指令访问这些区域的时候需非常小心,在非法地址上进行存取的话将导致一些意外的结 果。 端口 4片选信号极性 位: 7 6 5 4 3 2 1 0 P43INV P42INV P41INV P40INV - PWDNH RMWFP PUP0 地址: A2h 助记符:P4CSIN 位 名称 功能 7-4 P4xINV P4.x 做片选信号时的有效极性。 1 = 高电平有效 0 = 低电平有效 注:x=3,2,1,0 3 - 保留. 2 PWDNH 设置 ALE 和 PSEN 在掉电模式下的状态。 1: ALE 和 PSEN 在掉电模式下输出逻辑高电平。 0: ALE 和 PSEN 在掉电模式下输出逻辑低电平。 1 RMWFP 控制“读-修改-写”指令读入的通道。当该位置位以后,“读-修改-写”指令读入通道是 从端口的管脚而不是特殊功能寄存器。 0 PUP0 使能端口0内部的弱上拉。 捕获控制寄存器0 位: 7 6 5 4 3 2 1 0 CCT2.1 CCT2.0 CCT1.1 CCT1.0 CCT0.1 CCT0.0 CCLD1 CCLD0 助记符: CAPCON0 地址: A3h 位 名称 功能 7-6 CCT2.1-0 捕获 2 边沿选择: 5-4 CCT1.1-0 CCT2.1 CCT2.0 0 0 上升沿触发 0 1 下降沿触发 1 0 上升沿和下降沿都触发 1 1 保留 描述 捕获1边沿选择. CCT1.1 CCT1.0 描述 - 132 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 3-2 1-0 CCT0.1-0 CCLD.1-0 0 0 上升沿触发 0 1 下降沿触发 1 0 上升沿和下降沿都触发 1 1 保留 捕获0边沿选择. CCT0.1 CCT0.0 0 0 上升沿触发 0 1 下降沿触发 1 0 上升沿和下降沿都触发 1 1 保留 描述 重装载触发选择. CCLD1 CCLD0 0 0 定时器 3 溢出(默认) 0 1 捕获 0 装载 1 0 捕获 1 装载 1 1 捕获 2 装载 描述 捕获控制寄存器1 位: 7 6 - - 5 4 ENF2 3 ENF1 2 ENF0 助记符: CAPCON1 1 CPTF2 0 CPTF1 CPTF0 地址: A4h 位 名称 功能 7-6 - 保留 5 ENF2 使能捕获输入2 过滤 4 ENF1 使能捕获输入1 过滤 3 ENF0 使能捕获输入0 过滤 2 CPTF2/QEIF 外部捕获/重装载2中断标志 1 CPTF1/DRIIF 外部捕获/重装载1中断标志 IC 模式 – 输入捕获/从装载 1 中断标志位. QEI 模式 – 转向变化中断标志。当该功能使能,则当硬件侦测到相位索引 (DIR)改变时被置位,并产生相应中断。 DRIF 通过软件清零. 0 CPTF0 外部捕获/重装载0中断标志 - 133 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 IC 模式 – 输入捕获/从装载 0 中断标志位. QEI 模式 - QEI 中断标志位. 1. 在自由计数模式下,用于判定计数值是否溢出。 2.在比较计数模式下,如果判定脉冲计数器值是否与最大脉冲值相符。 端口 4 位: 7 6 5 4 3 2 1 0 - - - - P4.3 P4.2 P4.1 P4.0 助记符: P4 地址: A5h 位 名称 功能 7-4 - 保留 3-2 P4 GPIO. 1 P4 GPIO. 复用功能T2EX/IC2 :定时器 2 外部触发/捕获输入 0 P4 GPIO. 复用功能 STADC. 外部触发ADC中断输入. 捕获2输入低位寄存器最大计数值 位: 7 6 5 4 3 2 1 0 CCL2.7/ MAXCNT L.7 CCL2.6/ MAXCNT L.6 CCL2.5/ MAXCNT L.5 CCL2.4/ MAXCNT L.4 CCL2.3/ MAXCNT L.3 CCL2.2/ MAXCNT L.2 CCL2.1/ MAXCNT L.1 CCL2.0/ MAXCNT L.0 地址: A6h 助记符:CCL2/MAXCNTL 捕获2输入高位寄存器最大计数值 位: 7 6 5 4 3 2 1 0 CCH2.7/ MAXCNT H.7 CCH2.6/ MAXCNT H.6 CCH2.5/ MAXCNT H.5 CCH2.4/ MAXCNT H.4 CCH2.3/ MAXCNT H.3 CCH2.2/ MAXCNT H.2 CCH2.1/ MAXCNT H.1 CCH2.0/ MAXCNT H.0 助记符: CCH2/MAXCNTH 地址: A7h 中断允许 位: 7 6 5 4 3 2 1 0 EA EADC ET2 ES ET1 EX1 ET0 EX0 助记符: IE 地址: A8h 位 名称 功能 7 EA 全局中断允许.允许/禁止所有的中断. 6 EADC 允许ADC中断. 5 ET2 允许定时器 2 中断. 4 ES 允许串行端口中断. - 134 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 3 ET1 允许定时器1中断. 2 EX1 允许外部中断1. 1 ET0 允许定时器0中断. 0 EX0 允许外部中断0. 从机地址 Bit: 7 6 5 4 3 2 1 0 SADDR.7 SADDR.6 SADDR.5 SADDR.4 SADDR.3 SADDR.2 SADDR.1 SADDR.0 地址: A9h 助记符:SADDR 位 名称 功能 7-0 SADDR SADDR 中应当写入多机通信时的广播地址或是从机地址 从机地址1 位: 7 6 5 4 3 2 1 0 SADDR1. 7 SADDR1. 6 SADDR1. 5 SADDR1. 4 SADDR1. 3 SADDR1. 2 SADDR1. 1 SADDR1. 0 地址: AAh 助记符:SADDR1 位 名称 功能 7-0 SADDR1 SADDR1 中应当写入多机通信时的广播地址或是从机端口1的地址. ISP 地址低字节 位: 7 6 5 4 3 2 1 0 A7 A6 A5 A4 A3 A2 A1 A0 地址: ACh 助记符:SFRAL ISP模式下目标地址的低字节。 ISP模式下目标地址的高字节 位: 7 6 5 4 3 2 1 0 A15 A14 A13 A12 A11 A10 A9 A8 地址: ADh 助记符:SFRAH SP模式下目标地址的低字节。SFRAH 和SFRAL指明一个要进行擦除、编程和读的ROM单元。 ISP 数据缓冲寄存器 位 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 地址: AEh 助记符:SFRFD ISP模式下,对一个特定ROM单元内容的读/写必须通过SFRFD寄存器。 - 135 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 ISP 运行方式 位: 7 6 5 4 3 2 1 0 - WFWIN NOE NCE CTRL3 CTRL2 CTRL1 CTRL0 助记符: SFRCN 地址: AFh 位 名称 功能 7 - 保留 6 WFWIN ISP编程片内ROM区选择 0:选定APFlashx为再编程目标区; 1:选定LD ROM区为再编程 5 NOE Flash EPROM 输出使能 4 NCE Flash EPROM CHIP使能 3-0 CTRL 模式选择 WFWIN NOE NCE CTRL[3:0] SFRAH, SFRAL SFRFD 擦除4KB LD Flash 1 1 0 0010 X X 擦除 16/64K AP Flash0 0 1 0 0010 X X 编程 4KB LD Flash 1 1 0 0001 地址读入 数据读入 编程 16/64KB AP Flash0 0 1 0 0001 地址读入 数据读入 读4KB LD Flash 1 0 0 0000 地址读入 数据读出 读16/64KB AP Flash0 0 0 0 0000 地址读入 数据读出 ISP 模式 端口 3 位: 7 6 5 4 3 2 1 0 P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 助记符: P3 位 名称 地址: B0h 功能 - 136 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 7-0 P3 通用I/O口, 每个管脚也有其相应的复用功能。相应的端口置1,可以使能对应的复用 功能. 复用功能 P3.7 RD 访问外部RAM时的读信号 P3.6 WR 访问外部RAM时的写信号 P3.5 T1/IC1/QEB; Timer/counter 1 external count input/Input Capture 1/QEI input B. P3.4 T0/IC0/QEA; Timer/counter 0 external count input/Input Capture 0/QEI input A. P3.3 INT1外部中断输入1. P3.2 INT0 外部中断输入0. P3.1 串行口0输出 P3.0 串行口0输入 端口 5 位 7 6 5 4 3 2 1 0 P5.7 P5.6 P5.5 P5.4 P5.3 P5.2 P5.1 P5.0 地址: B1h 助记符:P5 位 名称 功能 7-2 - 保留 1-0 P5 通用的双向 I/O 口 . 每一个管脚都有复用的输入输出功能。该端口不能进行位寻 址。 复用功能 P5.1 PWM7 输出功能 P5.0 PWM6 输出功能 定时器 3 重装载 LSB Bit: 7 6 5 4 3 2 1 0 RCAP3L. 7 RCAP3L. 6 RCAP3L. 5 RCAP3L. 4 RCAP3L. 3 RCAP3L. 2 RCAP3L. 1 RCAP3L. 0 助记符: RCAP3L 地址: B4h 位 名称 功能 7-0 RCAP3L 定时器 3 重装载LSB ,当Timer3被设置为重装载模式是这个寄存器是16位数据的 - 137 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 低位。同样它也作为Timer3设置为比较模式后的比较寄存器(参见CMP/RL3) 定时器 3 重装载 MSB Bit: 7 6 5 4 3 2 1 0 RCAP3H. 7 RCAP3H. 6 RCAP3H. 5 RCAP3H. 4 RCAP3H. 3 RCAP3H. 2 RCAP3H. 1 RCAP3H. 0 助记符: RCAP3H 地址: B5h 位 名称 功能 7-0 RCAP3H 定时器 3 重装载MSB ,当Timer3被设置为重装载模式是这个寄存器是16位数据 的高位。同样它也作为Timer3设置为比较模式后的比较寄存器(参见CMP/RL3) 扩展中断高优先级1 7 位: 6 - - 5 4 3 PNVMIH PCPTFH 2 PT3H PBKFH 1 0 PPWMF H 助记符: EIP1 PSPIH 地址: B6h 位 名称 功能 7-6 - 保留 5 PNVMIH 1 : 设置NVM 中断最高优先级 4 PCPTFH 1 : 设置捕获/重装载中断最高优先级 3 PT3H 1 : 设置定时器3中断最高优先级 2 PBKFH 1 : 设置PWM刹车中断最高优先级 1 PPWMFH 1 : 设置PWM周期中断最高优先级 0 PSPIH 1 : 设置SPI 中断最高优先级 中断高优先级 位: 7 6 5 4 3 2 1 0 - PADCH PT2H PSHH PT1H PX1H PT0H PX0H 助记符: IPH 地址: B7h 位 名称 功能 7 - 保留 6 PADCH 1:设置ADC中断为最高优先级 5 PT2H 1:设置定时器2中断为最高优先级 4 PSH 1:设置串口1中断为最高优先级 3 PT1H 1:设置定时器1中断为最高优先级 - 138 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 2 PX1H 1:设置外部中断1中断为最高优先级 1 PT0H 1:设置定时器0中断为最高优先级 0 PX0H 1:设置外部中断0中断为最高优先级 中断优先级 位: 7 6 5 4 3 2 1 0 - PADC PT2 PS PT1 PX1 PT0 PX0 地址: B8h 助记符:IP 位 名称 功能 7 - 保留. 6 PADC 1:设置中断ADC的优先权是较高优先级. 5 PT2 1:设置定时器2中断为较高优先级 4 PS 1:设置串口1中断为较高优先级 3 PT1 1:设置定时器1中断为较高优先级 2 PX1 1:设置外部中断1中断为较高优先级 1 PT0 1:设置定时器0中断为较高优先级 0 PX0 1:设置外部中断0中断为较高优先级 从机地址掩码允许 位: 7 6 5 4 3 2 1 0 SADEN.7 SADEN.6 SADEN.5 SADEN.4 SADEN.3 SADEN.2 SADEN.1 SADEN.0 地址: B9h 助记符:SADEN 位 名称 功能 7-0 SADEN 该寄存器使能串口的自动地址识别功能,当 SADEN 中的某位被置为 1 ,那么 SADDR 寄存器中的相应位会同接收到到的数据进行比较。如果 SADEN.n 被设为 0,那么系统会忽略对该位的比较。如果SADEN为全0,那么对于所有的地址帧系 统都会产生中断。 从机地址掩码允许1 位: 7 6 5 4 3 2 1 0 SADEN1. 7 SADEN1. 6 SADEN1. 5 SADEN1. 4 SADEN1. 3 SADEN1. 2 SADEN1. 1 SADEN1. 0 助记符: SADEN1 地址: BAh 位 名称 功能 7-0 SADEN1 该寄存器使能串口 1 的自动地址识别功能,当 SADEN 中的某位被置为 1 ,那么 - 139 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 SADDR 寄存器中的相应位会同接收到到的数据进行比较。如果 SADEN.n 被设为 0,那么系统会忽略对该位的比较。如果SADEN为全0,那么对于所有的地址帧系 统都会产生中断。 PWM输出控制寄存器 位: 7 6 5 4 3 2 1 0 POVM.7 POVM.6 POVM.5 POVM.4 POVM.3 POVM.2 POVM.1 POVM.0 助记符: POVM 地址: BBh 位 名称 功能 7-0 POVM PWM 控制模式使能; 0: The PWM output follows the corresponding PWM generator. 1: The PWM output is equal to corresponding bit in POVD. PWM 输出状况寄存器 位: 7 6 5 4 3 2 1 0 POVD.7 POVD.6 POVD.5 POVD.4 POVD.3 POVD.2 POVD.1 POVD.0 地址: BCh 助记符:POVD 位 名称 功能 7-0 POVD PWM Override Data represents the value of PWM[7:0] respectively in override mode. 1 = Output on PWM I/O pin is ACTIVE when the corresponding PWM output override bit is cleared. 0 = Output on PWM I/O pin is INACTIVE when the corresponding PWM output override bit is cleared. PWM脚输出来源选择 位: 7 6 5 4 3 2 1 PIO7 PIO6 PIO5 PIO4 PIO3 PIO2 PIO1 助记符: PIO 0 PIO0 地址: BDh 位 名称 功能 7-0 PIO.x 选择脚的输出来源PWM或I/O寄存器.Select pin output source from PWM or I/O is effective only when option bit register; x=0~7; PIOn 当 PWMOE/PWMEE/PWM6E/PWM7E 有效时 , is in enabled status. 复位后将清零 Reset value=0; 1 = Correspondent I/O pin with high source/sink current. 0 = PWMn 输出; n=0~7 with high source/sink current. PWM 输出使能寄存器 位: 7 6 5 4 3 - 140 - 2 1 0 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 PWM7EN PWM6EN PWM5EN PWM4EN PWM3EN PWM2EN PWM1EN 助记符: PWMEN PWM0EN 地址: BEh 位 名称 功能 6,4,2,0 PWMeEN 置位使能PWM输出. e = 0,2,4,6;复位后将被清零. 1 = 使能PWM输出 0 = 关 PWM 输出 7,5,3,1 PWMoEN 置位使能PWM输出,o=1,3,5,7;复位后将被清零. 1 = 使能PWM输出 0 = 关 PWM 输出 PWM 4 高位寄存器 位: 7 6 5 - 4 - 3 - - 2 PWM4.11 1 PWM4.10 0 PWM4.9 助记符:: PWM4H PWM4.8 地址: BFh 位 名称 功能 7~4 - 保留 3~0 PWM4.11 ~PWM4.8 PWM 4 寄存器位:11~8. 串行口控制1 位: 7 6 5 4 3 2 1 0 SM0_1/F E_1 SM1_1 SM2_1 REN_1 TB8_1 RB8_1 TI_1 RI_1 地址: C0h 助记符:SCON1 位 7 名称 功能 串行口1,模式0控制位或贞错误标志位。PCON特殊功能寄存器中的SMOD0位决定该 位的功能。下面会描述SM0_1/FE_1的运行功能。当用作贞错误标志时,该位的置位表 SM0_1/ 示一个无效的停止位。该位必须由软件来清除。 FE_1 SM0:如下表 FE_1:此位为非法停止位,只能通过软件清0 6 SM1_1 串行口模式位1 5 多机通信控制。将该位置1,则使能模式2及模式3下的多机通信功能。在模式2或3下, 如果SM2置1,那么收到的第九位数据RB8是0的话,RI将不会置位。在模式1下如果 SM2_1置1,那么在没有收到有效的停止位前RI是不会置位的。在模式0下,SM2_1位 SM2_1 控制着串行口的时钟。如果清0,那么串行口的时钟是系统时钟的12分频。这样系统就 与标准8052/8051兼容。如果该位置1,那么串行口的时钟是系统时钟的4分频,这样就 加快了同步通信的速度。 - 141 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 4 REN_1 接收使能,置1时打开串行口接收功能,否则关闭该功能。 3 TB8_1 模式2和3中要被发送的第九位数据。软件可以根据需求将该位置1或清0。 2 RB8_1 1 TI_1 发送中断标志:模式0下该标志由硬件在发送完8位数据后置位,而在其他模式下在串 行发送到停止位的开始时置位。该位必须由软件来清除。 0 RI_1 接收中断标志:模式0下该标志由硬件在接收到8位数据后置位,而在其他模式下在串 行接收到停止位的中间时置位。该位必须由软件来清除。 模式2和3中接收到的第九位数据。模式1下,若SM2_1=0则RB8_1是接收到的停止 位。模式0下该位无意义。 SM1_1, SM0_1: 串行口模式位: SM0_1 SM1_1 模式 0 0 0 说明 同步 数据长度 8 波特率 时钟的4或12分之一 0 1 1 异步 10 可变 1 0 2 异步 11 时钟的64或32分之一 1 1 3 异步 11 可变 串行数据接收缓冲 1 位: 7 6 5 4 3 2 1 0 SBUF_1. 7 SBUF_1. 6 SBUF_1. 5 SBUF_1. 4 SBUF_1. 3 SBUF_1. 2 SBUF_1. 1 SBUF_1. 0 助记符: SBUF1 地址: C1h 位 名称 功能 7-0 SBUF_1 串行口1接收或发送的数据都放在这个寄存器中。实际上该地址上有2个独立的8位 寄存器。一个用于接收数据,一个用于发送数据。对它进行读操作将会接收串行 数据,对它进行写操作则发送串行数据。 定时器 3 模式控制 7 位: 6 ENLD 5 ICEN2 4 ICEN1 3 ICEN0 2 T3CR 助记符: T3MOD 1 - 0 - - 地址: C2h 位 名称 功能 7 ENLD 使能用RCAP3寄存器重装载定时器3计数器。 6 ICEN2 使能外部捕获2。 该位使能IC2 管脚上的捕获/重装载功能。 侦测到IC2管脚上的 一个边沿触发将导致自由运行的定时器3计数器捕获,输入捕获2寄存器,并且如 果ENLD = 1 和 CMP/RL2 = 0,将从寄存器RCAP3下载到定时器3计数器 5 ICEN1 使能外部捕获1。 该位使能IC1 管脚上的捕获/重装载功能。 侦测到IC1管脚上的 一个边沿触发将导致自由运行的定时器3计数器捕获,输入捕获1寄存器,并且如 - 142 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 果ENLD = 1 和 CMP/RL2 = 0,将从寄存器RCAP3下载到定时器3计数器 4 ICEN0 使能外部捕获0。 该位使能IC0 管脚上的捕获/重装载功能。 侦测到IC0管脚上的 一个边沿触发将导致自由运行的定时器2计数器捕获,输入捕获0寄存器,并且如 果ENLD = 1 和 CMP/RL2 = 0,将从寄存器RCAP3下载到定时器2计数器 3 T3CR 定时器3捕获复位。在定时器3捕获模式,当TL3和TH3的值已经转移到捕获寄存器 时,该位使能/关闭硬件自动复位定时器3. 2-0 - 保留 定时器 3 控制 位: 7 6 5 4 3 2 1 0 TF3 - - - - TR3 - CMP / RL3 地址: C3h 助记符:T3CON 位 名称 功能 7 TF3 定时器3溢出标志位. 该位置位表示定时器3溢出。该位只能由软件来清0,软件同 样也可以对该位置1或清0。 6-3 - 保留. 2 TR3 定时器3运行控制该位用于打开/关闭定时器3,该位清零时定时器3停止运行并且 TH3 和TL3 中的内容被保留。 1 - 保留. 0 CMP / RL3 捕捉/重装选择:该位决定定时器3 是工作在捕捉模式还是重装模式。 0 定时器3 是工作在重装模式 TF3溢出标志位 1 定时器3 是工作在捕捉模式 TF3比较匹配位. 电源管理寄存器 位: 7 6 5 4 3 2 1 0 - - - - - ALEOFF - DME0 助记符: PMR 地址: C4h 位 名称 功能 7-3 - 保留. 2 ALEOFF 该位置1 后,当系统不访问外部程序和数据存储器时系统不会发出ALE信号。当访 问外部存储器时,系统会自动产生 ALE信号而不管此时 ALEOFF是否置位。 0 = ALE 信号不被关闭;1 = ALE 信号被关闭 1 - 保留. 0 DME0 该位决定用户是否可以访问片上“MOVX SRAM” 该位置一后系统便可以访问片上 SRAM. 置1将访问片上 2 KB MOVX SRAM. - 143 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 时间取样出错寄存器 7 位: 6 SCMP1 5 SCMP0 4 SFP1 3 SFP0 2 SFCEN SFCST 1 SFCDIR 助记符: FSPLT 位 名称 7-6 SCMP [1:0] 5-4 0 LSBD 地址: C5h 功能 Smart fault compare value selector (读/写): 00 = 4 01 = 16 10 = 64 11 = 128 SFP[1:0] Smart fault sampling frequency selector (读/写): 00 = FOSC/4 01 = FOSC/8 10 = FOSC/16 11 = FOSC/128 3 SFCEN Smart fault/brake counter enable (读/写): 0 = Disable, and clear internal smart fault counter. 1 = Enable smart fault detector. 2 SFCST Smart fault/brake counter status (只读): 0 = Counter is non-active. 1 = Counter is active. 1 SFCDIR Smart fault/brake counters direction status (只读): 0 =向下计数. 1 =向上计数. 0 LSBD 低电压检测位: 0 = 关低电压检测. 1 = 开低电压检测. 由软件清零 ADC 通道选择 位: 7 6 5 4 3 2 1 0 ADCPS.7 ADCPS.6 ADCPS.5 ADCPS.4 ADCPS.3 ADCPS.2 ADCPS.1 ADCPS.0 地址: C6h 助记符:ADCPS 位 名称 功能 7-0 ADCPS ADC 输入脚选择 . 8路 ADC 输入脚和 P1.0~P1.7复用 .由 ADCPS位控制 ADC 的使 能。 置位将成为相应的ADC输入脚;清除将关ADC输入复位后是 00H. 位 相应端口 位 相应端口 ADCPS.0 P1.0 ADCPS.4 P1.4 - 144 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 ADCPS.1 P1.1 ADCPS.5 P1.5 ADCPS.2 P1.2 ADCPS.6 P1.6 ADCPS.3 P1.3 ADCPS.7 P1.7 时控访问 位: 7 6 5 4 3 2 1 0 TA.7 TA.6 TA.5 TA.4 TA.3 TA.2 TA.1 TA.0 助记符: TA 地址: C7h 位 名称 功能 7-0 TA T 时控访问寄存器用于控制对保护位的访问。要访问被保护的位,用户首先要向 TA寄存器写入AAH,然后立即再写入55H,之后系统将提供3个机器周期的时间以 供用户访问被保护的位。 定时器2控制 位: 7 6 5 4 3 2 1 0 TF2 EXF2 RCLK TCLK EXEN2 TR2 C / T2 CP / RL2 助记符: T2CON 地址: C8h 位 名称 功能 7 TF2 定时器2溢出标志:该位置位表示定时器2溢出。在向下计数方式中,如果计数值 与捕捉寄存器的数值相等TF2也会置位。而且该位仅在RCLK和TCLK都为0的情况 下被置位。该位只能由软件来清0,软件同样也可以对该位置1或清0。 6 EXF2 定时器 2 外部事件标志:依照 CP / RL2 , EXEN2 及 DCEN 的设置,在 T2EX 管脚 (P1.1)上出现低电平跳变,或定时器2溢出时该位置位。如果是电平负跳变使该 位置位,那么必须由软件来清0。如果打开相应的中断,那么当软件将该位置位或 是检测到一个电平负跳变时,会引发一个定时器中断。 5 RCLK 接收时钟标志:该位决定串行口 0在模式 1和3下接收数据时的时基。如果该位置 0,那么用定时器1的溢出做波特率发生器,否则将会用定时器2 的溢出做波特率 发生器。将该位置位将迫使定时器2 用作波特率发生器。 4 TCLK 发送时钟标志:该位决定串行口 0在模式 1和3下发送数据时的时基。如果该位置 0,那么用定时器1的溢出做波特率发生器,否则将会用定时器2 的溢出做波特率 发生器。将该位置位将迫使定时器2 用作波特率发生器。 3 EXEN2 定时器2外部事件使能。如果定时器2不用做波特率发生器时 ,该位将控制定时器 2的捕捉/重装功能的开启与关闭。如果该位置0,那么T2EX管脚上的电平变化将 被忽略,否则T2EX上的电平变化将会引发捕捉或重装。 2 TR2 定时器2运行控制该位用于打开/关闭定时器2,该位清零时定时器2停止运行并且 TH2 和TL2 中的内容被保留。 - 145 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 1 C / T2 计数器/定时器选择位,该位决定定时器2是用作定时器还是计数器。如果定时器2 用作波特率发生器(每个tick2个时钟),那么该位的设置对定时器2没有影响。为 0则定时器2 是一个以按T2M设置的速率进行工作的定时器。为1它会对T2 脚上的 负跳变进行计数。 0 CP / RL2 捕捉/重装选择:该位决定定时器2 是工作在捕捉模式还是重装模式。如果RCLK 或TCLK置位,那么该位会被忽略定时器2会在每次溢出后自动重装。如果该位为0 那么在每次定时器2 溢出或是当EXEN2=1且在T2EX上检测到下降电平时,定时器 2 会自动重装。如果该位为1 当EXEN2=1且在在T2EX上检测到下降电平时,定时 器2 会进行一次捕捉。 定时器2模式控制 位: 7 6 5 4 3 2 1 0 HC5 HC4 HC3 HC2 T2CR - - DCEN 地址: C9h 助记符:T2MOD 位 名称 功能 7 HC5 硬件清除 INT5 标志使能。将该位置位当外部中断5发生且系统进入中断服务程序 后,硬件将自动清除外部中断5标志。 6 HC4 硬件清除 INT4 标志使能。将该位置位当外部中断 4发生且系统进入中断服务程序 后,硬件将自动清除外部中断4标志。 5 HC3 硬件清除 INT3 标志使能。将该位置位当外部中断3发生且系统进入中断服务程序 后,硬件将自动清除外部中断3标志。 4 HC2 硬件清除 INT2 标志使能。将该位置位当外部中断 2发生且系统进入中断服务程序 后,硬件将自动清除外部中断2标志。 3 T2CR 定时器2捕捉复位。在定时器2 捕捉模式下该位控制当TL2和TH2的计数值传送到 捕捉寄存器后,系统是否自动复位定时器2。 2-1 - 保留. 0 DCEN 向下计数使能:该位与T2EX管脚相结合,控制定时器2 16位自动重装模式下的计 数方向。 定时器2 捕捉寄存器低字节 位: 7 6 5 4 3 2 1 0 RCAP2L. 7 RCAP2L. 6 RCAP2L. 5 RCAP2L. 4 RCAP2L. 3 RCAP2L. 2 RCAP2L. 1 RCAP2L. 0 助记符: RCAP2L 地址: CAh 位 名称 功能 7-0 RCAP2L 当定时器2 工作于捕捉模式时,该寄存器用于保存TL2的计数值。当定时器2工作 于16位自动重装模式时,RCAP2L也用于保存16位自动重装值的低8位数值。 - 146 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 定时器2 捕捉寄存器高字节 位: 7 6 5 4 3 2 1 0 RCAP2H. 7 RCAP2H. 6 RCAP2H. 5 RCAP2H. 4 RCAP2H. 3 RCAP2H. 2 RCAP2H. 1 RCAP2H. 0 地址: CBh 助记符:RCAP2H 位 名称 功能 7-0 RCAP2H 当定时器2 工作于捕捉模式时,该寄存器用于保存TH2的计数值。当定时器2工作 于16位自动重装模式时,RCAP2H也用于保存16位自动重装值的高8位数值。 定时器2 低字节 位: 7 6 5 4 3 2 1 0 TL2.7 TL2.6 TL2.5 TL2.4 TL2.3 TL2.2 TL2.1 TL2.0 地址: CCh 助记符:TL2 TL2: 定时器2 低字节 定时器2 高字节 位: 7 6 5 4 3 2 1 0 TH2.7 TH2.6 TH2.5 TH2.4 TH2.3 TH2.2 TH2.1 TH2.0 地址: CDh 助记符:TH2 TH2 定时器2 高字节 PWM控制寄存器 2 7 位: 6 BKCH 5 BKPS 4 BPEN 3 BKEN 2 FP1 助记符: PWMCON2 1 FP0 0 PMOD1 PMOD0 地址: CEh 位 名称 功能 7 BKCH 见下表 6 BKPS Select which brake condition triggers brake flag. LSBD bit is described in SFR FSPLT. BKPS LSBD 0 0 0: P1.1=0,钳制PWM 1 1 0: P1.1=1,钳制PWM x 1 Low level smart brake detector. 5 BPEN 见下表 4 BKEN 0: 钳制禁止. 描述 1: 钳制允许 - 147 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 3-2 1-0 FP[1:0] PMOD[1:0] PWM频率选择位. 如果PWMRUN=1,那么PWM的相位和晶振的相位一致。 FP[1:0] Fpwm 00 FOSC 01 FOSC/2 10 FOSC/4 11 FOSC/16 PWM 模式选择位: PMOD[1:0] 描述 00 边沿排列模式(向上计数) 01 单个脉冲模式(向上计数) 10 中心排列模式(向上计数/向下计数) 11 保留 钳制条件表 BPEN BKCH 0 0 钳制条件 钳制打开,软件钳制有BKEN控制 软件钳制的条件下,当 BPEN=BKCH=0以及BKEN=1,PWM的输出由 PWMnB决 定,这种方式的钳制对PWMRUN位没有影响,但是内部的 PWM发生器还在继续 运行。当钳制被释放的时候, PWM输出的状态由此时 PWM发生器当前的状态决 定。 0 1 打开:当 PWM 不运行 (PWMRUN=0) 时,由 PWMnB 设定 PWM 的输出条件。当钳 制 被 释 放 ( BKEN=0 ) , the PWM output resumes to the state when PWM generator stop running prior to enabling the brake. 关闭:当PWM为运行(PWMRUN=1)时, 1 0 Brake On, when Brake Pin asserted, PWM output follows PWMnB setting. The PWMRUN will be clear. External pin brake condition. When active (by external pin), PWM output follows PWMnB setting. PWMRUN will be cleared by hardware. BKF flag will be set. When the brake is released (by de-asserting the external pin + disabling BKEN = 0), the PWM output resumes to the state of the PWM generator output prior to the brake. 1 1 This brake condition (by Brake Pin) causes BKF to be set, but PWM generator continues to run. The PWM output does not follow PWMnB, instead it output continuously as per normal without affected by the brake. PWM 4 低位寄存器 位: 7 6 5 4 3 2 1 0 PWM4.7 PWM4.6 PWM4.5 PWM4.4 PWM4.3 PWM4.2 PWM4.1 PWM4.0 - 148 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 助记符: PWM4L 地址: CFh PWM4.7-0 PWM4 低位寄存器. 程序状态字 位: 7 6 5 4 3 2 1 0 CY AC F0 RS1 RS0 OV F1 P 助记符: PSW 地址: D0h 位 名称 功能 7 CY 进位标志:当ALU进行算术运算产生进位或借位时置位。 6 AC 辅助进位标志:高半字节运算产生进位或借位时置位。 5 F0 用户标志0 :用户可以使用的通用标志位。 4-3 RS.1-0 寄存器区选择位: RS1 RS2 寄存器区 地址 0 0 0 00-07h 0 1 1 08-0Fh 1 0 2 10-17h 1 1 3 18-1Fh 2 OV 溢出标志:作为一个预先操作,当第七位而不是第八位产生进位时该标志被设 置。 1 F1 用户标志1: 用户可以使用的通用标志位。 0 P 奇、偶标志位。由硬件控制其置位与复位。用于表示累加器中“1”的数目奇数还是 偶数。 PWM 计数器高位寄存器 位: 7 6 5 4 3 2 1 0 - - - - PWMP.11 PWMP.10 PWMP.9 PWMP.8 助记符: PWMPH 地址: D1h 位 名称 功能 7-4 - 保留. 3-0 PWMP.11~PWMP.8 计数器高位寄存器11~8位. PWM 0 高位寄存器 位: 7 6 - 5 - 4 - 3 - - 149 - 2 PWM0.11 1 PWM0.10 0 PWM0.9 PWM0.8 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 助记符: PWM0H 地址: D2h 位 名称 功能 7~4 - 保留. 3~0 PWM0.11 ~PWM0.8 PWM 0寄存器 11~8位. NVM 数据 7 位: 6 5 4 3 2 1 0 NVMDAT.7 NVMDAT.6 NVMDAT.5 NVMDAT.4 NVMDAT.3 NVMDAT.2 NVMDAT.1 NVMDAT.0 助记符: NVMDAT 位 名称 地址: D3h 功能 7~0 NVMDAT.7 写NVM数据寄存器,读NVM 数据使用MOVC 指令. ~NVMDAT. 0 QEI 控制寄存器 位: 7 6 5 4 3 2 1 0 - - - DISIDX DIR QEIM1 QEIM0 QEIEN 地址: D4h 助记符:QEICON 位 名称 功能 7-5 - 保留. 4 DISIDX 关 闭捕获2输入边沿检测功能 0 = 使能IC2的边沿检测功能 (默认). 1 = 关闭IC2的边沿检测功能. 当QEIEN=1此位有效 3 DIR Direction index of motion detection bit: 1 = Forward (Up-counting). 0 = Backward (Down-counting). This bit is writable and readable. 2-1 QEIM[1:0] QEI 模式选择位: 0 QEIEN QEIM1 QEIM0 0 0 X4 自由计数模式 0 1 X2 自由计数模式 1 0 X4 比较计数模式 1 1 X2比较计数模式 描述 输入模块模式选择位: - 150 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 0 =输入模块工作在输入捕获功能 (默认). 1 = 输入模块工作在QEI. PWM 2高位寄存器 7 位: 6 5 - 4 - 3 - - 2 PWM2.11 1 PWM2.10 0 PWM2.9 助记符: PWM2H PWM2.8 地址: D5h 位 名称 功能 7~4 - 保留 3~0 PWM2.11 ~PWM2.8 PWM 2 寄存器 11~8位. PWM 6高位寄存器 7 位: 6 5 - 4 - 3 - - 2 PWM6.11 1 PWM6.10 0 PWM6.9 助记符: PWM6H PWM6.8 地址: D6h 位 名称 F功能 7~4 - 保留 3~0 PWM6.11 ~PWM6.8 PWM 6 寄存器11~8位. 看门狗控制器2 位: 7 6 5 4 3 2 1 0 - - - - - - - STRLD 地址: D7h 助记符:WDCON2 位 名称 功能 7-6 - 保留. 0 STRLD 将该位置位, CPU 将会在看门狗复位以后从 LD Flash EPROM 重启。将该位清 零,CPU将会在看门狗复位以后从AP Flash EPROM 重启。这个寄存器受时控访 问寄存器保护。 看门狗控制器 位: 7 6 5 4 3 2 1 0 - POR - - WDIF WTRF EWT RWT 助记符: WDCON 位 名称 地址: D8h 功能 - 151 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 7 - 保留. 6 POR 上电复位标志: 在上电后硬件会将该位置1,该位可由软件读写,将该位清零的唯 一方法是向该位写入一个数据。 5-4 - 保留. 3 WDIF 看门狗定时器中断标志。如果看门狗中断使能,硬件会将该位置1 表示看门狗定 时器中断产生。如果看门狗定时器中断关闭,那么该位的置位表示看门狗定时器 已经超时。该位必须由软件来清零。 2 WTRF 看门狗定时器复位标志。当看门狗定时器产生中断后,硬件会将该位置位。软件 可以读取该位的状态,但必须由软件来将该位清除。一个掉电复位也会尽清除该 位。软件可以用该位来判断复位的原因。如果EWT=0,看门狗定时器对该位不 会有影响。 1 EWT 看门狗定时器复位使能位。将该位置1会使能看门狗定时器复位功能,经过512时 钟周期后将置位WTRF。 0 RWT 复位看门狗定时器;该位将看门狗定时器置为一个已知的状态同时此位将重启看 门狗;它同样可以用来在看门狗定时器溢出前将其复位。 如果EWDI (EIE.4) 置 位, 时间溢出后将产生一个中断. 如果EWT 置位, 512 时钟后,将产生系统复位, 该位自动被硬件清除。外部复位产生后,WDCON的值为0x0x0xx0b。当看门狗 定时器复位产生后,WTRF 被置为1 而在上电复位时该位被置位0。当外部复位 产生时WTRF保持原有数值不变。上电复位时POR为被置为1,EWT在上电复位 时为0,且不会受其它复位方式的影响。 对这个寄存器中数据的读取没有任何限制。但对POR, EWT, WDIF和 RWT 位的写需要进行时控访问才 可以进行。对剩下位的写访问没有任何限制。 PWM 计数器低位寄存器 位: 7 6 5 4 3 2 1 0 PWMP.7 PWMP.6 PWMP.5 PWMP.4 PWMP.3 PWMP.2 PWMP.1 PWMP.0 助记符: PWMPL 地址: D9h 位 名称 功能 7~0 PWMP.7 ~PWMP.0 PWM 计数器低位寄存器. PWM0 低位寄存器 位: 7 6 5 4 3 2 1 0 PWM0.7 PWM0.6 PWM0.5 PWM0.4 PWM0.3 PWM0.2 PWM0.1 PWM0.0 助记符: PWM0L 地址: DAh 位 名称 功能 7~0 PWM0.7 ~PWM0.0 PWM 0 低位寄存器. - 152 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 NVM 低位地址 7 位: 6 5 4 3 2 1 0 NVMADDR NVMADDR NVMADDR NVMADDR NVMADDR NVMADDR NVMADDR NVMADDR L.7 L.6 L.5 L.4 L.3 L.2 L.1 L.0 助记符: NVMADDRL 地址: DBh 位 名称 功能 7~0 NVMADDR NVM 低位地址. L.7 ~ NVMADDR L.0 PWM 控制寄存器 1 7 位: 6 PWMRU N 5 Load PWMF 4 3 CLRPW M PWM6I 2 1 PWM4I 0 PWM2I 助记符: PWMCON1 PWM0I 地址: DCh 位 名称 功能 7 PWMRUN 0: PWM没有运行. 1: PWM计数器运行. 6 Load 当PWMP和PWMn的值装载到计数器和比较寄存器后,这一位将由硬件置位。 0: PWMP寄存器的值比较器不会被装载到计数器和比较器寄存器中; 1: 在计数器向下溢出后,PWMP寄存器的值将会装入计数器寄存器,下一个周期 硬件清’0’。 5 PWMF 10 位计数器溢出标志位: 0 = 10-位向下计数器向下没有溢出. 1 =位向下计数器向下溢出.这一位由硬件置位通过软件清零。 4 CLRPWM 1: 把12-位 PWM 计数器设置为 000H. 置位后由硬件自动清除。 3-0 PWMxI 0: PWM0正相输出 1: PWM0反相输出 注: x = 0,2,4,6. PWM 2 低位寄存器 位: 7 6 5 4 3 2 1 0 PWM2.7 PWM2.6 PWM2.5 PWM2.4 PWM2.3 PWM2.2 PWM2.1 PWM2.0 助记符: PWM2L 位 名称 地址: DDh 功能 - 153 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 7~0 PWM2.7 ~PWM2.0 PWM 2低位寄存器. PWM 6 低位寄存器 位: 7 6 5 4 3 2 1 0 PWM6.7 PWM6.6 PWM6.5 PWM6.4 PWM6.3 PWM6.2 PWM6.1 PWM6.0 Address: DEh 助记符:PWM6L 位 名称 功能 7~0 PWM6.7 ~PWM6.0 PWM 6 低位寄存器. PWM 控制寄存器 3 7 位: 6 PWM7B PWM6B 5 PWM5B 4 3 PWM4B PWM3B 2 PWM2B 1 0 PWM1B 助记符: PWMCON3 PWM0B 地址: DFh 位 名称 功能 7-0 PWMxB 0: 当钳制有效 PWM0输出为低 1: 当钳制有效 PWM0输出为高 注: x = 0~7 累加器 位 7 6 5 4 3 2 1 0 ACC.7 ACC.6 ACC.5 ACC.4 ACC.3 ACC.2 ACC.1 ACC.0 地址: E0h 助记符:ACC 位 名称 功能 7-0 ACC A (或ACC)寄存器是标准8032的累加器。 ADC 控制寄存器 位: 7 6 5 4 3 2 1 0 ADCEN - ADCEX ADCI ADCS AADR.2 AADR.1 AADR.0 地址: E1h 助记符:ADCCON 位 名称 功能 7 ADCEN 置 ADCEN为高,使能ADC转换功能. 6 - 保留. 5 ADCEX 使能ADC转换,当检测到P4.0上升沿时。 =‘0’,中止外部开始ADC转换 =‘1’,使能外部开始ADC转换。 - 154 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 4 ADCI ADC转换完成/中断标志位,ADC转换完成后该位将置位,产生ADC中断请求当开 ADC中断时,ADCI将硬件置位,必须通过软件清零。 3 ADCS ADC 开始和状态标志位。把ADCS置‘1’开始一次ADC转换,可以由软件或外部的 STADC信号置‘1’,当ADC忙时ADCS=‘1’。转换结束,ADCI置位后ADCS=‘0’。如 果ADCS=‘1’或ADCI =‘1’ 时无法开始新的ADC转换。 2-0 AADR ADC0 ~ADC7使能输出选择. AADR[2:0] AADR[2:0] ADC 输出选择 ADC 输出选择 000 ADCCH0 (P1.0) 100 ADCCH4 (P1.4) 001 ADCCH1 (P1.1) 101 ADCCH5 (P1.5) 010 ADCCH2 (P1.2) 110 ADCCH6 (P1.6) 011 ADCCH3 (P1.3) 111 ADCCH7 (P1.7) ADCI 和 ADCS 控制ADC 转换如下: ADCI ADCS 0 0 ADC 空闲,可以开始一个新的转换. 0 1 ADC 忙,转换中. 1 0 转换结束,开始新的转换时,要求ADCI=0 1 1 暂时状态,可以忽视。 ADC状态 ADC 转换结果高位寄存器 位: 7 6 5 4 3 2 1 0 ADC.9 ADC.8 ADC.7 ADC.6 ADC.5 ADC.4 ADC.3 ADC.2 地址: E2h 助记符:ADCH 位 名称 功能 7-0 ADC[9:2] 10 位A/D 转换结果的高8位. ADCH 是一个只读寄存器. ADC 转换结果低位寄存器 位 7 6 5 4 3 2 1 0 ADCLK.1 ADCLK.0 - - - - ADC.1 ADC.0 助记符: ADCL 地址: E3h 位 名称 功能 7-6 ADCLK ADC 时钟周期选择 . 10 位 ADC 需要时钟驱动转换,时钟一般不超过 4MHz. ADCLK[1:0]控制时钟周期选择 ADCLK.1 0 ADCLK.0 时钟周期 0 晶振/ 4 (默认) - 155 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 1-0 ADC 0 1 晶振/ 8 1 0 晶振 / 16 1 1 保留 10位 A/D 转换结果的低2位. 这2位都是直读。 PWM 死区时间控制寄存器 1 位: 7 6 5 4 3 2 1 0 PDTC1.7 PDTC1.6 PDTC1.5 PDTC1.4 PDTC1.3 PDTC1.2 PDTC1.1 PDTC1.0 助记符: PDTC1 地址: E5h 位 名称 功能 7-6 PDTC1 死区时间频率选择位. 5-0 PDTC1 PDTC1.7 PDTC1.6 FDT 0 0 FOSC/2 0 1 FOSC/4 1 0 FOSC/8 1 1 FOSC/16 死区时间计数器. Unsigned 6 bit dead time value bits for Dead Time Unit. Dead-time = FDT * (PDTC1 [5:0]+1) PWM 死区-定时控制寄存器 0 位: 7 6 5 4 3 2 1 0 PDTC0.7 PDTC0.6 PDTC0.5 PDTC0.4 PDTC0.3 PDTC0.2 PDTC0.1 PDTC0.0 地址: E6h 助记符:PDTC0 位 名称 功能 7-4 PDTC0 Control complementary PWM to delay a dead-time at every rising edge or falling edge. Reset value = 0. 1 = 死区时间在下升沿插入 0 = 死区时间在上升沿插入 PDTC0.4 – 控制一对(PWM0, PWM1). PDTC0.5 -控制一对(PWM2, PWM3). PDTC0.6 -控制一对(PWM4, PWM5). PDTC0.7 -控制一对(PWM6, PWM7). 3-0 PDTC0 使 能 死 区 时 间 插 入 : Dead-time insertion is only active when the pair of complementary PWM is enabled. Reset value=0. If dead-time insertion is inactive, the outputs of pin pair are complementary without any delay. 1 = Programmable dead-time is inserted into the pair signals of comparator output to delay the pair signals change from low to high. 0 = Disable dead-time insertion. - 156 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 PDTC0.0 - enables the dead-time insertion on the pin pair (PWM0, PWM1). PDTC0.1 - enables the dead-time insertion on the pin pair (PWM2, PWM3). PDTC0.2 - enables the dead-time insertion on the pin pair (PWM4, PWM5). PDTC0.3 - enables the dead-time insertion on the pin pair (PWM6, PWM7). PWM 控制寄存器 4 位: 7 6 5 4 3 PWMEO M PWMOO M PWM6O M PWM7O M 2 - 1 - 0 - BKF 地址: E7h 助记符:PWMCON4 位 名称 功能 7 PWMEOM PWM 通道0, 2 和 4 输出模式. 0 = 关 PWM 通道 0, 2 和 4成输出引脚. 1 = 开 PWM 通道 0, 2 和 4成输出引脚. 6 PWMOOM PWM 通道1, 3和 5 输出模式. 0 = 关 PWM 通道 1, 3 和 5成输出引脚. 1 = 开 PWM 通道 1, 3和 5成输出引脚. 5 PWM6OM PWM 通道 6 输出模式. 0 = 关 PWM 通道 6 成输出引脚. 1 = 开 PWM 通道 6 成输出引脚. 4 PWM7OM PWM 通道 7 输出模式. 0 = 关 PWM 通道 7 成输出引脚. 1 = 开 PWM 通道 7 成输出引脚. 3-1 - 保留. 0 BKF 外部钳制脚标志. 0: PWM不钳制. 1: PWM被外部钳制脚钳制。由软件清’0’。 如下选择位(PWMEE and PWMOE), PWMEOM, PWMOOM, PWM6OM and PWM7OM 控制PWM脚的 结构: PWMEE/PWMOE (选择位) PWMEOM/PWMOOM/ PWM6OM/PWM7OM P10.X (X=0-7) 引脚结构 X 0 X 三态Tristate 1(禁止) 1 X 双向(I/O输出) 0(使能) 1 0 推挽(PWM输出) 0(使能) 1 1 推挽(I/O输出) - 157 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 表7-2:PWM管脚结构(运行内部ROM期间) PWMEE/PWMOE (选择位) PWMEOM/PWMOOM/ PWM6OM/PWM7OM P10.X (X=0-7) PIN OUTPUT 引脚结构 1(禁止) X X 外部访问 推挽 0(使能) X X 外部访问 推挽(强) 表7-3:PWM管脚结构(运行外部ROM期间) 注: PWMEOM/PWMOOM/PWM6OM/PWM7OM 在系统复位时将清零.因此, PWM端口引脚将是默认规 则的。 用户必须将这些位置1使能 GPIO/PWM 输出. 扩展中断使能: 位: 7 6 5 4 3 2 1 0 ES1 EX5 EX4 EWDI EX3 EX2 - EI2C 助记符: EIE 地址: E8h 位 名称 功能 7 ES1 使能串口1中断. 6 EX5 使能外部中断 5. 5 EX4 使能外部中断 4. 4 EWDI 使能看门狗中断. 3 EX3 使能外部中断 3. 2 EX2 使能外部中断 2. 1 - 保留. 0 EI2C 使能 I2C中断. I2C 控制寄存器 位: 7 6 5 4 3 2 1 0 - ENS STA STO SI AA I2CIN - 地址: E9h 助记符:I2CON 位 名称 功能 7 - 保留. 6 ENS I2C串行功能使能位. ENS=1 使能 I2C 串行功能. SDA 和 SCL必须保持逻辑1状 态。 5 STA I2C 开始标志 . 。置 1STA 进入主机模式,当总线空闲的时候 I2C 硬件发送一个 START信号或者回复一个START到总线 4 STO I2C为主机模式时,STO位置’1’, 将在I2C总线上输出STOP条件。当检测到总线 上出现STOP条件。I2C硬件清除STO标志,在从机模式,STO标志被置‘1’恢复总 - 158 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 线错误条件。在改模式下没有STOP条件传输到I2C总线上。然而I2C 硬件动作好 像有 STOP条件已经被接收并切换到不可寻址的从接收模式。 STO标志由硬件自 动清除。如果I2C在主机模式 (在从机模式,I2C产生一个内部的STOP条件不传输 到总线上 ) ,如果 STA 和 STO 位同时被置 ’1’ , STOP 条件被传输到 I2C 总线。随后 I2C传输开始条件。 3 SI I2C 中断标志位.在S1STA寄存器上出现一个新的SIO信号时,SI将由硬件置位, 如果EA和EI2C位被置’1’,I2C中断请求,可以产生中断。SI必须由软件清除。 2 AA 接收应答标志位 0: 在下面情况下,在应答时钟脉冲下,SCL上没有应答(SDA上高电平): 1) SIO 为主机接收模式,已经接收一个数据。2) SIO为可寻址的从机接收模式,已经接 收一个数据。 1: 在下面情况下,在应答时钟脉冲下,SCL上没有应答(SDA上高电平):1) 接收 到自己的地址;2) SIO为主机接收模式,已经接收一个数据。3) SIO为可寻址的 从机接收模式,已经接收一个数据。 1 I2CIN 默认值为零, 通过 SDA 引脚输入允许. 置1禁止输入防止漏电流. 在Power-Down 模式下输入将不被允许。 0 - 保留 I2C 地址寄存器 位: 7 6 5 4 3 2 1 0 I2ADDR. 7 I2ADDR. 6 I2ADDR. 5 I2ADDR. 4 I2ADDR. 3 I2ADDR. 2 I2ADDR. 1 GC 助记符: I2ADDR 位 名称 7~1 I2ADDR.7 ~ I2ADDR1 地址: EAh 功能 I2C地址寄存器: 8051 uC可以直接对该8-位寄存器进行读/写操作。在主模式下寄存器的值没有意 义;在从机模式下,高 7 位作为 MCU 本身的地址。如果地址符合硬件会自动应 答。 全呼功能. 0 GC 0: 禁止全呼功能. 1: 允许全呼功能. NVM高位地址 位: 7 6 5 4 3 2 - - - - - NVMADDR NVMADDR NVMADDR H.10 H.9 H.8 助记符: NVMADDRH 位 名称 1 0 地址: EBh 功能 - 159 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 7-3 - 保留. 2-0 NVMADDRH.10 ~ NVMADDRH.8 NVM 高位地址 I2C数据寄存器 位: 7 6 5 4 3 2 1 0 I2DAT.7 I2DAT.6 I2DAT.5 I2DAT.4 I2DAT.3 I2DAT.2 I2DAT.1 I2DAT.0 助记符: I2DAT I2DAT.7-0 地址: ECh I2C 通道数据寄存器. I2C 状态寄存器 位: 7 6 5 4 3 2 1 0 B7 B6 B5 B4 B3 0 0 0 助记符: I2STATUS 地址: EDh 位 名称 功能 7-0 I2STATUS I2C状态寄存器: 低三位始终是 0 ;高 5 位包含状态码。含状态码有 23 可能;当 I2STATUS 的值是 F8H,表示没有串行断请求;其它的所有的I2STATUS值可以反映I2C的状态。当 进入这些状态时会产生一个状态中断请求(SI=1)。一个有效的状态码在SI被硬件 设为’1’后一个周期内反映到I2STATUS中;在SI被软件清 ’0’后一个周期内反映到 I2STATUS中。另外,状态码是00H时表示总线错误;当’起始’或’结束’时出现帧结 构错误时会产生总线错误。 I2C 波特率控制寄存器 位: 7 6 5 4 3 2 1 0 I2CLK.7 I2CLK.6 I2CLK.5 I2CLK.4 I2CLK.3 I2CLK.2 I2CLK.1 I2CLK.0 助记符: I2CLK 地址: EEh 位 名称 功能 7-0 I2CLK I2C的时钟速度位 I2C 定时器/计数器寄存器 位: 7 6 5 4 3 2 1 0 - - - - - ENTI DIV4 TIF 助记符: I2TIMER 地址: EFh 位 名称 功能 7-3 - 保留. 2 ENTI 允许I2C14-位定时器/计数器: - 160 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 1:允许14-位定时器/计数器计数,14-位计数器被允许计数后将被清’0’。 0:禁止14-位定时器/计数器计数. SI=0,ENTI 只能置高. 1 DIV4 I2C 定时器/计数器时钟源分频功能: 0: 14-位定时器/计数器源时钟是Fosc。 1: 14-位定时器/计数器源时钟是Fosc/4。 0 TIF I2C 定时器/计数器溢出标志位: 0: 14-位定时器/计数器没有溢出. 1: 14-位定时器/计数器溢出,当定时器/计数器溢出后,硬件将置位TIF,产生一个 中断请求(EI2C=1),这位必须由软件清零. B 寄存器 位: 7 6 5 4 3 2 1 0 B.7 B.6 B.5 B.4 B.3 B.2 B.1 B.0 助记符: B 地址: F0h 位 名称 功能 7-0 B B 寄存器同标准8052中辅助累加器 外围设备串行控制寄存器 位 7 6 5 4 3 2 1 0 SSOE SPE LSBFE MSTR CPOL CPHA SPR1 SPR0 助记符: SPCR 地址: F3h 位 名称 功能 7 SSOE 从机选择使能位。 SS 输出特性只能在主机模式下通过SSOE位实现。 0: SS 输入 (模式故障) 1: SS 输出 (无模式故障) 6 SPE 外围设备系统串行使能位。 当SPE 置位, SPI 模块功能使能。当MODF 置位,读SPE总是0。 0: SPI 系统禁止。 1: SPI 系统使能。 5 LSBFE LSB – 优先使能: 该位不影响MSB和LSB在数据寄存器中的位置,对数据寄存器的读和写总是有 MSB的位7。在主机模式,该位的改变将中止发送的进行并强迫SPI进入闲置状 态。 - 161 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 0: 传送最低位数据 1: 传送最高位数据 4 MSTR 主机模式选择位: 习惯于接一个由开漏设备驱动的外部上拉电阻。 0:从机模式 1:主机模式 3 CPOL 时钟极性位: 当时钟极性位清零并且数据没有在传送,当 CPOL置位, SCK为高,主机的 SCK 脚有一个稳定的低值状态。 2 CPHA 时钟相位位: 时钟相位位, 和CPOL一起控制主机和从机之间的时钟数据关系, CPHA 位选择两 个不同时中协议中的一个。 1-0 SPR SPI 波特率选择位: 这些位指定SPI波特率 DRSS SSOE 主机模式 从机模式 0 0 /SS输入( 模式故障) /SS输入(不受SSOE影响) 0 1 保留 /SS输入(不受SSOE影响) 1 0 /SS通用I/O( 无模式故障) /SS输入(不受SSOE影响) 1 1 /SS输出(无模式故障) /SS输入(不受SSOE影响) 注: 在主机模式,LSBFE,MSTR,CPOL,CPHA和 SPR [1:0] 的改变将会中止发送的进行,并且导 致SPI系统进入闲置状态。 串行外围设备状态寄存器 位: 7 6 SPIF WCOL 5 SPIOVF 4 3 MODF 2 DRSS 1 - 0 - - 地址: F4h 助记符:SPSR 位 名称 功能 7 SPIF SPI 中断完成标志: 在这个设备和外部设备数据传送完成之后或者新的数据已经收到并且复制到 SPDR中,SPIF置位。如果SPIF为高,且ESPI置位,将产生一个串行外围设备中 断,SPIF由软件清零。 6 WCOL 写冲突位: WCOL位由软件清零 0: 无写冲突 1: 写冲突 - 162 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 5 SPIOVF SPI过载标志: 当在先前收到的字符从SPDR读出前收到一个新的字符,SPIOVF置位。一旦该位 置位, SPDR将不能接受新的数据。在写新的数据前必须将其清零。该位由软件 清零。 0: 没有过载 1: 过载 4 MODF SPI 模式错误中断状态标志: 由软件写零清除该位 0:无模式故障 1: 模式故障 3 DRSS 从机数据寄存器选择 查阅上面寄存器SPCR 中的表格 2-0 - 保留. 注: 位 WCOL, MODF 和 SPIF 必须由软件清零. 串行外围设备I/O 数据寄存器 位: 7 6 5 4 3 2 1 0 SPD.7 SPD.6 SPD.5 SPD.4 SPD.3 SPD.2 SPD.1 SPD.0 地址: F5h 助记符:SPDR 位 名称 功能 7-0 SPD 当在串行总线上传送或接收数据时SPDR 用作为缓冲器。为了防止溢出,下一个 数据传输之前, SPIF 必须清除. I2C 从机地址标识使能位 位 7 6 5 4 3 2 1 0 I2CSADE N.7 I2CSADE N.6 I2CSADE N.5 I2CSADE N.4 I2CSADE N.3 I2CSADE N.2 I2CSADE N.1 I2CSADE N.0 地址: F6h 助记符:I2CSADEN 位 名称 功能 7-0 I2CSADEN 该位使I2C地址自动识别功能,当I2CSADEN位置1, I2CSADDR1将同引入的串行 数据进行比较, I2CSADEN位置0不能进行比较, 该位使I2C地址自动识别功能,当 I2CSADEN的每一位都是0时, 任意地址输入都会引发中断.默认值是0xFE. 扩展中断高优先级 位: 7 6 5 4 3 2 1 0 PS1H PX5H PX4H PWDIH PX3H PX2H - PI2CH 地址: F7h 助记符:EIPH - 163 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 位 名称 功能 7 PS1H = 1 串口1中断最高优先级. 6 PX5H = 1 外部中断5最高优先级. 5 PX4H = 1 外部中断4最高优先级. 4 PWDIH = 1 看门狗最高优先级. 3 PX3H = 1 外部中断3最高优先级. 2 PX2H = 1 外部中断2最高优先级. 1 - 保留. 0 PI2CH = 1 I2C中断最高优先级. 扩展中断优先级寄存器 位: 7 6 5 4 3 2 1 0 PS1 PX5 PX4 PWDI PX3 PX2 - PI2C 助记符: EIP 地址: F8h 位 名称 功能 7 PS1 串口1中断高优先级. 6 PX5 外部中断5高优先级. 5 PX4 外部中断4高优先级. 4 PWDI 看门狗高优先级. 3 PX3 外部中断3高优先级. 2 PX2 外部中断2高优先级. 1 - 保留. 0 PI2C I2C中断高优先级. 扩展中断使能 1 7 位: 6 - 5 - 4 ENVM 3 ECPTF 2 ET3 1 EBK 0 EPWM ESPI 地址: F9h 助记符:EIE1 位 名称 功能 7-6 - 保留. 5 ENVM NVM 中断使能位. 0 =禁止 NVM 中断. 1 = 允许 NVM 中断. - 164 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 4 ECPTF 捕获中断使能位. 0 = 禁止外部捕获/从装载中断. 1 = 允许外部捕获/从装载中断. 3 ET3 定时器3中断使能位. 0 = 禁止定时器3中断. 1 = 允许定时器3中断. 2 EBK 欠压中断使能位. 0 = 禁止欠压中断. 1 = 允许欠压中断. 1 EPWM PWM中断使能位. 0 = 禁止PWM 中断 1 = 允许PWM 中断 0 ESPI SPI中断使能位. 0 = 禁止SPI中断 1 = 允许SPI 中断 扩展中断优先级1 位: 7 6 5 4 3 2 1 0 - - PNVMI PCPTF PT3 PBKF PPWMF PSPI 地址: FAh 助记符:EIP1 位 名称 功能 7-6 - 保留. 5 PNVMI NVM 中断高优先级 4 PCPTF 捕获/重装载 中断高优先级 3 PT3 定时器 3中断高优先级. 2 PBKF PWM Brake中断高优先级 1 PPWMF PWM period中断高优先级. 0 PSPI SPI中断高优先级. 输入捕获0/脉冲低位计数寄存器 位: 7 6 5 4 3 2 1 0 CCL0.7/ PCNTL.7 CCL0.6/ PCNTL.6 CCL0.5/ PCNTL.5 CCL0.4/ PCNTL.4 CCL0.3/ PCNTL.3 CCL0.2/ PCNTL.2 CCL0.1/ PCNTL.1 CCL0.0/ PCNTL.0 助记符: CCL0/PCNTL 地址: FBh 读 PCNTH 之前必须先读 PCNTL ,由于读 PCNTL 将使 PLSCNTH 自动装载到 PCNTH; 否则将在读 PCNTL产生错误的结果。 - 165 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 输入捕获0/脉冲高位计数寄存器 输入捕获0高位寄存器 位: 7 6 5 4 3 2 1 0 CCH0.7/ PCNTH.7 CCH0.6/ PCNTH.6 CCH0.5/ PCNTH.5 CCH0.4/ PCNTH.4 CCH0.3/ PCNTH.3 CCH0.2/ PCNTH.2 CCH0.1/ PCNTH.1 CCH0.0/ PCNTH.0 地址: FCh 助记符:CCH0/PCNTH 读PCNTH 之前必须先读PCNTL。 输出捕获1/脉冲低位计数寄存器 位: 7 6 5 4 3 2 1 0 CCL1.7/ PLSCNT L.7 CCL1.6/ PLSCNT L.6 CCL1.5/ PLSCNT L.5 CCL1.4/ PLSCNT L.4 CCL1.3/ PLSCNT L.3 CCL1.2/ PLSCNT L.2 CCL1.1/ PLSCNT L.1 CCL1.0/ PLSCNT L.0 助记符: CCL1/PLSCNTL 地址: FDh 输入捕获1/脉冲高位计数寄存器 位: 7 6 5 4 3 2 1 0 CCH1.7/ PLSCNT H.7 CCH1.6/ PLSCNT H.6 CCH1.5/ PLSCNT H.5 CCH1.4/ PLSCNT H.4 CCH1.3/ PLSCNT H.3 CCH1.2/ PLSCNT H.2 CCH1.1/ PLSCNT H.1 CCH1.0/ PLSCNT H.0 地址: FEh 助记符:CCH1/PLSCNTH 中断控制 位: 7 6 5 4 3 2 1 0 - - INT5CT1 INT5CT0 INT4CT1 INT4CT0 INT3CT1 INT3CT0 地址: FFh 助记符:INTCTRL 位 名称 功能 7-6 - 保留. 5-4 INT5CT 中断5边沿触发选择: 3-2 INT4CT INT5CT1 INT5CT0 0 0 上升沿触发. 0 1 下降沿触发. 1 0 上升,下降沿触发. 1 1 保留. 描述 中断4边沿触发选择: INT4CT1 INT4CT0 0 0 描述 上升沿触发. - 166 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 1-0 INT3CT 0 1 下降沿触发. 1 0 上升,下降沿触发. 1 1 保留. 中断3边沿触发选择: INT3CT1 INT3CT0 0 0 上升沿触发. 0 1 下降沿触发. 1 0 上升,下降沿触发. 1 1 保留. 描述 - 167 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 24 指令系统 W79E22X 系列执行标准8051/52 体系微处理器中的所有的指令。指令的功能,对标志位及状态位的影 响完全与标准8052 处理器的指令相同。但是指令的时序存在差别;主要是有2个原因,第一W79E22X 系列每4个时钟周期为一个机器周期,而标准8052每12个时钟周期为一个机器周期。另外W79E22X 系 列 每个机器周期只有一个取动作,而标准8051/52 每个机器周期有2个取动作。 W79E22X 系列 的优势在于由于每个机器周期只有一个取动作,因此对大多数指令来说其机器周期数和 它的操作数数目相同。而对于跳转和调用指令,会增加一个指令周期用以计算新的程序地址。从整体上 来说,W79E22X 系列 减少了空取和等待的周期,因而提高了系统的效率。 HEX CODE 8032 W79E22X 系列 W79E22X 系列 CLOCK BYTES MACHINE CLOCK CYCLE CYCLE CYCLES S W79E22X 系列 VS. 8032 SPEED RATIO NOP 00 1 1 4 12 3 ADD A, R0 28 1 1 4 12 3 ADD A, R1 29 1 1 4 12 3 ADD A, R2 2A 1 1 4 12 3 ADD A, R3 2B 1 1 4 12 3 ADD A, R4 2C 1 1 4 12 3 ADD A, R5 2D 1 1 4 12 3 ADD A, R6 2E 1 1 4 12 3 ADD A, R7 2F 1 1 4 12 3 ADD A, @R0 26 1 1 4 12 3 ADD A, @R1 27 1 1 4 12 3 ADD A, direct 25 2 2 8 12 1.5 ADD A, #data 24 2 2 8 12 1.5 ADDC A, R0 38 1 1 4 12 3 ADDC A, R1 39 1 1 4 12 3 ADDC A, R2 3A 1 1 4 12 3 ADDC A, R3 3B 1 1 4 12 3 ADDC A, R4 3C 1 1 4 12 3 ADDC A, R5 3D 1 1 4 12 3 ADDC A, R6 3E 1 1 4 12 3 ADDC A, R7 3F 1 1 4 12 3 ADDC A, @R0 36 1 1 4 12 3 ADDC A, @R1 37 1 1 4 12 3 ADDC A, direct 35 2 2 8 12 1.5 OP-CODE - 168 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 ADDC A, #data 34 2 2 8 12 1.5 SUBB A, R0 98 1 1 4 12 3 SUBB A, R1 99 1 1 4 12 3 SUBB A, R2 9A 1 1 4 12 3 SUBB A, R3 9B 1 1 4 12 3 SUBB A, R4 9C 1 1 4 12 3 SUBB A, R5 9D 1 1 4 12 3 SUBB A, R6 9E 1 1 4 12 3 SUBB A, R7 9F 1 1 4 12 3 SUBB A, @R0 96 1 1 4 12 3 SUBB A, @R1 97 1 1 4 12 3 SUBB A, direct 95 2 2 8 12 1.5 SUBB A, #data 94 2 2 8 12 1.5 INC A 04 1 1 4 12 3 INC R0 08 1 1 4 12 3 INC R1 09 1 1 4 12 3 INC R2 0A 1 1 4 12 3 INC R3 0B 1 1 4 12 3 INC R4 0C 1 1 4 12 3 INC R5 0D 1 1 4 12 3 INC R6 0E 1 1 4 12 3 INC R7 0F 1 1 4 12 3 INC @R0 06 1 1 4 12 3 INC @R1 07 1 1 4 12 3 INC direct 05 2 2 8 12 1.5 INC DPTR A3 1 2 8 24 3 DEC A 14 1 1 4 12 3 DEC R0 18 1 1 4 12 3 DEC R1 19 1 1 4 12 3 DEC R2 1A 1 1 4 12 3 DEC R3 1B 1 1 4 12 3 DEC R4 1C 1 1 4 12 3 DEC R5 1D 1 1 4 12 3 DEC R6 1E 1 1 4 12 3 DEC R7 1F 1 1 4 12 3 DEC @R0 16 1 1 4 12 3 - 169 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 DEC @R1 17 1 1 4 12 3 DEC direct 15 2 2 8 12 1.5 MUL AB A4 1 5 20 48 2.4 DIV AB 84 1 5 20 48 2.4 DA A D4 1 1 4 12 3 ANL A, R0 58 1 1 4 12 3 ANL A, R1 59 1 1 4 12 3 ANL A, R2 5A 1 1 4 12 3 ANL A, R3 5B 1 1 4 12 3 ANL A, R4 5C 1 1 4 12 3 ANL A, R5 5D 1 1 4 12 3 ANL A, R6 5E 1 1 4 12 3 ANL A, R7 5F 1 1 4 12 3 ANL A, @R0 56 1 1 4 12 3 ANL A, @R1 57 1 1 4 12 3 ANL A, direct 55 2 2 8 12 1.5 ANL A, #data 54 2 2 8 12 1.5 ANL direct, A 52 2 2 8 12 1.5 ANL direct, #data 53 3 3 12 24 2 ORL A, R0 48 1 1 4 12 3 ORL A, R1 49 1 1 4 12 3 ORL A, R2 4A 1 1 4 12 3 ORL A, R3 4B 1 1 4 12 3 ORL A, R4 4C 1 1 4 12 3 ORL A, R5 4D 1 1 4 12 3 ORL A, R6 4E 1 1 4 12 3 ORL A, R7 4F 1 1 4 12 3 ORL A, @R0 46 1 1 4 12 3 ORL A, @R1 47 1 1 4 12 3 ORL A, direct 45 2 2 8 12 1.5 ORL A, #data 44 2 2 8 12 1.5 DEC R6 1E 1 1 4 12 3 DEC R7 1F 1 1 4 12 3 DEC @R0 16 1 1 4 12 3 DEC @R1 17 1 1 4 12 3 - 170 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 DEC direct 15 2 2 8 12 1.5 MUL AB A4 1 5 20 48 2.4 DIV AB 84 1 5 20 48 2.4 DA A D4 1 1 4 12 3 ANL A, R0 58 1 1 4 12 3 ANL A, R1 59 1 1 4 12 3 ANL A, R2 5A 1 1 4 12 3 ANL A, R3 5B 1 1 4 12 3 ANL A, R4 5C 1 1 4 12 3 ANL A, R5 5D 1 1 4 12 3 ANL A, R6 5E 1 1 4 12 3 ANL A, R7 5F 1 1 4 12 3 ANL A, @R0 56 1 1 4 12 3 ANL A, @R1 57 1 1 4 12 3 ANL A, direct 55 2 2 8 12 1.5 ANL A, #data 54 2 2 8 12 1.5 ANL direct, A 52 2 2 8 12 1.5 ANL direct, #data 53 3 3 12 24 2 ORL A, R0 48 1 1 4 12 3 ORL A, R1 49 1 1 4 12 3 ORL A, R2 4A 1 1 4 12 3 ORL A, R3 4B 1 1 4 12 3 ORL A, R4 4C 1 1 4 12 3 ORL A, R5 4D 1 1 4 12 3 ORL A, R6 4E 1 1 4 12 3 ORL A, R7 4F 1 1 4 12 3 ORL A, @R0 46 1 1 4 12 3 ORL A, @R1 47 1 1 4 12 3 ORL A, direct 45 2 2 8 12 1.5 ORL A, #data 44 2 2 8 12 1.5 DEC R6 1E 1 1 4 12 3 DEC R7 1F 1 1 4 12 3 DEC @R0 16 1 1 4 12 3 DEC @R1 17 1 1 4 12 3 - 171 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 DEC direct 15 2 2 8 12 1.5 MUL AB A4 1 5 20 48 2.4 DIV AB 84 1 5 20 48 2.4 DA A D4 1 1 4 12 3 ANL A, R0 58 1 1 4 12 3 ANL A, R1 59 1 1 4 12 3 ANL A, R2 5A 1 1 4 12 3 ANL A, R3 5B 1 1 4 12 3 ANL A, R4 5C 1 1 4 12 3 ANL A, R5 5D 1 1 4 12 3 ANL A, R6 5E 1 1 4 12 3 ANL A, R7 5F 1 1 4 12 3 ANL A, @R0 56 1 1 4 12 3 ANL A, @R1 57 1 1 4 12 3 ANL A, direct 55 2 2 8 12 1.5 ANL A, #data 54 2 2 8 12 1.5 ANL direct, A 52 2 2 8 12 1.5 ANL direct, #data 53 3 3 12 24 2 ORL A, R0 48 1 1 4 12 3 ORL A, R1 49 1 1 4 12 3 ORL A, R2 4A 1 1 4 12 3 ORL A, R3 4B 1 1 4 12 3 ORL A, R4 4C 1 1 4 12 3 ORL A, R5 4D 1 1 4 12 3 ORL A, R6 4E 1 1 4 12 3 ORL A, R7 4F 1 1 4 12 3 ORL A, @R0 46 1 1 4 12 3 ORL A, @R1 47 1 1 4 12 3 ORL A, direct 45 2 2 8 12 1.5 ORL A, #data 44 2 2 8 12 1.5 MOV direct, R1 89 2 2 8 12 1.5 MOV direct, R2 8A 2 2 8 12 1.5 MOV direct, R3 8B 2 2 8 12 1.5 MOV direct, R4 8C 2 2 8 12 1.5 MOV direct, R5 8D 2 2 8 12 1.5 - 172 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 MOV direct, R6 8E 2 2 8 12 1.5 MOV direct, R7 8F 2 2 8 12 1.5 MOV direct, @R0 86 2 2 8 12 1.5 MOV direct, @R1 87 2 2 8 12 1.5 MOV direct, direct 85 3 3 12 24 2 MOV direct, #data 75 3 3 12 24 2 MOV DPTR, #data 16 90 3 3 12 24 2 MOVC A, @A+DPTR 93 1 2 8 24 3 MOVC A, @A+PC 83 1 2 8 24 3 MOVX A, @R0 E2 1 2-9 8 - 36 24 3 - 0.66 MOVX A, @R1 E3 1 2-9 8 - 36 24 3 - 0.66 MOVX A, @DPTR E0 1 2-9 8 - 36 24 3 - 0.66 MOVX @R0, A F2 1 2-9 8 - 36 24 3 - 0.66 MOVX @R1, A F3 1 2-9 8 - 36 24 3 - 0.66 MOVX @DPTR, A F0 1 2-9 8 - 36 24 3 - 0.66 PUSH direct C0 2 2 8 24 3 POP direct D0 2 2 8 24 3 XCH A, R0 C8 1 1 4 12 3 XCH A, R1 C9 1 1 4 12 3 XCH A, R2 CA 1 1 4 12 3 XCH A, R3 CB 1 1 4 12 3 XCH A, R4 CC 1 1 4 12 3 XCH A, R5 CD 1 1 4 12 3 XCH A, R6 CE 1 1 4 12 3 XCH A, R7 CF 1 1 4 12 3 XCH A, @R0 C6 1 1 4 12 3 XCH A, @R1 C7 1 1 4 12 3 XCHD A, @R0 D6 1 1 4 12 3 XCHD A, @R1 D7 1 1 4 12 3 XCH A, direct C5 2 2 8 12 1.5 CLR C C3 1 1 4 12 3 CLR bit C2 2 2 8 12 1.5 SETB C D3 1 1 4 12 3 - 173 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 SETB bit D2 2 2 8 12 1.5 CPL C B3 1 1 4 12 3 CPL bit B2 2 2 8 12 1.5 ANL C, bit 82 2 2 8 24 3 ANL C, /bit B0 2 2 6 24 3 ORL C, bit 72 2 2 8 24 3 ORL C, /bit A0 2 2 6 24 3 MOV C, bit A2 2 2 8 12 1.5 MOV bit, C 92 2 2 8 24 3 ACALL addr11 71, 91, B1, 11, 31, 51, D1, F1 2 3 12 24 2 LCALL addr16 12 3 4 16 24 1.5 RET 22 1 2 8 24 3 RETI 32 1 2 8 24 3 AJMP ADDR11 01, 21, 41, 61, 81, A1, C1, E1 2 3 12 24 2 LJMP addr16 02 3 4 16 24 1.5 JMP @A+DPTR 73 1 2 6 24 3 SJMP rel 80 2 3 12 24 2 JZ rel 60 2 3 12 24 2 JNZ rel 70 2 3 12 24 2 JC rel 40 2 3 12 24 2 JNC rel 50 2 3 12 24 2 JB bit, rel 20 3 4 16 24 1.5 JNB bit, rel 30 3 4 16 24 1.5 JBC bit, rel 10 3 4 16 24 1.5 CJNE A, direct, rel B5 3 4 16 24 1.5 CJNE A, #data, rel B4 3 4 16 24 1.5 CJNE @R0, #data, rel B6 3 4 16 24 1.5 CJNE @R1, #data, rel B7 3 4 16 24 1.5 CJNE R0, #data, rel B8 3 4 16 24 1.5 - 174 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 CJNE R1, #data, rel B9 3 4 16 24 1.5 CJNE R2, #data, rel BA 3 4 16 24 1.5 CJNE R3, #data, rel BB 3 4 16 24 1.5 CJNE R4, #data, rel BC 3 4 16 24 1.5 CJNE R5, #data, rel BD 3 4 16 24 1.5 CJNE R6, #data, rel BE 3 4 16 24 1.5 CJNE R7, #data, rel BF 3 4 16 24 1.5 DJNZ R0, rel D8 2 3 12 24 2 DJNZ R1, rel D9 2 3 12 24 2 DJNZ R5, rel DD 2 3 12 24 2 DJNZ R2, rel DA 2 3 12 24 2 DJNZ R3, rel DB 2 3 12 24 2 DJNZ R4, rel DC 2 3 12 24 2 DJNZ R6, rel DE 2 3 12 24 2 DJNZ R7, rel DF 2 3 12 24 2 DJNZ direct, rel D5 3 4 16 24 1.5 表 24-1: W79E22X 系列 指令 24.1 指令时序 指令时序对W79E22X 系列来说是一个很重要的特性,对于用软件的方式来产生定时的用户更为重要。 它也向用户说明W79E22X 系列 与标准8051/2 在时序上的差别。在W79E22X 系列中每个机器周期是4 个时钟周期,每个时钟周期都是一个确定的状态。因此一个机器周期由4个确定的状态C1、C2、C3、 C4组成。由于每条 指令的执行速度都加快了,所以时钟的2个跳变边沿都用于内部时序。因此时钟的占 空比接近于50%,以避免时间上发生冲突。前面已经说到W79E22X 系列每一个机器周期进行一次代码 读取操作,因此对大多数指令来说,执行指令的机器周期与操作码中的字节数相同。系统总共有256 个 操作码,其中有128个是单周期指令。因此在W79E22X 系列中有一半的指令会在4个时钟周期内执行完 毕。对多数双字节指令来说,指令的执行周期是2个机器周期。但也有指令为一个字节但周期是2个时钟 周期的情况;一个需要特别注意的指令是MOVX指令,在标准8051/2 中他的指令周期固定为2个机器周 期. 但在W79E22X 系列中他的指令周期可变为2-9 个机器周期。 RD 和 WR 信号也有相应的变化。这 为用户访问快速或慢速设备就带来了方便,不需使用额外的外围电路,也减少了软件负担。剩下的指令 的机器周期数目可以是3个,4个,5个。注意在W79E22X 系列中基于指令字节数目的不同,共有5种类 型的指令,而标准8051/2 中只有3种指令类型。但是W79E22X 系列中每4个时钟周期为一个机器周期, 而不是标准8052中每12个时钟周期为一个机器周期。因此尽管指令种类增多, W79E22X 系列中的指令 - 175 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 执行速度要比标准8051/52快1.5-3倍。(以时钟周期计算) Single Cycle C1 C2 C3 C4 CLK ALE PSEN A7-0 AD7-0 Data_ in D7-0 Address A15-8 PORT 2 图 24-1: 单周期指令时序 Operand Fetch Instruction Fetch C1 C2 C3 C4 C1 C2 C3 C4 CLK ALE PSEN AD7-0 PORT 2 PC OP-CODE PC+1 Address A15-8 OPERAND Address A15-8 图 24-2: 双周期指令时序 - 176 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 Instruction Fetch C1 C2 C3 Operand Fetch C4 C1 C2 Operand Fetch C3 C4 C1 C2 C3 C4 CLK ALE PSEN A7-0 AD7-0 PORT 2 OP-CODE A7-0 Address A15-8 OPERAND A7-0 Address A15-8 OPERAND Address A15-8 图 24-3: 三周期指令时序 Instruction Fetch C1 C2 C3 C4 Operand Fetch C1 C2 C3 C4 Operand Fetch C1 C2 C3 C4 Operand Fetch C1 C2 C3 C4 CLK ALE PSEN AD7-0 A7-0 OP-CODE A7-0 OPERAND A7-0 OPERAND A7-0 OPERAND Port 2 Address A15-8 Address A15-8 Address A15-8 Address A15-8 图 24-4: 四周期指令时序 - 177 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 Instruction Fetch C1 C2 C3 C4 Operand Fetch C1 C2 C3 C4 Operand Fetch C1 C2 C3 C4 Operand Fetch C1 C2 C3 C4 Operand Fetch C1 C2 C3 C4 CLK ALE PSEN AD7-0 A7-0 OP-CODE A7-0 OPERAND A7-0 OPERAND A7-0 OPERAND A7-0 OPERAND PORT 2 Address A15-8 Address A15-8 Address A15-8 Address A15-8 Address A15-8 图 24-5: 五周期指令时序 24.2 外部数据存储器访问时序 MOVX 指令的时序是W79E22X 系列另一大特性。在标准的8052中,MOVX指令的周期固定,为2个机 器周期。但在W79E22X 系列中MOVX指令的周期可以按照用户的需求改变。 指令以正常的4个时钟周期开始,在下一个时钟周期,W79E22X 系列输出要访问的外部数据存储器的地 址,此刻才进行真正的访问。用户可以通过设置STRETCH的数值来改变这个周期时间的长短。用 CKCON寄存器中的3个位来设置STRETCH的值。这3位是M2-0(CKCON中的2-0位),这3位给出8种 不同的访问时间选项。STRETCH的取值范围为0-7,这样MOVX指令周期的变化范围就是2-9个机器周 期。 注意这样的设置仅对MOVX指令有效;默认状态下STRETCH值为1,MOVX的指令周期为3个时钟 周期。如果需要用户可以将STRETCH值设为0,使MOVX的指令周期为2个时钟周期,以获得最快的访 问速度。 M2 M1 M0 机器周期 RD or WR 信号 时钟数 25 MHz 下 RD 或 WR 信号宽度 40 MHz 下 RD 或 WR 信号宽度 0 0 0 2 2 80 nS 50 nS 0 0 1 3 (default) 4 160 nS 100 nS 0 1 0 4 8 320 nS 200 nS 0 1 1 5 12 480 nS 300 nS 1 0 0 6 16 640 nS 400 nS 1 0 1 7 20 800 nS 500 nS 1 1 0 8 24 960 nS 600 nS 1 1 1 9 28 1120 nS 700 nS 表 24-2: 数据存储器 Stretch 值 - 178 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 First Second Machine cycle Machine cycle Last Cycle of Previous Instruction Next Instruction Machine Cycle MOVX instruction cycle C1 C2 C3 C4 C1 C2 C3 C4 C1 C2 C3 C4 C1 C2 C3 C4 CLK ALE PSEN WR PORT 0 A0-A7 A0-A7 D0-D7 Next Inst. Address MOVX Inst. Address MOVX Inst. A15-A8 PORT 2 D0-D7 D0-D7 A0-A7 A0-A7 D0-D7 MOVX Data Address Next Inst. Read MOVX Data out A15-A8 A15-A8 A15-A8 图 24-6: STRETCH=0 时的外部数据存储器访问时序 Last Cycle of Previous Instruction First Second Third Machine Cycle Machine Cycle Machine Cycle Next Instruction Machine Cycle MOVX instruction cycle C1 C2 C3 C4 C1 C2 C3 C4 C1 C2 C3 C4 C1 C2 C3 C4 C1 C2 C3 C4 CLK ALE PSEN WR PORT 0 D0-D7 A0-A7 MOVX Inst. Address Next Inst. Address MOVX Inst. PORT 2 A15-A8 D0-D7 A0-A7 A0-A7 MOVX Data Address D0-D7 A0-A7 D0-D7 MOVX Data out Next Inst. Read A15-A8 A15-A8 A15-A8 图 24-7: STRETCH=1 时的外部数据存储器访问时序 - 179 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 Last Cycle First Second Third Fourth of Previous Instruction Machine Cycle Machine Cycle Machine Cycle Machine Cycle Next Instruction Machine Cycle MOVX instruction cycle C1 C2 C3 C4 C1 C2 C3 C4 C1 C2 C3 C4 C1 C2 C3 C4 C1 C2 C3 C4 C1 C2 C3 C4 CLK ALE PSEN WR PORT 0 D0-D7 A0-A7 MOVX Inst. Address Next Inst. Address MOVX Inst. PORT 2 A15-A8 D0-D7 A0-A7 D0-D7 A0-A7 MOVX Data Address A0-A7 D0-D7 MOVX Data out Next Inst. Read A15-A8 A15-A8 A15-A8 图 24-8: STRETCH=2 时的外部数据存储器访问时序 - 180 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 25 电器特征 25.1 绝对最大额定值 参数 符号 最小值 最大值 单位 直流电源电压 VDD − VSS -0.3 +7.0 V 输入电压 VIN VSS -0.3 VDD +0.3 V 工作温度 TA -40 +85 °C 贮存温度 Tst -55 +150 °C 注释:超出最大绝对额定值表所列的情况使用,会对器件的可靠性和寿命造成严重损害。 25.2 直流特性 (VDD − VSS = 5V ±10%, TA = 25°C, Fosc = 20 MHz, 除非另有说明) 参数 符号 说明 Min 单位 Typ VDD 2.7 VDD1 3.0 IDD1 - 5 Max 5.5 V 工作电压 工作电流 VDD =4.5V ~ 5.5V @ 40MHz VDD =2.7V ~ 5.5V @ 20MHz NVM编程和擦除电压 36 50 mA Run NOP VDD=5.5V at 40MHz IDD2 28 35 mA VDD=5.5V at 20MHz IDD3 12 16 mA VDD=3.0V at 20MHz - 35 mA Idle mode VDD=5.5V at 40MHz IIDLE2 20 mA VDD=5.5V at 20MHz IIDLE3 10 mA VDD=3.0V at 20MHz IIDLE1 闲置电流 测试条件 - IPWDN - - 10 uA Power-down mode VDD=2.7V~5.5V 输入电流 P1, P2, P3, P4, P5, P6, P7 IIN1 -50 - +15 uA VDD=5.5V VIN=0V or VDD 输入电流 RST IIN2 -10 50 +300 uA VDD=5.5V 0<VIN<VDD 输入漏电流 ILK -10 0 +10 uA VDD=5.5V 0V<VIN<VDD ITL[*4] -500 - -200 uA VDD = 5.5V VIN ≈ 2.0V 掉电电流 P0, EA 逻辑1到0的转换电流 P1, P2, P3, P4, P5, P6, P7 [*4] - 181 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 输入低电压 VIL1 -0.5 - 0.3 VDD V VIH1 0.7 VDD - VDD+0.2 V P0, P1, P2, P3, P4, P5, P6, P7 EA (Schmitt 输入) 输入高电压 P0, P1, P2, P3, P4, P5, P6, P7 EA (Schmitt 输入) Hysteresis voltage VHY 输入低电压 V IL21 - - 1.6 RST, V IL22 - - 0.8 VIH21 3.5 - VDD+0.2 VIH22 2.0 V IL31 0 - 0.8 XTAL1 V IL32 0 - 0.4 输入高电压 VIH31 3.5 - VDD+0.2 XTAL1 VIH32 2.0 - VDD+0.2 输出低电压 P2.0~P2.5, VOL11 - P5.0~P5.1 (推挽模式) VOL12 - 0.4 输出低电压 P0, P1, P2, P3, VOL21 - 0.5 P4, P5, P6, P7 (准双向模式) VOL22 - 0.4 输出高电压 P2.0~P2.5, VOH11 2.4 - P5.0~P5.1 (推挽模式) VOH12 1.9 - 输出高电压 P1, P2, P3, P4, VOH21 3.2 - P5, P6, P7 (准双向模式) VOH22 2.1 - 吸收电流[*2] Isk31 8 16 P0, P2, ALE, PSEN Isk32 4.5 9 源电流[*2] Isr31 -8 -14 P0, P2, ALE, PSEN Isr32 -3 输入高电压 RST [*1] 输入低电压 [*3] [*3] 0.2 VDD V VDD+0.2 V V V V 0.9 - -6 VDD=4.5V VDD=2.7V VDD=5.5V VDD=2.7V VDD=4.5V VDD=2.7V VDD=5.5V VDD=2.7V VDD = 4.5V, IOL = 20 mA V VDD = 2.7V, IOL = 3.2 mA VDD = 4.5V, IOL = 4.0 mA V VDD = 2.7V, IOL = 3.0 mA VDD = 4.5V, IOH = -16-20mA V VDD = 2.7V, IOH =-3.2mA VDD = 4.5V, IOH =-80-100uA V mA VDD = 2.7V, IOH = -25-30uA VDD=4.5V, Vs = 0.45V VDD = 2.7V, VS = 0.45V mA VDD=4.5V, Vs = 2.4V VDD =2.7V, VS = 2.0V Notes: *1. RST脚为施密特触发输入. RST 内部下拉电阻60kΩ. *2. P0, P2, ALE and /PSEN 在外部访问模式中测试. *3. XTAL1是CMOS输入. - 182 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 *4. Pins of P1, P2, P3, P4, P5, P6, P7上的管脚被外部拉高或拉低时,他们会产生变迁电流。当VIN为2V时,变迁电流达到最大值 - 183 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 25.3 交流特征 tCLCL tCLCH tCLCX Clock tCHCL tCHCX 注:占空比为50% 25.3.1 外部时钟特性 参数 符号 最小值. 典型值. 最大值. 单位 时钟高时间 tCHCX 12 - - nS 时钟低时间 tCLCX 12 - - nS 时钟上升时间 tCLCH - - 10 nS 时钟下降时间 tCHCL - - 10 nS 注释 25.3.2 交流特征说明 (VDD − VSS = 5V ±10%, TA = 25°C, Fosc = 20 MHz, 除非另有说明) 参数 振荡器频率 符号 1/tCLCL 时钟最小值 0 时钟最大值 单位 40 1 MHz 33 2 MHz 振荡器频率 1/tCLCL 0 ALE脉冲宽度 tLHLL 1.5tCLCL - 5 nS 地址有效到ALE低 tAVLL 0.5tCLCL - 5 nS ALE低后地址保持 tLLAX1 0.5tCLCL - 5 nS ALE为MOVX指令低后地址保持 tLLAX2 0.5tCLCL - 5 nS ALE低后到指令读入有效 tLLIV ALE 低到PSEN低 tLLPL 0.5tCLCL - 5 nS PSEN 脉冲宽度 tPLPH 2.0tCLCL - 5 nS PSEN 低到指令读入有效 tPLIV PSEN 后输入指令保持 tPXIX PSEN 后输入指令浮空 tPXIZ tCLCL - 5 nS Port 0地址保持到指令有效 tAVIV1 3.0tCLCL - 20 nS Port 2地址保持到指令有效 tAVIV2 3.5tCLCL - 20 nS PSEN 低到地址浮空 tPLAZ 2.5tCLCL - 20 2.0tCLCL - 20 0 0 - 184 - nS nS nS nS 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 读后数据保持 tRHDX 读后数据浮空 tRHDZ tCLCL - 5 nS 地址浮空变低 tRLAZ 0.5tCLCL - 5 nS 0 nS 注: 1. VDD=5.0V 时CPU执行存储在内部 APFlash 的指令。 2.VDD=5.0V 时CPU执行存储在外部存储器 的指令。 25.3.3 MOVX 在使用STRETCH时的特性 参数 符号 数据总线ALE脉冲宽度 tLLHL2 ALE为MOVX指令低后地址保持 单位 参数 1.5tCLCL - 5 2.0tCLCL - 5 nS tMCS = 0 tMCS>0 tLLAX2 0.5tCLCL - 5 nS RD 信号宽度 tRLRH 2.0tCLCL - 5 tMCS - 10 nS tMCS = 0 tMCS>0 WR 信号宽度 tWLWH 2.0tCLCL - 5 tMCS - 10 nS tMCS = 0 tMCS>0 RD 低到有效数据输入 tRLDV nS tMCS = 0 tMCS>0 读后数据保持 tRHDX 读后数据浮空 tRHDZ tCLCL - 5 2.0tCLCL - 5 nS tMCS = 0 tMCS>0 ALE低到数据有效 tLLDV 2.5tCLCL - 5 tMCS + 2tCLCL - 40 nS tMCS = 0 tMCS>0 Port 0地址保持到指令有效 tAVDV1 3.0tCLCL - 20 2.0tCLCL - 5 nS tMCS = 0 tMCS>0 ALE 低到 RD 或 WR 低 tLLWL 0.5tCLCL - 5 1.5tCLCL - 5 0.5tCLCL + 5 1.5tCLCL + 5 nS tMCS = 0 tMCS>0 tAVWL tCLCL - 5 2.0tCLCL - 5 nS tMCS = 0 tMCS>0 tAVWL2 1.5tCLCL - 5 2.5tCLCL - 5 nS tMCS = 0 tMCS>0 数据有效到 WR 发送 tQVWX -5 1.0tCLCL - 5 nS tMCS = 0 tMCS>0 写后数据保持 tWHQX tCLCL - 5 2.0tCLCL - 5 nS tMCS = 0 tMCS>0 RD 低到地址浮空 tRLAZ RD 或 WR 高到ALE高 tWHLH Port 0 地址到 RD 或 WR 低 Port 2地址到 RD 或 WR 低 时钟最小值 时钟最大值 2.0tCLCL - 20 tMCS - 20 0 nS 0 - 185 - 0.5tCLCL - 5 nS 10 nS tMCS = 0 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 1.0tCLCL - 5 1.0tCLCL + 5 tMCS>0 注: tMCS是是与 扩展存储器 周期选择有关的参数.下表列出tMCS 周期 M2 M1 M0 MOVX 周期 tMCS 0 0 0 2机器周期 0 0 0 1 3机器周期 4 tCLCL 0 1 0 4机器周期s 8 tCLCL 0 1 1 5机器周期 12 tCLCL 1 0 0 6机器周期 16 tCLCL 1 0 1 7机器周期s 20 tCLCL 1 1 0 8机器周期s 24 tCLCL 1 1 1 9机器周期 28 tCLCL 对逻辑符号的解释: 为了保持与8051 体系的兼容性,W79E216/217使用与8051 相同的逻辑符号;解释如下: 时间 A 地址 t C 时钟 D 输入数据 H 逻辑高 L 逻辑低 I 指令 P PSEN Q 输出数据 R RD 信号 V 有效 W WR 信号 X 非有效状态 Z 三态 25.4 ADC直流特性 (VDD−VSS = 3.0~5V±10%, TA = -40~85°C, Fosc = 20MHz, 除非特别说明.) 参数 符号 说明 Min. 模拟输入 AVin VSS-0.2 ADC 时钟 ADCCLK 200KHz 转换时间 TYP. - Max. VDD+0.2 V 5MHz Hz 52tADC1 tC Unit us 非线性微分 DNL -1 - +1 LSB 非线性积分 INL -2 - +2 LSB 偏移误差 Ofe -1 - +1 LSB 增益误差 Ge -1 - +1 % 绝对电压误差 Ae -3 - +3 LSB 注 1. tADC: The period time of ADC input clock. - 186 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 - 187 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 25.5 I2C 总线时序特征 参数 通用 I2C 总线模式 符号 MIN. 单位 MAX. SCL时钟频率 fSCL 0 100 kHz STOP和START之间总线空闲时间 tBUF 4.7 - uS 重复开始条件,在这个周期过后产生第一个时钟 脉冲 tHd;STA 4.0 - uS 低SCL时钟周期 tLOW 4.7 - uS 高SCL时钟周期 tHIGH 4.0 - uS 重复的START条件建立时间 tSU;STA 4.7 - uS 数据保留时间 tHD;DAT 5.0 - uS 数据保留时间 tSU;DAT 250 - nS SDA和SCL 信号上升时间 tr - 1000 nS SDA和SCL 信号衰减时间 tf - 300 nS STOP条件建立时间 tSU;STO 4.0 - uS 每条总线电容负载 Cb - 400 pF STOP Repeated START START STOP SDA tBUF tLOW tr SCL tHD;STA tf tHIGH tHD;DAT tSU;DAT tSU;STA tSU;STO 图 25-1: I2C 总线时序 - 188 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 25.6 程序读周期 tLHLL tLLIV ALE tAVLL tPLPH tPLIV PSEN tLLPL tPXIZ tPLAZ tPXIX tLLAX1 ADDRESS A0-A7 PORT 0 INSTRUCTION IN ADDRESS A0-A7 tAVIV1 tAVIV2 PORT 2 25.7 ADDRESS A8-A15 ADDRESS A8-A15 数据读周期 tLLDV ALE tWHLH tLLWL PSEN tLLAX1 tRLRH tRLDV tAVLL RD PORT 0 INSTRUCTION IN tRHDZ tRLAZ tAVWL1 ADDRESS A0-A7 tRHDX DATA IN ADDRESS A0-A7 tAVDV1 tAVDV2 PORT 2 ADDRESS A8-A15 - 189 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 25.8 数据写周期 ALE tWHLH tLLWL PSEN tLLAX2 tWLWH tAVLL WR tAVWL1 tWHQX tQVWX PORT 0 INSTRUCTION IN ADDRESS A0-A7 DATA OUT ADDRESS A0-A7 t AVDV2 PORT 2 ADDRESS A8-A15 - 190 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 26 典型应用电路 26.1 外扩程序存储器和晶体振荡器 Vcc Vcc EA/VP 10u X1 CRYSTAL R X2 8.2K RESET C1 INT0 INT1 T0 T1 C2 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 1 11 AD8 AD9 AD10 AD11 AD12 AD13 AD14 AD15 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 3 4 7 8 13 14 17 18 D0 D1 D2 D3 D4 D5 D6 D7 2 5 6 9 12 15 16 19 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 A0 A1 A2 A3 A4 A5 A6 A7 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 OC G 74F373 10 9 8 7 6 5 4 3 25 24 21 23 2 26 27 1 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 20 22 RD WR PSEN ALE/P TXD RXD O0 O1 O2 O3 O4 O5 O6 O7 11 12 13 15 16 17 18 19 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 11 12 13 15 16 17 18 19 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 CE OE 27512 Pin-diagram of standard 8051 图 26-1: 外扩程序存储器和晶体振荡器 晶振 C1 C2 R 16 MHz 20P 20P - 24 MHz 12P 12P - 33 MHz 10P 10P 3.3K 40 MHz 1P 1P 3.3K 上表列出C1,C2,R的参考值 26.2 外扩数据存储器及晶体振荡器 Vcc Vcc EA/VP 10u OSCILLATOR X1 X2 8.2K RESET INT0 INT1 T0 T1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 AD8 AD9 AD10 AD11 AD12 AD13 AD14 3 4 7 8 13 14 17 18 1 11 D0 D1 D2 D3 D4 D5 D6 D7 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 2 5 6 9 12 15 16 19 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A0 A1 A2 A3 A4 A5 A6 A7 OC G 74F373 RD WR PSEN ALE/P TXD RXD Vcc 10 9 8 7 6 5 4 3 25 24 21 23 2 26 1 22 27 20 28 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 I/O0 I/O1 I/O2 I/O3 I/O4 I/O5 I/O6 I/O7 OE WE CS VCC 20256 Pin-diagram of standard 8051 图 26-2: 外扩数据存储器及晶体振荡器 - 191 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 27 封装信息 27.1 44L PLCC H D D 6 1 44 40 7 39 E 17 E E H G 29 18 28 c L 2 A e b b Seating Plane G Symbol A A1 A2 b 1 b c D E e GD GE HD HE L y A 1 A y 1 D Dimension in inch Min Dimension in mm Nom Max Nom Min Max 0.185 4.70 0.51 0.020 0.145 0.150 0.155 3.68 3.81 3.94 0.026 0.028 0.032 0.66 0.71 0.81 0.016 0.018 0.022 0.41 0.46 0.56 0.008 0.010 0.014 0.20 0.25 0.36 0.648 0.653 0.658 16.46 16.59 16.71 0.658 16.46 0.648 0.653 0.050 16.59 1.27 BSC 16.71 BSC 0.590 0.610 0.630 14.99 15.49 16.00 0.590 0.610 0.630 14.99 15.49 16.00 0.680 0.690 0.700 17.27 17.53 17.78 0.680 0.690 0.700 17.27 17.53 17.78 0.090 0.100 0.110 2.29 2.54 2.79 0.004 0.10 - 192 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 27.2 48L LQFP (7x7x1.4mm footprint 2.0mm) - 193 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 28 应用指南 ISP 软件编程示例: 这个应用指南说明Nuvoton W79E22X 系列 的ISP编程功能。在该例子中,微控制器将从64 KB APROM 区启动,并等待一个按键来进入ISP模式,以更新64K的APROM。在进入ISP模式后,控制器将执行4K 字节的LDROM中的装载程序。 装载程序擦除64 K字节APROM中的内容,然后从外部SRAM缓冲(或外 部接口)读入新代码,来更新64K字节的APROM。 例 1: ;******************************************************************************************************************* ;* 64 K APROM 编程示例: 程序将扫描 P1.0. 如果 P1.0 = 0, 进入ISP模式来更新APROM中的内容,否 则执行当前代码。 ;* XTAL = 24MHz ;*******************************************************************************************************************. .chip 8052 .RAMCHK OFF .symbols CHPCON TA SFRAL SFRAH SFRFD SFRCN EQU EQU EQU EQU EQU EQU 9FH C7H ACH ADH AEH AFH ORG 0H LJMP 100H ; 跳至主程序 ;************************************************************************ ;* TIMER0 中断向量 ORG = 000BH ;************************************************************************ ORG 00BH CLR TR0 ; TR0 = 0, 关闭定时器0 MOV TL0,R6 MOV TH0,R7 RETI ;************************************************************************ ;* 64K APFlash 主程序 ;************************************************************************ ORG 100H MAIN_64K: MOV A,P1 ANL A,#01H CJNE A,#01H,PROGRAM_64K JMP NORMAL_MODE ; 扫描P1.0 ; P1.0 = 0,进入ISP模式 - 194 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 PROGRAM_64: MOV TA, #AAH ; 设置TA寄存器 MOV TA, #55H MOV CHPCON, #03H ; CHPCON = 03H,进入ISP模式 MOV SFRCN, #0H MOV TCON, #00H ; TR = 0 关闭定时器0 MOV IP, #00H ; IP = 00H MOV IE, #82H ; TIMER0中断使能以进入空闲模式 MOV R6, #F0H ; TL0 = F0H MOV R7, #FFH ; TH0 = FFH MOV TL0, R6 MOV TH0, R7 MOV TMOD, #01H ; TMOD = 01H,设 TIMER0 为16位定时器 MOV TCON, #10H ; TCON = 10H, TR0 = 1,GO MOV PCON, #01H ; 进入空闲模式为进入ISP功能做准备 ;************** ****************************************************************** ;* 一般模式下 64KB APFlash程序 依照用户应用安排 ;******************************************************************************** NORMAL_MODE: ; 用户应用程序代码 . . 例2: ;***************************************************************************************************************************** ; * * 4KB LDROM 程序: 该装载程序将擦除64K APROM,然后从外部SRAM中读入新代码编程入64 K APROM区中XTAL = 24 MHz ;***************************************************************************************************************************** .chip 8052 .RAMCHK OFF .symbols CHPCON TA SFRAL SFRAH SFRFD SFRCN EQU 9FH EQU EQU EQU EQU EQU ORG 000H LJMP 100H C7H ACH ADH AEH AFH ; 跳至主程序 - 195 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 ;************************************************************************ ;* 1. TIMER0 中断向量 ORG = 0BH ;************************************************************************ ORG 000BH CLR TR0 ; TR0 = 0, 关闭定时器 MOV TL0, R6 MOV TH0, R7 RETI ;************************************************************************ ;* 4KB LDFlash 主程序 ;************************************************************************ ORG 100H MAIN_4K: MOV TA,#AAH MOV TA,#55H MOV CHPCON,#03H ; CHPCON = 03H, 打开ISP功能. MOV SFRCN,#0H MOV TCON,#00H ; TCON = 00H, TR = 0 TIMER0 关闭 MOV TMOD,#01H ; TMOD = 01H,设 TIMER0 为16位定时器 MOV IP,#00H ; IP = 00H MOV IE,#82H ; IE = 82H, TIMER0 中断使能 MOV R6,#F0H MOV R7,#FFH MOV TL0,R6 MOV TH0,R7 MOV TCON,#10H ; TCON = 10H, TR0 = 1, GO MOV PCON,#01H ; 进入空闲模式 UPDATE_64K: MOV TCON,#00H ; TCON = 00H , TR = 0 TIM0 STOP MOV IP,#00H ; IP = 00H MOV IE,#82H ; IE = 82H, TIMER0 中断使能 MOV TMOD,#01H MOV MOV MOV MOV R6,#D0H R7,#8AH TL0,R6 TH0,R7 ; TMOD = 01H, 模式1 ; 设置擦除操作的唤醒时间,时间一般取决于用户系统时钟,大约是15MS ERASE_P_4K: MOV SFRCN,#22H ; SFRCN = 22H, 擦除64K APFlash0 ; SFRCN = A2H, 擦除64K APFlash1 MOV TCON,#10H ; TCON = 10H, TR0 = 1,GO MOV PCON,#01H ; 进入空闲模式 (进行擦除操作) - 196 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 ;********************************************************************* ;* BLANK CHECK ;********************************************************************* MOV SFRCN,#0H ; SFRCN = 00H, 读 64KB APFlash0 ; SFRCN = 80H, 读 64KB APFlash1 MOV MOV MOV MOV MOV MOV SFRAH,#0H SFRAL,#0H R6,#FDH R7,#FFH TL0,R6 TH0,R7 ;起始地址 = 0H ; 为读操作设置定时器,大约1.5 μS. BLANK_CHECK_LOOP: SETB TR0 MOV PCON,#01H ; 打开TIMER 0 ; 进入空闲模式 MOV A,SFRFD ; 读一个字节 CJNE A,#FFH,BLANK_CHECK_ERROR INC SFRAL MOV A,SFRAL JNZ BLANK_CHECK_LOOP INC SFRAH MOV A,SFRAH CJNE A,#0H,BLANK_CHECK_LOOP JMP PROGRAM_64KROM ; 下一个地址 ;结束地址 = FFFFH BLANK_CHECK_ERROR: JMP $ ;******************************************************************************* ;* 重编程 64KB APFlash 区 ;******************************************************************************* PROGRAM_64KROM: MOV R2,#00H ; 目标地址低字节 MOV R1,#00H MOV DPTR,#0H MOV SFRAH,R1 ; 目标地址低字节 MOV SFRCN,#21H ; SFRAH,目标高字节 ; SFRCN = 21H, 编程 64K APFLASH0 ; SFRCN = A1H, 编程64K APFLASH1 MOV R6,#9CH MOV R7,#FFH MOV TL0,R6 MOV TH0,R7 ; 为编程设置定时器, 大约 50 μS. - 197 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 PROG_D_64K: MOV SFRAL,R2 ; SFRAL = 低字节地址 CALL GET_BYTE_FROM_PC_TO_ACC ; 该程序取决于用户的电路. MOV @DPTR,A ; 保存数据至SRAM以验证代码。. MOV SFRFD,A MOV TCON,#10H MOV PCON,#01H INC DPTR INC R2 CJNE R2,#0H,PROG_D_64K INC R1 MOV SFRAH,R1 CJNE R1,#0H,PROG_D_64K ; SFRFD = 数据读入 ; TCON = 10H, TR0 = 1,GO ; 进入空闲模式(编程) ;***************************************************************************** ; * 效验 64KB APFLASH区 ;***************************************************************************** MOV R4,#03H ; 错误计数器 MOV R6,#FDH MOV R7,#FFH MOV TL0,R6 MOV TH0,R7 MOV DPTR,#0H MOV R2,#0H MOV R1,#0H MOV SFRAH,R1 MOV SFRCN,#00H ; 为读效验设置定时器, 约 1.5 μS. ; 代码的起始地址 ; 目标地址低字节 ; 目标地址低字节 ; SFRAH, 目标高地址 ; SFRCN = 00H, 读APFlash0 ; SFRCN = 80H , 读APFlash1 READ_VERIFY_64K: MOV SFRAL,R2 ; SFRAL = 低地址 MOV TCON,#10H ; TCON = 10H, TR0 = 1,GO MOV PCON,#01H INC R2 MOVX A,@DPTR INC DPTR CJNE A,SFRFD,ERROR_64K CJNE R2,#0H,READ_VERIFY_64K INC R1 MOV SFRAH,R1 CJNE R1,#0H,READ_VERIFY_64K ;****************************************************************************** ;* 编程结束软件复位CPU ;****************************************************************************** - 198 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 MOV TA,#AAH MOV TA,#55H MOV CHPCON,#83H ; 软件复位 CPU从APFlash0启动 ERROR_64K: DJNZ R4,UPDATE_64K . ; 如果出错,重复3次 ; ISP编程失败,交由用户程序处理 - 199 - 出版日期: 7/07/2008 版本:SC5 W79E225A/226A/227A 前期规格书 29 文件版本描述 版本 日期 SC1 10/19/2007 SC2 12/13/2007 P125-P129 翻译 SC3 12/28/2007 7,8 6 167 100 10,21, 35,125, 126 90,91 30 SC4 4/22/2008 页码 描述 初次发行 更正管脚排列图 添加注释,NVM编程和擦除的最小电压 添加NVM编程和擦除的最小电压为3.0V 更新图14-8,把其中的标注’B’换成’C’ 删除INDX描述 更新框图中T2EX的管脚为P4.1 修改串口模式选择的表格描述 修改串口描述. 增加W79E226 系列. 修改CHPA 描述 SC5 07/07/2008 Winbond 华邦电子 更名为Nuvoton 芯唐电子科技 Important Notice Nuvoton products are not designed, intended, authorized or warranted for use as components in systems or equipment intended for surgical implantation, atomic energy control instruments, airplane or spaceship instruments, transportation instruments, traffic signal instruments, combustion control instruments, or for other applications intended to support or sustain life. Further more, Nuvoton products are not intended for applications wherein failure of Nuvoton products could result or lead to a situation wherein personal injury, death or severe property or environmental damage could occur. Nuvoton customers using or selling these products for use in such applications do so at their own risk and agree to fully indemnify Nuvoton for any damages resulting from such improper use or sales. 芯唐电子科技(上海)有限公司 (8位单片机)uC微控制器产品部 上海市长宁区延安西路2299号27楼 电话:021-62365999 - 200 - 出版日期: 7/07/2008 版本:SC5