WINBOND W79E225A_226A_227A

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