
Megawin
MPC82G516A 8 位微处理器
用户手册
(第Ⅰ版)
This document contains information on a new product under development by Megawin. Megawin reserves the right to change or
discontinue this product without notice.
Megawin Technology Co., Ltd. 2005 All rights reserved. 2008/06 version A3

MPC82G516A
8
位微控制器
目 录
图表清单
表格清单 .......................................................................................…..................... 7
................................................................................................................ 5
1 综述 .....................................................................................………................ 8
2 功能 ...................................................................................…………............... 9
3 方框图 ...................................................................................…………............ 10
4 引脚
...................................................................................………………....... 11
4.1 引脚结构 ..................................................................................................………..................... 11
4.2 引脚定义 ...............................................................................................………......................... 14
4.3 引脚功能重映射 ......................................................................................…………………......... 17
5 存储器组织 .........................................................................……………......... 18
5.1 程序存储器 ..............................................................................................………..................... 18
5.2 数据存储器
5.3
关于
C51
...................................................................................................…......................... 19
编译器的声明识别符
......................................................................……………........... 23
6 特殊功能寄存器 (SFRs) ........................................................……………...... 24
6.1 SFR 存储器映射位置 .............................................................................................................. 24
6.2 SFR 描述 .............................................................................................................………........ 25
6.2.1 标准 80C51的 SFRs...............................................................................................…….............25
6.2.2 新加入的 SFRs ..........................................................................................................……….......27
7 片上扩展
7.1 在软件中使用 XRAM...................................................................................…………............... 30
RAM (XRAM)..........................................................……………...... 30
8 外部数据存储器的存取 .............................................................……………... 31
8.1
配置
8.2 低速存储器的存取时间延展 .......................................................…………………………........... 32
ALE
引脚
.................................................................................................…………............. 31
9 双数据指针寄存器 (DPTR) .....................................................…………........ 35
10 I/O
11 定时/计数器
This document contains information on a new product under development by Megawin. Megawin reserves the right to change or
discontinue this product without notice.
Megawin Technology Co., Ltd. 2005 All rights reserved. 2008/06 version A3
结构 ........................................................……………………………....... 36
10.1 配置
10.2 I/O 口用作 ADC
10.3 I/O
I/O.................................................................................……………….............................. 36
10.1.1 准双向I/O ...............................................................................……………..................................37
10.1.2 开漏输出 ..............................................................................………..........................................38
10.1.3 输入口 (高阻输入) ....................................................................………………..........................38
10.1.4 推挽输出 .................................................................................…..............................................38
口注意事项
转换
.........................................................................…………….......................... 39
................................................................……………........................ 39
.................................................................………...................... 40
11.1 定时器0和定时器1
11.1.1 模式0:13位定时/计数器................................................................…….....................................41
11.1.2 模式1:16位定时/计数器...............................................................……......................................42
11.1.3 模式2:8位自动加载....................................................................…...........................................42
11.1.4 模式3:两个8位定时/计数器 .........................................................………..................................43
11.1.5 定时器0的可编程时钟输出模式 ......................................................……….................................44
11.2 定时器2
11.2.1 捕获模式.........................................................................................….......................................46
11.2.2 自动重装入模式 (加计数或减计数) .................................................……........ ...........................46
11.2.3 波特率发生器模式 ...........................................................................………...............................47
.................................................................................................................................. 45
..........................................................................….................................... 40
MEGAWIN

11.2.4 定时器2的可编程时钟输出模式...............................................…………....................................50
12 串行口 ........................................................................……......................... 51
12.1 标准 UART .......................................................................................….………………........... 51
12.1.1 多处理器通信 ..................................................................................………………….................51
12.1.2 串行口(UART)配置寄存器....................................................................…..................................51
12.1.3 波特率.................................................................................................…...................................52
12.1.4 使用定时器1产生波特率 ........................................................................………………..............53
12.1.5 模式0的扩展............................................................................................……...........................55
12.1.6 模式1的扩展................................................................................................…….......................55
12.1.7 模式2和模式3的扩展.....................................................................................………....................56
12.2 扩展的 UART 功能
12.2.1 帧错误检测............................................................................................……………..................61
12.2.2 自动地址识别 ....................................................................................…………………..............61
13 第2个
13.1 UART2 配置寄存器 .............................................................................…….…...................... 63
13.2 UART2
13.3
13.4 UART2
UART (UART2) .......................................................………................ 63
波特率
13.2.1 模式0 ........................................................................................................................................64
13.2.2 模式1和模式3 .............................................................................................…….......................64
13.2.3 模式2 ........................................................................................................................................64
标准
UART
使用
波特率发生器的可编程时钟输出
...................................................................................…………............... 61
......................................................................................……..….................... 64
UART2
的波特率发生器 .................................................…………….............. 65
..............................................……………………..... 66
14 可编程计数器阵列 (PCA) ..............................................……………........... 67
14.1 PCA 概述 ..........................................................................................……............................. 67
14.2 PCA 定时/计数器 .................................................................................................................. 67
14.3 比较/捕获单元 .......................................................................................………………........... 69
14.4 PCA
14.4.1 捕获模式............................................................................................…..................................70
14.4.2 16位软件定时器模式............................................................................………..........................71
14.4.3 高速输出模式........................................................................................………………...............71
14.4.4 PWM模式..................................................................................................................................72
模式设置 ........................................................................................…………………....... 70
15 串行外设接口 (SPI) ...........................................................……………....... 73
15.1 典型
15.1.1 单主机和单从机.....................................................................................……………..................75
15.1.2 双驱动器,可以是主机或从机..................................................……………………………............75
15.1.3 单主机和多从机............................................................................……………….......................76
15.2 SPI
15.3 从机注意事项 ......................................................................………………………….............. 77
15.4 主机注意事项 ........................................................................……………………………......... 77
15.5 /SS
15.6 数据冲突 ..................................................................................………................................... 78
15.7 SPI
15.8 数据模式
SPI 配置 .....................................................................................……………................ 75
配置 ........................................................................................……………....................... 77
引脚的模式变化 ...................................................................……….................................. 78
时钟频率选择
........................................................................................…..................................... 79
........................................................................…………............................. 78
16
模数(
16.1 ADC 控制寄存器 ............................................................................………............................. 81
16.2 ADC
16.3 ADC
16.4
ADC
16.4.1 A/D 转换时间 ................................................................................………................................84
16.4.2
16.4.3 待机和掉电模式....................................................................................……………...................84
16.4.4 VDD 供电要求 ....................................................................................…………………….........84
17 键盘中断
A/D
)转换器 ......................................................….......................... 81
操作
............................................................................................................................... 82
示例代码
注意事项 ..............................................................................………............................. 84
I/O 口用于 ADC
....................................................................................………….... 85
18 看门狗定时器(
18.1 WDT 控制寄存器 .........................................................................................…….................. 86
18.2 WDT
18.3 WDT
操作
......................................................................................................…..................... 87
示例代码 ..............................................................................................………….......... 87
...............................................................................…………........................ 83
转换.....................................................................……..............….............84
WDT)................................................................................ 86

18.4
掉电和待机模式下的
18.5 WDT
硬件初始化
WDT........................................................................……...................... 88
....................................................................................…………………..... 88
19 中断系统 ...............................................................................………............ 89
19.1 中断源
19.2
与中断相关的
19.3 中断使能
19.4 中断优先级
19.5 中断响应 ............................................................................................………………………... 93
19.6 外部中断
19.7 单步运行 ..............................................................................................………………............. 94
.......................................................................................................……………............ 89
寄存器
..............................................................................................…………..................... 93
............................................................................................……………................ 93
................................................................................................……………............... 94
...............................................................................…………………....... 91
20 ISP, IAP 和 ICP..................................................................….................... 95
20.1 Flash
20.1.1 Flash 特点 .............................................................................................…..............................96
20.1.2 Flash 结构...............................................................................................….............................96
20.2 ISP 操作
20.2.1 ISP 寄存器.............................................................................................………........................97
20.2.2 ISP 模式说明........................................................................................…………………...........99
20.2.3 实现在系统编程(ISP) ......................................................................……..……….…….......102
20.2.4 ISP 注意事项 .........................................................................................…..............................104
20.2.5 Megawin提供的ISP工具 ..................................................................................……….............105
20.3 IAP 操作
20.3.1 使用IAP功能更新程序.................................................................................………………........107
20.3.2 IAP示例代码 .................................................................................................…….............…...108
20.3.3 IAP注意事项 .............................................................................................................…...........109
20.4 关于 ICP ........................................................................................................................…... 110
20.4.1 “Megawin 8051 ICP编程器” .............................................................…….................……….....110
存储器 .......................................................................................……........................... 96
..................................................................................................……....................... 97
.........................................................................................................………....….... 107
21 节能模式 .....................................................................……………............ 111
21.1 空闲模式 .......................................................................................…................................... 111
21.2 休眠模式
21.2.1 自掉电模式中唤醒............................................................................…………………..............112
21.3
时钟
..........................................................................................……………................... 112
降速 ..........................................................................................……………….............. 113
22 系统时钟
22.1 内部振荡器 ...........................................................................................……….................... 114
............................................................................………............. 114
23 电源监测功能 .............................................................………………......... 115
23.1 上电监测
23.2 掉电监测 ...................................................................................................…………….......... 116
24 复位源
24.1 上电复位
24.2 RST
24.3 看门狗复位 ...............................................................................……………......................... 117
24.4 软件复位
24.5 掉电复位 .............................................................………………………………...................... 118
25 熔丝位
....................................................................................................…………….......... 115
..................................................................................………........... 117
.................................................................................................…………................ 117
引脚硬件复位
.........................................................................................………............................ 118
选项
...................................................……………………….............. 119
...................................................................................………………........ 117
26 指令集 ......................................................................………...................... 121
26.1 算数运算指令
26.2 逻辑操作指令 .........................................................................................……....................... 124
26.3 数据传送指令 ....................................................................................................................... 125
26.4 布尔操作指令 .................................................................................……………………......... 126
26.5 控制和转移指令 .........................................................................…………………................. 127
.......................................................................................…………................... 123
27 应用事项 ..............................................................…………...................... 128
27.1 3.3V, 5V
27.1.1 3.3V 供电..............................................................……………………….................................128
27.1.2 5V供电
27.2 复位电路
27.3 晶振电路 .........................................................................…………………........................... 130
供电和宽电压范围
和
宽电压范围 ................................................…………………………..........................129
......................................................................……….............................................. 129
.................................................………………………………....... 128

28 片上调试功能 .................................................………………..................... 131
特点 ................................................................................................………...................................... 131
29 极限参数 ..............................................................………………............... 132
30 直流特性 .............................................................…………….................... 133
[
条件
[
条件
1] 3.3V
2] 5V
系统
(V30
连接到
或宽电压范围
VDD)...............................................…………….............................. 133
(V30
不连接
VDD) ..................................…………………….................... 135
31 订货信息 ................................................................……………................. 137
32 封装尺寸 .................................................................………….................... 138
40-
引脚 PDIP 封装 ......................................................................…............................................. 138
44-
引脚
PLCC
44-
引脚
PQFP
48-
引脚
LQFP
28-
引脚
SSOP
33 免责声明
生命维持系统
内容更新
..................................................................................................…………………............... 143
封装
.........................................................................……....................................... 139
封装
........................................................................……........................................ 140
封装
.........................................................................……........................................ 141
封装
........................................................................……........................................ 142
.....................................................................................................143
.......................................................................................…….................................... 143
版本历史 ..........................................................................………….................. 144
MEGAWIN MPC82G516A Data Sheet 4

图表清单
Figure 3-1. 方框图 ...........................................................................................................…….......................10
Figure 4-1. 引脚结构: 40-Pin PDIP ........................................................................................……..................11
Figure 4-2. 引脚结构: 28-Pin SSOP ......................................................................................……..................11
Figure 4-3. 引脚结构: 44-Pin PLCC........................................................................................…….................12
Figure 4-4. 引脚结构: 44-Pin PQFP ......................................................................................……..................12
Figure 4-5. 引脚结构: 48-Pin LQFP .........................................................................................……................13
Figure 5-1. 程序存储器............................................................................................................……................18
Figure 5-2. 数据存储器 ..................................................................................................................................20
Figure 5-3. 内部 RAM的低128字节..........................................................................................……….........20
Figure 5-4. SFR 空间 ....................................................................................................................................21
Figure 5-5. 通过8位地址访问外部RAM (使用 ‘MOVX @ Ri’ 和页选择)................……………………….….....22
Figure 5-6. 通过8位地址访问外部RAM (使用 ‘MOVX @ DPTR’) ..............................……………………........22
Figure 8-1. 无时间延展的“MOVX @DPTR,A”....................................................................................….......33
Figure 8-2. 有时间延展的“MOVX @DPTR,A” ...................................................................................….......33
Figure 8-3. 无时间延展的“MOVX A,@DPTR” ....................................................................................…......34
Figure 8-4. 有时间延展的“MOVX A,@DPTR” .....................................................................................….....34
Figure 9-1. 使用双数据指针 ............................................................................................................................35
Figure 10-1. 准双向l I/O...........................................................................................................………….........37
Figure 10-2. 开漏输出 ...............................................................................................................………….......38
Figure 10-3. 仅输入 ...................................................................................................................…..................38
Figure 10-4. 推挽式输出 ....
Figure 11-1. Timer 1 模式0: 13-位定时/计数器 ...........................................................................……............41
Figure 11-2. Timer 1 模式1: 16-位定时/计数器 ...........................................................................……............42
Figure 11-3. Timer 1 模式2: 8-位自动重装 ...............................................................................………...........42
Figure 11-4. Timer 0 模式3: 双8位定时/计数器 .......................................................................………….......43
Figure 11-5. Timer 0可编程时钟输出 .................................................................................………………......44
Figure 11-6. Timer 2 捕获模式................................................................................................……................46
Figure 11-7. Timer 2 自动重装模式 (DCEN=0)......................................................................……….............47
Figure 11-8. Timer 2 自动重装模式 (DCEN=1).......................................................................………............47
Figure 11-9. Timer 2 波特率发生器模式 ....................................................................…………......................48
Figure 11-10. Timer 2可编程时钟输出 .....................................................................…………………...............50
Figure 12-1. 串口模式0 ........................................... ................................................ ...………..........................57
Figure 12-2. 串口模式1 ........................................... ................................................ ...………..........................58
Figure 12-3. 串口模式2 ........................................... ................................................ ..………............................59
Figure 12-4. 串口模式3 ...............................................................................................……….........................60
Figure 12-5. UART 帧错误侦测 ....................................................................................……………...............61
Figure 12-6. UART 多机
Figure 13-1. 1号
Figure 13-2. UART2 波特率发生器的可编程时钟输出...................................…………………........................66
Figure 14-1. PCA 方框图 .......................................... .......................................………....................................67
Figure 14-2. PCA 定时/计数器 .......................................................................................................................68
Figure 14-3. PCA 中断系统 ....................................... ................................................................…….......... ....69
Figure 14-4. PCA 捕捉模式 .......................................................................................................…................70
Figure 14-5. PCA 软件定时器模式 ............................................... ...............................................……............71
Figure 14-6. PCA 高速输出模式.............................................................................................…………..........71
Figure 14-7. PCA PWM 模式.............................................................................................….........................72
Figure 15-1. SPI 方框图 ...........................................................................................................……..............73
Figure 15-2. SPI 单主机单从机组态 ................................................... ................………………………............75
Figure 15-3. SP I双驱动器,可以是主机或从机...........................…………………………………………….........75
Figure 15-4. SPI 单主机多从机组态 ..............................................………………………….............................76
Figure 15-5. SPI 从机通信格式(CPHA=0) .......................................................………..............................79
Figure 15-6. 从机通信格式(CPHA=1) ...................................................................………..........................79
Figure 15-7. SPI主机通信格式(CPHA=0) ...........................................................…………….....................80
Figure 15-8. SPI主机通信格式(CPHA=1) ...........................................................…………........................80
Figure 16-1. ADC 方框图............................................................................................……….........................81
Figure 18-1. WDT 方框
Figure 19-1. 中断系统 ................................................................................................…….............................90
Figure 20-1. Flash 组织形式........................................................................................…...................….........96
Figure 20-2. Flash页擦除流程图 ....................................................................................……………….............99
UART新波特率源 .................................................................……………………...................65
.......
................................................................................................……..............38
通信,自动地
图 ..
.........................................................................................……............................86
址匹配 ......................................…………………………………….......62

Figure 20-3. Flash编程流程图....................................................................................………………...............100
Figure 20-4. Flash读取流程图 ..........................................................................…………...............................101
Figure 20-5. ISP存储区直接引导 (HWBS 或 HWBS2 使能) ....................……………….............................102
Figure 20-6. 通过AP存储区 重引导.............................................................……………………………...........103
Figure 20-7. “8051 ISP Programmer”的照片 ...............................................……..........................................105
Figure 20-8. ISP功能系统连接简图 .................................................................………………........................105
Figure 20-9. 通过串口ISP系统连接简图 ..........................................................………….....…......................106
Figure 20-10. 使用 IAP-存储区每页至少 512字节 .......................……………………………………................107
Figure 20-11. “8051 ICP Programmer” 的照片..........................................………….........................................110
Figure 20-12. ICP功能系统连接简图......................................................………………..................................110
Figure 22-1. 系统时钟方框图 ...............................................................………………...................................114
Figure 23-1. 供电检测方框图 .................................................................………………..................................115
Figure 24-1. 复位系统方框图.................................................................……….............................................117
Figure 27-1. 供电方案 ....
...............................................................……................................................128
........
Figure 27-2. 3.3V系统供电方案............................................................………………...................................128
Figure 27-3. 5V 或宽电压范围供电方案.................................................……………………….......................129
Figure 27-4. 复位电路 ...................................................................................…............................................129
Figure 27-5. 晶振电路 ....................................................................................………………..........................130
Figure 28-1. “8051 ICE Adapter” 的照片.......................…...............................………....................................131
Figure 28-2. ICE功能系统连接简图 .............................................................………………….........................131
MEGAWIN MPC82G516A Data Sheet 6

表格清单
Table 4-1. 引脚定义.........................................................................................................……….....................14
Table 6-1. SFR 存储器映射位置....................................................................................….............................24
Table 6-2. 标准 80C51 的SFRs ...................................................................................…………...................26
Table 6-3. 新加入的 SFRs ...............................................................................................……........................27
Table 7-1. XRAM 存储类型声明 ..................................................................................……………...............30
Table 10-1. 可用I/O引脚数.............................................................................................………………............36
Table 10-2. 端口模式设定.............................................................................................…………….................36
Table 11-1. Timer 2 功能设定 .....................................................................................………........................45
Table 11-2. Timer 2 波特率发生器初值表@ Fosc=11.0592MHz............................…………………………....49
Table 11-3. Timer 2 波特率发生器初值表@ Fosc=22.1184MHz..........................……………………............49
Table 12-1. Timer 1 波特率发生器初值表@ Fosc=11.0592MHz...........................………………………........53
Table 12-2. Timer 1 波特率发生器初值表@ Fosc=22.1184MHz...........................………………………........54
Table 14-1. PCA 单元模式表 ...................................................... ...................................................................70
Table 15-1. SPI 主从机选择 ..........................................................................………………...........................77
Table 15-2. SPI 串行时钟频率 ........................................................................................…...........................78
Table 18-1. WDT 溢出周期 ..............................................................................................…….......................87
Table 19-1. 中断源 ..........................................................................................................………….................89
Table 19-2. 外部中断 0的
Table 20-1. 不同编程方法比较 ..............................................…………………………………………................95
Table 20-2. ISP 时间设置 ...................................................................................……....................................97
Table 20-3. ISP 模式选择........................................................................................…....................................97
7 MPC82G516A Data Sheet MEGAWIN
四个优先级
............................................................................………………...........93

1
综述
MPC82G516 A 是基于80C51的高效1-T结构的单芯片微处理器,每条指令需要1~7个时钟信号 (比标准8051快6~7
倍),与 8051指令集兼容。因此在与标准8051有同样的处理能力的情况下,MPC82G516A只需要非常低的运行速度,
同时由此能很大程度的减少耗电量。
MPC82G516A拥有64K字节的内置Flash存储器用于保存代码和数据。Flash存储器可以通过并行模式编程,也拥有
通过在系统编程(ISP)和在电路编程(ICP)进行编程的能力。同时,也提供在应用编程(IAP)的能力。ISP和ICP让使用
者无需从产品中取下微控制器就可以下载新的代码;IAP意味着应用程序正在运行时,微控制器能够在Flash中写入
非易失数据。这些功能都由内建的电荷泵提供编程用的高压。
除了8051 MCU的标准功能(例如 256 字节的随机存储器,四个8位I/O口,三个定时/计数器,全双工的串口和 一个
多源4级中断控制)外,许多系统级的功能已经集成到MPC82G516A内部。这些功能有1024字节的扩展随机存储器
(XRAM), 一个额外的 I/O口 (P4),10位的模/数转换器,PCA,SPI,第二个UART接口,辅助键盘中断, 一个看门
狗定时器等等。这些功能能够有效地减少电路板面积和系统成本,而且这些功能使得 MPC82G516A 在广泛的应用
领域内成为一种强有力的微控制器。
MPC82G516A有两种节能模式和8位的系统时钟分频器,以减少耗电量。在空闲模式下,cpu被冻结而外围模块和中断
系统依然活动。在掉电模式下,随机存储器RAM和特殊功能寄存器SFR的能容被保存,而其他所有功能被终止。最重
要的是,在掉电模式下的微控制器可以被外部中断唤醒。同时使用者可以通过8位的系统时钟分频器减慢系统速度以减
少耗电量。
另外,MPC82G516A装备有 Megawin 特有的为在电路调试(ICE)设计 的 在 片上调试(OCD)接口。在片上调试(OCD)
提供片上无资源占用的在系统调试。对于 ICE 来说,一些功能是必要的而且已经提供了,例如复位、运行、停止、单
步、运行到光标和断点。使用者使用ICE不需要准备任何的固件或者适配器接头。所有要做的事情就是准备一个四脚的
连接座连接到OCD接口上。这个强有力的功能将使开发变得非常容易。
MEGAWIN MPC82G516A Data Sheet 8

2
功能
一般8051功能
- 8051兼容的指令集
- 256字节随机存取储存器
- 64K外部的数据存储器空间
- 四个8个位双向I/O口
- 三个16个位定时器/计数器
- 全双工 UART
- 14中断源,4个优先级
- 节能模式:空闲模式,掉电模式
高速 1-T 结构 80C51 内核
片上 64K Flash 程序存储器
片上 1024 字节扩展RAM (XRAM)
额外可位寻址的 I/O 口, P4
I/O口结构类型
- 准双向输出
- 开漏输出
- 仅输入
- 推挽式的输出
额外的外部中断 /INT2 & /INT3
Timer2减计数能力
增强 UART 功能
- 帧错误侦测
- 自动地址匹配
第二个 UART和配套的波特率产生器
6单元PCA (可编程计数器阵列)
- 捕捉模式
- 16位软件定时器模式
- 高速输出模式
- PWM (脉冲宽度调变器) 模式
SPI 接口 (主/从模式)
10位8通道ADC转换器
8输入辅助键盘中断
外部中断唤醒掉电模式
3个可编程时钟输出
看门狗定时器
双数据指针
低速外部存储器的
可配置系统时钟减少耗电量
电源监视功能:掉电检测和上电标志
ISP (在系统编程) & ICP (在电路编程) 更新程序存储器
IAP (在应用编程) 为应用程序写非易失性数据
ICE 的OCD (片上调试) 接口
Flash 寿命: 20,000次擦写循环
时钟频率: 最高 24MHz
电源:
2.4V~3.6V (3.3V 系统), or 2.7V~5.5V ( 5V or 宽电压范围系统)
温度等级: -40 to +85 C
封装: PDIP40, PLCC44, PQFP44, LQFP48 and SSOP28
9 MPC82G516A Data Sheet MEGAWIN
MOVX
时间延展

3
方
框图
Figure 3-1 MPC82G516A功能方框图。
Figure 3-1. 方框图
MEGAWIN MPC82G516A Data Sheet 10

4
引脚
4.1 引脚结构
Figure 4-1. 引脚结构: 40-Pin PDIP
Figure 4-2. 引脚结构: 28-Pin SSOP
11 MPC82G516A Data Sheet MEGAWIN

Figure 4-3. 引脚结构: 44-Pin PLCC
Figure 4-4. 引脚结构: 44-Pin PQFP
MEGAWIN MPC82G516A Data Sheet 12

Figure 4-5. 引脚结构: 48-Pin LQFP
13 MPC82G516A Data Sheet MEGAWIN

4.2 引脚定义
Table 4-1. 引脚定义
助记符
P0.0
(附加功能) AD0
引脚号
40-Pin
DIP
44-Pin
44-Pin
PLCC
39 43 37 40 - I/O
PQFP
48-Pin
LQFP
28-Pin
SSOP
I/O
类型
I/O
描述
* 端口0 位0.
* AD0: 读写外部数据存储器A0/D0复用
P0.1
(附加功能) AD1
P0.2
(附加功能) AD2
P0.3
(附加功能) AD3
P0.4
(附加功能) AD4
P0.5
(附加功能) AD5
P0.6
(附加功能) AD6
P0.7
(附加功能) AD7
P1.0
(附加功能) T2
(附加功能) AIN0
(附加功能) T2CKO
P1.1
(附加功能) T2EX
(附加功能) AIN1
(附加功能) ECI
P1.2
(附加功能) AIN2
(附加功能) S2RXD
(附加功能) CEX0
P1.3
(附加功能) AIN3
(附加功能) S2TXD
(附加功能) CEX1
P1.4
(附加功能) AIN4
(附加功能) /SS
(附加功能) CEX2
P1.5
(附加功能) AIN5
(附加功能) MOSI
(附加功能) CEX3
P1.6
(附加功能) AIN6
(附加功能) MISO
(附加功能) CEX4
P1.7
(附加功能) AIN7
(附加功能) SPICLK
(附加功能) CEX5
38 42 36 39 27
37 41 35 38 26
36 40 34 37 25 I/O
35 39 33 36 24 I/O
34 38 32 35 -
33 37 31 34 23
32 36 30 33 -
1 2 40 43 2 I/O
2 3 41 44 - I/O
3 4 42 45 3 I/O
4 5 43 46 4 I/O
5 6 44 47 - I/O
6 7 1 2 5 I/O
7 8 2 3 - I/O
8 9 3 4 - I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I I
O
I I
I I
I/O
I O
I/O
I I
I/O
I
I/O
I/O
I
I/O
I/O
I
I/O
I/O
* 端口0 位-1.
* AD1: 读写外部数据存储器A1/D1复用
* 端口 0 位-2.
* AD2: 读写外部数据存储器A2/D2复用.
* 端口 0 位-3.
* AD3: 读写外部数据存储器A3/D3复用
* 端口 0 位-4.
* AD4: 读写外部数据存储器A4/D4复用
* 端口 0 位-5.
* AD5: 读写外部数据存储器A5/D5复用
* 端口 0 位-6.
* AD6: 读写外部数据存储器A6/D6复用
* 端口 0 位-7.
* AD7: 读写外部数据存储器A7/D7复用.
* 端口 1 位-0.
* T2: 定时/计数器2的外部输入.
* AIN0: ADC 模拟量输入通道0.
* T2CKO: 定时器2的可编程时钟输出.
* 端口 1 位-1.
* T2EX: 定时/计数器2重装入/捕获/方向控制
I
* AIN1: ADC模拟量输入通道1..
* ECI: PCA 外部时钟输入.
* 端口 1 位-2.
* AIN2: ADC模拟量输入通道2.
* S2RXD: 第二 UART 串行输入.
* CEX0: PCA 单元0外部I/O.
* 端口 1 位-3.
* AIN3: ADC模拟量输入通道3
* S2TXD: 第二 UART 串行输出
* CEX1: PCA单元1外部I/O..
* 端口 1 位-4.
* AIN4: ADC模拟量输入通道4.
* /SS: SPI 从机选择
* CEX2: PCA单元2外部I/O..
* Port 1 位-5.
* AIN5: ADC模拟量输入通道5
* MOSI: SPI 主机输出或从机输入.
* CEX3: PCA单元3外部I/O.
* 端口 1 位-6.
* AIN6: ADC模拟量输入通道6.
* MISO: SPI主机输入或从机输出.
* CEX4: PCA单元4外部I/O..
* 端口1 位-7.
* AIN7: ADC模拟量输入通道7
* SPICLK: SPI 时钟,主机输出从机输入
* CEX5: PCA单元5外部I/O..
MEGAWIN MPC82G516A Data Sheet 14

(续上表)
MNEMONIC
P2.0
(附加功能) A8
(附加功能) KBI0
40-Pin
DIP
21 24 18 19 15 I/O
PIN NUMBER
44-Pin
PLCC
44-Pin
PQFP
48-Pin
LQFP
28-Pin
SSOP
TYPE
I/O
O
DESCRIPTION
* 端口 2 位-0.
* A8: 读写外部数据存储器输出A8
I
* KBI0: 辅助键盘输入0.
P2.1
(附加功能) A9
(附加功能) KBI1
P2.2
(附加功能) A10
(附加功能) KBI2
P2.3
(附加功能) A11
(附加功能) KBI3
P2.4
(附加功能) A12
(附加功能) KBI4
P2.5
(附加功能) A13
(附加功能) KBI5
P2.6
(附加功能) A14
(附加功能) KBI6
P2.7
(附加功能) A15
(附加功能) KBI7
22 25 19 20 16 I/O
23 26 20 21 - I/O
24 27 21 22 17 I/O
25 28 22 23 18 I/O
26 29 23 26 19 I/O
27 30 24 27 - I/O
28 31 25 28 - I/O
* 端口 2 位-1.
O
* A9: 读写外部数据存储器输出A9.
I
* KBI1: 辅助键盘输入1.
* 端口 2 位-2.
O
* A10: 读写外部数据存储器输出A10.
I
* KBI2: 辅助键盘输入2.
* 端口 2 位-3.
O
* A11: 读写外部数据存储器输出A11
I
* KBI3: 辅助键盘输入3.
* 端口 2 位-4.
O
* A12: 读写外部数据存储器输出A12
I
* KBI4: 辅助键盘输入4.
* 端口 2 位-5.
O
* A13: 读写外部数据存储器输出A13
I
* KBI5: 辅助键盘输入5.
* 端口 2 位-6.
O
* A14: 读写外部数据存储器输出A14
I
* KBI6: 辅助键盘输入6.
* 端口 2 位-7.
O
* A15: 读写外部数据存储器输出A15
I
* KBI7: 辅助键盘输入7.
P3.0
(附加功能) RXD
P3.1
(附加功能) TXD
P3.2
(附加功能) /INT0
P3.3
(附加功能) /INT1
P3.4
(附加功能) T0
(附加功能) T0CKO
P3.5
(附加功能) T1
(附加功能) ALE
(附加功能) S2CKO
P3.6
(附加功能) /WR
P3.7
(附加功能) /RD
10 11 5 6 7 I/O
I/O
11 13 7 8 8 I/O
O
12 14 8 9 9
13 15 9 10 10
14 16 10 11 - I/O
15 17 11 12 11 I/O
16 18 12 13 -
17 19 13 14 -
I/O
I
I/O
I
I
O
I
O
O
I/O
O
I/O
O
* 端口 3 位-0.
* RXD: 串行输入, 模式0的数据I/O.
* 端口 3 位-1.
* TXD: 串行输出.
* 端口 3 位-2.
* /INT0: 外部中断0输入.
* 端口 3 位-3.
* /INT1: 外部中断1输入.
* 端口 3 位-4.
* T0: 定时/计数器0外部输入.
* T0CKO: 定时器0的可编程时钟输出
* 端口 3 位-5.
* T1: 定时/计数器1外部输入.
* ALE:地址锁存信号, 在外部数据存储
器访问期间锁存地址低8位.
* S2CKO: 定时器S2BRT.可编程时钟输出
* 端口 3 位-6.
* /WR: 外部数据存储器写信号.
* 端口 3 位-7.
* /RD: 外部数据存储器读信号.
15 MPC82G516A Data Sheet MEGAWIN

(续上表)
MNEMONIC
P4.0 - 23 17 18 - I/O
P4.1
(附加功能) ALE
P4.2
(附加功能) /INT3
P4.3
(附加功能) /INT2
P4.4 - - - 24 - I/O
P4.5 - - - 25 - I/O
P4.6 - - - 48 - I/O
P4.7 - - - 1 - I/O
OCD_SDA 30 33 27 30 21 I/O
OCD_SCL 29 32 26 29 20 I
XTAL1 19 21 15 16 13 I
40-Pin
DIP
- 34 28 31
- 1 39 42 1 I/O
- 12 6 7 -
PIN NUMBER
44-Pin
PLCC
44-Pin
PQFP
48-Pin
LQFP
28-Pin
SSOP
TYPE
I/O
I/O
O
I
I/O
I
DESCRIPTION
* 端口 4 位-0.
* 端口 4 位-1.
* ALE: 地址锁存信号, 在外部数据存储器
访问期间锁存地址低8位
* 端口 4 位-2.
*/INT3: 外部中断3输入
* 端口 4 位-3.
* /INT2: 外部中断2输入
* 端口 4 位-4.
* 端口 4 位-5.
* 端口 4 位-6.
* 端口 4 位-7.
片上调试接口(OCD),串行数据.
片上调试接口(OCD),串行时钟
晶体1: 反向振荡放大器输入和内部时钟
输入
XTAL2 18 20 14 15 12 O
RST 9 10 4 5 6 I
V30 31 35 29 32 22 O
VDD 40 44 38 41 28 I
VSS 20 22 16 17 14 I
Note: “(Alt. Fun.)” means the Alternate Function of this pin.
晶体 2: 反向振荡放大器输出
24个时钟周期的高电平复位微控制器
内部 LDO输出:VDD电压高于3.6伏时,通过
一个外部电容(
3.6
压低于
空闲、掉电和正常模式的电源正极
地,0V参考电压
4.7μF~100μF)
伏时接到
VDD上.
接地;
VDD
MEGAWIN MPC82G516A Data Sheet 16
电

4.3 引脚功能重映射
许多I/O引 脚 ,除了正常的I/O功能之外,也有其他复用功能。默认情况下,P2和P1被辅助键盘中断, PCA, SPI 和
UART2复用。但是,使用者可以通过设定AUXR1寄存器的P4KB,P4PCA,P4SPI 和 P4S2控制位使上面的那些
功能重新映射到P4上。.当软件所需要的引脚数多于40个的时候,此功能尤其有用。注意,任何时候这四个控制位只能
有一个被置位。
AUXR1 (地址=8EH, 辅助寄存器1, 复位值=0000,0000B)
7 6 5 4 3 2 1 0
P4KB P4PCA P4SPI P4S2 GF2 - - DPS
P4KB: 被置位时,键盘接口被映射到P4.
‘KBI7’ P2.7的功能被映射到 P4.7.
‘KBI6’ P2.6的功能被映射到 P4.6..
‘KBI5’ P2.5的功能被映射到 P4.5..
‘KBI4’ P2.4的功能被映射到 P4.4.
‘KBI3’ P2.3的功能被映射到 P4.3..
‘KBI2’ P2.2的功能被映射到 P4.2..
‘KBI1’ P2.1的功能被映射到 P4.1..
‘KBI0’ P2.0的功能被映射到 P4.0..
P4PCA: 被置位时,PCA 接口被映射到 P4
‘ECI’ P1.1 的功能被映射到P4.1.
‘CEX0’ P1.2 的功能被映射到P4.2.
‘CEX1’ P1.3 的功能被映射到P4.3.
‘CEX2’ P1.4 的功能被映射到P4.4..
‘CEX3’ P1.5 的功能被映射到P4.5.
‘CEX4’ P1.6 的功能被映射到P4.6..
‘CEX5’ P1.7 的功能被映射到P4.7..
P4SPI: 被置位时, SPI 接口被映射到P4.
‘/SS’ P1.4的功能被映射到 P4.4.
‘MOSI’ P1.5的功能被映射到 P4.5.
‘MISO’ P1.6的功能被映射到 P4.6
‘SPICLK’ P1.7的功能被映射到 P4.7..
P4S2: 被置位时, UART2接口被映射到P4
‘S2RXD’ P1.2的功能被映射到P4.2.
‘S2TXD’ P1.3的功能被映射到P4.3.
17 MPC82G516A Data Sheet MEGAWIN

5
存储器组织
像所有的 80C51一样, MPC82G516A的程序存储器和数据存储器的地址空间是分开的,这样8位微处理器可以通过一
个8位的地址快速而有效的访问数据存储器。
程序存储器(ROM)只能读取,不能写入。最大可以达到64K字节。在MPC82G516A中, 所有的程序存储器都是片上
Flash存储器。因为没有设计外部程序使能 (/EA)和编程使能 (/PSEN) 信号,所以不允许外接程序存储器
数据存储器使用与程序存储器不同的地址空间。MPC82G516A有256字节的内部RAM,使用外部数据存储器最多可
以有64K字节的地址空间。CPU 通过使用一个16位的地址(通过DPTR)和读、写操作信号 (/RD和/WR) 访问外部
数据存储器。由 于 一些应用程序需要多一点的内部 RAM, 所以 MPC82G516A在片上集成了1024字节的外部存储器
(XRAM).
5.1 程序存储器
程序存储器用来保存让CPU进行处理的程序代码,如Figure 5-1所示。复位后,CPU从地址为0000H的地方开始运行,
用户应用代码的起始部分应该放在这里。为了响应中断,中断服务位置(被称为中断矢量)应该位于程序存储器。每个中
断在程序存储器中有一个固定的起始地址,中断使CPU跳到这个地址运行中断服务程序。举例来说, 外部中断0被指定
到地址0003H,如果使用外部中断0,那么它的中断服务程序一定是从0003H开始的。如果中断未被使用,那么这些地
址就可以被一般的程序使用。
中断服务程序的起始地址之间有8字节的地址间隔:外部中断0,0003H;定时器0,000BH;外部中断1, 0013H;定时
器1,001BH等等。如果中断服务程序足够短,它完全可以放在这8字节的空间中。如果其他的中断也被使用的话,较
长的中断服务程序可以通过一条跳转指令越过后面的中断服务起始地址。
注意,MPC82G516A不能外接程序存储器,所有应用代码都保存在片上的Flash存储器中。因此 /EA 和 /PSEN 信
号因为不再需要而被省略了。用户应注意这一点。
Figure 5-1. 程序存储器
MEGAWIN MPC82G516A Data Sheet 18

5.2 数据存储器
Figure 5-2 向MPC82G516A使用者展示了内部和外部数据存储器的空间划分。内部数据存储器被划分为
三部分,通常被称为低128字节 RAM ,高128字节 RAM 和128字节 SFR 空间。内部数据存储器的地址线只有8位宽,
因此地址空间只有256字节。 SFR 空间的地址高于7FH,用直接地址访问;而用间接访问的方法访问高128字节的
RAM。这样虽然SFR和高128字节RAM占用相同的地址空间,但他们实际上是分开的
如Figure 5-3所示,低128字节RAM与所有80C51 一样。最低的32字节被划分为4组每组8字节的寄存器组。指令中
称这些寄存器为R0到R7。.程序状态字 (PSW) 中的两位用于选择哪组寄存器被使用。这使得程序空间能够被更有效
的使用,因为对寄存器访问的指令比使用直接地址的指令短。 接下来的16字节是可以位寻址的存储器空间。80C51
的指令集包含一个位操作指令集,这区域中的128位可以被这些指令直接使用。位地址从00H开始到7FH结束。
所有的低128字节RAM都可以用直接或间接地址访问,而高128字节RAM只能用间接地址访问。
Figure 5-4 给出了特殊功能寄存器 (SFR) 的概览。SFR包括端口寄存器,定时器和外围器件控制器,这些寄存器只
能用直接地址访问。SFR 空间中有16个地址同时支持位寻址和直接寻址。可以位寻址的 SFR 的地址末位是0H 或
8H。
为了访问外部数据存储器,EXTRAM位应该被设为1。访问外部数据存储器可以使用一个16位地址 (使用‘MOVX
@DPTR’)或一个8位地址 (使用 ‘MOVX @Ri’)。下面详细说明。
用8位地址访问
8位地址通常使用1根或更多的I/O口标明RAM的页数。如果使用8位地址,在访问外部存储器的周期中,P2寄存器保
存P2引脚的状态。这将保证页的访问。 Figure 5-5 展示了一个2K字节外部数据存储器的硬件配置。P0口作为地址
和数据总线复用,而P2口的三根线用于标明RAM的页数。.处理器产生/RD和/WR (P3.7和P3.6附加功能)信号控制存
储器。当然也可以使用其他的I/O口而非P2口来标明RAM的页数。
用16位地址访问
16位地址通常用于访问64K字节的外部数据存储器。Figure 5-6展示了一个64K字节外部数据存储器的硬件配置。
当使用16位地址的时候,除了P0, /RD and /WR,的动作以外,地址的高字节通过P2口输出,并且在读写周期中是被
锁定的。
无论如何,地址的低字节和数据字节在P0口是时分复用的。ALE (地址锁存使能) 被用来使地址字节被外部锁存器锁
存,地址字节在 ALE负跳变时有效。在写周期中,数据在/WR有效之前在P0口出现,直到/WR无效的时候消失。在
读周期中,数据在/RD信号无效之前被P0口接受。在任何外部存储器访问期间,CPU向P0口锁存器(特殊功能寄存器)
写0FFH,以消除任何可能被锁存的数据。注意在MPC82G516A,没有专用的ALE引脚。ALE是P3.5或 P4.1的附加功
能,可以在AUXR寄存器中的P35ALE和P41ALE控制位进行选择。.
访问片上扩展存储器 (XRAM), EXTRAM 位应该被设为0。Figure 5-2,这 1024字节的XRAM (0000H to 03FFH) 外
部访问指令MOVX间接存取。 对XRAM的访问没有任何的地址输出、地址锁存信号和读写控制。这意味着P0, P2,
P3.5/P4.1(ALE), P3.6 (/WR) 和 P3.7 (/RD) 在访问XRAM期间保持不变。
19 MPC82G516A Data Sheet MEGAWIN

Figure 5-2. 数据存储器
Figure 5-3. 内部RAM的低128字节
MEGAWIN MPC82G516A Data Sheet 20

Figure 5-4. SFR 空间
FFH
E8H
E0H
D0H
B0H
A0H
90H
80H
.
Port 4
ACC
.
.
PSW
.
Port 3
.
Port 2
.
Port 1
.
Port 0
1. I/O 是寄存器的映射
2. 地址结尾是0H或8H的
寄存器可被位寻址.
- 端口
- 累加器
- PSW
(Etc.)
21 MPC82G516A Data Sheet MEGAWIN

Figure 5-5. 通过8位地址访问外部RAM (使用 ‘MOVX @ Ri’ 和页选择)
在这种情况下,P2口的其他位可做一般
I/O
口使用
.
Figure 5-6. 通过16位地址访问外部RAM (使用 ‘MOVX @ DPTR’)
MEGAWIN MPC82G516A Data Sheet 22

5.3 关于C51编译器的声明识别符
C51编译器的声明识别符与 MPC82G516A 存储空间的对应关系。:
data
128字节的内部数据存储空间 (00h~7Fh);使用除MOVX和MOVC以外的指令,可以直接或间接的访问。 全部或部分
的堆栈可能保存在此区域中。
idata
间接数据;256字节的内部数据存储空间 (00h~FFh) 使用除MOVX和 MOVC以外的指令间接访问。全部或部分的
区
堆栈可能保存在此区域中。此区域包括 data
sfr
特殊功能寄存器; CPU寄存器和外围部件控制/状态寄存器,只能通过直接地址访问。.
xdata
外部数据或片上的扩展RAM (XRAM);通过 “MOVX @DPTR” 指令访问标准80C51的64K存储空间。MPC82G516A 有
1024 字节的片上 xdata 存储空间.
pdata
分页的外部数据(256 字节) 或片上的扩展RAM;通过 “MOVX @DPTR” 指令访问标准80C51的64K存储空间。
MPC82G516A 有 1024 字节的片上 xdata 存储空间.
code
64K程序存储空间;通过“MOVC @A+DTPR”访问,作为程序的一部分被读取。MPC82G516A 有 64K 字节的片上
code存储器.
23 MPC82G516A Data Sheet MEGAWIN
和data区以上的128字节。

6
特殊功能寄存器
(SFRs)
6.1 SFR 映射位置
特殊功能寄存器空间的内部记忆区域的一个映像叫做“SFR 存储器映射表”。如Table 6-1 所示,在SFR 存储器映射
表中,不是所有的地址都被使用。空闲的地址没有被实现或设计用来进行测试。读取这些地址将返回随机的数据,而
向其中写入数据,将导致不可预知的硬件动作。使用者的软件最好不要访问空闲的地址。
.
Table 6-1. SFR 存储器映射表
F8H
- CH CCAP0H CCAP1H CCAP2H CCAP3H CCAP4H CCAP5H
8 BYTES
F0H F7H
B - PCAPWM0 PCAPWM1 PCAPWM2 PCAPWM3 PCAPWM4 PCAPWM5
E8H EFH
P4 CL CCAP0L CCAP1L CCAP2L CCAP3L CCAP4L CCAP5L
E0H E7H
ACC WDTCR IFD IFADRH IFADRL IFMT SCMD ISPCR
D8H DFH
CCON CMOD CCAPM0 CCAPM1 CCAPM2 CCAPM3 CCAPM4 CCAPM5
D0H D7H
PSW - - - - KBPATN KBCON KBMASK
C8H CFH
T2CON T2MOD RCAP2L RCAP2H TL2 TH2 - -
C0H C7H
XICON - - - - ADCTL ADCH PCON2
B8H BFH
B0H B7H
IP SADEN S2BRT - - - ADCL -
P3 P3M0 P3M1 P4M0 P4M1
A8H AFH
A0H A7H
IE SADDR S2CON - - AUXIE AUXIP AUXIPH
P2
AUXR1 - - - AUXR2 -
98H 9FH
SCON SBUF S2BUF - - - - -
90H 97H
P1 P1M0 P1M1 P0M0 P0M1 P2M0 P2M1 EVRCR
88H 8FH
TCON TMOD TL0 TL1 TH0 TH1 AUXR STRETCH
80H
可位寻址的 SFRs
MEGAWIN MPC82G516A Data Sheet 24
P0 SP DPL DPH SPSTAT SPCTL SPDAT PCON
↑
注意新加入的
SFR
用蓝色字标示
FFH
IPH
87H
.

6.2 SFR 描述
6.2.1
标准
80C51的 SFRs
标准80C51的SFR如Table 6-2所示。其中,C51核心寄存器的功能在下面被概略说明。更多的关于标准SFR的使用信
息将在外围器件中介绍。.
C51 核心寄存器
累加器: ACC是累加寄存器,这是给累加器的特定助记符,但是只提及累加器内容时被标记位A.
B 寄存器: B 被用在乘或除运算中,对于其他的指令可以当做一般寄存器使用。
堆栈指针:堆栈指针寄存器宽度是8位,它指向堆栈的顶端最后被使用的数据。虽然低位字节通常是用来作为工作寄
存器,但是使用者通过设置堆栈指针,可以把堆栈放到内部RAM的任何位置。复位后,堆栈指针的初值为 07H,
这样堆栈从08H开始。
数据指针:数据指针(DPTR) 有一个高字节(DPH) 和一个低字节(DPL). 它的功能是为MOVX 指令保存一个16位的存
储器地址。这个地址可以指向片上或片外的程序/数据存储器,或者外围设备的存储器映射地址。它可以被当做16位寄
存器或者两个独立的8位寄存器。
程序状态字: PSW 寄存器包含如下列各项所详述的程序状态信息.
PSW (地址=D0H,程序状态字,复位值=0000,0000B)
7 6 5 4 3 2 1 0
CY AC F0 RS1 RS2 OV - P
CY: 进位标志.
当最后一个算数运算有进位(加)或借位(减)的时候,该位被置位。
其他的算术运算将它清除为逻辑0。
AC: 辅助进位标志. (对于BCD 运算)
当最后一个算数运算向高四位有进位(加)或借位(减)的时候,该位被置位。
其他的算术运算将它清除为逻辑0.
F0: 标志 0.
可位寻址,通常作为用户使用的软件控制标志位
RS1: 寄存器组选择位1
RS0: 寄存器组选择位0.
(RS1, RS0)
(0, 0) Bank 0 (00H~07H)
(0, 1) Bank 1 (08H~0FH)
(1, 0) Bank 2 (10H~17H)
(1, 1) Bank 3 (18H~1FH)
OV: 溢出标志.
这位在下列的环境之下被设定成1:
• ADD, ADDC, SUBB 指令引起的数据的溢出.
• MUL 指令的结果引起的溢出 (结果超过 255).
• DIV 指令除数为零.
ADD, ADDC, SUBB, MUL, DIV 指令的其它结果将该位清0.
P: 奇偶标志.
每个指令周期由硬件置1或清0,用来指示累加器中“1”为奇数个或偶数个。
(
注意:
25 MPC82G516A Data Sheet MEGAWIN
PSW
工作寄存器组和地址
寄存器可位寻址,
所有的被释放的位能被软件设定或清除。.)

Table 6-2. 标准 80C51的 SFRs
注:
*: 可位寻址
-: 保留位
#
: 复位值依赖于复位源
MEGAWIN MPC82G516A Data Sheet 26

6.2.2
新加入的
SFRs
新加入的 SFRs 如 Table 6-3所示。更多的关于新加入的SFR的使用信息将在外围器件中介绍。
Table 6-3. 新加入的 SFRs
27 MPC82G516A Data Sheet MEGAWIN

(接上表)
MEGAWIN MPC82G516A Data Sheet 28

(续上表)
注:
*: 可位寻址
-: 保留位
#
: 复位值依赖于复位源.
29 MPC82G516A Data Sheet MEGAWIN

7
片上扩展
RAM (XRAM)
访问片上扩展RAM (XRAM), EXTRAM 位应该被清零。这1024字节的 XRAM (地址从 0000H 到 03FFH) 被外部
访问指令 “MOVX @DPTR”.间接访问
对XRAM的访问没有任何的地址输出、地址锁存信号和读写控制。这意味着P0, P2, P3.5/P4.1(ALE), P3.6 (/WR) 和
P3.7 (/RD) 在访问XRAM期间保持不变。但是如果地址超过了0x03FF,访问会被自动转到外部数据存储器。.
AUXR (地址=8EH, 辅助寄存器, 复位值=0000,xx0xB)
7 6 5 4 3 2 1 0
URTS ADRJ P41ALE P35ALE - - EXTRAM -
EXTRAM:
0: 当地址小于 0x0400的时候禁止访问外部数据存储器;
访问地址 0x0000~0x03FF时,自动装到片上 XRAM.
1: 可以访问地址 0x0000~0xFFFF的全部外部数据存储器; 访问片上 XRAM 被禁止。.
7.1 在软件中使用 XRAM
Keil-C51 编译器中,将变量分配到XRAM中,需要使用“xdata” 声明.
编译后,被声明位 “xdata”的变量将通过 “MOVX @DPTR”指令进行存取. 使用者可以通过 “Keil Software — Cx51
Compiler User’s Guide”.获得更多的信息。
Table 7-1. XRAM 存储类型声明
MEGAWIN MPC82G516A Data Sheet 30

8 外部数据存储器的存取
和 5.2 章描述的一样,访问外部数据存储器需要将 EXTRAM 位置 1。访问外部数据存储器既可用 16 位地址(使用
“MOVX @DPTR),也可以使用 8 位地址(使用“MOVX @Ri”),如下所述。
通过 8 位地址访问
8位地址线经常使用 1 个或多个 I/O 线结合来访问 RAM 页面。如果使用 8 位地址,在外部存储器读写周期,专用
寄存器 P2 口的内容始终保持在 P2 引脚。使得访问页面非常容易。图 5-5 示一个访问 2K 的外部 RAM 的硬件配置。P0
用作一个地址/数据分时复用总线到 RAM,P2 口的三线用来访问 RAM 页。CPU 产生/RD 和/WR(P3.7 和 P3.6 可选择
功能)来选通存储器。当然,用户可以使用其它 I/O 线来代替 P2 到 RAM 页面。
通过 16 位地址访问
16 位地址线经常用来访问 64K 的外部数据存储器。图 5-6 示硬件配置来访问外部 64K 的 RAM。只要使用 16 位
地址,除了 P0 口、/RD 和/WR 之外,P2 口
在任何情况下
在 ALE 的负跳变时地址字节有效。接着,在写周期,在/WR 激活之前,要写的数据出现在 P0 口,并一直保持直到/WR
信号释放。在一个读周期,信号字节从 P0 口接收在读选通信号释放前。在访问外部存储器时,CPU 写 0FFH 到端口 0
锁存(专用寄存器),专用寄存器 P0 保持的信息被擦除。
,P0 口的低位地址线和数据线为分时复用。ALE(地址锁存使能)用来将地址字节捕获到外部锁存器。
8.1 配置 ALE 引脚
对 MPC82G516A 来说,ALE 信号没有专门的引脚。ALE 成为 P3.5 或 P4.1 的可选择功能,这可通过 AUXR 寄存
器的 P35ALE 和 P41ALD 控制位来选择,如下所示。另外,80C51 的单片机在没有外部访问时仍然输出 ALE 信号,除
了访问访问外部数据存储器(EXTRAM=1)时,器件不会输出 ALE 信号。
AUXR(地址=8EH,辅助寄存器,复位值=0000,xx0xB)
7 6 5 4 3 2 1 0
的高位地址在读写周期一直保持。
URTS ADRJ P41ALE P35ALE - - EXTRAM -
P41ALE:置位时,P4.1 作为 ALE 引脚并用来访问外部 MOVX。
P35ALE:置位时,P3.5 作为 ALE 引脚并用来访问外部 MOVX。
EXTRAM:
0:当地址小于 0x400 时,禁止访问外部数据存储器;
当访问地址为 0x0000~0x03FF 时自动切换到片上 XRAM。
1:允许访问全部外部数据存储器,地址范围为 0x0000~0xFFFF;
禁止访问片内 XRAM。
31 MPC82 G516A Data Sheet MEGAWIN

8.2 低速存储器的存取时间延展
为了访问低速的外部数据存储器,设计了时序延长机制来控制“MOVX”指令的访问时序。延长(STRETCH)寄存
器的位 ALES1 和 ALES0,控制延长设置时间和保持时间并保持到 ALE 的下降沿。另外,位 RWS2、RWS1 和 RWS0
控制延长读写脉冲宽度。用户可以通过适当的配置 STRETCH 寄存器,以适应外部数据存储器读写的需求。
STRETCH(地址=8FH,延长寄存器,复位值=0000,0011B)
7 6 5 4 3 2 1 0
- - ALES1 ALES0 - RWS2 RWS1 RWS0
{ALES1,ALES0}:
00:没有延长,P0 口地址的设置/保持时间随着 ALE 的下降沿在一个时钟周期;
01:1 个时钟周期的延长,P0 口地址设置/保持时间随着 ALE 的下降沿在二个时钟周期;
10:2 个时钟周期的延长,P0 口地址设置/保持时间随着 ALE 的下降沿在三个时钟周期;
11:3 个时钟周期的延长,P0 口地址设置/保持时间随着 ALE 的下降沿在四个时钟周期;
{RWS2,RWS1,RWS0}:
000:没有延长,MOVX 读写脉冲为一个时钟周期;
001:1 个时钟延长,MOVX 读写脉冲为 2 个时钟周期;
010:2 个时钟延长,MOVX 读写脉冲为 3 个时钟周期;
011:3 个时钟延长,MOVX 读写脉冲为 4 个时钟周期;
100:4 个时钟延长,MOVX 读写脉冲为 5 个时钟周期;
101:5 个时钟延长,MOVX 读写脉冲为 6 个时
:6 个时钟延长,MOVX 读写脉冲为 7 个时钟周期;
110
111:7 个时钟延长,MOVX 读写脉冲为 8 个时钟周期;
看如下时序波形的演示。
钟周期;
MEGAWIN MPC82G516A Data Sheet 32

图 8- 1. “MOVX @DPTR,A” 没有延迟
图 8-2 “MOVX @DPTR,A”有延迟
33 MPC82 G516A Data Sheet MEGAWIN

图 8-3 “MOVX A,@DPTR”没有延迟
图 8-4 “MOVX A,@DPTR” 有延迟
MEGAWIN MPC82G516A Data Sheet 34

9 双数据指针寄存器(DPTR)
传统的数据指针用来加速代码执行和减少代码尺寸。双 DPTR 结构是一种方法,芯片将指定外部数据存储器的定
位地址。外部存储器有两个 16 位 DPTR 寄存器,和一个控制位称作为 DPS(AUXR1.0),允许在程序代码和外部存储器
之间的切换。
图 9-1 使用双 DPTR
DPTR 指令
使用 DPS 位的六条指令参考 DPTR 的当前选择,如下:
INC DPTR ;数据指针加 1
MOV DPTR,#data16 ;DPTR 加载 16 位常量
MOVC A ,@A+DPTR ;将代码字节移动到 ACC
MOVX A,@DPTR ; 移动外部 RAM(16 位地址)到 ACC
MOVX @DPTR ,A ;移动 ACC 到外部 RAM(16 位地址)
JMP @A+DPTR ;直接跳转到 DPTR
AUXR1 (地址=8EH,辅助寄存器 1,复位值=0000,0000B)
7 6 5 4 3 2 1 0
P4KB P4PCA P4SPI P4S2 GF2 - - DPS
DPS:DPTR 选择位,用来在 DPTR0 和 DPTR1 之间切换
在 DPTR0 和 DPTR1 之间切换时,可通过软件来保存 DPS 位状态
DPS DPTR 选择
0 DPTR0
1 DPTR1
35 MPC82 G516A Data Sheet MEGAWIN

10 I/O 结构
MPC82G516A 有五个 I/O 端口:端口 0、端 口 1、端 口 2、端 口 3 和端口 4。所有的端口都为 8 位端口。准确的可用 I/O
引脚数量由封装类型决定。见表 10-1。
表 10-1 可用 I/O 引脚数量
封装类型 I/O引脚 脚 引脚数量
10.1 配置 I/O
示。这四种类型有:准双向(标准 8051 的 I/O 端口)、上拉输出、集电极开路输出和输入(高阻抗输入)。每个端口有两
个模式寄存器来选择每个端口引脚的输出类型。
表 10-2 端口配置设定
40-pin P 0, P1, P2, P3 32
P0.1~P0.4, P0.6, P1.0, P1.2,
28-pin
SSOP
44-pin P0, P1, P2, P3, P4.0~P4.3 36
44-pin P0, P1, P2, P3, P4.0~P4.3 36
48-pin P0, P1, P2, P3, P4 40
MPC82G516A 的所有端口可通过软件个别的、独立的配置为四种之中的一种类型,基于位位基础,如表 10-2 所
P1.3, P1.5,
P2.0, P2.1, P2.3, P2.4, P2.5
P3.0~P3.3, P3.5
20
PxM0.y PxM1.y
0 0
0 1
1 0
1 1
这里 x=0~4(端口号),y=0~7(端口引脚号)。寄存器 PxM0 和 PxM1 列表如下。
P0M0 (地址=93H,端口 0 模式寄存器 0,复位值=0000,0000B)
7 6 5 4 3 2 1 0
P0M0.7 P0M0.6 P0M0.5 P0M0.4 P0M0.3 P0M0.2 P0M0.1 P0M0.0
P0M1 (地址=94H,端口 0 模式寄存器 1,复位值=0000,0000B)
7 6 5 4 3 2 1 0
P0M1.7 P0M1.6 P0M1.5 P0M1.4 P0M1.3 P0M1.2 P0M1.1 P0M1.0
P1M0 (地址=91H,端口 1 模式寄存器 0,复位值=0000,0000B)
7 6 5 4 3 2 1 0
P1M0.7 P1M0.6 P1M0.5 P1M0.4 P1M0.3 P1M0.2 P1M0.1 P1M0.0
P1M1 (地址=92H,端口 1 模式寄存器 1,复位值=0000,0000B)
7 6 5 4 3 2 1 0
端 口
准双向端口
上拉输出
输入(高阻抗)
集电极开路输出
P1M1.7 P1M1.6 P1M1.5 P1M1.4 P1M1.3 P1M1.2 P1M1.1 P1M1.0
P2M0 (地址=95H,端口 2 模式寄存器 0,复位值=0000,0000B)
7 6 5 4 3 2 1 0
P2M0.7 P2M0.6 P2M0.5 P2M0.4 P2M0.3 P2M0.2 P2M0.1 P2M0.0
MEGAWIN MPC82G516A Data Sheet 36

P2M1 (地址=96H,端口 2 模式寄存器 1,复位值=0000,0000B)
7 6 5 4 3 2 1 0
P2M1.7 P2M1.6 P2M1.5 P2M1.4 P2M1.3 P2M1.2 P2M1.1 P2M1.0
P3M0 (地址=B1H,端口 3 模式寄存器 0,复位值=0000,0000B)
7 6 5 4 3 2 1 0
P3M0.7 P3M0.6 P3M0.5 P3M0.4 P3M0.3 P3M0.2 P3M0.1 P3M0.0
P3M1 (地址=B2H,端口 3 模式寄存器 1,复位值=0000,0000B)
7 6 5 4 3 2 1 0
P3M1.7 P3M1.6 P3M1.5 P3M1.4 P3M1.3 P3M1.2 P3M1.1 P3M1.0
P4M0 (地址=B3H,端口 4 模式寄存器 0,复位值=0000,0000B)
7 6 5 4 3 2 1 0
P4M0.7 P4M0.6 P4M0.5 P4M0.4 P4M0.3 P4M0.2 P4M0.1 P4M0.0
P4M1 (地址=B4H,端口 4 模式寄存器 1,复位值=0000,0000B)
7 6 5 4 3 2 1 0
P4M1.7 P4M1.6 P4M1.5 P4M1.4 P4M1.3 P4M1.2 P4M1.1 P4M1.0
10.1.1 准双向 I/O
端口引脚工作在准双向模式时与标准 8051 端口引脚类似。一个准双向端口用作输入和输出时不需要对端口重新
配置。这种可能是因为端口输出逻辑高时,弱上拉,允许外部器件拉低引脚。当输出低时,强的驱动能力可吸收大电
流。在准双向输出时有三个上拉晶体管用于不同的目的。
其中的一种上拉,称为微上拉,只要端口寄存器的引脚包含逻辑 1 则打开。如果引脚悬空,则这种非常弱上拉提
供一个非常小的电流将引脚拉高。第二种上拉称为“弱上拉”,端口寄存器的引脚包含逻辑 1 时且引脚自身也在逻辑
电平时打开。这种上拉对准双向引脚提供主要的电流源输出为 1。如果引脚被外部器件拉低,这个弱上拉关闭,只剩
一个微上拉。为了在这种条件下将引脚拉低,外部器件不得不吸收超过弱上拉功率的电流,且拉低引脚在输入的极限
电压之下。第三种上拉称为“强”上拉。这种上拉用于加速准双向端口的上升沿跳变,当端口寄存器从逻辑 0 到逻辑
1 时。当这发生时,强上拉打开两个 CPU 时钟,快速将端口引脚拉高。
准双向端口配置如图 10-1 所示。准双向端口有施密特触发器来抑制输入噪音。
图 10-1 准双向 I/O
37 MPC82 G516A Data Sheet MEGAWIN

10.1.2 开漏输出
配置为开漏输出时,当端口寄存器包含逻辑 0 时,关闭所有上拉,只有端口引脚的下拉晶体管。使用这个功能
配置应用,端口引脚必须有外部上拉,典型的将电阻接到 VDD。这个模式的下拉和准双向端口的模式相同。另外,
在这种配置下的端口输入引脚的输入路径和准双向模式相同。
开漏输出端口配置如图 10-2 所示。开漏输入也有一个施密特触发器用来抑制噪音。
图 10-2 开漏输出
10.1.3 输入口(高阻输入)
输入配置一个施密特触发器但是在引脚上没有任何上拉电阻,如下图 10-3 所示。
图 10-3 输入
10.1.4 推挽输出
推挽输出配置有下拉,和开漏输出、准双向输出模式有着相同的结构,当端口寄存器包含逻辑 1 时提供一个连
续的强上拉。当一个端口输出需要更大的电流时可配置为推挽输出模式。另外,在这种配置下的端口输入引脚和输入
路径的准双向模式的配置相同。
上拉端口配置如图 10-4 所示。上拉端口引脚也包含一个输入施密特触发器用来降低噪音。
图 10-4 上拉输出
MEGAWIN MPC82G516A Data Sheet 38

10.2 I/O 口用作 ADC 功能
端口 1 用作于可选择功能的模拟输入。为了获得最好的模拟性能,引脚用作 ADC 时应将数字输出禁止。这可能
通过将引脚配置为输入模式来实现。
10.3 I/O 口注意事项
MPC82G516A 的每个输出都设计有吸收典型 LED 的驱动电流能力,然而,所有端口的总输出最大电流不能超
过极限值。请参考 29 章:绝对最大值
39 MPC82 G516A Data Sheet MEGAWIN

11 定时器/计数器
MPC82G516A 有三个 16 位定时器/计数器:定时器 0、定时器 1 和定时器 2。每一个包含两个 8 位寄存器,THx
和 TLx(这里,x=0、1 或 2)。所有这些操作既可配置为定时器或事件记数器。
定时器功能,TLx 寄存器每 12 个时钟周期或 1 个周期加 1,通过软件来选择 。因此可认为为计数器时钟周期。
每记 12 个时钟周期,计数速率达 1/12 的晶振频率。
计数器功能,下降沿时寄存器加 1,根据外部输入引脚 T0、T1 或 T2。在这些功能中,每个时钟周期对外部输入
信号(T0 引脚和 T1 引脚)进行采样,每 12 个时钟周期对 T2 引脚采样。当采样信号出现一个高电平接着一个低电平,
计数加 1。当检测到跳变时新计数值出现在寄存器中。对定时器 0 和定时器 1 来说,需要用两个时钟周期来识别下降
沿跳变,最大的计数速率为 1/2 的晶振频率;对于定时器 2,需要用 24 个时钟周期来识别下降沿跳变,最大计数速率
为 1/24 的晶振频率。外部输入信号没有严格的周期限制,但是要确保在电平改变前至少有一次采样,对定时器 0 和定
时器 1 来说信号应该至少保持一个时钟,定时器 2 需要 12 个时钟周期。
对定时器 0 和定时器 2 来说,除了标准 8051 定时器的功能之外,添加了一些新的特征。下面的子章节将详细描
述这些定时器/计数器。
11.1 定时器 0 和定时器 1
定时器或计数器功能通过专用寄存器 TMOD 的控制位 C/T 来选择,如下所示。这两个定时器/计数器有四种工作
模式,通过 TMOD 的位对(M1,M0)来选择。这两个定时器/计数器的模式 0、1 和模式 2 是相同的,模式 3 是不同的。
除了 TMOD 之外,其它专用寄存器 TCON 和 AUXR2 包含几个控制位和状态位与这两个定时也相关,也如下所示。
TMOD (地址=89H,定时器/计数器模式控制位, 复位值=0000,0000B)
定时器1 定时器2
7 6 5 4 3 2 1 0
GATE C/-T M1 M0 GATE C/-T M1 M0
GATE:当门控位置位时,只有在/INT0 或/INT1 引脚是高电平且 TR0 或 TR1 控制位置位时,定时器/计数器 0 或 1 使
能。
当门控制位清零时,只要 TR0 或 TR1 置 1 定时器 0 或 1 使能。
C/T: 定时器或计数器选择器。清零为定时器功能(从内部系统时钟输入)。置位为计数器功能(从 T0 或 T1 引脚输入)。
M0 M1
0 0
0 1
1 0
1 1
1 1
8 位定时器/计数器。THx 与 TLx 作为 5 位预分频器
16 位定时器/计数器。THx 与 TLx 串联;没有分步频器
8 位自动重载定时器/计数器。THx 保持一个值,并在每次溢出时加载
(定时器 0)TL0 是一个8 位定时器/计数器并通过标准定时器0 的控制位
控制。TH0 仅仅是一个 8 位定时器通过定时器 1 的控制位控制
(定时器 1)定时器/计数器停止
工作模式
到 TLx
MEGAWIN MPC82G516A Data Sheet 40

TCON (地址=88H,定时器/计数器控制位,复位值=0000,0000B)
7 6 5 4 3 2 1 0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TF1:定时器 1 溢出标志位。定时器/计数器溢出时由硬件置位。处理器进入中断向量程序由硬件清零。
TR1:定时器 1 运行控制位。通过软件置位/清零开启或关闭定时器/计数器 1。
TF0:定时器 0 溢出标志位。定时器/计数器溢出时由硬件置位。处理器进入中断向量程序由硬件清零。
TR0:定时器 0 运行控制位。通过软件置位/清零开启或关闭定时器/计数器 0。
AUXR2 (地址=A6H,辅助寄存器2,复位值=0000,0000B)
7 6 5 4 3 2 1 0
T0X12 T1X12 URM0X6 S2TR S2SMOD S2TX12 S2CKOE T0CKOE
T0X12:当 C/T=0 时,定时器 0 的时钟源选择。
置位选择 Fosc 作为系统时钟源,清零选择 Fosc/12 作为时钟源。
T1X12:当 C/T=0 时,定时器 1 的时钟源选择。
置位选择 Fosc 作为系统时钟源,清零选择 Fosc/12 作为时钟源。
T0CKOE:置位/清零来使能/禁止从 P3.4 输出定时器 0 时钟。
四种工作模式在以下的文本中描述。
11.1.1 模式 0:13 位定时/计数器
定时器 0 和定时器 1 的模式 0 看起来像一个 32 预分频的 8 位计数器。且这两个定时器运行模式 0 是相同的。图
11-1 展示模式 0 的运行。
在这个模式,定时器寄存器配置为一个 13 位寄存器。计数器所有位从全 1 翻转到全 0,置位定时器中断标志位
TFx。当 TRx=1 且 GATE=0 或/INTx=1,定时器使能输入计数。(置 GATE=1 时通过外部输入/INTx 控制定时器,以便
脉冲宽度测量)。TRx 和 TFx 控制位在专用寄存器 TCON。GATE 位在 TMOD。有两个不同的 GATE 位,一个是定时
器 0(TMOD.7)另一个是定时器 0(TMOD.3)。
13 位寄存器包含 THx 的所有 8 位和 TLx 的低 5 位。TLx 的高 3 位是不确定的可以忽略。置位运行标志(TRx)不会
清除寄存器。意思是说用户在开始计数前应对 THx 和 TLx 进行初始化。
图11-1. 定时器1工作在模式0: 13位定时器/计数器
41 MPC82 G516A Data Sheet MEGAWIN

11.1.2 模式1:16位定时/计数器
除了定时器的寄存器使用全部16位外,模式1和模式0是相同的。参考图11-2。在这个模式,THx和TLx串联,没有
预分频。
图 11 -2. 定时器1的模式1:16位定时器/计数器
11.1.3 模式 2:8 位自动加载
模式 2 配置定时器寄存器为一个自动加载的 8 位计数器(TLx),如图 11-3 所示。TLx 溢出不仅置位 TFx,而且也
将 THx 的内容加载到 TLx,THx 内容由软件预置,加载不会改变 THx 的值。
图 11-3. 定时器 1 的模式 2:8 位自动加载
MEGAWIN MPC82G516A Data Sheet 42

11.1.4 模式 3:两个 8 位定时/计数器
定时器 1 在模式 3 保持计数值。效果和设置 TR1=0 一样。
定时器 0 在模式 3 建立 TL0 和 TH0 两个独立的计数器。定时器 0 的模式 3 的逻辑图如图 11-4 所示。TL0 使用定
时器 0 控制位:C/T、GATE、TR0、/INT0 和 TF0。TH0 锁定为定时器功能(每个机器周期计数)且接替定时器 1 来使用
TR1 和 TF1,因从 TH0 控制定时器 1 中断。
模式 3 提供当有额外的需求应用时的一个 8 位时器或计数器时。当定时器 0 在模式 3 时,定时器 1 可打开或关闭
并切换到脱离,进入到自己的模式 3,或仍然可用作为串行口的波特率发生器,或者不需要中断的其它应用。
图 11-4 定时器 0 工作在模式 3:两个 8 位定时/计数器
43 MPC82 G516A Data Sheet MEGAWIN

11.1.5 定时器 0 的可编程时钟输出模式
使用定时器 0 的可编程时钟输出模式,则从引脚 T0CK0(P3.4)输出占空比为 50%的时钟周期。输出频率根据系统
时钟频率(Fosc)和加载值到 TH0 寄存器,公式如下所示。
定时器 0 的可编程时钟输出模式编程步骤如下:
在 AUXR2 寄存器置位 T0CKOE。
清除定时器 0 的 C/T 位在 TMOD 寄存器。
清除定时器 0 的 GATE 位在 TMOD 寄存器。
从公式计算出 8 位自动加载值并输入到 TH0 寄存器。
在 TL0 寄存器输入一个 8 位初始值。可以和自动加载值相同。
通过设置 TCON 寄存器的 TR0 位启动定时器。
图 11 -5. 定时器 0 的可编程时钟输出模式
MEGAWIN MPC82G516A Data Sheet 44

11.2 定时器 2
定时器 2 是一个 16 位定时器/计数器,既可作为一个定时器也可以作为一个事件计数器,通过专用寄存器 T2CON
的 C/T2 位来选择。定时器 2 有四种工作模式:捕获、自动加载(向上或向下计数)、波特率发生器和可编程时钟输出,
通过专用寄存器 T2CON 和 T2MOD 来选择,如下所示。
T2CON (地址=C8H, 定时器/计数器2控制寄存器,复位值=0000,0000B)
7 6 5 4 3 2 1 0
TF2 EXF2 RCLK TCLK EXEN2 TR2 C/-T2 CP/-RL2
TF2:定时器 2 溢出标志位,定时器 2 溢出置位且必须通过软件清零。当 RCLK=1 或 TCLK=1 时,TF2 不会被置位。
EXF2:定时器 2 外部标志位,在 EXEN2=1 时,且在 T2EX 上有负跳变时加载或捕获将引起置位。当时器 2 中断使能
时,EXF2=1 时将引起 CPU 进入定时器 2 中断向量程序。EXF2 必须通过软件清零。EXF2 在向上/向下计数器模式不
会产生中断。
RCLK:接收时钟控制位。置位时,串行口使用定时器 2 溢出脉冲来接收,在模式 1 和模式 3 时。RCLK=0 使用定时
器 1 溢出脉冲来产生接收时钟。
TCLK:传送时钟控制位。置位时,串行口使用定时器 2 溢出脉冲来发送,在模式 1 和模式 3 时。TCLK=0 使用定时
器 1 溢出脉冲来产生发送时钟。
EXEN2:定时器 2 外部使能位。置位时,如果定时器 2 没有用作串行口时钟,在 T2EX 的负跳变时捕获或加载并作为
结果。
TR2:定时器 2 的启始和停止位。逻辑 1 时启动定时器。
C/T2:定时器或计数器选择。清零时,选择内部定时器。置位时,选择外部事件计数器(下降沿触发)。
CP/RL2:捕获 /加载控制位。置位时,如果 EXEN2=1,在 T2EX 的负跳变时将产生捕获。清零时,如果 EXEN2=1,定
时器 2 溢出或 T2
溢出时。
T2MOD (地址=C9H,定时器/计数器 2 控制寄存器,复位值=xxxx,xx00B)
7 6 5 4 3 2 1 0
EX 上有负跳变时
将产生自动加载。当 RCLK=1 或 TCLK=1 时,这一位被忽略并强制加载在定时器 2
-
T2OE:定时器 2 时钟输出使能位,置位使能清零禁止。
DCEN:定时器 2 向下计数使能位,置位使能清零禁止。
表 11-1. 定时器 2 运行模式
RCLK + CP/-RL2 TR2 DCEN T2OE Mode
x x 0 x 0
1 x 1 0 0
0 1 1 0 0
0 0 1 0 0
0 0 1
0 0 1 0
-
- - - - T2OE DCEN
波特率发生器
16位捕获
仅向上计数)
向上计数或向下计数)
出
1
0
1
16位自动加载
16位自动加载
可编程时钟
45 MPC82 G516A Data Sheet MEGAWIN

11.2.1 捕获模式
在捕获模式,有两个选项通过 T2CON 中的 EXEN2 位来选择。如果 EXEN2=0,定 时 器 2 做为一个 16 位的定时器
或计数器,向上溢出,定时器 2 溢出时 TF2 置位。这位可以用来产生中断(通过使能 IE 寄存器中的定时器 2 中断位)。
如果 EXEN2=1,定 时 器 2 仍然向上, 当外部输入信号 T2EX 由下降沿跳变时引起定时器 2 的寄存器 TH2 和 TL2 分别
对应的捕获到 RCAP2H 和 RCAP2L。另外,T2EX 的跳变引起 T2CON 的 EXF2 置位,且 EXF2 位(象 TF2)将产生一个
中断(中断向量的位置和定时器 2 溢出中断位置相同)。捕获模式图解如图 11-6。(在这个模式 TL2 和 TH2 没有加载值。
直到从 T2EX 捕获事件发生,在 T2EX 引脚跳变或 Fosc/12 的脉冲产生时计数器仍然保持计数)。
图 11 -6. 定时器2捕获模式
11.2.2 自动加载模式 (加计数或减计数)
在 16 位自动加载模式,定时器既可配置成定时器也可以配置成计数器(C/T2 在 T2CON 寄存器),接着编程向上或
向下计数。计数方向由 T2MOD 寄存器的 DCEN 位来决定(向下计数使能)。在复位之后,DCEN=0 意思是默认为定时
器 2 向上计数。如果 DCEN 置位,定时器 2 向上或向下计数由 T2EX 引脚的值来决定。
图 11-7 示 DCEN=0,自动使能定时器 2 向上计数。这个模式有两个选项可以通过 T2CON 寄存器的 EXEN2 位来
选择。 如果 EXEN2=0,定时器向上计数 0XFFFF 接着计数将置位 TF2(溢出标志位)。这将引起定时器 2 的寄存器将
RCAP2L 和 RCAP2H 的值加载。RCAP2L 和 RCAP2H 的值由软件预置。如果 EXEN2=1,一个溢出或在输入 T2EX 的
一个负跳变将触发加载 16 位值。跳变将置位 EXF2 位。当 TF2 或 EXF2 置 1 时,如果定时器 2 中断使能,将产生中断。
图 11-8 示 DCEN=1,使能定时器 2 向上或向下计数。这种模式下允许 T2EX 引脚控制计数方向。当 T2EX 的引脚
为逻辑 1 时定时器 2 向上计数。定时器 2 在 0FFFFH 时溢出并置位 TF
引起 RCAP2L 和 RCAP2H 的 16 位值加载到定时器的寄存器 TL2 和 TH2。当 T2EX 的引脚为逻辑 0 时定时器 2 向下计
数。当 TL2 和 TH2 和存储在 RCAP2L 和 RCAP2H 的值相等时将产生下溢。下溢将置位 TF2 标志位并将 0FFFFH 加载
到定时器的寄存器 TL2 和 TH2。
当定时器 2 下溢或上溢时外部标志位 EXF2 将被触发。如果需要 EXF2 可作为 17 位分辨率。EXF2 标志位在这个
模式下不会产生中断。
2 标志位,
如果中断使能将产生中断。溢出也将
MEGAWIN MPC82G516A Data Sheet 46

图11-7. 定时器2自动加载模式 (DC EN=0)
图 11 -8. 定时器2自动加载模式(DCEN=1)
11.2.3 波特率发生器模式
T2CON 寄存器的 RCLK 和或 RCLK 位允许串行口发送和接收波特率既可源自定时器 1 或定时器 2。当 TCLK=0
时,定时器 1 作为串行口传送波特率发生器。当 TCLK=1,定时器 2 作为串行口传送波特率发生器。RCLK 对串行口
接收波特率有相同的功能。有了这两位,串行口可能有不同的接收和发送波特率,一个通过定时器 1 来产生,另一个
通过定时器 2 来产生。
图 11-9 示定时器 2 在波特率发生器模式。波特率发生器模式像自动加载模式,翻转时将把寄存器 RCAP2H 和
RCAP2L 的值加载到定时器 2 的寄存器,RCAP2H 和 RCAP2L 的值由软件预置。
模式 1 和 3 的波特率由定时器 2 的溢出速率决定
47 MPC82 G516A Data Sheet MEGAWIN
2
波特率和模式模式
31
溢出速率定时时
16

定时器既可配置为“定时器”或“计数器”工作方式。在许多应用场合,配置成“定时器”工作方式(C/T2=0)。
当定时器 2 作为波特率发生器时定时器操作是不同的。
通常,作为一个定时器将在 1/12 的系统时钟频率加 1。作为一个波特率发生器,系统时钟频率的 1/2 加 1。波特
率计算公式如下:
31 x
的波特率和模式模式
Fosc
这里:Fosc 是系统时钟。RCAP2H,RCAP2L 的内容为一个 16 位的无符号数,可由如下计算出:
LRCAPHRCAP
65536]2,2[
定时器 2 作为一个波特率发生器模式如图 11-9 所示,只有在 T2CON 寄存器的位 RCLK 和/或 TCLK=1 为 1 时有
效。注意 TH2 翻转不会置位 TF2,也不会产生中断。因而,当定进器 2 在波特率发生器模式时定时器中断不需要禁止。
如果 EXEN2(T2 外部中断使能位)置位,T2EX(定时器/计数器 2 触发输入)的负跳变将置位 EXF2(T2 外部标志位),但 是
不会引起从(RCAP2H,RCAP2L)到(TH2,TL2 的)重载。因此,当定时器 2 作为波特率发生器时,如果需要的话,T2EX
也可以作为传统的外部中断。
当定时器 2 在波特率发生器模式时,不能试着去读 TH2 和 TL2。作为一个波特率发生器,定时器 2 在 1/2 的系统
时钟频率或从 T2 引脚的异步时增 1;在这些条件下,读写操作将会不正确。寄存器 RCAP2 可以读,但是不可以写,
因为写和重载重叠并引起写和/或加载错误。在进入定时器 2 或 RCAP2 寄存器时定时器不可以关闭(清零 TR2)。
图11-9. 定时器2的波特率发生器模式
32
Fosc
波特率x
1
16
]2,2[65536(2
LRCAPHRCAPx
MEGAWIN MPC82G516A Data Sheet 48

表 11 -2和表 11 -3 列出不同的经常使用的波特率和如何从定时器2获得。
表11-2. 定时器2产生常用的波特率 @ Fosc=11.0592MHz
Baud Rate
[RCAP2H, RCAP2L] RCAP2H RCAP2L
3 64384 FBH 80H
6 64960 FDH C0H
12 65152 FEH 80H
18 65248 FEH E0H
24 65392 FFH 70H
48 65440 FFH
72 65464 FFH B8H
96 65488 FFH D0H
144 65500 FFH DCH
192 65518 FFH EEH
384 65524 FFH F4H
576 65530 FFH
115200 65533 FFH FDH
表11-3. 定时器2产生常用的波特率 @ Fosc=22.1184MHz
波特率
[RCAP2H, RCAP2L] RCAP2H RCAP2L
Timer 2 in Baud Rate Generator Mode
定时器2在波特率发生器模式
0H
H
300 63232 F7H 00H
600 64384 FBH 80H
1200 64960 FDH C0H
1800 65152 FEH 80H
2400 65248 FEH E0H
4800 65392 FFH 70H
7200 65440 FFH
9600 65464 FFH B8H
14400 65488 FFH D0H
19200 65500 FFH DCH
38400 65518 FFH EEH
57600 65524 FFH F4H
115200 65530 FFH
0H
H
49 MPC82 G516A Data Sheet MEGAWIN

11.2.4 定时器2的可编程时钟输出模式
使用定时器2的可编程时钟输出模式,则从引脚T2CKO(P1.0)输出占空比为50%的时钟周期。
输出频率由系统时钟频率(Fosc)和在RCAP2H和RCAP2L寄存器的重载值来决定,如下公式:
时钟输出频率
Fosc
这里[RCAP2H,RCAP2L]=RCAP2H和RCAP2L内容产生的一个16位无符号数。
定时器2 的可编程时钟输出模式编程步骤如下:
置位T2MOD寄存器的T2OE位。
清除T2CON寄存器的C/T2位。
从公式计算出16位加载值并输入到RCAP2H和RCAP2L寄存器。
在TH2和TL2输入一个16位初始值。可以和重载值相等。
设置T2CON的TR2控制位开启动定时器。
在时钟输出模式,定时器2翻转不会产生中断,这和用作波特率发生器时相似。可同时使用定时器2作为一个波特率发
生器和时钟发生器。注意,波特率和时钟输出都由定时器2的溢出速率来决定。
图 11 -10. 定时器2 的可编程时钟输出模式
]2,2[65536(4 LRCAPHRCAPx
MEGAWIN MPC82G516A Data Sheet 50

12 串行口
12.1 标准 UART
一个全双工的串行口,意思是可以同时发送和接收数据。它也有一个接收缓冲,意味着在前一个接收到的字节没
有从寄存器读出前,就可以开始接收第二个字节。(然而,如果第一个字节在第二个字节接收完成前仍然没有被读出,
则其中的一个字节将会丢失)。串行口的接收和发送寄存器都通过特殊寄存器 SBUF 来访问。写到 SBUF 加载到传送寄
存器,当从 SBUF 读时是通过一个物理上独立分离的接收寄存器。
串行口可以工作在四种模式:模式 0 提供同步通讯同时模式 1、2 和模式 3 提供异步通讯。异步通讯作为一个全
双工的通用异步收发器(UART),可以同时发送和接收并使用不同的波特率。
模式 0:8 位数据(低位先出)通过 RXD 传送和接收。TXD 总是作为输出移位时钟。波特率固定为系统时钟频率的十二
分之一,也就是 Fosc/12。
模式 1:10 位通过 TXD 传送或通过 RXD 接收,一个起始位(0),8 个数据位(低位优先),和一个停止位(1)。在接收时,
停止位进入到专用寄存器(SCON)的 RB8。波特率是可变的。
模式 2:11 位通过 TXD 传送或通过 RXD 接收,起始位(0),8 个数据位(低位优先),一个可编程的第九个数据位和一
个停止位(1)。在传送时,第 9 个数据位(TB8 在 SCON 寄存器)可以分配为 0 或者 1。
)可以移到 TB8 中。在接收时,第九个数据位到 SCON 寄存器中的 RB8,同时忽略停止位。波特率可以配置为 1/32
存器
或 1/64 的系统时钟频率。也就是 Fosc/64 或 Fosc/32。
模式 3:11 位通过 TXD 传送或通过 RXD 接收,起始位(0),8 个数据位(低位优先),一个可编程的第九个数据位和一
个停止位(1)。实际上,模式 3 和模式 2 除了波特率不相同之外其它的都相同。模式 3 的波特率是可变的。
在四种模式中,使用 SBUF 作为一个目的寄存器,可以通过任何指令发起传输。在模式 0,当 RI=0 且 REN=1 时
启动接收。在其它模式,在 REN=1 时,通过收到起始位启动接收。
12.1.1 多处理器通讯
模式 2 和 3 在用作多处理器通讯时有特殊的规定。在这两种模式,接收 9 个数据位。第 9 个数据位存入 RB8,接
着进来一个停止位。端口可以编程为在 RB8=1 时,当收到停止位后,串口中断将激活。这种特征通过设置 SM2 位(在
SCON 寄存器中)来使能。这种方式用于多处理器系统如下:
当主处理器想传送一个数据块到多个从机中的某一个时,首先传送想要传送的目标地址标识符的地址。地址字节
与数据字节的区别在于,在地址字节中第 9 位为 1,数据字节中为 0。当 SM2=1 时,收到一个数据字节将不会产生中
断。然而一个地址字节将引发所有从机中断。因而所有的从机可以检测收到的字节是否是自己的地址。从机地址将清
除 SM2 位并准备好接收即将进来的所有数据。从机地址不匹配的将保持 SM2 置位,并继续他们的工作,忽略进来的
数据字节。
SM2 在模式 0 和模式 1 没有影响,但是可以用来检测停止位的有效性。在接收模式 1 中,如果 SM2=1,除非一
个收到一个有效的停止位否则接收中断不会被激活。
12.1.2 串行口(UART)配置寄存器
串行口的控制位和状态位在专用寄存器 SCON。这个寄存器不仅包含模式选择位,也包含用来传送和接收(TB8 和
RB8)的第 9 个数据位,和串行中断位(TI 和 RI)。
51 MPC82 G516A Data Sheet MEGAWIN
例如,奇偶检验位(P,在 PSW 寄

SCON (地址=98H,串行口控制寄存器, 复位值=0000,0000B)
7 6 5 4 3 2 1 0
SM0/FE SM1 SM2 REN TB8 RB8 TI RI
FE:帧错误位。当接收器检测到一个无效的停止位时这位置 1。当收到有效的帧时 FE 不会自动清除,但是可以用软
件清除。SMOD0 位(在 PCON 寄存器)必须置 1 来使能访问 FE 位。
SM0:串行口模式位 0(SMOD0 必须为 0 来访问 SM0 位)
SM1:串行口模式位 1。
SM0 SM1 模式 描述 波特率
0 0 0 移位寄存器 Fosc/12或 Fosc/2
0 1 1 8位 UART 可变的
1 0 2 9位 UART Fosc/64或 Fosc/32
1 1 3 9位 UART 可变的
这里,Fosc 是系统时钟频率。
SM2:在模式 2 和 3 时使能地址自动识别。如果 SM2=1 那么 RI 将不能设置,除非接收到的第 9 位数据(RB8)为 1,指
示是一个地址,并且一个接收字节给出定的或者是一个广播地址。在模式 1,如果 SM=1 那么 RI 将不能被激活除非收
到一个有效的停止位,并且接收到的字节是给定的或者是一个广播地址。在模式 0,SM 可以为 0。
REN:允许
TB8:在模式 2 和 3 时第 9 位数据被传送,根据需要通过软件置位或清零。
RB8:在模式 2 和 3 时收到第 9 位数据。在模式 1,如果 SM2=0,RB8 是收到数据的停止位。在模式 0,RB8 没有使
用。
TI:发送中断标志。在模式 0 时,在第 8 位个数据位时序后由硬件置位。或者在其它模式下,在发送停止位前。在任
何串行传输前,必须由软件清除。
RI:接收中断标志。在模式 0 时,在第 8 位个数据位时序后由硬件置位。或者在其它模式下,在传送的中途改变。在
任何串行传输前,必须由软件清除。
PCON (地址=87H,电源控制寄存器,复位值=00xx,0000B (or 00x1,0000B 在上电复位后))
接收位。通
7 6 5 4 3 2 1 0
过软件置 1 接收使能,软件清零将禁止接收。
SMOD SMOD0 - POF GF1 GF0 PD IDL
SMOD0:清零时 SCON.7 的功能为“SM0”,置 1 时 SCON.7 的功能为“FE”。
AUXR2 (地址=A6H,辅助寄存器 2, 复位值=00x0,0000B)
7 6 5 4 3 2 1 0
T0X12 T1X12 URM0X6 S2TR S2SMOD S2TX12 S2CKOE T0CKOE
T1X12:
当 C/-T=0 时,选择定时器 1 为时钟源。
置位选择 Fosc 作为时钟源,清零时选择 Fosc/12 作为时钟源。
URM0X6:
置位时选择 Fosc/2 作为 UART 模式 0 的波特率。
清零时选择 Fosc/12 作为 UART 模式 0 的波特率。
12.1.3 波特率
在模式 0 的波特率可以为 Fosc/12 或 Fosc/2,根据控制位 URM0X6(在 AUXR2 寄存器)。这里,Fosc 是系统时钟
频率。模式 1 和 3 的波特率由定时器 1 和定时器 2 的溢出速率来决定的。模式 2 的波特率由 PCON 寄存器的 SMOD
位来决定。如果 SMOD=0(复位值),波特率是 Fosc/64;如果 SMOD=1,波特率是 Fosc/32,如下所示。
MEGAWIN MPC82G516A Data Sheet 52

SMOD
2
波特率模式
2
xFosc
64
12.1.4 使用定时器 1 产生波特率
定时器 1 作为波特率发生器(T2CON.RCLK=0,T2CON.TCLK=0)时,模式 1 和模式 3 的波特率由定时器 1 溢中速
率和 SMOD 的值来决定,如下所示:
在这个应用中可以禁止定时器 1 中断。定时器自身可配置为“定时器”或配置为“计数器”,或在三种运行模式
中的一种。在多数典型应该中,被配置为“定时器”运行,并且在自动加载模式(TMOD 的高四位等于 0010B)。在那
种情况下波特率由下面的公式给出:
SMOD
31
使用定时器 1 中断使能可实现非常低的波特率,配置定时器作为一个 16 位定时器(TMOD 的高 4 位为 0001B),使
用定时器 1 中断并且用软件加载。
表 12-1 和表 12-2 列出不同的经常使用的波特率和如何从定时器 1 获得 8 位自动加载模式。
表 12-1 定时器 1 产生普通使用的波特率@Fosc=11.0592MHz
TH1,自动加载值
波特率
SMOD=0 SM OD=1 SM OD=0 SMOD=1
300 16 0 64
600 20 8 160
1200 23 2 208
1800 24 0 224 64
2400 24 4 232 112
4800 250 244 18 4 11 2
7200 252 248 20 8 16 0
9600 253 250 22 0 18 4
14400 254 252 23 2 20 8
19200 253 23 8 22 0
38400 247 238
57600 255 25 0 24 4
115200 253 250
T1X12=0 T1 X12=1
53 MPC82 G516A Data Sheet MEGAWIN
x
波特率,模式模式
2
Fosc
)1256(32
THnx

表 12-2. 定时器 1 产生通用的波特率 @ Fosc=22.1184MHz
TH1,自动加载值
波特率
SMOD=0 SM OD=1 SMOD=0 SMOD=1
T1X12=0 T1 X12=1
300
600
1200
1800
2400
4800
7200
9600
14400
19200
38400
57600
115200
64 - - -
160 64 - -
208 160 - -
224 192 - -
232 208 - -
244 232 112 -
248 240 160 64
250 244 184 112
252 248 208 160
250 220 184
253 238 220
254 244 232
255 250 244
MEGAWIN MPC82G516A Data Sheet 54

12.1.5 模式 0 的扩展
串行数据通过 RXD 读入和输出,TXD 输出移位时钟。接收和发送 8 位数据:8 个数据位(低位优先)。波特率固定
为系统时钟的 1/12。图 12-1 显示了串口模式 0 的简化功能框图及相关时序。
使用 SBUF 作为一个目的寄存器可通过任何指令来启动传输。“写到 SBUF”信号也加载了 1 到第 9 个位置到传
送寄存器,并且通知 TX 控制块启动一个传输。内部时序在“写到 SBUF”的适当时机激活发送。
发送使能输出到移位寄存器,选择输出功能线 P3.0,也可以使能移位时钟选择输出功能线 P3.1。移位时钟是 6 个
低时钟和 6 个高时钟。每 12 个时钟周期激活发送,移位传送的内容移出右边的一位。
数据位从右边移出,左边补零。当数据字节的最高位在移位寄存器输出位置时,接着 1 被加载到第 9 位,在最高
位的左侧,左边的所有位包含零。TX 控制块的条件标志位在最后一次移位后释放发送并置位 TI。所有的这些事件发
生在“写入到 SBUF”的第 10 位之后。
当 REN=1 和 RI=0 时接收启动。在下一个指令周期,RX 控制单元写 11111110 到接收移位寄存器,且在下一个时
钟相位激活接收。
接收使能移位时钟选择输出功能 P3.1 引脚。每 6 个时钟周期产生一个移位时钟。当接收激活时,移位寄存器的内
容向左移动一位。数据从右到左在 P3.0 脚采样。
数据位从向边移入,1 位从左边移出。当 0 开始加载到最右边位置到达移位寄存器的最左边位置时,状态 RX 控
制块做最后一次移位并加载 SBUF 。在写入 SCON 的第 10 位时序
后清除 RI,接收位 RI 置 1。
12.1.6 模式 1 的扩展
通过 TXD 发送 10 位数据或通过 RXD 接收 10 位数据:一个起始位(0),8 个数据位(低位先出),和一个停止位(1)。
在接收时,停止位进入 SCON 的 RB8,波特率由定时器 1 或定时器 2 的溢出速率来决定。图 12-2 所示串行口在模式 1
的一个简单的功能图,和传送和接收的相关时序。
使用 SBUF 作为目的寄存器可以使用任何指令来启动传输。写到 SBUF 信号也加载一个 1 到移位寄存器的第 9 位
和发送控制单元的标志位,以发出一个传输请求。真正的传输开始是在指令周期随着下一个除 16 位计数的翻转。(因
而,位时序与 16 分频计数器同步,不是到“写到 SBUF”信号)。
起始位在 TXD 时,传输开始被激活发送。一位时序后,数据激活,使能输出传送移位寄存器到 TXD。第一个移
位脉冲在一位之后。
数据位从右移出,0 从左边移入。当数据位的最高位在移位寄存器的输出位置时,接着 1 加载到第 9 个位置,???。
所有位到左边包括 0。这个条件标志
当检测到在 RXD 有 1 到 0 的跳变时接收开始。为此 RXD 在一位采样 16 次,只要波特率建立了。当检测的一个
传输时,16 分频计数器立即复位,且 1FFH 写进输入移位寄存器中。
计数器的 16 种状态分频成 16 位时序
至少两个是逻辑 1,则为噪声而拒绝。如果接收值的第一个位时序不为 0,接收电路复位并继续检测下一个 1 到 0 的转
换。这提供拒绝假的起始位。如果一个有效的起始位,将移进移位寄存器,在帧接收完成后接收复位。
。接收器在第 8、9 和第 10 个采样点
采样 RXD 引脚的值。在三个采样中有
55 MPC82 G516A Data Sheet MEGAWIN

数据位从右边进入,1 位从左边移出。当起始位到达移位寄存器的最左边位置时(在模式 1 是一个 9 位寄存器),
在进行最后一个移位时,RX 控制块的标志加载到 SBUF 和 RB8,并置位 RI。
在最后一个移位脉冲产生时,只要下面的条件满足时,信号加载 SBUF 和 RB8 并置位 RI,将被产生。
1. RI=0,且
2. SM2=0,或接收数据位的第 9 位等于 1。
如果有一个条件不满足,接收帧将彻底丢失,且 RI 不会置位。如果所有条件都满足,接收的第 9 个数据位进入
RB8,且前 8 个数据位进入到 SBUF。一个位时序后,不论上述条件是否满足,接收单元继续在 RXD 输入引脚检测 1
到 0 的转换。
12.1.7 模式 2 和模式 3 的扩展
通过 TXD 传送 11 位或通过 RXD 接收 16 位:一个起始位(0),8 个数据位(低位优先),一个可编程的第 9 个数据
位和一个停止位(1)。在传送时,数据的第 9 位(TB8)可分配为 0 或 1。在接收时,数据的第 9 位将进入到 SCON 的 RB8。
在模式 2 波特率可编程为 1/32 或 1/64 的系统时钟频率。模式 3 可以产生可以从定时器 1 或定时器 2 产生可变的波特
率。图 12-3 和图 12-4 展示模式 2 和模式 3 的串口功能图。接收部分和模式 1 相同。与模式 1 传送部分不同的只有传
送寄存器的第 9 位。
使用 SBUF 作为目的寄存器时可通过任何指令来启动传送。“写到 SBUF”信号也加载 TB8 到传送移位寄存器的
第 9 位,且 TX 控制单元的标志请求一个传送。在 16 分频计数器的下一次翻转时传送开始。??
激活发送开始传送,并将起始位放到 TXD。一位时序后,数据激活,使能传送移位寄存器输出到 TXD。第一个
移位脉冲发生在第一个移位脉冲之后。第 1 个移位时钟 1(停止位)进入到移位寄存器的第 9 位。此后,只有 0 移入。
此,数
位包括零。?
在 RXD 引脚检测到下降沿时接收开始。只要波特率建立,RXD 以 16 倍的速率采样。当检测到一个传送时,16
分频计数器立即复位,1FFH 写入到移位寄存器。计数器状态的第 8、9 和第 10 个位时序采样 RXD 引脚的值,在接收
值的三个采样中至少有两个为逻辑 1。如果在第 1 个位时序接收的值不为 0,则接收电路立即复位并且继续检测下一个
1 到 0 的转换。如果一个有效的起始位被发现,将移进移位寄存器且接收帧将继续。
数据位从右边进入,1 位从左边移出。当起始位到达移位寄存器的最左边位置时(在模式 2 和模式 3 是一个 9 位寄
存器),在进行最后一个移位时,RX 控制块的标志加载到 SBUF 和 RB8,并置位 RI。
在最后一个移位脉冲产生时,只要下面的条件满足时,信号加载 SBUF 和 RB8 并置位 RI,将被产生。
3. RI=0,且
4. SM2=0,或接收数据位的第 9 位等于 1。
RB8,且前 8 个数据位进入到 SBUF。一
到 0 的转换。
据位向右移出,0 随着时钟从左边移入。当 TB8 是移位寄存器的输出位置时,接着停止位左移到 TB8,且所有
如果有一个条件不满足,接收帧将彻底的丢失,且 RI 不会置位。如果所有条件都满足,接收的第 9 个数据位进入
个位时序后,不论上述条件是否满足,接收单元继续在 RXD 输入
引脚检测 1
因
MEGAWIN MPC82G516A Data Sheet 56

图 12-1 串行口模式 1
57 MPC82 G516A Data Sheet MEGAWIN

图 12-2 串行口模式 1
MEGAWIN MPC82G516A Data Sheet 58

图 12-3 串行口模式 2
59 MPC82 G516A Data Sheet MEGAWIN

图 12-4 串行口模式 3
MEGAWIN MPC82G516A Data Sheet 60

12.2 扩展的UART功能
除了支持标准操作外,该UART还支持通过检查是否丢失停止位来进行帧错误检测,和自动地址识别功能。
12.2.1
帧错误检测
开启帧错误检测功能后,UART 会在通讯中检测是否丢失停止位,如果丢失一个停止位,就设置SCON寄存器的
FE标志位。FE标志位和SM0标志位共享SCON.7,SMOD0标志位(PCON.6)决定SCON.7究竟代表哪个标志,如
果SMOD0位(PCON.6)置位则SCON.7就是FE标志,SMOD0位清零则SCON.7就是SM0标志。当SCON.7代表
FE时,只能软件清零。请参考图12-5.
图12-5. UART帧错误检测
12.2.2
自动地址识别通过硬件比较可以让UART识别串行码流中的地址部分,该功能免去了使用软件识别时需要大量代码的
麻烦。该功能通过设定SCON的SM2位来开启。
在9位数据UART模式下,即模式2和模式3,收到特定地址或广播地址时自动置位接收中断(RI)标志,9位模式的第9
位信息为1表明接收的是一个地址而不是数据。自动地址识别功能请参考图12-6。在8位模式,即模式1下,如果SM2
置位并且在8位地址与给定地址或广播地址核对一致后收到有效停止位则RI置位。 模式0是移位寄存器模式,SM2
被忽略。
使用自动地址识别功能可以让一个主机选择性的同一个或多个从机进行通讯,所有从机可以使用广播地址接收信
息。增加了SADDR从机地址寄存器和SADEN地址掩码寄存器。
SADEN用来定义SADDR中的那些位是“无关紧要”的,SADEN掩码和SADDR寄存器进行逻辑与来定义供主机寻
下面的实例帮助理解这个方案的通用性:
自动地址识别
址从机的“给定” 地址,该地址让多个从机进行排他性的识别。
61 MPC82 G516A Data Sheet MEGAWIN

从机 0
SADDR = 1100 0000
SADEN = 1111 1101
地址 = 1100 00X0
从机 1
SADDR = 1100 0000
SADEN = 1111 1110
地址 = 1100 000X
上面的例子中SADDR是相同的值,而使用SADEN数据来区分两个从机。
从机0要求第0位必须为0,并忽略第1位的值;从机1要求第1位必须为0,并忽略第0位的值。从机0的唯一地址是1100
0010,而从机1的唯一地址是1100 0001,地址1100 0000是可以同时寻找到从机0和从机1的。
下面一个更为复杂的系统可以寻址到从机1和从机2,而不会寻址到从机0:
从机 0
上面的例子中,3个从机的低3位地址不一样,从机0要求第0位必须为0,1110 011 0可以唯一寻址从机0;从机1要
求第1位必须为0,1110 0 101可以唯一寻址从机1;从机2要求第2位必须为0,它的唯一地址是1110 0011 。为了寻
址到从机0和从机1而不会寻址到从机2,可以使用地址1110 0100,因为这个地址第2位是1。
SADDR = 1100 0000
SADEN = 1111 1001
地址 = 1100 0XX0
每个从机的广播地址SADDR和SADEN的逻辑或,0按不需关心处理。大部分情况下,使用FF作为广播地址。
复位后,SADDR(SFR地址0A9H)和SADEN(SFR地址0B9H)值均为0,这样可以接收所有地址的信息,也就
有效的禁用了自动地址识别模式,从而使该处理器运行于标准80C51的UART下。
图 12-6. UART多处理器通讯,自动地址识别
从机 1
SADDR = 1110 0000
SADEN = 1111 1010
地址 = 1110 0X0X
从机 2
SADDR = 1110 0000
SADEN = 1111 1100
地址 = 1110 00XX
MEGAWIN MPC82G516A Data Sheet 62

13
第2个
UART (UART2)
MPC82G516A带有第2个UART(以后就称作UART2),和第1个UART一样,也有4种运行模式,两个UART的区别
如下:
(1) UART2没有增强功能:帧错误检测和自动地址识别。
(2) UART2使用特定的波特率定时器作为其波特率发生器。
(3) UART2使用端口P1.3 (S2TXD) 和 P1.2 (S2RXD) 分别作为接收和发送端口。
两个UART可以不同或相同模式、不同或相同通讯速率同时工作。
13.1 UART2 配置寄存器
以下特殊功能寄存器是和UART2相关的:
S2CON (地址=AAH, UART2控制寄存器,复位值=0000,0000B)
7 6 5 4 3 2 1 0
S2SM0 S2SM1 S2SM2 S2REN S2TB8 S2RB8 S2TI S2RI
S2SM0: UART2 模式选择位0.
S2SM1: UART2 模式选择位1.
S2SM0 S2SM1 模式 功能描述 波特率
0 0 0 移位寄存器 Fosc/12
0 1 1 8位 UA RT 可变
1 0 2 9位 UA RT Fosc/64或Fosc/32
1 1 3 9位 UA RT 可变
表中 Fosc 是系统时钟频率。
S2SM2:使能模式2和模式3下多机通讯功能,若SM2=1,除非接收到的第9位(RB8)为1,表明接收到的是地址且
和设定地址或广播地址相同,否则RI不会置位。模式1下,若SM2=1,除非收到给定地址或广播地址,且收到有效
停止位,否则RI不会置位。模式0下,SM2应设为0。
S2REN:使能串行接收。软件设置使能接收,软件清零则关闭接收功能。
S2TB8: 模式2和3下,要发送的第9位数据,软件清零或设置。
S2RB8: 模式2和3下,收到的第9位数据。模式1下, 若 SM2=0,RB8是收到的停止位。模式0下, RB8 没有用。
S2Tl: 发送中断标志。硬件置位,必须软件清零。模式0下在发送完第8位数据后,或其他串行发送模式下发
送停止位时,由硬件自动置位。
S2Rl:接收终端标志。硬件置位,必须软件清零。模式0下接收到第8位数据后,或其他串行发送模式下接收
到停止位的过程中,由硬件自动置位(例外情况请参见SM2)。
S2BUF (地址=9AH, UART2串行数据缓冲器,复位值=xxH)
7 6 5 4 3 2 1 0
(D7) (D6) (D5) (D4) (D3) (D2) (D1) (D0)
S2BRT (地址=BAH, UART2波特率定时器重装寄存器, 复位值=00H)
7 6 5 4 3 2 1 0
(Baud Rate Timer Reload Value)
AUXR2 (地址=A6H, 辅助寄存器2, 复位值=0000,0000B)
7 6 5 4 3 2 1 0
T0X12 T1X12 URM0X6 S2TR S2SMOD S2TX12 S2CKOE T0CKOE
S2TR: UART2波特率定时器控制位。设置/清零进行打开/关闭。
S2SMOD: UART2二倍波特率使能位。设置即表示进行波特率二倍频。
S2TX12: UART2波特率定时器时钟源选择。设置选择Fosc,清零选择Fosc/12。
S2CKOE: 设置时打开UART2波特率定时器在P3.5引脚的输出功能。
63 MPC82 G516A Data Sheet MEGAWIN

AUXR (地址=8EH, 辅助寄存器, 复位值=0000, xx0xB)
7 6 5 4 3 2 1 0
URTS ADRJ P41ALE P35ALE - - EXTRAM -
URTS:
0: 定时器1或定时器2可以用作模式1和模式3下的波特率发生器。
1: 当定时器1作为第一个UART的模式1或模式3下的波特率发生器时,定时器1的溢出信号被UART2波特率定时
器溢出信号替代。(请参考13-3节)
13.2 UART2 波特率
13.2.1
若 RM0X 6=0,
若URM0X6=1,
13.2.2
13.2.3
MEGAWIN MPC82G516A Data Sheet 64
模式
0
Fosc
模式 0 波特率 =
12
Fosc
模式 0 波特率 =
模式
1
和模式3
2
S2SMOD
2
模式 1, 3 波特率 =
32
其中,
若S2X12=0,则n=12,
若S2X12=1,则n=1
模式
2
S2SMOD
2
模式2 波特率 =
64
x
n x (256-S2BRT)
x Fosc
Fosc

13.3 标准UART使用UART2的波特率发生器
在标准UART的模式1和模式3下,用户可以通过清除T2CON寄存器的TCLK和RCLK位选择使用定时器1作为波特率发
生器。在这种情况下,若URTS位(AUXR寄存器)设为1,定时器1的溢出信号被UART2波特率定时器的溢出信号代
替,换句话说,用户可以将UART2的波特率发生器作为标准UART的模式1或3下的波特率发生器,只要RCLK=0,
TCLK=0 且 UR TS=1。在这种条件下,定时器1可以作其他用途,当然,若UART2(模式1或3下)此时也在工作,
则这两个UART运行在相同的波特率。
图 13-1. 标准UART的新波特率源
65 MPC8 2G516A Data Sheet MEGAWIN

13.4 UART2 波特率发生器的可编程时钟输出
使用UART2波特率定时器,可以从引脚S2CKO(P3.5)输出一个50%占空比的时钟信号。输出的时钟信号频率取决
于时钟频率(Fosc)和S2BRT寄存器中的重装值,如下所示公式计算:
UART2波特率定时器的可编程时钟输出模式编程如下:
• 设置AUXR2寄存器的S2CKOE位。
• 由公式确定8位重载值并写入S2BRT寄存器。
• 设置AUXR2中的运行控制位来启动UART2波特率定时器
图 13-2. UART2波特率定时器的可编程时钟输出
MEGAWIN MPC82G516A Data Sheet 66

14
可编程计数器阵列
(PCA)
MPC82G516A带有一个可编程计数器阵列(PCA),该功能与标准定时/计数器相比以更少的CPU占用提供了更多的定
时能力。它的优点包括减少了软件复杂度并提高了精度。
14.1 PCA 概述
PCA由一个特定定时/计数器作为一个6比较/捕获模块的时基,图 14 -1 显示了PCA的功能方框图。需要注意的是
PCA定时器和模块都是16位的。如果一个外部事件同一个模块关联,那末该功能就和相应的端口1引脚共享。
若某模块没有使用端口引脚,这个引脚还可以用作标准I/O。
6比较/捕获模块中的每一个都可以编程为如下任意模式:
- 上升和/或下降沿捕获
- 软件定时器
- 高速输出
- 脉宽调制输出
所有这些模式将在后面的章节进行详细讨论。这里,让我们先看看如何设置PCA时钟和模块。
图14-1. PCA 方框图
14.2 PCA 定时/计数器
PCA的定时/计数器由一个可以自由运行的16位定时器组成,如图14-2所示分为CH和CL高低两部分,它是所有模块
的共有时基,它的时钟输入可以从以下来源选取:
- 1/12 系统时钟频率,
- 1/2 系统时钟频率,
- 定时器0溢出,可以让低频时钟源输入到PCA定时器.
- 外部时钟输入,ECI(P1.1)引脚的1-0反转.
特殊功能寄存器 CMOD 包含了计数脉冲选择位 (CPS1 和 CPS0) 来指定PCA定时器时钟源。这个寄存器也包括了
ECF位来使能计数器溢出中断。此外,用户可以在待机模式下设置计数器待机位(CIDL),来关闭PCA定时器,这
样可以进一步降低待机模式下的功耗。
67 MPC82 G516A Data Sheet MEGAWIN

图 14-2. PCA 定时/计数器
图中,
Fosc
是系统时钟
.
CMOD (地址=D9H, PCA计数器模式寄存器)
7 6 5 4 3 2 1 0
CIDL - - - - CPS1 CPS0 ECF
CIDL: PCA 计数器待机控制.
CIDL=0 让PCA计数器在待机模式下继续运行。
CIDL=1 待机模式下关闭PCA计数器。
CPS1-CPS0: PCA 计数器时钟源选择位.
0 0 内部时钟, Fosc/12 (
0 1 内部时钟, Fosc/2
1 0 定时器 0 溢出
1 1 ECI引脚输入的外部时钟源.
ECF: 使能PCA计数器溢出中断.
ECF=1 当CF位(CCON寄存器中)置位时使能中断。
如下所示的CCON寄存器包含PCA运行控制位和PCA定时器与每个模块的标志。要运行PCA,CR为(CCON.6)必
须软件置位,要关闭PCA,可以清除该位。PCA计数器溢出时,CF ( CCON.7)置位,并且若CMOD寄存器的ECF为
置位,还会产生一个中断,CF位只能软件清零。CCF0到CCF5是模块0到模块5的相应中断标志位,当发生一个匹
配或捕获事件时,硬件置位,这些位也必须软件清零。PCA中断系统如图 14 -3所示。
CCON (地址=D8H, PCA控制寄存器)
7 6 5 4 3 2 1 0
CF CR CCF5 CCF4 CCF3 CCF2 CCF1 CCF0
CF: PCA 计数溢出标志。溢出时硬件置位,CF标志在CMOD寄存器的ECF位置位时会产生一个中断,CF可以硬
件或软件置位,但只能软件清零。
CR: PCA 计数控制位。
CCF0~CCF5: PCA 模块0到模块5中断标志。
软件设置来启停PCA计数器。1:启动PCA计数器,0:关闭PCA计数器。
发生一个匹配或捕获时硬件置位,必须软件清零。
MEGAWIN MPC82G516A Data Sheet 68
Fosc
代表系统时钟
.)

图 14-3. PCA 中断系统
14.3 比较/捕获模块
6比较/捕获模块中的每一个都有一个模式寄存器,叫做CCAPMn(n代表0,1,2,3,4,5),来选择其工作模式。
ECCFn位控制当中断标志置位时每个模块的中断开启/关闭。
CCAPMn, n=0~5 (地址=DAH~DFH, PCA模块比较/捕获寄存器)
7 6 5 4 3 2 1 0
- ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
ECOMn: 比较器使能位。 ECOMn= 1 使能比较器功能。
CAPPn: 捕获上升沿。CAPPn=1 使能上升沿捕获
CAPNn: 捕获下降沿。CAPNn=1 使能下降沿捕获
MATn: 匹配控制。MATn=1,PCA计数器同相应模块的比较/捕获寄存器匹配时设置CCON寄存器的CCFn位。
TOGn: 翻转控制。TOGn=1,PCA计数器同相应模块的比较/捕获寄存器匹配时CEXn引脚电平翻转一次。
PWMn: PWM 控制。PWMn=1使能CEXn引脚用作脉宽调制输出。
ECCFn: 使能CCFn中断。使能CCON寄存器中的比较/捕获标志CCFn中断。
注
:CAPNn (CCAPMn.4)
都会发生捕获。
每一个模块都有一对8位比较/捕获寄存器(CCAPnH, CCAPnL)与其相关联。这些寄存器用来保存捕获事件发生时或
比较事件发生时的值。当某个模块用作PWM模式时,除了上面两个寄存器外,还有一个扩展的寄存器PCAPWMn被用
来扩展输出占空比的范围,扩展的范围从0%到100%,步距是1/256。
69 MPC82 G516A Data Sheet MEGAWIN
位和
CAPPn (CCAPMn.5)
位决定了捕获发生时信号脉冲沿,若这两位同时设置,则上下降沿

PCAPWMn, n=0~5 (地址=F2H~F7H, PWM 模式辅助寄存器)
7 6 5 4 3 2 1 0
- - - - - - ECAPnH ECAPnL
ECAPnH: 扩展的第9位(最高位扩展),用在PWM模式下,与CCAPnH联用并成为其第9位。
ECAPnL: 扩展的第9位(最高位扩展),用在PWM模式下,与CCAPnL联用并成为其第9位。
14.4 PCA 模式设置
表14-1显示了不同PCA功能对应的CCAPMn寄存器设置。
表14-1. PCA模块工作模式
ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
模块功能
0 0 0 0 0 0 0
X 1 0 0 0 0 X
X 0 1 0 0 0 X
X 1 1 0 0 0 X
1 0 0 1 0 0 X
1 0 0 1 1 0 X
1 0 0 0 0 1 0
无操作
16位CEXn引脚上升沿触发捕获模式
16位CEXn引脚下降沿触发捕获模式
16位CEXn引脚跳变触发捕获模式
16位软件定时器
16位高速输出
8位脉宽调制器(PWM)
14.4.1
捕获模式
要让某一PCA模块工作与捕获模式,相应的CAPN和/或CAPP位必须置位。外部CEX输入会在每次跳变是采样,当有
效跳变发生时,PCA硬件会将PCA计数器寄存器值装入模块的捕获寄存器(CH放入CCAPnH,CL放入CCAPnL)。
若模块的CCFn和ECCFn标志置位,会产生一个中断。
图 14-4. PCA捕获模式
MEGAWIN MPC82G516A Data Sheet 70

14.4.2 16
位软件定时器模式
PCA模块可以通过设置CCAPMn寄存器的ECOM位和MAT位来作为一个软件定时器使用,PCA定时器与模块的捕获寄
存器值进行比较,若相等则当CCFn和ECCFn位设置时会产生一个中断信号。
图 14-5. PCA 软件定时器模式
14.4.3
高速输出模式
这种模式下,每当PCA计数器与模块捕获寄存器值相等时,CEX的输出就翻转一次。为激活这种模式,CCAPMn 寄存
器的TOG, M AT 和 ECOM 位必须都置为1。
图 14-6. PCA 高速输出模式
71 MPC82 G516A Data Sheet MEGAWIN

14.4.4 PWM
模式
所有PCA模块都可用作PWM输出,输出频率取决于PCA定时器的时钟源,所有的模块都有相同的输出频率,因为它
们共享PCA定时器。
占空比取决于模块捕获寄存器CCAPnL 与扩展的第9位ECAPnL的值。当 9位数据{0,[CL]}值小于{ ECAPnL,
[CCAPnL] }组成9位数据时,输出低电平,相等或大于时输出高电平。
当CL从0xFF到0x00溢出时, { ECAPnL, [CCAPnL] } 的值使用 { ECAPnH,[CCAPnH] }的值重载,这样可以
允许无异常脉冲的更新PWM。 模块的CCAPMn 寄存器PWMn 和 ECOMn 位必须置位以使能PWM模式。
使用9位比较,输出的占空比可以真正实现从0%到100%可调。占空比计算公式如下:
占空比
= 1 – { ECAPnH, [CCAPnH] } / 256.
这里, [CCAPnH] 是CCAPnH 寄存器的值, ECAPnH ( PCAPWMn 寄存器的第1位) 是1位值。所以,
{ ECAPnH, [CCAPnH] } 组成了9位比较器用的9位值。
例如,
a. 若 ECAPnH= 0 且 CCAP nH=0x00 (即9位值, 0x000), 占空比是100%.
b. 若 ECAPnH= 0 且 CCAP nH=0x40 (即9位值, 0x040), 占空比是75%.
c. 若 ECAPn H=0 且 CCAP nH=0xC0 (即9位值, 0x0C0), 占空比是25%.
d. 若 ECAPnH= 1 且 CCAP nH=0x00 (即9位值, 0x100), 占空比是0%.
图 14-7. PCA PWM 模式
MEGAWIN MPC82G516A Data Sheet 72

15
串行外设接口(SPI)
MPC82G516A提供了一个高速串行通讯接口(SPI)。SPI接口是一种全双工、高速同步通讯总线,有两种操作模
式:主机模式和从机模式。无论哪种模式,12MHz系统时钟时支持高达3Mbps的通讯速度。MPC82G516A的SPI状态
寄存器(SPSTAT)有一个传送完成标志(SPIF)和写冲突标志(WCOL)。
图 15-1. SPI 框图
SPI接口有4个引脚: MISO (P1.6), MOSI (P1.5), SPICLK (P1.7) 和/SS (P1.4):
• SPICLK, MOSI 和 MISO 通常将两个或多个SPI设备连接在一起。数据从主机到从机使用MOSI 引脚
(Master O ut / Slave In 主出从入) ,从从机到主机使用MISO 引脚 (Master In / Slave Out主入从出)。
SPICLK 信号在主机模式时输出,从机模式时输入。若SPI接口禁用,即 SPEN (SPCTL.6) = 0,这些引脚可以
作为普通I/O口使用。
• /SS是从机选择端。典型配置中,SPI主机可以使用其某个端口选择某一个SPI设备作为当前从机,一个SPI 从机设备
使用它的/SS引脚确定自己是否被选中。下面条件下/SS被忽略:
- 若 SPI 系统被禁用,即 SPEN (SPCTL.6) = 0 (复位值).
- 若SPI作为主机运行,即 MSTR (SPCTL.4) = 1, 且 P1.4 (/SS) 被配置成输出。
- 若/SS被设置成忽略,即 SSIG (SPCTL.7) = 1, 这个端口作为普通I/O使用。
注意,即使SPI被配置成主机运行(MSTR=1), 它仍然可以被/SS引脚的低电平拉成从机(若 SSIG=0),一旦发生
这种情况, SPIF 位(SPSTAT.7)置位。 (参见 15.5 节:/SS引脚的模式改变)
下面是SPI操作相关寄存器:
73 MPC82 G516A Data Sheet MEGAWIN

SPCTL (地址=85H, SPI控制寄存器, 复位值=0000,0100B)
7 6 5 4 3 2 1 0
SSIG SPEN DORD MSTR CPOL CPHA SPR1 SPR0
SSIG: 忽略/SS
若SSIG=1, MSTR位决定该设备是主机还是从机。
若SSIG=0, /SS引脚决定该设备是主机还是从机。
SPEN: SPI使能
若SPEN=1, SPI功能打开。
若SPEN=0, SPI接口禁用,所有SPI引脚可作为通用I/O口使用。
DORD: SPI 数据顺序
1 : 传送数据时先传数据字节最低位。
0 : 传送数据时先传数据字节最高位。
MSTR: 主机/从机模式选择
CPOL: SPI时钟极性选择
1: SPICLK待机是为高电平,SPICLK时钟脉冲前沿是下降沿,而后沿是上升沿。
0: SPICLK待机是为低电平,SPICLK时钟脉冲前沿是上升沿,而后沿是下降沿。
CPHA: SPI时钟相位选择
1: SPICLK脉冲前沿放数据,后沿采样。
0: /SS引脚低电平 (SSIG= 0)开始放数据并在SPICLK后沿改变数据. 数据在SPICLK的前沿采样。
(
注
: 若 SSIG=1, CPHA
必须不为1,否则就是为定义操作
.)
SPR1-SPR0: SPI 时钟速率选择 (主机模式)
00 : Fosc/4
01 : Fosc/16
10 : Fosc/64
11 : Fosc/128 (
是系统时钟
.)
Fosc
SPSTAT (地址=84H, SPI状态寄存器, 复位值=00xx,xxxxB)
7 6 5 4 3 2 1 0
SPIF WCOL - - - - - -
SPIF: SPI 传输完成标志
当一次串行传输完成时,SPIF位置位,同时若SPI中断允许,会产生一个中断。若 /SS 引脚在主机模式下被拉低
且SSIG=0,SPIF位也会置位以表明“模式改变”。SPIF标志通过软件在该位写入“1”来清零。
WCOL: SPI 写冲突标志
SPI数据寄存器SPDAT在数据传输过程中被写入时,WCOL置位。(参见 15. 6节 : 写冲突). WCOL标志通过软件在该
位写入“1”来清零。
SPDAT (地址=86H, SPI数据寄存器, 复位值=0000,0000B)
7 6 5 4 3 2 1 0
(MSB)
SPDAT有两个物理缓冲器供传输过程中写入和读取,一个写入缓冲器,一个读取缓冲器。
MEGAWIN MPC82G516A Data Sheet 74
(LSB)

15.1 典型 SPI 配置
15.1.1
对于主机: 任何端口,包括P1.4 (/SS),都可以用来控制从机的/SS片选引脚。
对于从机: SSIG 为 ‘0’, /SS 引脚决定该设备是否被选中。
单主机和单从机
图 15-2. SPI 单主从机配置
15.1.2
两个彼此连接的设备,均可成为主机或从机,没有SPI操作时,都可以被通过设置MSTR=1, SSIG=0, P1.4 (/SS)双
向口配置成主机。任何一方要发起传输,它可以配置P1.4位输出并强行拉低,使另一个设备发生“被改成从机模式”
事件。 (参见 15.5 节:/SS引脚模式改变)
15-3. SPI 双驱动器,可以是主机或从机配置
双驱动器,可以是主机或从机
75 M PC82G516A Data Sheet MEGAWIN

15.1.3
单主机和多从机
对于主机: 任何端口,包括P1.4 (/SS),都可以用来控制从机的/SS片选引脚。
对于所有从机: SSIG 为 ‘0’, /SS引脚决定该设备是否被选中。
图 15-4. SPI 单主机和多从机配置
MEGAWIN MPC82G516A Data Sheet 76

15.2 SPI 配置
表15-1 显示了主/从机模式配置及使用方法和传输方向。
表 15-1. SPI 主从机选择
SPEN
(SPCTL.6)
0
SSIG
(SPCTL.7)
X
/SS
引脚
X
MSTR
(SPCTL.4)
X
模式
SPI 禁用
MISO
引脚
输入 输入
MOSI
引脚
SPICLK
引脚
输入
备注
P1.4~P1.7用作通用I/O
“X” 表示”无需关心”.
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1 1 X 0
1 1 X 1
0
从机
(被选中)
从机
(未被选中)
从机
(通过模
式改变)
主机
(待机)
主机
(活动)
输出 输入
高阻 输入
输出
输入
高阻
输入
输出 输出
从机 输出 输入 输入
主机
input
输出 输出
输入
输入
输入
高阻
被选择为从机
未被选中
若/SS被拉低,MSTR被硬件自动清
‘0’,模式被改为从机
MOSI和SPICLK在主机待机时
被置为高阻,以防止总线冲
突。
MOSI和SPICLK在主机活动时被
上拉。
15.3 从机注意事项
当CPHA = 0时, SSIG必须为 0 且 /SS 引脚必须在每次串行字节传输前负跳变,传输结束恢复正常高电平。
注意 SPDAT寄存器不能在/SS引脚低电平市写入;CPHA = 0, SSIG=1的操作是未定义的。
当CPHA =1 时, SSIG可以为0或1。若SSIG=0, / SS引脚可以在每次成功传输之间保持低电平(可以一直拉低),
这种格式有时非常适合单固定主从机配置应用。
15.4 主机注意事项
SPI通讯中,传输总是有主机发起 。若 SPI使能(SPEN=1)并作为主机运行,写入SPI数据寄存器(SPDAT) 数据即可开
始SPI时钟生成器和数据传输器,大约半个到1个SPI位时间后写入SPDAT的数据开始出现在MOSI线上。
在开始传输之前,主机通过拉低相应/SS引脚选择一个从机作为当前从机。写入SPDAT寄存器德数据从主机MOSI
引脚移出,同时从从机MISO移入主机MISO的数据也写入到主机的SPDAT寄存器中。
移出1字节后,SPI时钟发生器停止,置传输完成标志SPIF,若SPI中断使能则生成一个中断。主机CPU和从机CPU
中的两个移位寄存器可以看成一个分开的16位环形移位寄存器,数据从主机移到从机同时数据也从从机移到主机。
这意味着,在一次传输过程中,主从机数据进行了交换。
77 MPC82 G516A Data Sheet MEGAWIN

15.5 /SS引脚的模式改变
若 SPEN=1, SSIG=0, MSTR=1 且 /SS pin=1, SPI使能在主机模式,这种情况下,其他主机可以将/SS引脚拉低来
选择该设备为从机并开始发送数据过来。为避免总线冲突,该SPI设备成为一个从机,MOSI 和SPICLK引脚被强制为
输入端口,MISO成为输出端口,SPSTAT中SPIF标志置位,若此时SPI中断使能,则还会产生一个SPI中断。用户软
件必须经常去检查MSTR位,若该位被从机选择清零而用户又想要继续保持该SPI主机模式,用户必须再次设置MSTR
位,否则,将处于从机模式。
15.6 数据冲突
SPI在发送方向是单缓冲的,而在接收方向是双缓冲的。发送数据直到上一次数据发送完成后才能写入移位寄存器,
数据发送过程中写入数据寄存器就会使WCOL(SPSTAT.6) 置位来表明数据冲突。这种情况下,正在发送的数据
继续发送,而刚写入数据寄存器造成冲突的数据就会丢失。
写冲突对于主从机都有可能发生,对于主机,这种现象并不多见,因为主机控制着数据的传送;然而对于从机,由于
没有控制权,因此很可能会发生。
对于数据接收,接收的数据被传输到一个并行读数据缓冲器中,以便于移位寄存器再能接收新的字节。然而,接收
的数据必须在下个字节完全移入前从数据寄存器SPDAT读出,否则前一个数据就会丢失。
WCOL使用软件向其位写入’1’来清零。
15.7 SPI 时钟频率选择
SPI时钟频率选择(主机模式)使用SPCTL寄存器的SPR1 和SPR0 位来设置,如表15-2所示
表15-2. SPI 串行时钟速率
SPR1 SPR0
SPI时钟速率 @ Fosc=12MHz
Fosc 分频
0 0 3 MHz 4
0 1 750 KHz 16
1 0 187.5 KHz 64
1 1 93.75 KHz 128
这里
, Fosc
是系统时钟
.
MEGAWIN MPC82G516A Data Sheet 78

15.8 数据模式
时钟相位(CPHA) 位可以让用户设定数据采样和改变时的时钟沿。时钟极性位,CPOL, 可以让用户设定时钟极
性。下面图例显示了不同时钟相位、极性设置下SPI通讯时序。
图 15-5. SPI从机传送,CPHA=0
图 15-6. SPI从机传送,CPHA=1
79 MPC82 G516A Data Sheet MEGAWIN

图 15-7. SPI主机传送, CPHA=0
图 15-8. SPI 主机传送, CPHA=1
MEGAWIN MPC82G516A Data Sheet 80

16
模数
(
A/D
)转换器
MPC82G516A带有一个10位、8通道逐次逼近型(SAR)模数转换器. 图 16-1 显示了A/D转换器部分框图。
八路模拟输入同P1口共享端口,多路输入带有一个采样保持电路将模拟电压输入到比较器的输入端,比较
器的输出连接到SAR进行逐次逼近操作。
图 16-1. ADC功能框图
16.1 ADC 控制寄存器
ADCTL (地址=C5H, ADC控制寄存器, 复位值=0000,0000B)
7 6 5 4 3 2 1 0
ADCON SPEED1 SPEED0 ADCI ADCS CHS2 CHS1 CHS0
ADCON: 0:关闭ADC模块;1:开始ADC模块.
SPEED1 and SPEED0: 模数转换速度选择位.
(0,0): 一次转换需要1080个时钟周期.
(0,1): 一次转换需要540个时钟周期.
(1,0): 一次转换需要360个时钟周期.
(1,1): 一次转换需要270个时钟周期.
注:1时钟周期等于
1/Fosc.
ADCS: ADC 启动位.
软件置此位启动A/D转换,转换完成,ADC硬件会自动清除ADCS并设置ADCI.。 ADCS不能被软件清零。 ADCS
或ADCI为1时将不会开始新的A/D转换。
ADCI: ADC 中断标志.
一次A/D转换完成时该标志置1,若中断允许则还会产生一个中断。该标志必须软件清零。
CHS2, CHS1 and CHS0: 输入通道选择位
(0,0,0): 选择AIN0 (P1.0) 作为模拟输入
(0,0,1): 选择AIN1 (P1.1) 作为模拟输入
(0,1,0): 选择AIN2 (P1.2) 作为模拟输入
(0,1,1): 选择AIN3 (P1.3) 作为模拟输入
(1,0,0): 选择AIN4 (P1.4) 作为模拟输入
81 MPC82 G516A Data Sheet MEGAWIN

(1,0,1): 选择AIN5 (P1.5) 作为模拟输入
(1,1,0): 选择AIN6 (P1.6) 作为模拟输入
(1,1,1): 选择AIN7 (P1.7) 作为模拟输入
AUXR (地址=8EH, 辅助寄存器, 复位值=0000,xx0xB)
7 6 5 4 3 2 1 0
URTS ADRJ P41ALE P35ALE - - EXTRAM -
ADRJ:
0: 转换结果高8位存入ADCH[7:0], 低2位存入ADCL[1:0].
1: 转换结果高2位存入ADCH[1:0], 低8位存入ADCL[7:0].
若 ADRJ= 0
ADCH (地址=C6H, ADC结果高字节寄存器, 复位值=xxH)
7 6 5 4 3 2 1 0
(B9) (B8) (B7) (B6) (B5) (B4) (B3) (B2)
ADCL (地址=BEH, ADC结果低字节寄存器, 复位值=xxH)
7 6 5 4 3 2 1 0
- - - - - -
(B1) (B0)
若 ADRJ= 1
ADCH (地址=C6H, ADC结果高字节寄存器, 复位值=xxH)
7 6 5 4 3 2 1 0
- - - - - -
(B9) (B8)
ADCL (地址=BEH, ADC结果低字节寄存器, 复位值=xxH)
7 6 5 4 3 2 1 0
(B7) (B6) (B5) (B4) (B3) (B2) (B1) (B0)
16.2 ADC 操作
基于引脚兼容标准 8051 MCU的考虑, ADC硬件没有独立的内部正参考电压(Vref+)和负参考电压(Vref-)输入引
脚. Vref+ 和 Vref- 输入芯片内部分别接至VDD和地。所以,满量程Vref+ – Vref-就是VDD.
A/D转换结果可以由下面公式计算:
ADC 结果 =
1024 x
这里, Vin是模拟输入电压,x = 0~7 (AIN0~AIN7的任何引脚).
输入的模拟电压应在 Vref + 和 Vr ef-之间, 即 VDD 和地之间。对于输入电压介于Vref- 和 Vref- + 1/2 LSB
间的
, 转换结果是 00, 0000,0000B = 0 00H. 对于输入电压介于 Vref+ – 3/2 LSB and Vref+
11,1111,1111B = 3FFH. 这里:
Vref+
1 LSB =
MEGAWIN MPC82G516A Data Sheet 82
-
1024
Vref-
Vref+
Vin - Vref-
- Vref-
VDD
=
1024
AINx 模拟输入电压
=
VDD 电压
之间的
, 转换结果是
之

在使用ACD功能之前,用户应:
1) 设置ADCON 位启动ADC硬件,
2) 设置SPEED1 和 SPEED0 位设定转换速度,
3) 设置CHS2、 CH S1 和CHS0选择输入通道,
4) 设置P1M0和P1M1寄存器将所选引脚设定成只输入模式, 并
5) 设置ADRJ 位配置ADC转换结果输出形式.
现在,用户就可以置位ADCS来启动AD转换了。转换时间取决于SPEED1 和 SPE ED0位的设置。一旦转换结束,
硬件自动清除ADCS位,设置中断标志ADCI,并将转换结果按照ADRJ的设置存入ADCH和ADCL。
如上所述,中断标志ADCI,由硬件设置以表明一次转换完成。因此,有两种方法检测AD转换是否完成:
(1) 软件检测ADCI中断标志;
(2) 设置AUXIE寄存器EADC位和IE寄存器EA位使能ADC中断。这样,转换结束就会跳入中断服务进程。
无论(1) 或 (2 ), ADCI 标志都必须在下次转换前用软件清零。
16.3 ADC 示例代码
start:
;...
;...
MOV ADCTL,#0E2h ;ADCON=1, 启动ADC硬件
;(SPEED1,SPEED0)=(1,1), 转换时间= 270个时钟周期
;选择AIN0 (P1.2)作为模拟输入
ORL
ANL P1M1,#11111011B ;
ANL AUXR,#10111111B ;ADRJ=0: ADCH 包含 B9~B2; ADCL 包含 B1,B0
;现在,假定AIN2 (P1.2)模拟输入已经就绪
P1M0,#00000100B ;配置P1.2为只输入模式
ORL ADCTL,#00001000B ;ADCS=1 → 开始A/D转换
wait_loop:
MOV ACC,ADCTL
JNB ACC.4,wait_loop ;等到 ADCI=1 → 转换结束
;现在, 10位ADC结果已在ADCH 和 ADCL中.
;...
;...
83 MPC82 G516A Data Sheet MEGAWIN

16.4 ADC 注意事项
ADC 注意事项如下所列 .
16.4.1 A/D
转换时间
用户可以根据输入的模拟信号频率选择合适的转换速度。例如,若 Fosc=10MHz ,转换速度设为270个时钟周期,则
输入的模拟信号频率不应超过37KHz,以保证转换精度。(转换时间 = 1/10MHz x270 = 27us, 所以转换速率 =
1/27us = 37KHz.)
16.4.2 I/O
用作A/D转换的模拟输入引脚也可以保持其数字I/O输入输出功能。为了获得最佳转换效果,用作ADC的引脚应当禁止
其数字输出和输入,可以按照引脚配置一节中的描述将引脚设为只输入模式。
口用于
ADC
转换
16.4.3
在待机和掉电模式下,ADC将无法使用,若A/D功能打开,它将消耗一部分的电流。因此,为了降低待机和掉电模式
下的功耗,可以在进入掉电和待机模式前关闭ADC硬件 (ADC ON=0)。
待机和掉电模式
16.4.4 VDD
如前所述, Vref+ 和 Vref- 内部分别连接到了 VDD和地,VDD可加载的电压为2.7V~5.5V (5 V系统) 或 2.4V~3.6V
(3.3V系统),所以满量程电压Vref+ – Vref- = VDD 就并不固定。然而,计算公式保持不变,这造成同样的Vin却得到
不同的转换结果。因此,VDD必须保持不变,这是用户必须要注意的。
既然VDD用作正参考电压Vref+, 用户也必须保证VDD尽可能的纯净,以期得到最佳的ADC性能。
MEGAWIN MPC82G516A Data Sheet 84
供电要求

17
键盘中断
键盘中断功能主要用于当P2口等于或不等于某个值时产生一个中断,这个功能可以用作总线地址识别或键盘键码识
别。
有3个特殊功能寄存器与此功能相关。键盘中断掩码寄存器(KBMASK) 用来定义P2口哪些引脚可以产生中
断;键盘模式寄存器(KBPATN)用来定义与P2口值进行比较的值,比较匹配时硬件置键盘中断控制寄存器(KBCON)
中的键盘中断标志(KBIF) ,若AUXIE中的EKBI中断允许且EA=1,则还会产生一个中断。键盘中断控制寄存器
(KBCON)中的PATN_SEL位用来定义比较是“相等”还是“不等”匹配。
为了使用键盘中断作为“键盘”中断,用户需要设置 KBPATN= 0xFF 和 PATN_SEL= 0 (不相等),然后将任意按
键连接到KBMASK 寄存器定义的相应P2口,按下时就可以设置中断标志KBIF,并当中断使能时产生中断。这个中
断可以将CPU从待机模式或掉电模式下唤醒。这个功能在手持设备,电池供电系统等要求低功耗而且易用的设备上
特别有用。
下面是键盘中断操作相关特殊功能寄存器:
KBPATN (地址=D5H, 键盘模式寄存器, 复位值=1111,1111B)
7 6 5 4 3 2 1 0
KBPATN.7 KBPATN.6 KBPATN.5 KBPATN.4 KBPATN.3 KBPATN.2 KBPATN.1 KBPATN.0
KBPATN.7~0: 键盘模式.
KBCON (地址=D6H, 键盘控制寄存器, 复位值=xxxx,xx00B)
7 6 5 4 3 2 1 0
- - - - - -
PATN_SEL: 模式匹配极性选择.
1: 键盘输入等于KBPATN中用户定义模式时产生中断。
0: 键盘输入不等于KBPATN中用户定义模式时产生中断。
KBIF:
键盘中断标志.P2端口值匹配KBPATN, KBMASK, P ATN_SEL设置条件时置位。需要软件写入‘0’来清零.
PATN_SEL KBIF
KBMASK (地址=D7H, 键盘中断掩码寄存器, 复位值=0000,0000B)
7 6 5 4 3 2 1 0
KBMASK.7 KBMASK.6 KBMASK.5 KBMASK.4 KBMASK.3 KBMASK.2 KBMASK.1 KBMASK.0
KBMASK.7: 置位时,使能P2.7作为键盘中断源 (KBI7).
KBMASK.6: 置位时,使能P2.6作为键盘中断源 (KBI6).
KBMASK.5: 置位时,使能P2.5作为键盘中断源 (KBI5).
KBMASK.4: 置位时,使能P2.4作为键盘中断源 (KBI4).
KBMASK.3: 置位时,使能P2.3作为键盘中断源 (KBI3).
KBMASK.2: 置位时,使能P2.2作为键盘中断源 (KBI2).
KBMASK.1: 置位时,使能P2.1作为键盘中断源 (KBI1).
KBMASK.0: 置位时,使能P2.0作为键盘中断源 (KBI0).
85 MPC82 G516A Data Sheet MEGAWIN

18
看门狗定时器(WDT)
看门狗定时器 (W DT) 用来使程序从跑飞或死机状态恢复的一个手段。软件跑飞时,WDT使用系统复位来防止系统执
行错误的代码。WDT由一个15位独立定时器、一个8分频器和一个控制寄存器组成,图18-1显示了WDT功能框图。
图 18-1. WDT 功能框图
18.1 WDT 控制寄存器
WDTCR (地址=E1H, WDT控制寄存器, 上电复位值=0x00,0000B)
7 6 5 4 3 2 1 0
WRF - ENW CLRW WIDL PS2 PS1 PS0
WRF: WDT复位标志。WDT溢出时,这一位被硬件置位,应当软件清零.
ENW: WDT使能位。设置打开WDT。
CLRW: WDT清零位. 该位写“1” 会清除15位WDT计数器为0000H. 注意该位本身不需写‘0’清除。
WIDL: WDT在待机模式的运行。置位该位会让WDT在待机模式下继续计数。
PS2~PS0: 分频系数设置.
PS2 PS1 PS0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
MEGAWIN MPC82G516A Data Sheet 86
分频值
2
4
8
16
32
64
128
256
(注:
一旦设置,该位就只能上电复位清零了
.)

18.2 WDT 操作
WDT上电复位后默认是禁用的。要使能WDT,用户必须设置ENW 位。当WDT使能时,用户需要不断设置CLW位
来清除WDT计数器以防止其溢出。15位 WD T 计数器计数到32767 (7FFFH)时溢出,发生溢出会复位器件。WDT
使能时,每12个时钟周期加1,这意味着,用户必须至少每32767 x12 系统时钟周期清零WDT计数器一次。
WDT是一次性使能的,所谓“一次性使能”指:一旦通过设置ENW位使能WDT,就没有其它办法来禁用,除非上电
复位。WDTCR寄存器也将始终保持最先编程的值,即使在任何复位(硬件复位、软件复位、WDT复位)后,除了上
电复位。 例如,若WDTCR值是 0x2D,WDTCR将保持0x2D,而不是每次复位后都是0x00,只有上电复位才能将该
值初始成0x00。换句话说,WDT只能上电复位禁用,这就是所谓“一次性使能”WDT。
WDT复位周期由下面公式决定:
表 18 -1 显示了运行在6/12/24MHz 下的MCU的WDT溢出周期,这些周期都是用户清除WDT防止复位的最大时
间间隔。
表 18 -1. WDT 溢出周期
15
2
x 预分频器值 x (12 / Fosc)
PS2 PS1 PS0
预分频器值
Fosc=6MHz Fosc=12MHz Fosc=24MHz
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
2
4
8
16
32
64
128
256
131.072 ms
262.144 ms
524.288 ms
1.048 s
2.097 s
4.194 s
8.389 s
16.778 s
65.536 ms
131.072 ms
262.144 ms
524.288 ms
1.048 s
2.097 s
4.194 s
8.389 s
131.072 ms
262.144 ms
524.288 ms
32.768 ms
65.536 ms
1.048 s
2.097 s
4.194 s
18.3 WDT 示例代码
条件: WDT 溢出周期= 1.048 秒 @ Fosc=12MHz
WDTCR_buf DATA 30h ;声明WDTCR寄存器缓冲
;(由于 WDTCR是一个只写寄存器)
start:
;...
MOV WDTCR_buf,#00h ;初始化WDTCR缓冲
ORL WDTCR_buf,#04h ;PS2=1
ANL WDTCR_buf,#0FCh ;PS1=0,PS0=0
MOV WDTCR,WDTCR_buf ;写 WDTCR
→ (PS2,PS1,PS0)=(1,0,0),预分频器=32
ORL WDTCR_buf,#20h ;ENW=1
MOV WDTCR,WDTCR_buf ;写 WDTCR → 使能 WDT
main_loop:
ORL WDTCR_buf,#10h ;CLRW=0
MOV WDTCR,WDTCR_buf ;写 WDTCR → 清WDT计数器
;...
;...
JMP main_loop
87 MPC82 G516A Data Sheet MEGAWIN

18.4 掉电和待机模式下的WDT
掉电模式下,晶振停止,WDT也停止了,所以掉电模式下,用户不需要在喂狗了。有3种从掉电模式下恢复的方法:
硬件复位,外部中断 (/INT0~/INT3) 或 键盘中断,需要在进入掉电模式前确定中断优先级。上电复位,器件所有部分
都复位了,WDT也不例外。使用外部中断或键盘中断退出掉电模式,为了防止WDT复位器件,建议在这些中断服务
进程中清WDT计数器。
当然,为了确保退出掉电模式后不会立即被WDT复位,更好的办法是进入掉电模式前喂一次狗。
待机模式下,晶振仍然工作着,用户可以设置WIDL位让WDT继续工作或清零WIDL位使WDT在待机模式停止工作。
对于待机模式下继续工作的情况,为了防止待机模式下WDT溢出,用户应当使用一个定时器周期性退出待机模式喂
狗,喂狗后再进入待机模式。
18.5 WDT 硬件初始化
WDTCR除了软件可以初始化外,也可以使用硬件选项HWENW, HWWIDL 和 HWPS[2:0]在系统上电时由硬件自动
初始化,这些硬件选项可以使用通用编程器或烧写器进行编程。(参考 25 节:MCU的硬件选项)
若 HWENW 编程使能,硬件将会在上电时自动做以下WDTCR初始化动作:
(1) 设置ENW 位.
(2) 装 HWWIDL 到WIDL位, 并
(3) 装 HWPS[2:0] 到 PS[2:0] 位.
MEGAWIN MPC82G516A Data Sheet 88

19
中断系统
MPC82G516A 有四级中断优先级的14个中断源. 通过几个寄存器来设置4级中断。 通过 IE, IP , IPH, AUXIE,
AUXIP, AUXI PH, XICON和 TCON. 使用 IPH (中断优先级高位)和 AUXIPH (辅助中断优先级高位) 寄存器来设置四级
中断优先级. 四级中断优先级结构为中断源的应用提供了很大的便利.
19.1 中断源
表 19 -1列出了所有的中断源. 使能位被允许,中断请求时硬件会产生一个中断请求标志. 当然,总中断使能位 EA
( IE 寄存器)必须使能. 中断请求位能由软件置1或清零, 这和硬件置1或清零结果相同. 同理,中断可以由软件产生或
取消. 中断优先级位决定每个中断产生的优先级.多个中断同时产生时依照中断优先级顺序处理.中断向量地址表示中
断服务程序的入口地址.
图 19 -1 对所有中断系统进行综述.
表 19 -1. 中断源
序号
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
#12
#13
#14
外部中断 INT0
外部中断, INT1
外部中断, INT2
外部中断, INT3
名称 使
Timer 0
Timer 1
串口中断
Timer 2
SPI
ADC
PCA
欠压检测
UART2
键盘中断KBI
EADC
EPCA
能
EX0
ET0
EX1
ET1
ES
ET2
EX2
EX3
ESPI
EBD
ES2
EKB
TF2, EXF2
CF, CCFn
(n=0~5)
OPF, CPF
S2RI, S2TI
中断
请求
IE0
TF0
IE1
TF1
RI, TI
IE2
IE3
SPIF
ADCI
KBIF
优先
位
PX0H, PX0
PT0H, PT0
PX1H, PX1
PT1H, PT1
PSH, PS
PT2H, PT2
PX2H, PX2
PX3H, PX3
PSPIH, PSPI
PADCH, PADC
PPCAH, PPCA
PBDH, PBD
PS2H, PS2
PKBH, PKB
优先
(高优先级)
(低优先级)
地址
0003H
.
.
.
.
.
.
.
.
.
.
.
.
000BH
0013H
001BH
0023H
002BH
0033H
003BH
0043H
004BH
0053H
005BH
0063H
006BH
89 MPC82 G516A数据手册 MEGAWIN

图 19-1. 中断系统
MEGAWIN MPC82G516A数据手册 90

19.2 与中断相关的寄存器
下面是中断过程中的相关特殊功能寄存器
IE (地址A8H, 中断使能寄存器, 复位值=0x00,0000B)
7 6 5 4 3 2 1 0
EA - ET2 ES ET1 EX1 ET0 EX0
EA: 总中断使能位. EA = 0, 禁止所有中断. EA = 1, 使能所有中断
ET2: 定时器2 中断使能.
ES: 串口 中断使能
ET1: 定时器1 中断使能
EX1: 外部中断1 使能.
ET0: 定时器0 中断使能
EX0: 外部中断0 使能.
IP (地址B8H,中断优先级寄存器, 复位值=xx00,0000B)
7 6 5 4 3 2 1 0
- - PT2 PS PT1 PX1 PT0 PX0
PT2: 定时器2 中断优先级位.
PS: 串口 中断优先级位.
PT1: 定时器1 中断优先级位.
PX1: 外部中断1 优先级位.
PT0: 定时器0 中断优先级位.
PX0: 外部中断0 优先级位.
IPH (地址B7H, 中断 优先级高位寄存器, 复位值=0000,0000B)
7 6 5 4 3 2 1 0
PX3H PX2H PT2H PSH PT1H PX1H PT0H PX0H
PX3H: 外部中断3 优先级位, H.
PX2H: 外部中断2 优先级位, H.
PT2H: 定时器2 中断优先级位, H.
PSH: 串口 中断优先级位, H.
PT1H: 定时器1 中断优先级位, H.
PX1H: 外部中断1 优先级位, H.
PT0H: 定时器0 中断优先级位, H.
PX0H: 外部中断0 优先级位, H.
AUXIE (地址ADH, 辅助中断使能寄存器, 复位值=xx00,0000B)
7 6 5 4 3 2 1 0
- - EKB ES2 EBD EPCA EADC ESPI
EKB: 键盘 中断使能位.
ES2: UART2 中断使能位.
EBD: 欠压检测 中断使能位.
EPCA: PCA 中断使能位.
EADC: ADC 中断使能位.
ESPI: SPI 中断使能位.
91 MPC82 G516A数据手册 MEGAWIN

AUXIP (地址AEH,辅助中断优先级寄存器, 复位值=xx00,0000B)
7 6 5 4 3 2 1 0
- - PKB PS2 PBD PPCA PADC PSPI
PKB: 键盘 中断优先级位.
PS2: UART2 中断优先级位.
PBD: 欠压检测 中断优先级位.
PPCA: PCA 中断优先级位.
PADC: ADC 中断优先级位.
PSPI: SPI 中断优先级位.
AUXIPH (地址AFH, 辅助中断优先级高位寄存器, 复位值=xx00,0000B)
7 6 5 4 3 2 1 0
- - PKBH PS2H PBDH PPCAH PADCH PSPIH
PKBH: 键盘 中断优先级位, H
PS2H: UART2 中断优先级位,H
PBDH: 欠压监测 中断优先级位,H.
PPCAH: PCA 中断1 优先级位, H.
PADCH: ADC 中断 优先级位,H.
PSPIH: SPI 中断0 优先级位, H.
XICON (地址C0H, 外部中断 控制寄存器, 复位值=0000,0000B)
7 6 5 4 3 2 1 0
PX3 EX3 IE3 IT3 PX2 EX2 IE2 IT2
PX3: 外部中断3 优先级位.
EX3: 外部中断3 使能位.
IE3: 外部中断3 中断标志.
IT3: 外部中断3 类型控制位. 1: 边沿触发; 0: 电平触发.
PX2: 外部中断2 优先级位.
EX2: 外部中断2 使能位.
IE2: 外部中断2 中断标志.
IT2: 外部中断2 类型控制位. 1: 边沿触发; 0: 电平触发.
TCON (地址88H, 定时/计数器 控制寄存器, 复位值=0000,0000B)
7 6 5 4 3 2 1 0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
IE1: 外部中断1 请求标志. 外部中断1 由边沿或电平触发(由IT1设置)硬件置标志.
IT1: 外部中断1 类型控制位. 软件选择下降沿/低电平触发外部中断1.
IE0: 外部中断0 请求标志. 外部中断0 由边沿或电平触发(由IT0设置)硬件置标志.
IT0: 外部中断0 类型控制位. 软件选择下降沿/低电平触发外部中断0.
MEGAWIN MPC82G516A数据手册 92

19.3 中断使能
通过设置寄存器 IE, AUXIE 和 XICON 能对每个中断进行使能和禁止操作.需注意IE中有个总中断允许位EA.EA 置
‘1’所有中断的使能和禁止由单独的设置位决定. EA被清‘0’, 所有中断被禁止.
19.4 中断优先级
中断优先级设置和80C51相同, 除了有四级中断优先级比80C51多两级.优先级位(参见 表 19 -1) 决定每个中断的优
先级.
表 19 -2, 外部中断0 中断优先级设置, 通过不同的设置组合决定中断优先级.
表 19 -2. 外部中断0 的四级优先级
优先级位
PX0H PX0
0 0
0 1
1 0
1 1
优先级
级别0
级别1
级别2
级别3 (高)
如果两个优先级的中断同时产生,高优先级的中断总是优先处理.低优先级的中断在处理过程中可以被高优先级的
中断打断,等高优先级的中断处理完后低优先级的中断才能从被打断处继续执行。
同等优先级的中断同时产生,执行顺序由中断向量决定顺序执行,中断向量越小的优先级越高.
19.5 中断响应
每个机器周期都会采样中断标志位. 如果没有下列阻止条件. 前一个指令周期中产生中断标志位置位, 接下来的指
令周期中将以LCALL调用中断服务程序,下列几种情况将LCALL指令锁定:
1. 另一个高优先级的中断正在处理.
2. 当前机器周期不是正在执行的指令的最后一个机器周期.
3. 正在执行指令RETI 或正在写和中断相关的寄存器( IE或IP寄存器).
上述三种情况将锁定LCALL指令使之暂时不能访问中断服务程序. 第二种情况在引导任何中断服务程序之前必须执
行完. 第三种情况保证RETI的执行或写中断相关的寄存器能顺利完成, 在中断进入引导程序之前至少运行一个以上
的指令周期.
每个指令周期执行一次采样, 采样结果在下一个指令周期被执行.如果电平触发的外部中断的中断标志被置位,在下
一个中断来临之前未处理,则处理当前中断,前一中断被忽略,每个采样周期都采样的当前的中断,如果不及时处
理则被忽略.
处理器硬件产生LCALL来调用中断服务程序来响应一个中断. 中断在下一次同种中断来临之前必须被处理,否则将
会被覆盖,但不会被其他中断影响.定时器2, 串口, PCA, 电源监测和UART2产生的中断标志必须由软件来清除. 清
除中断标志 (IE0, IE1, IE 2 or IE3) 后中断源被再次激活. 硬件执行LCALL将当前PC值推入堆栈 (但是不保存
PSW状态)将中断服务程序的向量地址装载到PC中, 如表 19 -1所示.
93 MPC82 G516A数据手册 MEGAWIN

中断处理程序以RETI指令结束. RETI提示处理器中断服务程序已经结束, 然后从堆栈中将断点的地址装载到程序计
数器(PC)中. 从断点处继续执行.
注意 指令RET也可以结束中断, 虽然可以从中断返回但中断控制系统会认为中断还在继续.这意味着在多次中断后堆
栈将溢出.注意:中断向量开始的空间只有8字节.这意味着如果一个中断服务程序超过7个字节以上,就必须使用跳转到其
他空间以便不覆盖其他中断的入口地址.
19.6 外部中断
外部中断源包括 /INT0, /INT1, /INT2 和 /INT3, 外部中断能被任意的低电平触发或下降沿触发, 通过设置寄存器
TCON 和 XICO N中的位 IT0, IT1, IT2和 IT3. ITx= 0, INTx管脚被拉低将触发中断. ITx = 1,INTx管脚上的下降沿将
触发中断. 中断被触发后将置位TCON、XICON中的IE0、IE1、IE2 、IE3. 如果中断被激活这些标志在进入中
断服务程序后被硬件清除. 如果中断是电平触发, 外中断源必须有效,直到中断被响应,在执行完中断服务程序前,此有
效中断必须被清除.
每个指令周期都采样外部中断引脚, 输入的高或低将保持至少一个振荡周期以确保能被采样到. 如果外部中断
有效, 外部中断引脚上的信号高必须保持至少一个周期,接下来的低也必须至少保持一个周期,以确保
中断能响应置标志IEx.执行中断服务程序后IEx标志将被CPU硬件清除.
如果外部中断是电平触发, 外中断源必须有效,直到中断被响应,在执行完中断服务程序前,此有效中断必须被清除.
否则将产生下一次中断.
19.7 单步运行
80C51的中断结构允许使用很少的软件开销来实现单步运行.如前所述,在正在执行相同或更高优先级的中断的时候中
断请求是不会被响应的,直到运行完当前中断服务程序后至少再执行一条以上的指令.因而, 如果一个中断服务程序正在
执行,这不能被其他中断重入, 直到当前中断服务程序被执行完后至少再执行一条以上的指令. 下面是一个电平触发的
外部中断(e.g., INT0)的使用实例.代码如下:
JNB P3.2,$ ;等待直到INT0变高
JB P3.2,$ ;等待直到INT0 变低
RETI ; 服务程序结束并执行一条指令
当前INT0引脚(P3.2)保持低状态,CPU进入外部中断0服务程序等待INT0的引脚上有脉冲产生(从低到高再到低).然后执
行RETI指令, 跳回被中断的程序执行一条指令,然后再次进入外部中断 0 中断服务程序等待引脚P3.2上再次产生一个
脉冲.这样就是在引脚P3.2上每产生一个脉冲程序步进一条指令,这样就实现了单步操作.
MEGAWIN MPC82G516A数据手册 94

20 ISP, IAP 和 ICP
MPC82G516A可以使用下面的方法对内部FLASH进行编程。
(1) 传统的并行编程方法: 通用编程器 (此处不再累述).
(2) 在系统编程方式(ISP): 使用内部引导程序来编程.
(3) 在应用编程方式 (IAP): 使用用户自定义的下载程序.
(4) 在电路编程方式 (ICP ): 使用专用的ICP编程器(参见 20.4.1
如图 20 -1所示MPC82G516A的Flash结构,MPC82G516A的FLASH 被划分成 AP- 部分, IAP-部分和ISP-部分. AP部分 装载用户服务程序; IAP- 部分装载非遗失数据,ISP-空间装载在系统编程的引导程序.
通用并行编程和ICP 可以编程MCU的任何空间, 包括全部Flash和MCU的硬件选项. ISP 和IAP 只能编程FLASH的
一些确切的空间; ISP能编程 AP- 空间和IAP-空间, IAP只能编程IAP空间.
表 20-1 罗列了上述操作方法的不同之处.
表 20 -1. 不同的编程模式对照
分类
并行编程模式
).
ISP
IAP
ICP
擦除/编程/校验
编程
区域
硬件或软件限制?
编程介面
编程前的预处
理
编程
工具
为什么要
ISP使用户无需将MCU从应用系统中取下修改程序(AP-空间)和非易失性数据(IAP-空间)成为可能. 这个功能非常实用
是在应用现场改写应用程序成为可能. (注意 ISP 功能引导预编程在ISP-空间中的程序)
为什么要
IAP-空间能保存应用系统中需要保存的实时数据,掉电后不易失,所以可以替代串行存储器比如93C46或24C01等.
为什么要
ICP可以在系统编程MCU的所有资源 (包括所有的Flash空间和MCU的硬件选项).如同 ISP 功能,这个功能很有效可以
在应用现成随时下载程序.
ISP?
IAP?
ICP?
Yes Yes Yes Yes
所有Flash &
MCU’s
硬件选项
硬件限制 软件限制 软件限制 硬件限制
并口
无
通用编程器或
“Megawin
8051 Writer”
AP-部分 &
IAP-部分
串行方式使用
DTA (P3.1)
预编程引导程序
& HWBS enabled
“Megawin
ISP 编程器”
IAP-部分
None
None
None
所有Flash &
MCU’s
硬件选项
串行方式 SDA
& SCL
“Megawin
ICP 编程器”
None
95 MPC82 G516A数据手册 MEGAWIN

20.1 Flash 存储器
20.1.1 Flash
Flash只能页擦除, 不能字节擦除.并且页擦除后数据全部变成0xFF.
字节 0xFF能被编程成非0xFF字节. 任何非-0xFF字节不能编程成0xFF字节除非使用页擦除.
每页有512字节, 页地址总是位于0x0200*N, N (=0,1,2,3,..) 意思为第N个页.
擦写次数: 20,000 擦写次数.
特点
20.1.2 Flash
图 20 -1 显示MPC82G516A的FLASH结构. Flash被划分成AP-区域, IAP-区域和ISP-区域. AP- 空间用来存储用户应用
程序; IAP- 空间用于保存非易失性数据; ISP-空间用来保存在系统编程的引导程序. Flash 总容量为 64K 字节, IAP-空
间和ISP-空间能被 “Megawin 8051 烧录器” 或 “Megawin 8051 ICP 编程器” 全空间编程(参见20.4.1节).
图 20-1. Flash 结构
结构
MEGAWIN MPC82G516A数据手册 96

20.2 ISP 操作
一般来说, 用户无需知道 ISP 的具体操作因为 Meg awin 提供了ISP标准工具(参见20.2.5节). 用户如果想设计自己
的ISP 操作,本节对 IS P操作的具体寄存器做详细解说.
20.2.1 ISP
寄存器
以下是有关 I SP 操作的特殊寄存器. 用户程序可以访问这些寄存器.
ISPCR (地址E7H, ISP 控制寄存器, 复位值=000x,x000B)
Bit-7 Bit-6 Bit-5 Bit-4 Bit-3 Bit-2 Bit-1 Bit-0
ISPEN SWBS SWRST - - CKS2 CKS1 CKS0
ISPEN: 使能ISP 功能.
SWBS: 软件引导选择. 设置此位在软件复位后选择是从ISP-空间/AP-空间引导.
SWRST: 对此位写‘1’ 触发软件复位.
CKS2~CKS0: ISP 操作中的延时依照不同的振荡频率而不同, 参见表 20-2.
表 20-2. ISP 延时设置
CKS2 CKS1 CKS
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
振荡器频率 (MH z)
> 24
20 ~ 24
12 ~ 20
6~ 12
3 ~ 6
2 ~ 3
1 ~ 2
< 1
IFMT (地址E5H, ISP 模式寄存器, 复位值=xxxx,x000B)
Bit-7 Bit-6 Bit-5 Bit-4 Bit-3 Bit-2 Bit-1 Bit-0
- - - - - MS2 MS1 MS0
MS2, MS1 and MS0: ISP 模式选择位, 见表 20-3.
表 20-3. ISP 模式选择
MS2 MS1 MS0
0 0 0
0 0 1
0 1 0
0 1 1
ISP模式
备用
读
编程
页擦除
备用模式: 保持ISP 硬件处于无效状态
页擦除模式: 擦除一页 (5 12字节) 页地址由寄存器IFADRH,IFADRL选择
编程模式:编程地址由寄存器IFADRH,IFADRL选择
读模式: 读地址由寄存器IFADRH,IFADRL选择
97 MPC82 G516A数据手册 MEGAWIN

IFADRH (地址E3H, ISP Flash地址高寄存器, 复位值=0000,0000B)
Bit-7 Bit-6 Bit-5 Bit-4 Bit-3 Bit-2 Bit-1 Bit-0
(高位地址, A15~A8)
IFADRL (地址E4H, ISP Flash地址低寄存器, 复位值=0000,0000B)
Bit-7 Bit-6 Bit-5 Bit-4 Bit-3 Bit-2 Bit-1 Bit-0
(低位地址, A7~A0)
IFD (地址E2H, ISP Flash数据寄存器, 复位值=0000,0000B)
Bit-7 Bit-6 Bit-5 Bit-4 Bit-3 Bit-2 Bit-1 Bit-0
(读或编程数据字节)
SCMD (地址E6H, ISP Sequential Command 寄存器, 复位值=0000,0000B)
Bit-7 Bit-6 Bit-5 Bit-4 Bit-3 Bit-2 Bit-1 Bit-0
(ISP触发命令)
顺序写0x46 和0xB9到这寄存器能触发ISP操作.
MEGAWIN MPC82G516A数据手册 98

20.2.2 ISP
模式说明
ISP 模式是用来引导程序来编程 AP- 空间 和IAP-空间. 同样也能在
ISP 模式下的不同操作.
20.2.2.1 Flash页擦除模式
用户的应用程序
对IAP-空间进行编程. 下面显示
图 20-2. “Flash 页擦除流程图”
“页擦除模式”操作示例
MOV ISPCR,#10000011b ;ISPCR.7=1, 使能 ISP
;ISPCR[2:0]=011,
MOV IFMT,#03h ;选择页擦除模式
MOV IFADRH,?? ;使用 [IFADRH,IFADRL] 装载页地址
MOV IFADRL,?? ;
MOV SCMD,#46h ;触发 ISP 处理
MOV SCMD,#0B9h ;
; MCU 停止直到操作完全结束
99 MPC82 G516A数据手册 MEGAWIN
假定 MPC82-series 在 @11.0592MHz运行