8051-Based MCU
MA82G5Cxx
数据手册
版本: 0.24
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. 2015 All rights reserved.
2015/07 版本 0.24
特性
1-T 80C51 中央处理器
MA82G5C64 / MA82G5C32 内含 64K / 32K 字节闪存
━ ISP 空间可以选择为 0.5KB/1.0KB~7.5KB
━ 灵活的 IAP 大小空间设置
━ 密码保护程序区访问
━ Flash 写/擦 次数: 10,000
━ Flash 数据保留时间: 100 年 25℃
━ MA82G5C64 默认空间配置
AP 程序空间(60KB, 0000h~EFFFh)
IAP 数据空间(2.5KB, F000h~F9FFh)
ISP 引导码空间(1.5KB, FA00h~FFFFh)
━ MA82G5C32 默认空间配置
AP 程序空间(29.5KB, 0000h~75FFh)
IAP 数据空间(1KB, 7600h~79FFh)
ISP 引导码空间(1.5KB, 7A00h~7FFFh)
数据存储器 RAM: 4K/2K 字节
━ 片内 256 字节高速缓存
━ 3840 / 1792 字节扩展 RAM (XRAM)
双数据指针
用于慢速 SRAM/外设的可变长度的 MOVX 指令
━ MOVX 指令支持 16 位数据读/写
━ 无地址模式访问 (FIFO 模式)
中断控制
━ 24 中断源,4 级优先级
━ 四个带滤波的外部中断, nINT0,nINT1, nINT2 和 nINT3
━ 所有的外部中断支持高/低或上升/下降沿触发
MA82G5C64 共有 12 个定时器
━ RTC 定时器和 WDT 定时器
━ 定时器 0, 定时器 1, 定时器 2, 定时器 3 and 定时器 4
━ S1BRG, S2BRG 和 S3BRG
━ PCA0 和 PCA1
━ 如果定时器 2/3/4 用于分割模式,则共有 15 个定时器
五个 16-位 定时/计数, 定时器 0,定时器 1,定时器 2 ,定时器 3 和定时器 4
━ X12 模式和时钟输出功能
━ 所有定时器都有同步运行使能(在停止和重载有同样的功能)
━ 定时器 2/3/4 有新的 4 个操作模式,它们有着 8 个时钟源和 8 个捕捉源
━ 定时器 2/3/4 可以分割位两个 8 位定时器
━ 时钟输出(CCO)在 T2CKO, T3CKO 和 T4CKO
━ S1/S2/S3BRG 级联定时器 1 可以组成一个 32/40 位
两个可编程 16 位计数/定时阵列(PCA0 和 PCA1) 有着 12 个 CCP 模块
━ 每个 PCA 有 6 个 CCP(捕获/比较/PWM)模块
━ 可重载 16 位基准计数器支持可变长度的 PWM
━ 从片内 CKM 可获得高达 100MHz 的时钟来源
━ 捕获模式, 16 位软件定时器模式和高速输出模式
━ 缓冲捕获模式可以监控窄脉冲输入 input
2
MA82G5Cxx 数据手册
MEGAWIN
━
━
8/10/12/16 位可调 PWM,带相位位移功能, 可被配置成:
最高 6 通道无缓冲 16 位 PWM,或
最高 6 通道带缓冲 8 位 PWM,或
最高 3 通道带缓冲 16 位 PWM
PCA0 PWM 模块有死区控制,中断控制和中心对齐选项
键盘中断(P0/P2/P5/P3+P4)
10 位单端 ADC
━ 可编程吞吐率到 500Ksps
━ 16 个外部输入通道
━ ADC VREF+ 从外部输入
模拟比较器 0
━ 可编程片上比较电压,与模拟比较器 1/2 共享
━ 4 个可选 AIN0(+)输入
━ 可唤醒掉电模式和 IDLE 模式
━ 滤波选项和输出给内部定时器捕捉
模拟比较器 1/2
━ 可唤醒掉电模式和 IDLE 模式
━ 滤波选项和输出给内部定时器捕捉
增强型 UART (S0)
━ 帧错误侦测
━ 自动地址识别
━ 速度增强机制 (X2/X4 模式), 最大波特率可达 7.3728/12.0MHz
━ 模式 4 支持 SPI 主机,SPICLK 速率可达 12MHz
第 2/第 3/第 4 UARTs (S1/S2/S3)
━ 每个 UART 都有专用的波特率发生器
━ S1 可以共享波特率给 S0
━ 每个模块都有 8 位定时器功能,叠加在定时器 1 可以组成一个 32/40 位定时器/计数器
━ 最大 UART 波特率可达到 1.8432/3.0MHz
━ 模式 4 支持 SPI 主机,SPICLK 速率可达 12MHz
━ S1 在模式 5 下支持 LIN 总线协议
━ S1/S2/S3 在模式 7 下支持 SCI (智能卡接口, ISO-7816)
一个主/从 SPI 串行接口
━ SPICLK 速率可达 12MHz
━ 可用于四位外围接口(QPI)
━ 8/16 位数据传送
━ 包括 S0~S3 的模式 4 就有 5 个主机
3 个主/从两线串行接口: TWSI, TWI1 和 STWI (SID)
━ 两个主/从硬件引擎: TWSI 和 TWI1
━ 3 个在 TWSI/TWI1 从机模式器件地址识别
━ 用于 STWI(软件 TWI)的两线开始/停止串行信号侦测
可编程看门狗定时器,时钟来源为 ILRCO
━ 通过 CPU 或上电一次性使能
━ WDT 溢出可中断 CPU 或 复位 CPU
━ 掉电模式(watch 模式)下支持看门狗(WDT)功能,用于自动唤醒功能
实时时钟模块,时钟源来自 XTAL 或 ILRCO
━ 可编程中断周期从微秒到月
━ 21-位长系统定时器
蜂鸣器功能
MEGAWIN
MA82G5Cxx 数据手册
3
片上调试接口 (OCD)
在 LQFP64 封装中最大 59 个通用输入输出口(GPIO)
━ P3 可以设置成准双向口模式,推挽输出模式,开漏集输出模式和仅输入模式
━ P0, P1, P2, P4, P5, P6 和 P7 可以设置为推挽输出模式,开漏集输出模式
━ P6.0, P6.1 和 P4.7 公用 XTAL2, XTAL1 和 RST
时钟源
━ 内部 12MHz/11.059MHz 振荡器(IHRCO): 工厂校对到1%, 典型值
━ 外部晶振模式, 支持 32.768KHz 振荡
━ 内部低功耗 32KHz RC 振荡器 (ILRCO)
━ 外部时钟输入(ECKI) 在 P6.0/XTAL2, 可达到 25MHz
━ 内部 RC 振荡输出在 P6.0/XTAL2
━ 片内时钟倍频器(CKM) 可提供高速时钟源
两个低电压检测
━ BOD0: 检测 1.7V
━ BOD1: 选择检测电压为 4.2V/3.7V/2.4V/2.0V
━ 中断 CPU 或复位 CPU
━ (BOD1)在掉电模式下唤醒 CPU
多种功耗控制模式:掉电模式, 空闲模式,慢频模式,副频模式,RTC 模式,watch 模式和 monitor 模式,
━ 所有的中断能唤醒空闲(IDLE)模式
━ 13 个中断源能唤醒掉电模式
━ 慢频模式和副频模式支持低速 MCU 运转
━ RTC 模式在掉电模式下支持实时时钟(RTC)恢复 CPU
━ Watch 模式在掉电模式下支持看门狗(WDT) 恢复 CPU
━ Monitor 模式在掉电模式下支持 BOD1 恢复 CPU
工作电压范围:1.8V – 5.5V
━ flash 写操作(ISP/IAP/ICP)的最低电压为 1.8V
工作频率范围:25MHz(最高)
━ 外部晶振模式,0 – 12MHz 在 1.8V – 5.5V 和 0 – 25MHz 在 2.7V – 5.5V
━ CPU 工作频率可达 12MHz 在 1.8V – 5.5V 和 25MHz 在 2.2V – 5.5V
工作温度
━ 工业级(-40°C 到+85°C)*
封装类型
━ LQFP64 (10mm x 10mm): MA82G5C64AC64
━ LQFP48( 7mm x 7mm): MA82G5C32AD48
*:抽样检测
4
MA82G5Cxx 数据手册
MEGAWIN
目录
特性 .................................................................................................................... 2
目录 .................................................................................................................... 5
1. 概述 ............................................................................................................. 11
2. 方框图 .......................................................................................................... 12
3. 特殊功能寄存器............................................................................................ 13
SFR 图 (页 0~F) ........................................................................................................... 13
SFR 位分配(页 0~F) ..................................................................................................... 14
辅助 SFR 图 ( P 页) ...................................................................................................... 18
辅助特殊功能寄存器位分配 (P 页) ................................................................................. 19
3.1.
3.2.
3.3.
3.4.
4. 引脚结构 ...................................................................................................... 20
封装指南 ....................................................................................................................... 20
引脚描述 ....................................................................................................................... 22
功能复用 ....................................................................................................................... 26
4.1.
4.2.
4.3.
5. 8051 CPU 功能描述 ..................................................................................... 31
CPU 寄存器 .................................................................................................................. 31
CPU 时序...................................................................................................................... 32
CPU 寻址模式 .............................................................................................................. 33
5.1.
5.2.
5.3.
6. 存储器组织................................................................................................... 34
片内程序存储器 Flash ................................................................................................... 34
片内数据存储器 RAM.................................................................................................... 35
片上扩展 RAM (XRAM) ................................................................................................. 38
片外扩展数据存储器访问 .............................................................................................. 39
6.1.
6.2.
6.3.
6.4.
6.4.1.
6.4.2.
6.4.3.
6.4.4.
6.4.5.
6.4.6.
6.4.7.
6.4.8.
6.5.
8 位地址复用模式用于 MOVX 访问 8 位数据 .........................................................................41
8 位地址复用模式用于 MOVX 访问 16 位数据 .......................................................................42
16 位地址复用模式用于 MOVX 访问 8 位数据 .......................................................................43
16 位地址复用模式用于 MOVX 访问 16 位数据 .....................................................................44
无地址模式用于 MOVX 访问 8 位数据 ...................................................................................45
无地址模式用于 MOVX 访问 16 位数据 .................................................................................46
ADDRO 模式用于 MOVX 16 地址访问 ..................................................................................46
ADDRO 模式用于 MOVX 16 地址访问 ..................................................................................46
关于 C51 编译器的声明标识符 ...................................................................................... 47
7. 双数据指针寄存器(DPTR) ............................................................................ 48
8. 系统时钟 ...................................................................................................... 49
8.1.
8.2.
时钟结构 ....................................................................................................................... 50
时钟寄存器 ................................................................................................................... 51
9. 看门狗定时器(WDT) ..................................................................................... 54
9.1.
9.2.
9.3.
9.4.
WDT 结构 ..................................................................................................................... 54
WDT 在掉电模式和空闲模式期间 .................................................................................. 54
WDT 寄存器 ................................................................................................................. 55
WDT 硬件选项 .............................................................................................................. 57
10. 实时时钟 (RTC)/系统时间 ............................................................................ 58
10.1.
10.2.
RTC 结构 ...................................................................................................................... 58
RTC 寄存器 .................................................................................................................. 59
11. 系统复位 ...................................................................................................... 61
MEGAWIN
MA82G5Cxx 数据手册
5
11.1.
11.2.
11.3.
11.4.
11.5.
11.6.
11.7.
复位源 .......................................................................................................................... 61
上电复位 ....................................................................................................................... 61
外部复位 ....................................................................................................................... 62
软件复位 ....................................................................................................................... 62
低电检测复位 ................................................................................................................ 63
WDT 复位 ..................................................................................................................... 63
非法地址复位 ................................................................................................................ 63
12. 电源管理 ...................................................................................................... 64
12.1.
12.2.
低电监测器 ................................................................................................................... 64
电源节省模式 ................................................................................................................ 65
12.2.1.
12.2.2.
12.2.3.
12.2.4.
12.2.5.
12.2.6.
12.2.7.
12.2.8.
12.2.9.
12.2.10.
12.3.
慢频模式 ................................................................................................................................65
副频模式 ................................................................................................................................65
RTC 模式...............................................................................................................................65
Watch 模式 ............................................................................................................................65
Monitor 模式 ..........................................................................................................................65
空闲模式 ................................................................................................................................65
掉电模式 ................................................................................................................................65
中断唤醒掉电模式 .................................................................................................................67
复位唤醒掉电模式 .................................................................................................................67
KBI 键盘唤醒掉电模式 ..................................................................................................67
电源控制寄存器 ............................................................................................................ 68
13. I/O 口配置 .................................................................................................... 70
13.1.
IO 结构 ......................................................................................................................... 70
端口 3 准双向口结构 .............................................................................................................71
端口 3 推挽输出结构..............................................................................................................72
端口 3 仅输入 (高阻抗输入) 结构 ..........................................................................................72
端口 3 开漏输出结构 .............................................................................................................73
通用开漏输出结构 .................................................................................................................73
通用推挽输出结构 .................................................................................................................74
通用端口数字输入配置 ..........................................................................................................74
13.1.1.
13.1.2.
13.1.3.
13.1.4.
13.1.5.
13.1.6.
13.1.7.
13.2.
I/O 口寄存器 ................................................................................................................. 75
13.2.1.
13.2.2.
13.2.3.
13.2.4.
13.2.5.
13.2.6.
13.2.7.
13.2.8.
13.2.9.
13.2.10.
13.2.11.
端口 0 寄存器 ........................................................................................................................75
端口 1 寄存器 ........................................................................................................................75
端口 2 Register .....................................................................................................................76
端口 3 Register .....................................................................................................................76
端口 4 寄存器 ........................................................................................................................77
端口 5 寄存器 ........................................................................................................................77
端口 6 寄存器 .......................................................................................................................77
端口 7 寄存器 ........................................................................................................................78
上拉控制寄存器 .....................................................................................................................78
模拟输入配置寄存器 .....................................................................................................80
端口输出驱动能力控制寄存器 ......................................................................................81
14. 中断 ............................................................................................................. 83
14.1.
14.2.
14.3.
14.4.
14.5.
14.6.
14.7.
中断结构 ....................................................................................................................... 83
中断源 .......................................................................................................................... 85
中断使能 ....................................................................................................................... 88
中断优先级 ................................................................................................................... 89
中断处理 ....................................................................................................................... 89
nINTx 输入源选择和输入滤波(x=0~3) ........................................................................... 90
中断寄存器 ................................................................................................................... 91
15. 定时器/计数器 ............................................................................................ 100
6
MA82G5Cxx 数据手册
MEGAWIN
15.1.
定时器 0 和 定时器 1 ................................................................................................... 101
定时器 0/1 模式 0 ................................................................................................................101
定时器 0/1 模式 1 ................................................................................................................103
定时器 0/1 模式 2 ................................................................................................................104
定时器 0/1 模式 3 ................................................................................................................105
定时器 0/1 可编程时钟输出 .................................................................................................106
定时器 0/1 寄存器 ...............................................................................................................108
15.1.1.
15.1.2.
15.1.3.
15.1.4.
15.1.5.
15.1.6.
15.2.
定时器 22.................................................................................................................... 112
15.2.1.
15.2.2.
15.2.3.
15.2.4.
15.2.5.
15.2.6.
15.2.7.
15.2.8.
15.2.9.
15.2.10.
15.2.11.
15.3.
15.3.1.
15.3.2.
15.3.3.
15.3.4.
15.3.5.
15.3.6.
15.3.7.
15.3.8.
15.3.9.
15.4.
15.4.1.
15.4.2.
15.4.3.
15.4.4.
15.4.5.
15.4.6.
15.4.7.
15.4.8.
15.4.9.
定时器 2 模式 0 (自动重载和外部中断) ...............................................................................112
定时器 2 模式 1 (带外部中断的自动重载) ............................................................................113
定时器 2 模式 2 (捕获) .........................................................................................................114
定时器 2 模式 3 (捕获带自动清零) .......................................................................................115
分割定时器 2 模式 0 (自动重载和 外部中断) .......................................................................116
分割定时器 2 模式 1 (自动重载带外部中断) .......................................................................117
分割定时器 2 模式 2(捕获)...................................................................................................118
分割定时器 2 模式 3(捕获带自动清零) ................................................................................119
波特率发生器模式(BRG) .....................................................................................................120
定时器 2 可编程时钟输出 ............................................................................................122
定时器 2 寄存器 ..........................................................................................................123
定时器 3...................................................................................................................... 127
定时器 3 模式 0 (自动重载和外部中断) ...............................................................................127
定时器 3 模式 1(自动重载带外部中断) ................................................................................128
定时器 3 模式 2(捕获) ..........................................................................................................129
定时器 3 模式 3(捕获和自动清零) ........................................................................................130
分割定时器 3 模式 0(自动重载和外部中断) .........................................................................131
分割定时器 3 模式 1(自动重载带外部中断) .........................................................................132
分割定时器 3 模式 2 (捕获)..................................................................................................133
分割定时器 3 模式 3(捕获带自动清零) ................................................................................134
定时器 3 寄存器 ...................................................................................................................135
定时器 4...................................................................................................................... 139
定时器 4 模式 0 (自动重载和外部中断) ...............................................................................139
定时器 4 模式 1 (自动重载带外部中断) ...............................................................................140
定时器 4 模式 2(捕获) ..........................................................................................................141
定时器 4 模式 3 (捕获带自动清零) .......................................................................................142
分割定时器 4 模式 0 (自动重载和外部中断) ........................................................................143
分割定时器 4 模式 1(自动重载带外部中断) .........................................................................144
分割定时器 4 模式 2(捕获)...................................................................................................145
分割定时器 4 模式 3 (捕获带自动清零) ...............................................................................146
定时器 4 寄存器 ...................................................................................................................147
16. 可编程计数器阵列(PCA0) .......................................................................... 151
16.1.
16.2.
16.3.
16.4.
16.4.1.
16.4.2.
16.4.3.
16.4.4.
16.4.5.
PCA 概述 .................................................................................................................... 151
PCA 定时器/计数器..................................................................................................... 152
比较/捕获模块 ............................................................................................................. 156
PCA 操作模式 ............................................................................................................. 158
捕获模式 ..............................................................................................................................158
16 位软件定时器模式 ..........................................................................................................160
高速输出模式.......................................................................................................................161
PWM 模式 ...........................................................................................................................162
增强型 PWM 模式 ...............................................................................................................163
17. 可编程计数器阵列 1 (PCA1)....................................................................... 166
17.1.
PCA1 寄存器 .............................................................................................................. 168
18. 串口 0 (UART0) ......................................................................................... 170
MEGAWIN
MA82G5Cxx 数据手册
7
18.1.
18.2.
18.3.
18.4.
18.5.
18.6.
18.7.
18.7.1.
18.7.2.
18.7.3.
18.8.
18.9.
串口 0 模式 0 .............................................................................................................. 171
串口 0 模式 1 .............................................................................................................. 173
串口 0 模式 2 和模式 3 ................................................................................................ 174
帧错误检测 ................................................................................................................. 174
多处理器通讯 .............................................................................................................. 175
自动地址识别 .............................................................................................................. 175
波特率设置 ................................................................................................................. 177
模式 0 波特率 ......................................................................................................................177
模式 2 波特率 ......................................................................................................................177
Mode 1 & 3 波特率 ..............................................................................................................177
串口 0 模式 4 (SPI 主机).............................................................................................. 184
串口 0 寄存器 .............................................................................................................. 186
19. 串口 1 (UART1) ......................................................................................... 189
19.1.
19.2.
19.2.1.
19.2.2.
19.2.3.
19.3.
19.4.
19.5.
19.6.
19.7.
串口 1 波特率发生器(S1BRG) ..................................................................................... 189
串口 1 波特率设置 ....................................................................................................... 190
模式 0 波特率 ......................................................................................................................190
模式 2 波特率 ......................................................................................................................190
模式 1 和 3 波特率 ...............................................................................................................190
串口 1 模式 4 (SPI 主机) ............................................................................................. 192
S1BRG 纯定时器模式 ................................................................................................. 194
S1BRT 可编程时钟输出 .............................................................................................. 195
S1 波特率发生器用于 S0 ............................................................................................ 196
串口 1 寄存器.............................................................................................................. 197
20. 串口 2 (UART2) ......................................................................................... 200
20.1.
20.2.
S2BRG 的纯定时器模式.............................................................................................. 200
串口 2 寄存器.............................................................................................................. 201
21. 串口 3 (UART3) ......................................................................................... 204
21.1.
21.2.
S3BRG 的纯定时器模式.............................................................................................. 204
串口 3 寄存器 ............................................................................................................. 205
22. 串行外围接口(SPI) ..................................................................................... 208
22.1.
22.1.1.
22.1.2.
22.1.3.
22.2.
22.2.1.
22.2.2.
22.2.3.
22.2.4.
22.2.5.
22.2.6.
22.2.7.
22.3.
22.4.
SPI 典型配置 .............................................................................................................. 209
单主机& 单从机 ...................................................................................................................209
双驱动,既是主机也是从机 .................................................................................................209
单主机 & 多从机 ..................................................................................................................209
配置 SPI ..................................................................................................................... 210
从机注意事项.......................................................................................................................210
主机注意事项.......................................................................................................................210
nSS 引脚的模式改变 ...........................................................................................................211
发送保持寄存器满标志 ........................................................................................................211
写冲突 .................................................................................................................................211
SPI 忙标志...........................................................................................................................211
SPI 时钟速率选择 ................................................................................................................211
数据模式 ..................................................................................................................... 212
SPI 寄存器 .................................................................................................................. 214
23. 双线串行接口(TWSI 和 TWI1) .................................................................... 217
23.1.
23.1.1.
23.1.2.
23.1.3.
23.1.4.
8
操作模式 ..................................................................................................................... 218
主机发送模式.......................................................................................................................218
主机接收模式.......................................................................................................................218
从机发送模式.......................................................................................................................219
从机接收模式.......................................................................................................................219
MA82G5Cxx 数据手册
MEGAWIN
23.2.
23.3.
23.4.
23.5.
混合状态 ..................................................................................................................... 220
使用 TWSI .................................................................................................................. 220
TWSI 寄存器............................................................................................................... 226
TWI1 寄存器 ............................................................................................................... 229
24. 串行接口侦测(SID/STWI) ........................................................................... 232
24.1.
24.2.
24.3.
SID (STWI) 结构 ......................................................................................................... 232
SID 寄存器.................................................................................................................. 233
SID 示例代码 .............................................................................................................. 234
25. 蜂鸣器 ........................................................................................................ 235
25.1.
25.2.
蜂鸣器寄存器 .............................................................................................................. 235
蜂鸣器示例代码 .......................................................................................................... 236
26. 键盘中断 (KBI) ........................................................................................... 237
26.1.
26.2.
KBI 结构 ..................................................................................................................... 238
KBI 寄存器 .................................................................................................................. 239
27. 10 位 ADC .................................................................................................. 241
27.1.
27.2.
27.2.1.
27.2.2.
27.2.3.
27.2.4.
27.2.5.
27.2.6.
27.3.
ADC 结构.................................................................................................................... 241
ADC 操作 .................................................................................................................... 242
ADC 输入通道 .....................................................................................................................242
ADC 参考电压 .....................................................................................................................242
开始一个转换.......................................................................................................................242
ADC 转换时间 .....................................................................................................................242
I/O 引脚用于 ADC 功能........................................................................................................243
空闲和掉电模式 ...................................................................................................................243
ADC 寄存器 ................................................................................................................ 244
28. 模拟比较器 0/1/2 (AC0/AC1/AC2) .............................................................. 247
28.1.
28.2.
AC0/AC1/AC2 结构 .................................................................................................... 247
AC0/AC1/AC2 寄存器 ................................................................................................. 249
29. ISP 和 IAP ................................................................................................. 254
29.1.
29.2.
29.2.1.
29.2.2.
29.2.3.
29.3.
29.3.1.
29.3.2.
29.3.3.
29.4.
29.4.1.
29.4.2.
29.4.3.
29.5.
29.5.1.
MA82G5C64 Flash 存储器配置 .................................................................................. 254
MA82G5C64 Flash 在 ISP/IAP 上的访问 .................................................................... 255
ISP/IAP Flash 页擦除模式...................................................................................................256
ISP/IAP Flash 字节编程模式 ...............................................................................................258
ISP/IAP Flash 读模式 ..........................................................................................................260
ISP 操作 ..................................................................................................................... 262
硬件方法启动 ISP ................................................................................................................262
软件方法启动 ISP ................................................................................................................262
ISP 注意事项 .......................................................................................................................263
在应用编程 (IAP) ........................................................................................................ 264
IAP-存储空间边界/范围 .......................................................................................................264
IAP-存储空间更新数据 ........................................................................................................264
IAP 注意事项 .......................................................................................................................265
ISP/IAP 寄存器 ........................................................................................................... 266
ISP/IAP 示例代码 ................................................................................................................269
30. P 页 SFR 访问 ........................................................................................... 270
31. 辅助特殊功能寄存器 .................................................................................. 274
32. 硬件选项 .................................................................................................... 281
33. 应用说明 .................................................................................................... 283
33.1.
MEGAWIN
电源电路 ..................................................................................................................... 283
MA82G5Cxx 数据手册
9
33.2.
33.3.
33.4.
33.5.
33.6.
复位电路 ..................................................................................................................... 283
外部晶振 XTAL 振荡电路 ............................................................................................ 284
ICP 和 OCD 接口电路 ................................................................................................. 285
在芯片编程功能 .......................................................................................................... 286
在线调试功能 .............................................................................................................. 287
34. 电气特性 .................................................................................................... 288
34.1.
34.2.
34.3.
34.4.
34.5.
34.6.
34.7.
34.8.
34.9.
34.10.
34.11.
最大绝对额定值 .......................................................................................................... 288
直流特性 ..................................................................................................................... 289
外部时钟特性 .............................................................................................................. 291
IHRCO 特性................................................................................................................ 291
ILRCO 特性 ................................................................................................................ 291
CKM 特性 ................................................................................................................... 292
Flash 特性 .................................................................................................................. 292
ADC 特性.................................................................................................................... 293
串口时序特性 .............................................................................................................. 294
SPI 时序特性 .............................................................................................................. 295
外部存储周期时序特性 ................................................................................................ 297
35. 封装尺寸 .................................................................................................... 299
36. 指令集 ........................................................................................................ 301
37. 版本历史 .................................................................................................... 304
38. 免责声明 .................................................................................................... 305
10
MA82G5Cxx 数据手册
MEGAWIN
1. 概述
MA82G5C64是基于80C51的高效1-T结构的单芯片微处理器, 每条指令需要1~7 时钟信号 (比标准的8051快 6~7
倍), 与标准8051指令集兼容。因此在与标准8051有同样的处理能力的情况下,MA82G5C64只需要非常低的运行速
度,同时由此能很大程度的减少耗电量。
MA82G5C64有 64K字节的内置Flash存储器用于保存代码。Flash存储器可以通过串行模式编程 (ICP, 在电路编程)
或者 ISP模式进行编程的能力。同时,也提供在应用编程(IAP)的能力。ISP和ICP让使用者无需从产品中取下微控
制器就可以下载新的代码;IAP意味着应用程序正在运行时,微控制器能够在Flash中写入非易失数据。这些功能都
由内建的电荷泵提供编程用的高压。
MA82G5C64除了80C52 MCU的标准功能(例如 256 字节的随机存储器,四个8位I/O口,二个带有高/低触发选项
的外部中断,一个多源4级中断控制,一个串口(UART0)和三个定时/计数器)外,MA82G5C64有27个额外的 I/O 端
口引脚(P4.0~P4.7, P5.0~P5.7, P6.0~P6.7 和 P7.0~P7.2),3840字节外部数据存储器(XRAM),两个额外的带
高/低触发选项的外部中断,1MHz 10位ADC,三个 模拟比较器,两个16位定时/计数器(定时器3和定时器4),
两个6通道PCAs(PCA0和PCA1,PCA带有死区控制的脉宽调制PWM),一个8/16位SPI/QPI,三个TWSIs(TWSI,
TWI1和STWI),第二串口(UART1)支持LIN和SMC,第三和第四串口(UART2和UART3)支持SCI,键盘中断,看
门狗定时器,实时时钟(RTC)模块,两个低电压检测器,一个晶振(与 P6.0 和 P6.1共用), 一个高精度的内部振荡
(IHRCO),一个片内时钟倍频器(CKM)来产生高速时钟源,一个低速的内部 RC 振荡器 (ILRCO) 和一个增型的串口
(UART0)用来促进多处理器的通讯及一个速度增强设备 (X2/X4 模式)
MA82G5C64有多种工作模式可以减少耗电量:空闲模式,掉电模式,慢频模式,副频模式,RTC模式,watch 模
式和 monitor 模式。 在空闲模式下,CPU被冻结而外围模块和中断系统依然活动。在掉电模式下,随机存储器
RAM和特殊功能寄存器SFR的值被保存,而其他所有功能被终止。最重要的是,在掉电模式下的微控制器可以被
多种中断或复位唤醒。在慢频模式, 使用者可以通过8位的系统时钟分频器减慢系统速度以减少耗电量。选择副频
模式系统时钟来自内部低速振荡器CPU 用一个特别慢的速度在运行。实时时钟(RTC)模式支持所有模式下的实时时
钟功能,watch 模式, 在掉电模式或空闲模式下WDT溢出作为一个自动定时器来唤醒CPU。Monitor 模式,在掉电
模式检测电压,当电压特别低的时候会复位。
另外,MA82G5C64 装配有笙泉独家的(OCD)接口可以用于在线仿真(ICE),OCD 接口提供在片内和在系统
不干扰调试并且不占用任何资源。 支持 ICE 应用中的几个必须的操作例如: 复位、全速、停止、单步、全速到光
标和断点设置。软件开发期间使用者不需要使用任何的开发板或者传统的 ICE 上应用的插头转接器,使用者只需要
连接好 OCD 接口, 这强有力的接口使得开发非常容易。
MEGAWIN
MA82G5Cxx 数据手册
11
2. 方框图
图 2–1. 方框图
(P6.1) XTAL1
(P6.0) ICKO/ECKI/XTAL2
XTAL
OSC
(P4.7/P4.6) ALE
(P3.6) nWR
(P3.7) nRD
(P4.0/P1.6/P3.0/P3.2) nINT0
(P4.1/P1.7/P3.1/P3.3) nINT1
(P6.1/P1.4/P6.2/P4.3) nINT2
(P6.0/P1.5/P6.3/P4.2) nINT3
Clock
Multiplier
IHRCO
12MHz/
11.059M
ILRCO
32KHz
8051 CPU (1T)
RST (P4.7)
WDT
Ext. INT
RTC
KBI0~KBI10
(P3+P4/P5/P2/P0)
(P5.5/P4.4/P3.4) T0/T0CKO
(P5.6/P4.5/P3.5) T1/T1CKO
(P3.6/P4.5/P1.0) T2/T2CKO
(P3.7/P4.4/P1.1) T2EX
(P6.7/P2.1/P4.0/P4.6) T3/T3CKO
(P5.7/P2.0/P4.1/P7.2) T3EX
(P4.2/P7.0) T4/T4CKO
(P4.3/P7.1) T4EX
Keypad Int.
OCD/ICP
Interface
OCD_SCL (P4.4)
OCD_SDA (P4.5)
Timer 0
Timer 1
ISP/IAP
Timer 2
Flash
64K X 8
Timer 3
RAM
256 X 8
Timer 4
XRAM
3840 X 8
(P0.0/P2.1) ECI
(P3+P4/P2.2~P2.7) CEX0~CEX5
(P5.7) ECI1
(P3+P4/P6.2...P6.7) C1EX0~C1EX5
(P4.4/P3.0) RXD0
(P4.5/P3.1) TXD0
(P7.0/P0.0/P0.6/P3.2/P1.2) RXD1
(P7.1/P0.5/P0.7/P3.3/P1.3) TXD1
PCA0
Timer
PCA1
Timer
UART0
UART1
(LIN/SCI)
16-bit MOVX
P0.0~P0.7,
P2.0~P2.7
Port 0
P0.0~P0.7
Port 1
P1.0~P1.7
Port 2
P2.0~P2.7
Port 3
P3.0~P3.7
Port 4
P4.0~P4.7
(P5.7/P3.2) RXD2
(P6.7/P3.3) TXD2
UART2
(SCI)
(P6.5/P3.6) RXD3
Port 6
P6.0~P6.7
UART3
(SCI)
Port 7
P7.0~P7.2
SPI/QPI
(8/16-bit)
10-bit/1MHz
ADC
(P6.6/P3.7) TXD3
(P4.3/P1.4) nSS
(P3.6/P5.3) SPID2 (P4.2/P1.5) MOSI
(P4.1/P1.6)
MISO
(P3.7/P5.4) SPID3
(P4.0/P1.7) SPICLK
Comparator 0
(P3.4/P3.0/P6.0/P4.0) TWI_SCL
(P3.5/P3.1/P6.1/P4.1) TWI_SDA
(P0.3/P3.2/P6.2/P4.2) TWI1_SCL
(P0.4/P3.3/P6.3/P4.3) TWI1_SDA
(nINT1) STWI_SCL
(S0MI) STWI_SDA
12
TWSI
Comparator 1
TWI1
Comparator 2
STWI
(SID)
BOD0
BOD1
MA82G5Cxx 数据手册
AIN0~AIN7 (P1.0~P1.7),
AIN8~AIN15 (P5.0~P5.6,P2.0)
AC0NI (P0.1)
AC0PI0~3 (P0.2~P0.5)
AC1NI (P0.6)
AC1PI (P0.7)
AC2NI (P6.2)
AC2PI (P6.3)
VDD
MEGAWIN
3. 特殊功能寄存器
3.1. SFR 图 (页 0~F)
表 3–1. SFR 图 (页 0~F)
0/8
1/9
P5
0
CH
P6
CH1
F8 1
P7
2
-0
F0
B
PAOE
1
0
CL
E8
P4
1
CL1
0
E0
ACC
WDTCR
1
CCON
0
CMOD
D8
1 C1CON C1MOD
0
SIADR
D0
PSW
1
SI1ADR
0 T2CON T2MOD
C8 1 T3CON T3MOD
2 T4CON T4MOD
0
XICFG
C0
XICON
1
XICFG1
0
B8
IP0L
SADEN
1
0
1
B0
P3
P3M0
2
3
0
A8
IE
SADDR
1
0
1
A0 2
P2
AUXR0
3
4
0 S0CON
S0BUF
98
90
88
80
2/A
CCAP0H
C1CAP0H
-PCAPWM0
C1PWM0
CCAP0L
C1CAP0L
3/B
CCAP1H
C1CAP1H
-PCAPWM1
C1PWM1
CCAP1L
C1CAP1L
4/C
CCAP2H
C1CAP2H
-PCAPWM2
C1PWM2
CCAP2L
C1CAP2L
5/D
CCAP3H
C1CAP3H
-PCAPWM3
C1PWM3
CCAP3L
C1CAP3L
6/E
CCAP4H
C1CAP4H
-PCAPWM4
C1PWM4
CCAP4L
C1CAP4L
7/F
CCAP5H
C1CAP5H
-PCAPWM5
C1PWM5
CCAP5L
C1CAP5L
IFD
IFADRH
IFADRL
IFMT
SCMD
ISPCR
CCAPM0
C1CAPM0
SIDAT
SI1DAT
RCAP2L
RCAP3L
RCAP4L
CCAPM1
C1CAPM1
SISTA
SI1STA
RCAP2H
RCAP3H
RCAP4H
CCAPM2
C1CAPM2
SICON
SI1CON
TL2
TL3
TL4
CCAPM3
C1CAPM3
CCAPM4
C1CAPM4
CCAPM5
C1CAPM5
KBPATN
KBCON
KBMASK
TH2
TH3
TH4
CLRL
CL1RL
--
CHRL
CH1RL
--
--
ADCFG0
ADCON0
ADCDL
ADCDH
CKCON0
DATH
ADCFG1
PWMCR
PDTCR
RTCCR
CKCON1
P3M1
P4M0
TREN1
TRLC1
TSPC1
PUCON0
PUCON1
PDRVC0
PDRVC1
P5M0
P6M0
P7M0
--
RTCTM
IP0H
--
--
SFRPI
EIE1
EIP1L
EIP1H
EIE2
EIP2L
EIP2H
AC0CON
AC0MOD
AC1CON
AC1MOD
AC2CON
AC2MOD
---
---
BOREV
PCON1
AUXR1
AUXR2
--
--
AUXR3
AUXR4
AUXR5
AUXR6
AUXR7
S0CFG
1
S1CON
S1BUF
S1BRT
S1BRC
S1CFG
2
S1CON
S1BUF
S1BRT
S1BRC
S1CFG
3
4
0
1
2
3
0
1
0
1
S2CON
S3CON
S2BUF
S3BUF
P1
P1M0
S2BRT
S3BRT
P1AIO
PxAIO2
---
S2BRC
S3BRC
P0M0
T2MOD1
T3MOD1
T4MOD1
S2CFG
S3CFG
PxAIO1
----
-S1CFG1
(LINCFG)
S1CFG2
(SMCCFG)
S2CGF2
S3CFG2
P2M0
TREN0
TRLC0
TSPC0
TCON
TMOD
TL0
TL1
TH0
TH1
SFIE
STRETCH
P0
SP
DPL
DPH
SPSTAT
SPCON
SPDAT
PCON0
0/8
1/9
2/A
3/B
4/C
5/D
6/E
7/F
MEGAWIN
MA82G5Cxx 数据手册
13
3.2. SFR 位分配(页 0~F)
表 3–2. SFR 位分配 (页 0~F)
符号
描述
地址
位地址及符号
复位值
位-7
位-6
位-5
位-4
位-3
位-2
位-1
位-0
11111111
00000111
00000000
00000000
00000000
P0
SP
DPL
DPH
端口 0
堆栈指针
数据指针低 8 位
数据指针低 8 位
80H
81H
82H
83H
P0.7
SP.7
DPL.7
DPH.7
P0.6
SP.6
DPL.6
DPH.6
P0.5
SP.5
DPL.5
DPH.5
P0.4
SP.4
DPL.4
DPH.4
P0.3
SP.3
DPL.3
DPH.3
P0.2
SP.2
DPL.2
DPH.2
P0.1
SP.1
DPL.1
DPH.1
SPSTAT
数据指针低 8 位
84H
SPIF
WCOL
THRF
SPIBSY
MODF
DBEN
QPIEN
SPCON
SPDAT
PCON0
TCON
TMOD
TL0
TL1
TH0
TH1
SFIE
STRETCH
P1
P1M0
P1AIO
PxAIO2
------P0M0
T2MOD1
T3MOD1
T4MOD1
PxAIO1
------P2M0
数据指针低 8 位
数据指针低 8 位
电源控制寄存器 0
85H
SSIG
SPEN
DORD
86H SPDAT.7 SPDAT.6 SPDAT.5
87H SMOD1 SMOD0
GF
88H
TF1
TR1
TF0
89H T1GATE T1C/T
T1M1
8AH
TL0.7
TL0.6
TL0.5
8BH
TL1.7
TL1.6
TL1.5
8CH
TH0.7
TH0.6
TH0.5
8DH
TH1.7
TH1.6
TH1.5
8EH SIDFIE MCDRE MCDFIE
8FH
EMAI1
EMAI0
ALES1
90H
P1.7
P1.6
P1.5
91H P1M0.7 P1M0.6 P1M0.5
92H P17AIO P16AIO P15AIO
92H P20AIO P56AIO P55AIO
92H
---92H
---93H P0M0.7 P0M0.6 P0M0.5
93H
TL2CS
--93H
TL3CS
--93H
TL4CS
--94H P07AIO P06AIO P05AIO
94H
---94H
---95H P2M0.7 P2M0.6 P2M0.5
MSTR
SPDAT.4
POF0
TR0
T1M0
TL0.4
TL1.4
TH0.4
TH1.4
RTCFIE
ALES0
P1.4
P1M0.4
P14AIO
P54AIO
--P0M0.4
T2CKS
T3CKS
T4CKS
P04AIO
--P2M0.4
CPOL
SPDAT.3
GF1
IE1
T0GATE
TL0.3
TL1.3
TH0.3
TH1.3
-RWSH
P1.3
P1M0.3
P13AIO
P53AIO
--P0M0.3
--CP4S3
P03AIO
--P2M0.3
CPHA
SPDAT.2
GF0
IT1
T0C/T
TL0.2
TL1.2
TH0.2
TH1.2
BOF1IE
RWS2
P1.2
P1M0.2
P12AIO
P52AIO
--P0M0.2
CP2S2
CP3S2
CP4S2
P02AIO
--P2M0.2
SPR1
SPDAT.1
PD
IE0
T0M1
TL0.1
TL1.1
TH0.1
TH1.1
BOF0IE
RWS1
P1.1
P1M0.1
P11AIO
P51AIO
--P0M0.1
CP2S1
CP3S1
CP4S1
P01AIO
--P2M0.1
P0.0
SP.0
DPL.0
DPH.0
SPR2/
QDOE
SPR0
SPDAT.0
IDL
IT0
T0M0
TL0.0
TL1.0
TH0.0
TH1.0
WDTFIE
RWS0
P1.0
P1M0.0
P10AIO
P50AIO
--P0M0.0
CP2S0
CP3S0
CP4S0
AC2AIO
--P2M0.0
TR4E
TR3E
TR2E
TR1E
TR0E
定时器控制寄存器
BOREV
PCON1
定时器模式寄存器
定时器 0 低 8 位
定时器 1 低 8 位
定时器 0 高 8 位
定时器 1 高 8 位
系统标志中断使能
MOVX 时序扩展
端口 1
P1 模式寄存器 0
P1 仅模拟输入寄存器
Px 仅模拟输入寄存器
------P0 模式寄存器 0
T2 模式 1 寄存器.
T3 模式 1 寄存器.
T4 模式 1 寄存器.
P0 仅模拟输入寄存器
------P2 模式寄存器 0
定时器运行使能寄存
器0
定时器重载控制寄存
器
定时器停止控制寄存
器
位序反转
电源控制寄存器 1
S0CON
串口 0 控制寄存器
S1CON
S1CON
S2CON
S3CON
S0BUF
S1BUF
S1BUF
S2BUF
S3BUF
---S1BRT
S1BRT
S2BRT
S3BRT
---S1BRC
S1BRC
S2BRC
串口 1 控制寄存器
串口 1 控制寄存器
串口 2 控制寄存器
串口 3 控制寄存器
串口 0 缓存
串口 1 缓存
串口 1 缓存
串口 2 缓存
串口 3 缓存
TREN0
TRLC0
TSPC0
14
---S1 波特率定时器
S1 波特率定时器
S2 波特率定时器
S3 波特率定时器
---S1 波特率计数器
S1 波特率计数器
S2 波特率计数器
TR4LE
95H
TL4RLC TL3RLC TL2RLC
T4RLC
T3RLC
T2RLC
T1RLC
T0RLC 00000000
95H
TL4SC
T4SC
T3SC
T2SC
T1SC
T0SC
TL3SC
TR2LE
00000100
00000000
00010000
00000000
00000000
00000000
00000000
00000000
00000000
0110x000
0x000000
11111111
00000000
00000000
00000000
------00000000
0xx0x000
0xx0x000
0xx00000
00000000
------00000000
95H
96H BOREV.7
97H
SWRF
SM00
98H
/FE
98H
SM01
98H
SM01
98H
SM02
98H
SM03
99H S0BUF.7
99H S1BUF.7
99H S1BUF.7
99H S2BUF.7
99H S3BUF.7
9AH
-9AH S1BRT.7
9AH S1BRT.7
9AH S2BRT.7
9AH S3BRT.7
9BH
-9BH S1BRC.7
9BH S1BRC.7
9BH S2BRC.7
TR3LE
00000000
TL2SC
00000000
BOREV.6 BOREV.5 BOREV.4 BOREV.3 BOREV.2 BOREV.1 BOREV.0 00000000
EXRF
MCDF
RTCF
-BOF1
BOF0
WDTF 0000x000
SM10
SM20
REN0
TB80
RB80
TI0
RI0
00000000
SM11
SM11
SM12
SM13
S0BUF.6
S1BUF.6
S1BUF.6
S2BUF.6
S3BUF.6
-S1BRT.6
S1BRT.6
S2BRT.6
S3BRT.6
-S1BRC.6
S1BRC.6
S2BRC.6
SM21
SM21
SM22
SM23
S0BUF.5
S1BUF.5
S1BUF.5
S2BUF.5
S3BUF.5
-S1BRT.5
S1BRT.5
S2BRT.5
S3BRT.5
-S1BRC.5
S1BRC.5
S2BRC.5
REN1
REN1
REN2
REN3
S0BUF.4
S1BUF.4
S1BUF.4
S2BUF.4
S3BUF.4
-S1BRT.4
S1BRT.4
S2BRT.4
S3BRT.4
-S1BRC.4
S1BRC.4
S2BRC.4
TB81
TB81
TB82
TB83
S0BUF.3
S1BUF.3
S1BUF.3
S2BUF.3
S3BUF.3
-S1BRT.3
S1BRT.3
S2BRT.3
S3BRT.3
-S1BRC.3
S1BRC.3
S2BRC.3
RB81
RB81
RB82
RB83
S0BUF.2
S1BUF.2
S1BUF.2
S2BUF.2
S3BUF.2
-S1BRT.2
S1BRT.2
S2BRT.2
S3BRT.2
-S1BRC.2
S1BRC.2
S2BRC.2
TI1
TI1
TI2
TI3
S0BUF.1
S1BUF.1
S1BUF.1
S2BUF.1
S3BUF.1
-S1BRT.1
S1BRT.1
S2BRT.1
S3BRT.1
-S1BRC.1
S1BRC.1
S2BRC.1
RI1
RI1
RI2
RI3
S0BUF.0
S1BUF.0
S1BUF.0
S3BUF.0
S3BUF.0
-S1BRT.0
S1BRT.0
S2BRT.0
S3BRT.0
-S1BRC.0
S1BRC.0
S2BRC.0
00000000
00000000
00000000
00000000
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
---00000000
00000000
00000000
00000000
---00000000
00000000
00000000
MA82G5Cxx 数据手册
MEGAWIN
S3BRC
S0CFG
S1CFG
S1CFG
S2CFG
S3CFG
--S1CFG1
(LINCFG)
S1CFG2
(SMCCFG)
S2CFG2
S3CFG2
AC0CON
AC1CON
AC2CON
AC0MOD
AC1MOD
AC2MOD
P2
AUXR0
AUXR1
AUXR2
AUXR3
AUXR4
AUXR5
AUXR6
AUXR7
EIE2
EIP2L
EIP2H
IE
SADDR
SFRPI
EIE1
EIP1L
EIP1H
P3
P3M0
P3M1
P4M0
TREN1
TRLC1
TSPC1
PUCON0
PUCON1
PDRVC0
PDRVC1
P5M0
P6M0
P7M0
RTCTM
IP0H
IP0L
SADEN
DATH
ADCFG1
PWMCR
PDTCR
RTCCR
CKCON1
S3 波特率计数器
S0 配置寄存器
S1 配置寄存器
S1 配置寄存器
S2 配置寄存器
S3 配置寄存器
--S1 配置寄存器 1
LIN 配置寄存器
S1 配置寄存器 2
SMC 配置寄存器
S2 配置寄存器 2
S2 配置寄存器 2
AC0 控制寄存器
AC1 控制寄存器
AC2 控制寄存器.
AC0 模式寄存器
AC1 模式寄存器
AC2 模式寄存器
端口 2
辅助寄存器 0
辅助寄存器 1
辅助寄存器 2
辅助寄存器 3
辅助寄存器 4
辅助寄存器 5
辅助寄存器 6
辅助寄存器 7
扩展中断使能 2
扩展中断优先级 2 低
扩展中断优先级 2 高
中断使能
从机地址
SFR 页索引
扩展中断使能 1
扩展中断优先级 1 低
扩展中断优先级 1 高
端口 3
P3 模式寄存器 0
P3 模式寄存器 1
P4 模式寄存器 0
P4 模式寄存器 0
定时器运行使能寄存
器1
定时器重载控制寄存
器1
定时器停止控制寄存
器1
上拉控制寄存器 0
上拉控制寄存器 1
端口驱动控制 0
端口驱动控制 1
P5 模式寄存器 0
P6 模式寄存器 0
RTC 定时器寄存器
中断优先级 0 高
中断优先级 0 低
从机地址屏蔽
数据高字节寄存器
ADC 配置 1
PWM 控制寄存器
PWM 死区控制寄存器
RTC 控制寄存器
时钟控制寄存器 1
MEGAWIN
9BH S3BRC.7 S3BRC.6
9CH
URTS
SMOD2
9CH
SM31
EVPS1
9CH
SM31
EVPS1
9CH
SM32
EVPS2
9CH
SM33
EVPS3
9DH
---
S3BRC.5 S3BRC.4 S3BRC.3
URM0X3 SM30
S0DOR
S1DOR
S1TR S1MOD1
S1DOR
S1TR S1MOD1
S2DOR
S2TR S2MOD1
S3DOR
S3TR S3MOD1
----
9DH
SBF1
TXER1
S1SB16
9DH
ESDE1
ESDF1
PEF1
ATBR1
TXRX1
S3BRC.2
BTI
S1TX12
S1TX12
S2TX12
S3TX12
--
S3BRC.1
UTIE
S1CKOE
S1CKOE
S2CKOE
S3CKOE
--
S3BRC.0
-S1TME
S1TME
S2TME
S3TME
--
00000000
0000100x
00100000
00100000
00100000
00100000
----
SYNC1
--
--
000000xx
ESOE1 S1BRS.3 S1BRS.2 S1BRS.1 S1BRS.0 00000000
9DH ESDE2 ESDF2
PEF2
ESOE2
9DH ESDE3 ESDF3
PEF3
ESOE3
9EH AC0LP AC0PDX AC0OUT AC0F
9EH AC1LP AC1PDX AC1OUT AC1F
9EH AC2LP AC2PDX AC2OUT AC2F
9FH NVRS3 NVRS2 NVRS1 NVRS0
9FH
---AC1NIS
9FH
---AC2NIS
A0H
P2.7
P2.6
P2.5
P2.4
A1H P60OC1 P60OC0 P60FD
T0XL
A2H KBIPS1 KBIPS0 SPIPS0 S1PS1
A3H ALEINV ADDRO
--A4H
STAF
STOF
BPOC1 BPOC0
A4H C1IC2S1 C1IC2S0 C1IC0S1 C1IC0S0
A4H SnMIPS S3PS0
S2PS0 C1PPS0
A4H
--TWI1PS1 TWI1PS0
A4H
-PBKS5 PBKS4 PBKS3
A5H
EAC2
ETWI1
EPCA1
ES3
A6H PAC2L PTWI1L PPCA1L
PS3L
A7H PAC2H PTWI1H PPCA1H PS3H
A8H
EA
GF4
ET2
ES0
A9H
.7
.6
.5
.4
ACH
----ADH
EAC0
ETWSI
EKB
ES1
AEH PAC0L
PTWIL
PKBL
PS1L
AFH PAC0H PTWIH
PKBH
PS1H
B0H
P3.7
P3.6
P3.5
P3.4
B1H P3M0.7 P3M0.6 P3M0.5 P3M0.4
B2H P3M1.7 P3M1.6 P3M1.5 P3M1.4
B3H P4M0.7 P4M0.6 P4M0.5 P4M0.4
B3H
---S3TRE
S2BRS.3
S3BRS.3
AC0EN
AC1EN
AC2EN
NVRL
--P2.3
P4FS1
S1PS0
T1X12
ALEPS0
AC1OE
T0OPS0
C1IC4S0
-ET4
PT4L
PT4H
ET1
.3
IDX3
ESF
PSFL
PSFH
P3.3
P3M0.3
P3M1.3
P4M0.3
S2TRE
B3H
--
--
--
B3H
--
--
--
S3TSC
S2TSC
B4H
P4PU1
P4PU0
P2PU1
P2PU0
S2BRS.2
S3BRS.2
AC0INV
AC1INV
AC2INV
AC0FLT
AC1FLT
AC2FLT
P2.2
P4FS0
T01PS0
T0X12
TWIPS1
AC1FLT1
T4PS0
C1PS0
-ES2
PS2L
PS2H
EX1
.2
IDX2
EPCA
PPCAL
PPCAH
P3.2
P3M0.2
P3M1.2
P4M0.2
S1TRE
S3TRLC S2TRLC S1TRLC
B4H
---P7PU0
B4H P3DC1 P3DC0 P2DC1 P2DC0
B4H
-P7DC0 P6DC1 P6DC0
B5H P5M0.7 P5M0.6 P5M0.5 P5M0.4
B5H P6M0.7 P6M0.6 P6M0.5 P6M0.4
B5H
----B6H RTCCS1 RTCCS0 RTCCT5 RTCCT4
B7H
PX3H
PX2H
PT2H
PSH
B8H
PX3L
PX2L
PT2L
PSL
B9H
.7
.6
.5
.4
BAH
.15
.14
.13
.12
BBH
CH4
VRS2
VRS1
SIGN
BCH
PCAE
EXDT
-PBKF
BDH DTPS1 DTPS0
DT.5
DT.4
BEH
RTCE
RTCO RTCRL5 RTCRL4
BFH
XTOR
-XCKS5 XCKS4
MA82G5Cxx 数据手册
S2BRS.1
S3BRS.1
AC0M1
AC1M1
AC2M1
AC0PIS1
--P2.1
INT1H
EXTRAM
T1CKOE
TWIPS0
AC0OE
T3PS1
PCAPS0
AC2OE
EAC1
PAC1L
PAC1H
ET0
.1
IDX1
EADC
PADCL
PADCH
P3.1
P3M0.1
P3M1.1
P4M0.1
CR1E
S2BRS.0
S3BRS.0
AC0M0
AC1M0
AC2M0
AC0PIS0
--P2.0
INT0H
DPS
T0CKOE
T2PS0
AC0FLT1
T3PS0
S1PS2
AC2FLT1
ET3
PT3L
PT3H
EX0
.0
IDX0
ESPI
PSPIL
PSPIH
P3.0
P3M0.0
P3M1.0
P4M0.0
CR0E
00000000
00000000
00x00000B
00x00000B
00x00000B
00000000B
xxx0x0xxB
xxx0x0xxB
11111111
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
xxxx0000
00000000
00000000
00000000
11111111
00000000
00000000
00000000
xxx00000
C1RLC
C0RLC xxx00000
S1TSC
C1SC
C0SC
P1PU1
P1PU0
P0PU1
P0PU0 00000000
P6PU1
P1DC1
P5DC1
P5M0.3
P6M0.3
-RTCCT3
PT1H
PT1L
.3
.11
AOS.3
PBKM
DT.3
RTCRL3
XCKS3
P6PU0
P1DC0
P5DC0
P5M0.2
P6M0.2
P7M0.2
RTCCT2
PX1H
PX1L
.2
.10
AOS.2
PBKS2
DT.2
RTCRL2
XCKS2
P5PU1
P0DC1
P4DC1
P5M0.1
P6M0.1
P7M0.1
RTCCT1
PT0H
PT0L
.1
.9
AOS.1
PBKS1
DT.1
RTCRL1
XCKS1
P5PU0
P0DC0
P4DC0
P5M0.0
P6M0.0
P7M0.0
RTCCT0
PX0H
PX0L
.0
.8
AOS.0
PBKS0
DT.0
RTCRL0
XCKS0
xxx00000
xxx00000
00000000
x0000000
00000000
00000000
xxxxx000
01111111
00000000
00000000
00000000
00000000
00000000
00x00000
00000000
00111111
0x001011
15
XICON
XICFG
XICFG1
ADCFG0
ADCON0
ADCDL
ADCDH
CKCON0
T2CON
T3CON
T4CON
T2MOD
T3MOD
T4MOD
RCAP2L
RCAP3L
RCAP4L
RCAP2H
RCAP3H
RCAP4H
TL2
TL3
TL4
TH2
TH3
TH4
CLRL
CL1RL
CHRL
CH1RL
PSW
SIADR
SI1ADR
SIDAT
SI1DAT
SISTA
SI1STA
SICON
SI1CON
KBPATN
外部中断控制
TWSI 地址寄存器
TWI1 地址寄存器
TWSI 数据寄存器
TWI1 数据寄存器
TWSI 状态寄存器
TWI1 状态寄存器
TWSI 控制寄存器
TW1I 控制寄存器
键盘模式
C0H
INT3H
EX3
IE3
C1H INT1IS1 INT1IS0 INT0IS1
C1H INT3IS1 INT3IS0 INT2IS1
C3H ADCKS2 ADCKS1 ADCKS0
C4H ADCEN
-CH3
C5H ADCV.1 ADCV.0
-C6H ADCV.9 ADCV.8 ADCV.7
C7H
AFS
ENCKM CKMIS1
C8H
TF2
EXF2
RCLK
C8H
TF3
EXF3
TF3L
C8H
TF4
EXF4
TF4L
C9H T2SPL TL2X12 T2EXH
C9H T3SPL TL3X12 T3EXH
C9H T4SPL TL4X12 T4EXH
CAH
.7
.6
.5
CAH
.7
.6
.5
CAH
.7
.6
.5
CBH
.7
.6
.5
CBH
.7
.6
.5
CBH
.7
.6
.5
CCH
.7
.6
.5
CCH
.7
.6
.5
CCH
.7
.6
.5
CDH
.7
.6
.5
CDH
.7
.6
.5
CDH
.7
.6
.5
CEH
.7
.6
.5
CEH
.7
.6
.5
CFH
.7
.6
.5
CFH
.7
.6
.5
D0H
CY
AC
F0
D1H
.7
.6
.5
D1H
.7
.6
.5
D2H
.7
.6
.5
D2H
.7
.6
.5
D3H
D3H
D4H
CR2
ENSI
STA
D4H
CR21
ENSI1
STA1
D5H
.7
.6
.5
KBCON
键盘控制
D6H
KBCS1
KBCS0
KBMASK
CCON
C1CON
CMOD
C1MOD
CCAPM0
C1CAPM0
CCAPM1
C1CAPM1
CCAPM2
C1CAPM2
CCAPM3
C1CAPM3
CCAPM4
C1CAPM4
CCAPM5
C1CAPM5
ACC
WDTCR
IFD
IFADRH
键盘中断掩码
PCA 控制寄存器
PCA1 控制寄存器
PCA 模式寄存器
PCA1 模式寄存器
PCA 模块 0 模式
PCA1 模块 0 模式
PCA 模块 1 模式
PCA1 模块 1 模式
PCA 模块 2 模式
PCA1 模块 2 模式
PCA 模块 3 模式
PCA1 模块 3 模式
PCA 模块 4 模式
PCA1 模块 4 模式
PCA 模块 5 模式
PCA1 模块 5 模式
D7H
D8H
D8H
D9H
D9H
DAH
DAH
DBH
DBH
DCH
DCH
DDH
DDH
DEH
DEH
DFH
DFH
E0H
累加器
E1H
看门狗控制寄存器
E2H
ISP Flash 数据
ISP Flash 地址高 8 位 E3H
.7
CF
C1F
CIDL
CIDL1
DTE0
---DTE2
---DTE4
---ACC.7
WREN
.7
.7
.6
CR
C1R
BME4
BME41
ECOM0
ECOM01
ECOM1
ECOM11
ECOM2
ECOM21
ECOM3
ECOM31
ECOM4
ECOM41
ECOM5
ECOM51
ACC.6
NSW
.6
.6
16
外部中断配置
外部中断配置 1
ADC 配置 0
ADC 控制 0
ADC 数据低 8 位
ADC 数据高 8 位
时钟控制寄存器 0
定时器 2 控制寄存器
定时器 3 控制寄存器
定时器 4 控制寄存器
定时器 2 模式寄存器
定时器 3 模式寄存器
定时器 4 模式寄存器
定时器 2 捕获低 8 位
定时器 3 捕获低 8 位
定时器 4 捕获低 8 位
定时器 2 捕获高 8 位
定时器 3 捕获高 8 位
定时器 4 捕获高 8 位
定时器 2 低 8 位
定时器 3 低 8 位
定时器 4 低 8 位
定时器 2 高 8 位
定时器 3 高 8 位
定时器 4 高 8 位
CL 重载寄存器
CL1 重载寄存器
CH 重载寄存器
CH1 重载寄存器
程序状态字
IT3
INT2H
INT0IS0 X3FLT
INT2IS0 X3FLT1
ADRJ
-ADCI
ADCS
--ADCV.6 ADCV.5
CKMIS0 CCKS
TCLK
EXEN2
TL3IE
EXEN3
TL4IE
EXEN4
T2X12
TR2L
T3X12
TR3L
T4X12
TR4L
.4
.3
.4
.3
.4
.3
.4
.3
.4
.3
.4
.3
.4
.3
.4
.3
.4
.3
.4
.3
.4
.3
.4
.3
.4
.3
.4
.3
.4
.3
.4
.3
RS1
RS0
.4
.3
.4
.3
.4
.3
.4
.3
EX2
X2FLT
X2FLT1
-CHS2
-ADCV.4
SCKS2
TR2
TR3
TR4
TR2LC
TR3LC
TR4LC
.2
.2
.2
.2
.2
.2
.2
.2
.2
.2
.2
.2
.2
.2
.2
.2
OV
.2
.2
.2
.2
IE2
X1FLT
X1FLT1
ADTM1
CHS1
-ADCV.3
SCKS1
C/T2
C/T3
C/T4
T2OE
T3OE
T4OE
.1
.1
.1
.1
.1
.1
.1
.1
.1
.1
.1
.1
.1
.1
.1
.1
F1
.1
.1
.1
.1
IT2
X0FLT
X0FLT1
ADTM0
CHS0
-ADCV.2
SCKS0
CP/RL2
CP/RL3
CP/RL4
T2MS0
T3MS0
T4MS0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
P
GC
GC1
.0
.0
CR1
CR11
.1
PATN_
SEL
.1
CCF1
C1CF1
CPS0
CPS01
PWM0
PWM01
PWM1
PWM11
PWM2
PWM21
PWM3
PWM31
PWM4
PWM41
PWM5
PWM51
ACC.1
PS1
.1
.1
CR0
CR01
.0
00000000
00000000
00000000
00000000
0x000000
00xxxxxx
00000000
00010000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
11111000
11111000
00000000
00000000
11111111
KBIF
00xxxx01
.0
CCF0
C1CF0
ECF
ECF1
ECCF0
ECCF01
ECCF1
ECCF11
ECCF2
ECCF21
ECCF3
ECCF31
ECCF4
ECCF41
ECCF5
ECCF51
ACC.0
PS0
.0
.0
00000000
00000000
00000000
00000000
00000000
00000000
x0000000
x0000000
x0000000
x0000000
x0000000
x0000000
x0000000
x0000000
x0000000
x0000000
x0000000
00000000
00000000
11111111
00000000
STO
STO1
.4
SI
SI1
.3
AA
AA1
.2
--
--
--
--
.5
CCF5
C1CF5
BME2
BME21
CAPP0
CAPP01
CAPP1
CAPP11
CAPP2
CAPP21
CAPP3
CAPP31
CAPP4
CAPP41
CAPP5
CAPP51
ACC.5
ENW
.5
.5
.4
CCF4
C1CF4
BME0
BME01
CAPN0
CAPN01
CAPN1
CAPN11
CAPN2
CAPN21
CAPN3
CAPN31
CAPN4
CAPN41
CAPN5
CAPN51
ACC.4
CLRW
.4
.4
.3
CCF3
C1CF3
CPS2
CPS21
MAT0
MAT01
MAT1
MAT11
MAT2
MAT21
MAT3
MAT31
MAT4
MAT41
MAT5
MAT51
ACC.3
WIDL
.3
.3
.2
CCF2
C1CF2
CPS1
CPS11
TOG0
TOG01
TOG1
TOG11
TOG2
TOG21
TOG3
TOG31
TOG4
TOG41
TOG5
TOG51
ACC.2
PS2
.2
.2
MA82G5Cxx 数据手册
MEGAWIN
IFADRL
IFMT
SCMD
ISPCR
P4
CL
CL1
CCAP0L
C1CAP0L
CCAP1L
C1CAP1L
CCAP2L
C1CAP2L
CCAP3L
C1CAP3L
CCAP4L
C1CAP4L
CCAP5L
C1CAP5L
B
PAOE
PCAPWM0
C1PWM0
PCAPWM1
C1PWM1
PCAPWM2
C1PWM2
PCAPWM3
C1PWM3
PCAPWM4
C1PWM4
PCAPWM5
C1PWM5
P5
P6
P7
CH
CH1
CCAP0H
C1CAP0H
CCAP1H
C1CAP1H
CCAP2H
C1CAP2H
CCAP3H
C1CAP3H
CCAP4H
C1CAP4H
CCAP5H
C1CAP5H
ISP Flash 地址低 8 位
ISP 模式表
ISP 系列命令
ISP 控制寄存器
端口 4
PCA 基准定时器低
PCA1 基准定时器低
PCA 模块 0 捕获低
PCA1 模块 0 捕获低
PCA 模块 1 捕获低
PCA1 模块 1 捕获低
PCA 模块 2 捕获低
PCA1 模块 2 捕获低
PCA 模块 3 捕获低
PCA1 模块 3 捕获低
PCA 模块 4 捕获低
PCA1 模块 4 捕获低
PCA 模块 5 捕获低
PCA1 模块 5 捕获低
B 寄存器
PWM 额外输出使能
PCA PWM0 模式
PCA1 PWM0 模式
PCA PWM1 模式
PCA1 PWM1 模式
PCA PWM2 模式
PCA1 PWM2 模式
PCA PWM3 模式
PCA1 PWM3 模式
PCA PWM4 模式
PCA1 PWM4 模式
PCA PWM5 模式
PCA1 PWM5 模式
端口 5
端口 6
端口 7
PCA 基准定时器高
PCA1 基准定时器高
PCA 模块 0 捕获高
PCA1 模块 0 捕获高
PCA 模块 1 捕获高
PCA1 模块 1 捕获高
PCA 模块 2 捕获高
PCA1 模块 2 捕获高
PCA 模块 3 捕获高
PCA1 模块 3 捕获高
PCA 模块 4 捕获高
PCA1 模块 4 捕获高
PCA 模块 5 捕获高
PCA1 模块 5 捕获高
MEGAWIN
E4H
.7
.6
.5
E5H
---E6H
E7H
ISPEN
SWBS
SRST
E8H
P4.7
P4.6
P4.5
E9H
.7
.6
.5
E9H
.7
.6
.5
EAH
.7
.6
.5
EAH
.7
.6
.5
EBH
.7
.6
.5
EBH
.7
.6
.5
ECH
.7
.6
.5
ECH
.7
.6
.5
EDH
.7
.6
.5
EDH
.7
.6
.5
EEH
.7
.6
.5
EEH
.7
.6
.5
EFH
.7
.6
.5
EFH
.7
.6
.5
F0H
B.7
B.6
B.5
F1H
T0COBO C1P2BO C1P2AO
F2H
P0RS1
P0RS0
P0PS2
F2H P0RS11 P0RS01 P0PS21
F3H
P1RS1
P1RS0
P1PS2
F3H P1RS11 P1RS01 P1PS21
F4H
P2RS1
P2RS0
P2PS2
F4H P2RS11 P2RS01 P2PS21
F5H
P3RS1
P3RS0
P3PS2
F5H P3RS11 P3RS01 P3PS21
F6H
P4RS1
P4RS0
P4PS2
F6H P4RS11 P4RS01 P4PS21
F7H
P5RS1
P5RS0
P5PS2
F7H P5RS11 P5RS01 P5PS21
F8H
P5.7
P5.6
P5.5
F8H
P6.7
P6.6
P6.5
F8H
---F9H
.7
.6
.5
F9H
.7
.6
.5
FAH
.7
.6
.5
FAH
.7
.6
.5
FBH
.7
.6
.5
FBH
.7
.6
.5
FCH
.7
.6
.5
FCH
.7
.6
.5
FDH
.7
.6
.5
FDH
.7
.6
.5
FEH
.7
.6
.5
FEH
.7
.6
.5
FFH
.7
.6
.5
FFH
.7
.6
.5
.4
--
.3
--
.2
MS.2
.1
MS.1
.0
MS.0
CFAIL
P4.4
.4
.4
.4
.4
.4
.4
.4
.4
.4
.4
.4
.4
.4
.4
B.4
C1P2O
P0PS1
P0PS11
P1PS1
P1PS11
P2PS1
P2PS11
P3PS1
P3PS11
P4PS1
P4PS11
P5PS1
P5PS11
P5.4
P6.4
-.4
.4
.4
.4
.4
.4
.4
.4
.4
.4
.4
.4
.4
.4
-P4.3
.3
.3
.3
.3
.3
.3
.3
.3
.3
.3
.3
.3
.3
.3
B.3
T0COAO
P0PS0
P0PS01
P1PS0
P1PS01
P2PS0
P2PS01
P3PS0
P3PS01
P4PS0
P4PS01
P5PS0
P5PS01
P5.3
P6.3
-.3
.3
.3
.3
.3
.3
.3
.3
.3
.3
.3
.3
.3
.3
-P4.2
.2
.2
.2
.2
.2
.2
.2
.2
.2
.2
.2
.2
.2
.2
B.2
C1P0BO
P0INV
P0INV1
P1INV
P1INV1
P2INV
P2INV1
P3INV
P3INV1
P4INV
P4INV1
P5INV
P5INV1
P5.2
P6.2
P7.2
.2
.2
.2
.2
.2
.2
.2
.2
.2
.2
.2
.2
.2
.2
-P4.1
.1
.1
.1
.1
.1
.1
.1
.1
.1
.1
.1
.1
.1
.1
B.1
C1P0AO
EPC0H
EPC0H1
EPC1H
EPC1H1
EPC2H
EPC2H1
EPC3H
EPC3H1
EPC4H
EPC4H1
EPC5H
EPC5H1
P5.1
P6.1
P7.1
.1
.1
.1
.1
.1
.1
.1
.1
.1
.1
.1
.1
.1
.1
-P4.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
B.0
C1P0O
EPC0L
EPC0L1
EPC1L
EPC1L1
EPC2L
EPC2L1
EPC3L
EPC3L1
EPC4L
EPC4L1
EPC5L
EPC5L1
P5.0
P6.0
P7.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
MA82G5Cxx 数据手册
00000000
xxxxx000
xxxxxxxx
00000xxx
11111111
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00010001
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
11111111
11111111
xxxxx111
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
17
3.3. 辅助 SFR 图 ( P 页)
MA82G5C64 特殊功能寄存器(SFR)有一个辅助索引 P 页,它读写的方法跟标准的 8051 特殊功能寄存器的不一
样。 象访问 ISP/IAP 一样通过设置 IFMT 和 SCMD 来访问这个辅助的特殊功能寄存器。P 页有 256 字节有用到的
为 7 个物理字节地址和 8 个逻辑字节地址。 7 个物理字节地址包括 IAPLB, CKCON2, CKCON3, CKCON4,
PCON2, SPCON0 和 DCON0。8 个 逻辑字节地址包括 PCON0, PCON1, CKCON0, CKCON1, WDTCR, P4, P6
和 RTCCR。 在 0~F 页访问这 8 个逻辑地址会得到相同的 SFR 值。 更多详细的信息请参考章节 ―30 访问 P 页
SFR‖。
表 3–3. 辅助 SFR 图(P 页)
0/8
1/9
F8
P6
-F0
--E8
P4
-E0
WDTCR
-D8
--D0
--C8
--C0
--B8
--B0
--A8
--A0
--98
--90
--88
--80
--78
--70
--68
--60
--58
--50
--48
SPCON0
-40
CKCON2 CKCON3
38
--30
--28
--20
--18
--10
--08
--00
--0/8
1/9
18
2/A
-----------------------CKCON4
--------2/A
3/B
-------------------------------IAPLB
3/B
4/C
----------------------DCON0
PCON2
--------4/C
MA82G5Cxx 数据手册
5/D
--------------------------------5/D
6/E
--------RTCCR
-----------------------6/E
7/F
-------CKCON0
CKCON1
----PCON1
PCON0
----------------7/F
MEGAWIN
3.4. 辅助特殊功能寄存器位分配 (P 页)
表 3–4. 辅助 SFR 位分配(P 页)
符号
描述
地址
IAP 低边界
时钟控制 2
时钟控制 3
时钟控制 4
电源控制 2
SFR 页面控制 0
设备控制 0
03H
40H
41H
42H
44H
48H
4CH
位地址及符号
Bit-7
Bit-6
复位值
Bit-5
Bit-4
Bit-3
Bit-2
Bit-1
Bit-0
IAPLB4
XTALE
FWKP
RCSS0
BO1S1
P4CTL
--
IAPLB3
IHRCOE
-RPSC2
BO1S0
WRCTL
--
IAPLB2
MCKS1
MCKD1
RPSC1
BO1RE
CKCTL1
--
IAPLB1
MCKS0
MCKD0
RPSC0
EBOD1
CKCTL0
IORCTL
IAPLB0
OSCS1
MCDS1
RTCCS3
BO0RE
PWCTL1
RSTIO
0
OSCS0
MCDS0
RTCCS2
1
PWCTL0
OCDE
物理字节
IAPLB
CKCON2
CKCON3
CKCON4
PCON2
SPCON0
DCON0
IAPLB6
IAPLB5
XTGS1
XTGS0
WDTCS1 WDTCS0
RCSS2
RCSS1
AWBOD1 AWBOD0
RTCCTL
P6CTL
HSE
IAPO
01010000
00000010
00000000
0000x1x1
00000000
00000011
逻辑字节
PCON0
PCON1
RTCCR
CKCON1
CKCON0
WDTCR
P4
P6
电源控制 0
电源控制 1
RTC 控制寄存器
时钟控制 1
时钟控制 0
看门口控制寄存
器
端口 4
端口 6
MEGAWIN
87H
97H
BEH
BFH
C7H
SMOD1
SWRF
RTCE
XTOR
AFS
SMOD0
EXRF
RTCO
-ENCKM
GF
MCDF
RTCRL.5
XCKS5
CKMIS1
E1H
WREN
NSW
ENW
E8H
F8H
P4.7
P6.7
P4.6
P6.6
POF0
GF1
GF0
PD
IDL
00010000
RTCF
-BOF1
BOF0
WDTF 0000X000
RTCRL.4 RTCRL.3 RTCRL.2 RTCRL.1 RTCRL.0 00111111
XCKS4
XCKS3
XCKS2
XCKS1
XCKS0 0x001011
CKMIS0
CCKS
SCKS2
SCKS1
SCKS0 00010000
CLRW
WIDL
PS2
PS1
PS0
00000000
P4.5
P4.4
P6.4
P4.3
P6.3
P4.2
P6.2
P4.1
P6.1
P4.0
P6.5
P6.0
11111111
11111111
MA82G5Cxx 数据手册
19
4. 引脚结构
4.1. 封装指南
P1.3 (AIN3/TXD1)
P1.2 (AIN2/RXD1)
P1.1 (AIN1/T2EX)
P1.0 (AIN0/T2/T2CKO)
P5.2 (AIN10)
P5.1 (AIN9)
P5.0 (AIN8)
VREF+
VDD
VR0
VSS
P0.7 (AD7/KBI7/AC1PI)
P0.6 (AD6/KBI6/AC1NI)
P0.5 (AD5/KBI5/AC0PI3)
P0.4 (AD4/KBI4/AC0PI2)
P0.3 (AD3/KBI3/AC0PI1)
图 4–1. LQFP64 顶视图
64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49
(nSS/AIN4) P1.4
(MOSI/AIN5) P1.5
(MISO/AIN6) P1.6
(SPICLK/AIN7) P1.7
(SPID2/AIN11) P5.3
(SPID3/AIN12) P5.4
(AIN13) P5.5
(AIN14) P5.6
(AD8/AIN15) P2.0
(ECI/AD9) P2.1
(CEX0/AD10) P2.2
(CEX1/AD11) P2.3
(CEX2/AD12) P2.4
(CEX3/AD13) P2.5
(CEX4/AD14) P2.6
(CEX5/AD15) P2.7
1
48
2
47
3
46
4
45
5
44
6
43
7
42
8
9
LQFP64
41
40
10
39
11
38
12
37
13
36
14
35
15
34
16
33
P7.2 (T3EX/AC1OUT)
P7.1 (T4EX)
P7.0 (T4/T4CKO)
P0.2 (AD2/KBI2/AC0PI0)
P0.1 (AD1/KBI1/AC0NI)
P0.0 (AD0/KBI0/AC0OUT)
VSS
P6.0 (XTAL2/ECKI/ICKO)
P6.1 (XTAL1/S3CKO)
P6.2 (C1EX0/AC2NI)
P6.3 (C1EX2/AC2PI)
P6.4 (C1EX4/AC2OUT)
P4.6 (ALE/S1CKO/T3/T3CKO)
P4.5 (OCD_SDA/RTCKO)
P4.4 (OCD_SCL/BEEP)
RST (P4.7/S2CKO)
(RXD0) P3.0
(TXD0) P3.1
(RXD2/nINT0) P3.2
(TXD2/nINT1) P3.3
(ECI1) P5.7
(C1EX5) P6.7
(C1EX3) P6.6
(C1EX1) P6.5
(T0CKO/T0) P3.4
(T1CKO/T1) P3.5
(RXD3/nWR) P3.6
(TXD3/nRD) P3.7
(S0MI/TWI_SCL) P4.0
(S1MI/TWI_SDA) P4.1
(T0CKOA/S2MI/TWI1_SCL/nINT3) P4.2
(T0CKOB/S3MI/TWI1_SDA/nINT2) P4.3
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
20
MA82G5Cxx 数据手册
MEGAWIN
P1.3 (AIN3/TXD1)
P1.2 (AIN2/RXD1)
P1.1 (AIN1/T2EX)
P1.0 (AIN0/T2/T2CKO)
VREF+
VDD
VR0
VSS
P0.7 (AD7/KBI7/AC1PI)
P0.6 (AD6/KBI6/AC1NI)
P0.5 (AD5/KBI5/AC0PI3)
P0.4 (AD4/KBI4/AC0PI2)
图 4–2. LQFP48 顶视图
48 47 46 45 44 43 42 41 40 39 38 37
(nSS/AIN4) P1.4
(MOSI/AIN5) P1.5
(MISO/AIN6) P1.6
(SPICLK/AIN7) P1.7
(AD8/AIN15) P2.0
(ECI/AD9) P2.1
(CEX0/AD10) P2.2
(CEX1/AD11) P2.3
(CEX2/AD12) P2.4
(CEX3/AD13) P2.5
(CEX4/AD14) P2.6
(CEX5/AD15) P2.7
1
36
2
35
3
34
4
33
5
32
6
7
LQFP48
8
31
30
29
9
28
10
27
11
26
12
25
P0.3 (AD3/KBI3/AC0PI1)
P0.2 (AD2/KBI2/AC0PI0)
P0.1 (AD1/KBI1/AC0NI)
P0.0 (AD0/KBI0/AC0OUT)
P6.0 (XTAL2/ECKI/ICKO)
P6.1 (XTAL1/S3CKO)
P6.2 (C1EX0/AC2NI)
P6.3 (C1EX2/AC2PI)
P4.6 (ALE/S1CKO/T3/T3CKO)
P4.5 (OCD_SDA/RTCKO)
P4.4 (OCD_SCL/BEEP)
RST (P4.7/S2CKO)
(RXD0) P3.0
(TXD0) P3.1
(RXD2/nINT0) P3.2
(TXD2/nINT1) P3.3
(C1PWM0A/T0CKO/T0) P3.4
(C1PWM0B/T1CKO/T1) P3.5
(C1PWM2A/RXD3/nWR) P3.6
(C1PWM2B/TXD3/nRD) P3.7
(S0MI/TWI_SCL) P4.0
(S1MI/TWI_SDA) P4.1
(T0CKOA/S2MI/TWI1_SCL/nINT3) P4.2
(T0CKOB/S3MI/TWI1_SDA/nINT2) P4.3
13 14 15 16 17 18 19 20 21 22 23 24
MEGAWIN
MA82G5Cxx 数据手册
21
4.2. 引脚描述
表 4–1. 引脚描述
引脚号
助记符
I/O
类型
64-Pin
LQFP
48-Pin
LQFP
P0.0
(AD0)
(KBI0)
(AC0OUT)
43
33
I/O
P0.1
(AD1)
(KBI1)
(AC0NI)
44
34
I/O
P0.2
(AD2)
(KBI2)
(AC0PI0)
45
35
I/O
P0.3
(AD3)
(KBI3)
(AC0PI1)
49
36
I/O
P0.4
(AD4)
(KBI4)
(AC0PI2)
50
37
I/O
P0.5
(AD5)
(KBI5)
(AC0PI3)
51
38
I/O
P0.6
(AD6)
(KBI6)
(AC1NI)
52
39
I/O
P0.7
(AD7)
(KBI7)
(AC1PI)
53
40
I/O
P1.0
(AIN0)
(T2)
(T2CKO)
61
45
I/O
P1.1
(AIN1)
(T2EX)
62
46
I/O
P1.2
(AIN2)
(RXD1)
63
47
I/O
P1.3
(AIN3)
(TXD1)
64
48
I/O
P1.4
(AIN4)
(nSS)
1
1
I/O
P1.5
(AIN5)
(MOSI)
2
2
I/O
P1.6
(AIN6)
(MISO)
3
3
I/O
22
描述
* 端口 0.0.
* AD0: 在访问外部数据时复用 A0/D0
* KBI0: 键盘输入 0.
* AC0OUT: 模拟比较器 0 输出
* 端口 0.1.
* AD1: 在访问外部数据时复用 A1/D1
* KBI1: 键盘输入 1.
* AC0NI: 模拟比较器 0 负端输入
* 端口 0.2.
* AD2: 在访问外部数据时复用 A2/D2
* KBI2: 键盘输入 2.
* AC0PI0: 模拟比较器 0 正端输入通道 0.
* 端口 0.3.
* AD3: 在访问外部数据时复用 A3/D3
* KBI3: 键盘输入 3.
* AC0PI1: 模拟比较器 0 正端输入通道 1.
* 端口 0.4.
* AD4: 在访问外部数据时复用 A4/D4
* KBI4: 键盘输入 4.
* AC0PI2: 模拟比较器 0 正端输入通道 2.
* 端口 0.4.
* AD4: 在访问外部数据时复用 A4/D4
* KBI4: 键盘输入 4.
* AC0PI3: 模拟比较器 0 正端输入通道 3.
* 端口 0.6.
* AD6: 在访问外部数据时复用 A6/D6
* KBI6: 键盘输入 6.
* AC1NI: 模拟比较器 1 负端输入.
* 端口 0.7.
* AD7: 在访问外部数据时复用 A7/D7
* KBI7: 键盘输入 7.
* AC1PI: 模拟比较器 1 正端输入.
* 端口 1.0.
* AIN0: ADC 模拟输入通道 0
* T2: 定时器/计数器 2 外部时钟输入
* T2CKO: 定时器 2 可编程时钟输出
* 端口 1.1.
* AIN1: ADC 模拟输入通道 1
* T2EX: 定时器/计数器 2 外部控制输入
* 端口 1.2.
* AIN2: ADC 模拟输入通道 2.
* RXD1: UART1 串行输入口
* 端口 1.3.
* AIN3: ADC 模拟输入通道 3
* TXD1: UART1 串行输出口
* 端口 1.4.
* AIN4: ADC 模拟输入通道 4
* nSS: SPI 从机选择
* 端口 1.5.
* AIN5: ADC 模拟输入通道 5
* MOSI: SPI 主机输出& 从机输入和 QPI 模式用于 SPID0
* 端口 1.6.
* AIN6: ADC 模拟输入通道 6
MA82G5Cxx 数据手册
MEGAWIN
P1.7
(AIN7)
(SPICLK)
4
4
I/O
P2.0
(AIN15)
(AD8)
9
5
I/O
P2.1
(AD9)
(ECI)
10
6
I/O
P2.2
(AD10)
(CEX0)
11
7
I/O
P2.3
(AD11)
(CEX1)
12
8
I/O
P2.4
(AD12)
(CEX2)
13
9
I/O
P2.5
(AD13)
(CEX3)
14
10
I/O
P2.6
(AD14
(CEX4)
15
11
I/O
P2.7
(AD15
(CEX5)
16
27
I/O
P3.0
(RXD0)
P3.1
(TXD0)
P3.2
(nINT0)
(RXD2)
17
13
I/O
18
14
I/O
19
15
I/O
P3.3
(nINT1)
(TXD2)
20
16
I/O
P3.4
(T0)
(T0CKO)
(C1PWM0A)
25
17
I/O
P3.5
(T1)
(T1CKO)
(C1PWM0B)
26
18
I/O
P3.6
(nWR)
(RXD3)
(C1PWM2A)
27
19
I/O
P3.7
(nRD)
(TXD3)
(C1PWM2B)
28
20
I/O
P4.0
(TWI_SCL)
(S0MI)
29
21
I/O
P4.1
(TWI_SDA)
(S1MI)
30
22
I/O
MEGAWIN
* MISO: SPI 主机输出& 从机输入和 QPI 模式用于 SPID0
* 端口 1.7.
* AIN7: ADC 模拟输入通道 7
* SPICLK: SPI 时钟,主机用于输出,从机用于输入
* 端口 2.0.
* AIN15: ADC 模拟输入通道 15
* AD8: 在访问外部数据时复用 A8/D8
* 端口 2.1.
* AD9: 在访问外部数据时复用 A9/D9
* ECI: PCA 外部时钟输入
* 端口 2.2.
* AD10: 在访问外部数据时复用 A10/D10
* CEX0: PCA 模块 0 外部 I/O.
* 端口 2.3.
* AD11: 在访问外部数据时复用 A11/D11
* CEX1: PCA 模块 1 外部 l I/O.
* 端口 2.4.
* AD12: 在访问外部数据时复用 A12/D12
* CEX2: PCA 模块 2 外部 I/O.
* 端口 2.5.
* AD13: 在访问外部数据时复用 A13/D13
* CEX3: PCA 模块 3 外部 I/O.
* 端口 2.6.
* AD14 在访问外部数据时复用 A14/D14
* CEX4: PCA 模块 4 外部 I/O.
* 端口 2.7.
* AD15 在访问外部数据时复用 A15/D15
* CEX5: PCA 模块 5 外部 I/O.
* 端口 3.0.
* RXD0: UART0 串行输入口
* 端口 3.1.
* TXD0: UART0 串行输出口.
* 端口 3.2.
* nINT0: 外部中断 0 输入
* RXD2 UART2 串行输入口
* 端口 3.3.
* nINT1: 外部中断 1 输入.
* TXD2 :UART2 串行输出口
* 端口 3.4.
* T0: 定时器/计数器 0 外部输入
* T0CKO: 定时器 0 可编程时钟输出
* C1PWM0A: PCA1 PWM0 输出副通道 A.
* 端口 3.5.
* T1: 定时器/计数器 1 外部输入
* T1CKO: 定时器 1 可编程时钟输出.
* C1PWM0B: PCA1 PWM0 输出副通道 B.
* 端口 3.6.
* nWR: 外部数据写选通
* RXD3: UART3 串行输入口
* C1PWM2A: PCA1 PWM2 输出副通道 A.
* 端口 3.7.
* nRD: 外部数据读选通.
* TXD3: UART3 串行输出口
* C1PWM0A: PCA1 PWM2 输出副通道 B.
* 端口 4.0.
* TWSI_SCL: TWSI 串行时钟
* S0MI: UART0 SPI 主机模式数据输入
* 端口 4.1.
* TWSI_SDA: TWSI 串行数据
MA82G5Cxx 数据手册
23
P4.2
(nINT3)
(TWI1_SCL)
(S2MI)
(T0CKOA)
31
23
I/O
P4.3
(nINT2)
(TWI1_SDA)
(S3MI)
(T0CKOB)
32
24
I/O
P4.4
(OCD_SCL)
(BEEP)
34
26
I/O
P4.5
(RTCKO)
(OCD_SDA)
35
27
I/O
P4.6
(ALE)
(S1CKO)
(T3)
(T3CKO)
36
28
I/O
P5.0
(AIN8)
P5.1
(AIN9)
P5.2
(AIN10)
P5.3
(AIN11)
(SPID2)
58
--
I/O
59
--
I/O
60
--
I/O
5
--
I/O
P5.4
(AIN12)
(SPID3)
6
--
I/O
P5.5
(AIN13)
P5.6
(AIN14)
P5.7
(ECI1)
7
--
I/O
8
--
I/O
21
--
I/O
P6.0
(XTAL2)
(ECKI)
(ICKO)
41
32
I/O
O
I
O
P6.1
(XTAL1)
(S3CKO)
40
31
I/O
P6.2
(C1EX0)
(AC2NI)
39
30
I/O
P6.3
(C1EX2)
(AC2PI)
38
29
I/O
P6.4
(C1EX4)
(AC2OUT)
37
--
I/O
P6.5
(C1EX1)
P6.6
(C1EX3)
24
--
I/O
23
--
I/O
24
* S1MI: UART1 SPI 主机模式数据输入
* 端口 4.2.
* nINT3: 外部中断 3 输入
* TWI1_SCL: TWI1 串行时钟
* S2MI: UART2 SPI 主机模式数据输入
* T0CKOA: T0CKO 输出副通道 A.
* 端口 4.3.
* nINT2: 外部中断 2 输入
* TWI1_SDA: TWI1 串行数据
* S3MI: UART3 SPI 主机模式数据输入
* T0CKOA: T0CKO 输出副通道 B
* 端口 4.4.
* OCD_SCL: OCD 接口,串行时钟
* BEEP: 蜂鸣器输出
* 端口 4.5.
* OCD_SDA: OCD 接口, 串行数据
* RTCKO: RTC 可编程时钟输出
* 端口 4.6.
* ALE: 外部数据访问时地址锁存使能输出
* S1CKO: S1BRT 可编程时钟输出
* T3: 定时器/计数器 3 外部时钟输入
* T3CKO: 定时器 3 可编程时钟输出
* 端口 5.0.
* AIN8: ADC 模拟输入通道 8
* 端口 5.1.
* AIN9: ADC 模拟输入通道 9
* 端口 5.2.
* AIN10: ADC 模拟输入通道 10
* 端口 5.3.
* AIN11: ADC 模拟输入通道 11
*SPID2: QPI 模式 SPI 数据 2 I/O
* 端口 5.4.
* AIN12: ADC 模拟输入通道 12
*SPID3: QPI 模式 SPI 数据 3 I/O
* 端口 5.5.
* AIN13: ADC 模拟输入通道 13
* 端口 5.6.
* AIN14: ADC 模拟输入通道 14
* 端口 5.7.
* ECI1: PCA1 外部时钟输入
* 端口 6.0.
* XTAL2:片上晶振振荡电路输出
* ECKI: 在外部时钟输入模式下,这是时钟输入引脚
* ICKO: 内部时钟(MCK) 输出.
* 端口 6.1.
* XTAL1: 片上晶振振荡电路输入
* S3CKO: S3BRT 可编程时钟输出
* 端口 6.2.
* C1EX0: PCA1 模块 0 外部 I/O.
* AC2NI: 模拟比较器 2 负端输入
* 端口 6.3.
* C1EX2: PCA1 模块 2 外部 I/O
* AC2PI: 模拟比较器 2 正端输入
* 端口 6.4.
* C1EX4: PCA1 模块 4 外部 I/O.
* AC2OUT: 模拟比较器 2 输出.
* 端口 6.5.
* C1EX1: PCA1 模块 1 外部 I/O
* 端口 6.6.
MA82G5Cxx 数据手册
MEGAWIN
P6.7
(C1EX5)
22
--
I/O
P7.0
(T4)
(T4CKO)
46
--
I/O
P7.1
(T4EX)
P7.2
(T3EX)
(AC1OUT)
47
--
I/O
48
--
I/O
RST
(P4.7)
(S2CKO)
33
25
I
I/O
57
55
56
54, 42
44
42
43
41
I/O
I/O
P
G
VREF+
VR0
VDD
VSS
MEGAWIN
* C1EX3: PCA1 模块 3 外部 I/O.
* 端口 6.7.
* C1EX5: PCA1 模块 5 外部 I/O.
* 端口 7.0.
* T4: 定时器/计数器 4 外部时钟输入
* T4CKO: 定时器 4 可编程时钟输出
* 端口 7.1.
* T4EX: 定时器/计数器 4 外部控制输入
* 端口 7.2.
* T3EX: 定时器/计数器 3 外部控制输入
* AC1OUT: 模拟比较器 1 输出
* RST: 外部复位 RESET 输入, 高电平有效
* 端口 4.7.
* S2CKO: S2BRT 可编程时钟输出
* VREF+: ADC 参考电压+输入
* VR0. 参考电压 0. 接 0.1uF 和 4.7uF 电容到 VSS.
电源输入
地, 0 V 参考.
MA82G5Cxx 数据手册
25
4.3. 功能复用
许多 I/O 引脚,除了普通的 I/O 口功能之外,还能复用其他内部功能。对于这些数码外设,默认状态是 GPIOs。然
而,用户可以通过 AXRU0~AXUR3 相对应的控制位重新定义端口的功能。
AUXR0: 辅助寄存器 0
SFR 页 = 0~F
SFR 地址
= 0xA1
7
6
P60OC1
P60OC0
R/W
R/W
5
P60FD
4
T0XL
R/W
R/W
复位值 = 000X-0000
3
2
P4FS1
P4FS0
R/W
R/W
1
INT1H
0
INT0H
R/W
R/W
Bit 7~6: P6.0 功能配置控制位 1 和位 0,这两位仅仅当内部 RC 振荡(IHRCO 或 ILRCO)被选择为系统时钟源时
有效。这种情况, XTAL2 和 XTAL1 改变功能作 P6.0 和 P6.1,当外部时钟输入模式,P6.0 专用于时钟输入。在
内部振荡模式, P6.0 为普通 I/O 或时钟源发生器提供下列选项, 当 P60OC[1:0] 索引为非 P6.0 GPIO 功能时,
P6.0 将驱动内部 RC 振荡器输出为其它设备提供时钟源
P60OC[1:0]
P60 功能
I/O 模式
00
P60
By P6M0.0
01
MCK
By P6M0.0
10
MCK/2
By P6M0.0
11
MCK/4
By P6M0.0
了解详情,请参考―8 系统时钟‖ P6.0 作为时钟输出功能时, 建议设置 P6M0.0 为―1‖ 来选择 P6.0 为推挽输出模式。
Bit 5: P60FD, P6.0 快速驱动
0: P6.0 默认驱动输出.
1: P6.0 快速驱动输出使能。若 P6.0 被配置为时钟输出, 当 P4.0 输出频率大于 12MHz (5V) 或者大于 6MHz
(3V) 时使能此位。
Bit 3~2: P4.4 和 P4.5 复用功能选项
P4FS[1:0]
P4.4
00
P4.4
01
RXD0
10
T0/T0CKO
11
T2EX
AUXR1: 辅助寄存器 1
SFR 页 = 0~F
SFR 地址
= 0xA2
7
6
KBIPS1
KBIPS0
R/W
R/W
5
SPIPS0
4
S1PS1
R/W
R/W
P4.5
P4.5
TXD0
T1/T1CKO
T2/T2CKO
复位值 = 0000-0000
3
2
S1PS0
T01PS0
R/W
1
EXTRAM
0
DPS
R/W
R/W
R/W
Bit 7~6: KBIPS1~0, KBI 端口选择 [1:0].
KBIPS1~0
KBI.7~0
00
P0.7 ~ P0.0
01
P2.7 ~ P2.0
10
P5.7 ~ P5.0
11
P4.3~P4.0, P3.7~P3.4
Bit 5: SPIPS0, SPI 端口选择 0.
SPIPS0
nSS
0
P1.4
1
P4.3
MOSI
P1.5
P4.2
MISO
P1.6
P4.1
SPICLK
P1.7
P4.0
SPID2
P5.3
P3.6
SPID3
P5.4
P3.7
Bit 4~3: S1PS1~0, 串口 1 (UART1) 端口选择 [1:0]
26
MA82G5Cxx 数据手册
MEGAWIN
S1PS2
0
0
0
0
1
S1PS1~0
00
01
10
11
xx
Bit 2: T01PS0, 定时器 0/1 端口选择 0.
T01PS0
T0/T0CKO
0
P3.4
1
P5.5
AUXR2: 辅助寄存器 2
SFR 页 = 0~F
SFR 地址
= 0xA3
7
6
ALEINV
ADDRO
R/W
R/W
RXD1
P1.2
P3.2
P0.6
P0.0
P7.0
TXD1
P1.3
P3.3
P0.7
P0.5
P7.1
T1/T1CKO
P3.5
P5.6
5
--
4
--
W
W
复位值 = 0000-0000
3
2
T1X12
T0X12
R/W
R/W
1
T1CKOE
0
T0CKOE
R/W
R/W
1
TWIPS0
0
T2PS0
R/W
R/W
Bit 7: ALEINV, ALE 反向输出.
0: 保持 ALE 高脉冲有效
1: 改变 ALE 为低脉冲有效
Bit 6: ADDRO, 在外部数据访问周期时地址输出
0: 禁止在外部数据访问周期时地址输出
1: 仅当 EMAI.1~0 等于 ―11‖时使能在外部数据访问周期时地址输出
ADDRO
P5.7~0
P6.7~2
P7.1~0
0
P5.7~0
P6.7~2
P7.1~0
1
ADD[7:0]
ADD[15:10]
ADD[9:8]
AUXR3: 辅助功能寄存器 3
SFR 页 = 0 only
SFR 地址
= 0xA4
7
6
5
STAF
STOF
BPOC1
R/W
R/W
R/W
4
BPOC0
复位值 = 0000-0000
3
2
ALEPS0
TWIPS1
R/W
R/W
R/W
Bit 3: ALEPS0, ALE 端口选择 0.
ALEPS0
ALE
0
P4.6
1
P4.7
Bit 2~1: TWIPS1~0, TWSI 端口选择 [1:0].
TWIPS1~0
TWI_SCL
TWI_SDA
00
P4.0
P4.1
01
P6.0
P6.1
10
P3.0
P3.1
11
P3.4
P3.5
Bit 0: T2PS0, 定时器 2 端口选择 0.
T2PS0
T2/T2CKO
0
P1.0
1
P3.6
MEGAWIN
T2EX
P1.1
P3.7
MA82G5Cxx 数据手册
27
AUXR4: 辅助寄存器 4
SFR 页 = 1 only
SFR 地址
= 0xA4
7
6
C1IC2S1
C1IC2S0
R/W
R/W
5
C1IC0S1
4
C1IC0S0
R/W
R/W
复位值 = 0000-0000
3
2
AC1OE
AC1FLT1
R/W
R/W
1
AC0OE
0
AC0FLT1
R/W
R/W
1
T3PS1
0
T3PS0
R/W
R/W
Bit 7~6: C1IC2S1~0, PCA1 输入通道 2 输入选择
C1IC2S1~0
C1EX2 输入
00
C1EX2 端口引脚
01
AC1OUT
10
-11
AC0OUT
Bit 5~4: C1IC0S1~0, PCA1 输入通道 0 输入选择
C1IC0S1~0
C1EX0 输入
00
C1EX0 端口引脚
01
AC0OUT
10
-11
ILRCO
Bit 3: AC1OE, AC1OUT 在端口引脚上使能输出
0: 禁止 AC1OUT 在端口上输出
1: 使能 AC1OUT 在 P7.2 上输出.
Bit 1: AC0OE, AC0OUT 在端口引脚上使能输出
0: 禁止 AC0OUT 在端口上输出
1: 使能 AC0OUT 在 P0.0 上输出.
AUXR5: 辅助寄存器 5
SFR 页 = 2 only
SFR 地址
= 0xA4
7
6
SnMIPS
S3PS0
R/W
R/W
5
S2PS0
R/W
复位值 = 0000-0000
4
3
2
C1PPS0
T0OPS0
T4PS0
R/W
R/W
Bit 7: SnMIPS, {S0MI, S1MI, S2MI, S3MI} 端口选择
SnMIPS
S0MI
S1MI
0
P4.0
P4.1
1
P5.3
P5.4
R/W
S2MI
P4.2
P5.5
S3MI
P4.3
P5.6
Bit 6: S3PS0, 串口 t 3 (UART3) 端口选择 0.
S3PS0
RXD3
TXD3
0
P3.6
P3.7
1
P6.5
P6.6
Bit 5: S2PS0, 串口 2 (UART2) 端口选择 0.
S2PS0
RXD2
0
P3.2
1
P5.7
TXD2
P3.3
P6.7
Bit 4: C1PPS0, {C1PWM0A, C1PWM0B, C1PWM2A, C1PWM2B} 端口选择 0.
C1PPS0
C1PWM0A
C1PWM0B
C1PWM2A
C1PWM2B
0
P3.4
P3.5
P3.6
P3.7
1
P6.0
P6.1
P6.2
P6.3
28
MA82G5Cxx 数据手册
MEGAWIN
Bit 3: T0OPS0, 定时器 0 时钟输出端口选择 0.
T0OPS0
T0CKOA
T0CKOB
0
P4.2
P4.3
1
P5.0
P5.1
Bit 2: T4PS0, 定时器 4 端口选择 0.
T4PS0
T4/T4CKO
0
P7.0
1
P4.2
T4EX
P7.1
P4.3
Bit 1~0: T3PS1~0, 定时器 3 端口选择[1:0].
T3PS1~0
T3/T3CKO
00
P4.6
01
P4.0
10
P2.1
11
P6.7
T3EX
P7.2
P4.1
P2.0
P5.7
AUXR6: 辅助寄存器 6
SFR 页 = 3 only
SFR 地址
= 0xA4
7
6
--R/W
R/W
5
TWI1PS1
R/W
复位值 = 0000-0000
4
3
2
TWI1PS0 C1IC4S0
C1PS0
R/W
R/W
R/W
1
PCAPS0
0
S1PS2
R/W
R/W
Bit 5~4: TWI1PS1~0, TWI1 端口选择[1:0].
TWI1PS1~0
TWI1_SCL
TWI1_SDA
00
P4.2
P4.3
01
P6.2
P6.3
10
P3.2
P3.3
11
P0.3
P0.4
Bit 7~6: C1IC4S0, PCA1 输入通道 4 输入选择
C1IC4S0
C1EX4 输入
0
C1EX4 端口引脚
1
AC2OUT
Bit 2: C1PS0, PCA1 端口选择 0.
C1PS0
C1EX0
0
P6.2
1
P3.6
Bit 1: PCAPS0, PCA 端口选择 0.
PCAPS0
ECI
0
P2.1
1
P0.0
C1EX1
P6.5
P4.1
CEX0
P2.2
P3.4
Bit 0: S1PS2, 串口 1 (UART1) 端口选择[2]
S1PS2
S1PS1~0
0
00
0
01
0
10
0
11
1
xx
MEGAWIN
C1EX2
P6.3
P3.7
CEX1
P2.3
P3.5
RXD1
P1.2
P3.2
P0.6
P0.0
P7.0
C1EX3
P6.6
P4.2
CEX2
P2.4
P4.0
C1EX4
P6.4
P4.0
CEX3
P2.5
P4.1
C1EX5
P6.7
P4.3
CEX4
P2.6
P4.2
CEX5
P2.7
P4.3
TXD1
P1.3
P3.3
P0.7
P0.5
P7.1
MA82G5Cxx 数据手册
29
AUXR7: 辅助寄存器 7
SFR 页 = 4 only
SFR 地址
= 0xA4
7
6
GF
PBKS5
R/W
R/W
5
PBKS4
4
PBKS3
R/W
R/W
复位值 = 0000-0000
3
2
GF
GF
R/W
R/W
1
AC2OE
0
AC2FLT1
R/W
R/W
1
X1FLT
0
X0FLT
R/W
R/W
1
X1FLT1
0
X0FLT1
R/W
R/W
Bit 1: AC2OE, AC2OUT 在端口引脚上使能输出
0: 禁止 AC2OUT 在端口上输出
1: 使能 AC2OUT 在 P6.4 上输出.
XICFG: 外部中断配置寄存器
SFR 页 = 0 only
SFR 地址
= 0xC1
7
6
5
INT1IS.1
INT1IS.0
INT0IS.1
R/W
R/W
R/W
4
INT0IS.0
复位值 = 0000-0000
3
2
X3FLT
X2FLT
R/W
R/W
R/W
Bit 7~6: INT1IS.1~0, nINT3 输入选择如下表定义的功能
INT1IS.1~0
选择 nINT1 的端口引脚
00
P3.3
01
P3.1
10
P1.7
11
P4.1
Bit 5~4: INT0IS.1~0, nINT0 输入选择如下表定义的功能
INT0IS.1~0
选择 nINT0 的端口引脚
00
P3.2
01
P3.0
10
P1.6
11
P4.0
XICFG1: 外部中断配置 1 寄存器
SFR 页 = 1 only
SFR 地址
= 0xC1
7
6
5
INT3IS.1
INT3IS.0
INT2IS.1
R/W
R/W
R/W
4
INT2IS.0
复位值 = 0000-0000
3
2
X3FLT1
X2FLT1
R/W
R/W
R/W
Bit 7~6: INT3IS1~0, nINT3 输入选择如下表定义的功能
INT3IS.1~0
选择 nINT3 的端口引脚
00
P4.2
01
P6.3
10
P1.5
11
P6.0
Bit 5~4: INT2IS1~0, nINT2 输入选择如下表定义的功能
INT2IS.1~0
选择 nINT2 的端口引脚
00
P4.3
01
P6.2
10
P1.4
11
P6.1
30
MA82G5Cxx 数据手册
MEGAWIN
5. 8051 CPU 功能描述
5.1. CPU 寄存器
PSW: 程序状态字
SFR 页 = 0~F
SFR 地址
= 0xD0
7
6
CY
AC
R/W
R/W
5
F0
4
RS1
R/W
R/W
复位值 = 0000-0000
3
2
RS0
OV
R/W
R/W
1
F1
0
P
R/W
R/W
CY: 进位标志
AC: 辅助进位标志
F0: 用户可设定的标志位 0
RS1: 寄存器组选择位 1
RS0: 寄存器组选择位 0
OV: 溢出标志
F1: 用户可设定的标志位 1
P: 奇偶标志
程序状态字 (PSW) 包含反映 CPU 当前状态的几个状态位。PSW 属于特殊功能寄存器 SFR 区,包含进位标志,辅
助进位标志 (应用于 BCD 操作), 两个寄存器组选择位,溢出标志, 奇偶标志和两个用户可设定的标志位。
进位标志,不仅有算术运算的进位功能,也充当许多布尔运算的―累加器‖。
RS0 和 RS1 被用来选择 4 组中的任意一组寄存器组,祥见章节―6.2 片内数据存储器 RAM‖。
奇偶位反映累加器内 1 的个数的状况,累加器中 1 的个数是奇数则 P=1,否则 P=0 。
SP: 堆栈指针
SFR 页 = 0~F
SFR 地址
= 0x81
7
6
SP.7
SP.6
R/W
R/W
5
SP.5
4
SP.4
R/W
R/W
复位值 = 0000-0111
3
2
SP.3
SP.2
R/W
R/W
1
SP.1
0
SP.0
R/W
R/W
堆栈指针保持栈顶位置,每执行一个 PUSH 指令,会自动增加,复位后默认值为为 0x07。
DPL: 数据指针低字节
SFR 页 = 0~F
SFR 地址
= 0x82
7
6
DPL.7
DPL.6
R/W
R/W
5
DPL.5
4
DPL.4
R/W
R/W
复位值 = 0000-0000
3
2
DPL.3
DPL.2
R/W
R/W
1
DPL.1
0
DPL.0
R/W
R/W
1
DPH.1
0
DPH.0
R/W
R/W
DPL 是 16 位 DPTR 的低字节,DPTR 用来间接访问 XRAM 和程序空间.
DPH: 数据指针高字节
SFR 页 = 0~F
SFR 地址
= 0x83
7
6
DPH.7
DPH.6
R/W
R/W
5
DPH.5
R/W
复位值 = 0000-0000
4
3
2
DPH.4
DPH.3
DPH.2
R/W
R/W
R/W
DPH 是 16 位 DPTR 的高字节,DPTR 用来间接访问 XRAM 和程序空间。
MEGAWIN
MA82G5Cxx 数据手册
31
ACC: 累加器
SFR 页 = 0~F
SFR 地址
= 0xE0
7
6
ACC.7
ACC.6
R/W
R/W
5
ACC.5
4
ACC.4
R/W
R/W
5
B.5
4
B.4
R/W
R/W
复位值 = 0000-0000
3
2
ACC.3
ACC.2
1
ACC.1
0
ACC.0
R/W
R/W
R/W
复位值 = 0000-0000
3
2
B.3
B.2
1
B.1
0
B.0
R/W
R/W
R/W
算术运算的累加器
B: B 寄存器
SFR 页 = 0~F
SFR 地址
7
B.7
R/W
= 0xF0
6
B.6
R/W
R/W
R/W
另一个算术运算的累加器
5.2. CPU 时序
MA82G5C64 是基于 80C51 的高效 1-T 结构的单芯片微处理器,与 8051 指令集兼容,每条指令需要 1~7 个时钟
信号(比标准 8051 快 6~7 倍)。使用流线型结构同标准的 8051 结构比较大大增加了指令完成的速度 ,指令的时序
也和标准的 8051 不同。
多数8051执行指令,一个区别是建立在机器周期和时钟周期之间,机器周期来自2到12个时钟周期长度。然而,1T结构的80C51执行指令是基于单独的时钟周期时序。所有指令时序被指定在时钟周期期间。关于1T-80C51指令更
详细的说明,请参考―36 指令集‖,这里有每一条指令的助记符、字节数、时钟周期数。
32
MA82G5Cxx 数据手册
MEGAWIN
5.3. CPU 寻址模式
直接寻址(DIR)
直接寻址时操作数用指令中一个8位地址的区域表示,只有内部数据存储器和特殊功能寄存器可以直接寻址。
间接寻址(IND)
间接寻址时指令用一个包含操作数地址的寄存器表示,内部和外部存储器均可间接寻址。
8 位地址的地址寄存器可以是选中区的 R0 或 R1 或堆栈指针,16 位地址的地址寄存器只能是 16 位的―数据指针‖寄
存器,DPTR。
寄存器操作(寻址)(REG)
包含从 R0 到 R7 的寄存器区可以被某些指令存取,这些指令的操作码中用 3 位寄存器说明。存取寄存器的指令有
更高的代码效率,因为这种模式减少了一个地址字节。当指令被执行时,其中被选取的区一个 8 位寄存器被存取。
执行时,用 PSW 寄存器中两位区选择位来选择四分之一区。
特殊寄存器寻址(寄存器间接寻址)
一些指令具有一个特定的寄存器,例如,一些指令常用于累加器,或数据指针等等,所以没有需要指向它的地址字
节。操作码本身就行了。有关累加器的指令 A 就是累加器的特殊操作码。
立即寻址(IMM)
常量的数值可以在程序存储器中跟随操作码。
索引寻址
索引寻址只能访问程序存储器,且只读。这种寻址模式用查表法读取程序存储器。一个16位基址寄存器(数据指针
DPTR或程序计数器PC)指向表的基地址,累加器提供偏移量。程序存储器中表项目地址由基地址加上累加器数据
后形成。另一种索引寻址方式是利用―case jump‖指令。跳转指令中的目标地址是基地址加上累加器数据后的值。
MEGAWIN
MA82G5Cxx 数据手册
33
6. 存储器组织
像所有的 80C51 一样,MA82G5C64 的程序存储器和数据存储器的地址空间是分开的,这样 8 位微处理器可以通
过一个 8 位的地址快速而有效的访问数据存储器。
程序存储器(ROM)只能读取,不能写入。最大可以达到 64K 字节。在 MA82G5C64 中,所有的程序存储器都是片
上 Flash 存储器。因为没有设计外部程序使能 (/EA)和编程使能 (/PSEN) 信号,所以不允许外接程序存储器。
数据存储器使用与程序存储器不同的地址空间。MA82G5C64 只有 256 字节的内部和 3840 字节的片上扩展存储器
(XRAM)。
6.1. 片内程序存储器 Flash
程序存储器用来保存让 CPU 进行处理的程序代码,如图 6–1 所示。复位后,CPU 从地址为 0000H 的地方开始运
行,用户应用代码的起始部分应该放在这里。为了响应中断,中断服务位置(被称为中断矢量)应该位于程序存储
器。每个中断在程序存储器中有一个固定的起始地址,中断使 CPU 跳到这个地址运行中断服务程序。举例来说,
外部中断 0 被指定到地址 0003H,如果使用外部中断 0,那么它的中断服务程序一定是从 0003H 开始的。如果中
断未被使用,那么这些地址就可以被一般的程序使用。
中断服务程序的起始地址之间有 8 字节的地址间隔:外部中断 0,0003H;定时器 0,000BH;外部中断 1,
0013H;定时器 1,001BH 等等。如果中断服务程序足够短,它完全可以放在这 8 字节的空间中。如果其他的中断
也被使用的话,较长的中断服务程序可以通过一条跳转指令越过后面的中断服务起始地址。
图 6–1. 程序存储器
Program
Memory
64K: FFFFH
Interrupt
Locations
001BH
0013H
000BH
8 bytes
0003H
Reset
34
0000H
MA82G5Cxx 数据手册
MEGAWIN
6.2. 片内数据存储器 RAM
图 6–2 向 MA82G5C64 使 用 者 展 示 了 内 部 和 外 部 数 据 存 储 器 的 空 间 划 分 。内部数据存储器被划分为三部
分,通常被称为低 128 字节 RAM ,高 128 字节 RAM 和 128 字节 SFR 空间。内部数据存储器的地址线只有 8 位
宽,因此地址空间只有 256 字节。SFR 空间的地址高于 7FH,用直接地址访问;而用间接访问的方法访问高 128
字节的 RAM。这样虽然 SFR 和高 128 字节 RAM 占用相同的地址空间(80H—FFH),但他们实际上是分开的。
如图 6–3 所示,低 128 字节 RAM 与所有 80C51 一样。最低的 32 字节被划分为 4 组每组 8 字节的寄存器组。指
令中称这些寄存器为 R0 到 R7。程序状态字 (PSW) 中的两位用于选择哪组寄存器被使用。这使得程序空间能够被
更有效的使用,因为对寄存器访问的指令比使用直接地址的指令短。 接下来的 16 字节是可以位寻址的存储器空
间。80C51 的指令集包含一个位操作指令集,这区域中的 128 位可以被这些指令直接使用。位地址从 00H 开始到
7FH 结束。
所有的低 128 字节 RAM 都可以用直接或间接地址访问,而高 128 字节 RAM 只能用间接地址访问。
图 6–4给出了特殊功能寄存器 (SFR) 的概览。SFR包括端口寄存器,定时器和外围器件控制器,这些寄存器只
能用直接地址访问。SFR 空间中有16个地址同时支持位寻址和直接寻址。可以位寻址的 SFR 的地址末位是0H
或8H。
为了访问外部数据存储器,EXTRAM 位必须置 1。访问外部数据存储器可以用 16 位寻址(使用‗MOVX@DPTR‘)
或者 8 位寻址(使用‘MOVX @Ri‘),如下所示:
用 8 位地址访问
8 位寻址通常和一个或多个 I/O 口联合在一起去分页访问 RAM。如果正在使用 8 位寻址,在整个寻址周期期
间,端口 2 寄存器的内容继续保留端口 2 引脚的值。这有助于分页访问。图 7-5 展示了访问外部 RAM 达到 2K
字节的一个硬件配置范例。在复用模式下,端口 0 复用地址/数据连接到 RAM,端口 2 的三根线用于片选 RAM.
CPU 产生 nRD 和 nWR(P3.6 和 P3.7)去选通存储器。当然也可以用其他 I/O 口替代 P2 去片选 RAM。
用 16 位地址访问
16 位寻址址通常用来访问达到 64K 字节的外部数据存储器。图 7-6 展示了访问外部 RAM 达到 64K 字节的一个
硬件配置范例。每当有 16 位寻址时,除了 P0,nRD 和 nWR 之外,端口 2 输出地址的高八位,并且在整个读写
周期保持住。
无地址复用模式访问
无地址复用模式用于访问无 MCU 地址限制的外部数据存储器。图 7-7 展示了访问外部 RAM 的一个硬件配置范
例。它支持先进先出结构的存储器,如 NAND 闪存。每当选择无地址模式时,除了 P0,nRD 和 nWR 之外,寻
址阶段被跳开,这样可以提高访问速度。
无论如何,地址的低字节和数据字节在 P0 口是时分复用的。ALE (地址锁存使能) 被用来使地址字节被外部锁存器
锁存,地址字节在 ALE 负跳变时有效。在写周期中,数据在 nWR 有效之前在 P0 口出现,直到 nWR 无效的时候
消失。在读周期中,数据在 nRD 信号无效之前被 P0 口接受。在任何外部存储器访问期间,CPU 向 P0 口锁存器
(特殊功能寄存器)写 0FFH,以消除任何可能被锁存的数据。
访问片上扩展存储器 (XRAM), EXTRAM 位应该被设为 0。图 6–22,,这 3840 字节的 XRAM (0000H to 0EFFH)
通过外部访问指令 MOVX 间接存取。 对 XRAM 的访问没有任何地址信号、地址锁存信号和读写控制信号的输出。
这意味着 P0、 P2、 P4.6(ALE)、 P3.6 (nWR) 和 P3.7 (nRD) 在访问 XRAM 期间保持不变。
MEGAWIN
MA82G5Cxx 数据手册
35
图 6–2. 数据存储器
External Data Memory
FFFFH
Addressable by
Indirect External
Addressing
Off-Chip
XRAM
Area
Internal 256 Bytes
SRAM
On-chip expanded
RAM (XRAM)
SFRs
FFH
FFH
Addressable by
Indirect Addressing
Only
Upper 128
Bytes
Using MOVX
without
EXTRAM case
Addressable by
Direct Addressing
(SFRs)
80H
7FH
80H
Addressable by
Indirect External
Addressing
Addressable by
Indirect External
Addressing
On-Chip
XRAM:
3840B
Addressable by
Direct and Indirect
Addressing
Lower 128
Bytes
0EFFH
Using MOVX
only with
EXTRAM = 0
00H
Using MOVX
only with
EXTRAM = 1
0000H
图 6–3. 内部 RAM 的低 128 字节
Lower 128 Bytes of
internal SRAM
7FH
30H
2FH
Bit Addressable
20H
Four banks of 8
registers R0~R7
36
18H
Bank 3
1FH
10H
Bank 2
17H
08H
Bank 1
0FH
00H
Bank 0
07H
MA82G5Cxx 数据手册
Reset value of
Stack Pointer
MEGAWIN
图 6–4. 特殊功能寄存器 SFR 空间
FFH
E0H
ACC
D0H
PSW
B0H
Port 3
A0H
Port 2
90H
Port 1
80H
Port 0
1. I/O ports are register mapping
2. Addresses that end in 0H or
8H are also bit-addressable
- I/O ports
- PSW
- Accumulator
(etc.)
图 6–5. 8 位地址访问
图 6–6. 16 位地址访问
图 6–7. 无地址复用访问
MEGAWIN
MA82G5Cxx 数据手册
37
6.3. 片上扩展 RAM (XRAM)
访问片上扩展 RAM (XRAM),参考图 6–2,这 3840 字节的 XRAM (0000H to 0EFFH) 可以被外部移动指令―MOVX
@Ri‖ 和 ―MOVX @DPTR‖间接访问, 在 KEIL-C51 编译器中,使用―pdata‖或―xdata‖声明变量分配到 XRAM 中,
编译后,被―pdata‖或―xdata‖声明过的变量将分别通过―MOVX @Ri‖或―MOVX @DPTR‖指令进行存取,这样
MA82G5C64 硬体才能正确访问 XRAM。
38
MA82G5Cxx 数据手册
MEGAWIN
6.4. 片外扩展数据存储器访问
AUXR1: 辅助控制寄存器 1
SFR 页 = 0~F
SFR 地址
= 0xA2
7
6
5
KBIPS1
KBIPS0
SPIPS0
R/W
R/W
R/W
4
S1PS1
POR+复位值 = 0000-0000
3
2
1
EXTRAM
S1PS0
T01PS0
R/W
R/W
R/W
0
DPS
R/W
R/W
1
RWS1
0
RWS0
R/W
R/W
Bit 1: EXTRAM, 外部数据 RAM 使能
0: 使能访问片上扩展数据存储器(XRAM 3840 字节)
1: 禁止访问片上扩展数据存储器 XRAM
STRETCH: MOVX 延长寄存器
SFR 页 = 0~F
SFR 地址
= 0x8F
7
6
5
EMAI1
EMAI0
ALES1
R/W
R/W
R/W
4
ALES0
POR+复位值 = 0X00-0000
3
2
RWSH
RWS2
R/W
R/W
R/W
Bit 7~6: EMAI1~0 配置外部数据存储器访问接口模式如下::
EMAI[1:0]
0 0
0 1
1 0
1 1
外部数据存储器访问模式设定
8 位数据访问复用地址/数据
16 位数据访问复用地址/数据
8 位数据访问无地址复用
16 位数据访问无地址复用
Bit 5~4: ALES[1:0], EMAI ALE 脉宽选择位,仅当 EMAI 为复用模式时有效
00: ALE 高和ALE 低脉冲宽度为1个SYSCLK周期
01: ALE 高和ALE 低脉冲宽度为2个SYSCLK周期
10: ALE 高和ALE 低脉冲宽度为3个SYSCLK周期
11:ALE 高和 ALE 低脉冲宽度为 4 个 SYSCLK 周期
Bit 3: RWSH, EMAI 读/写脉冲设置/保持时间控制
0: /RD 和 /WR 命令设置/保持时间为 1 个 SYSCLK 周期
1: /RD 和 /WR 命令设置/保持时间为 2 个 SYSCLK 周期
Bit 2~0: RWS[2:0], EMAI 读/写命令脉冲宽度设置位
000: /RD 和 /WR 脉冲宽度为 1 个 SYSCLK 周期
001: /RD 和 /WR 脉冲宽度为 2 个 SYSCLK 周期
010: /RD 和 /WR 脉冲宽度为 3 个 SYSCLK 周期
011: /RD 和 /WR 脉冲宽度为 4 个 SYSCLK 周期
100: /RD 和 /WR 脉冲宽度为 5 个 SYSCLK 周期
101: /RD 和 /WR 脉冲宽度为 6 个 SYSCLK 周期
110: /RD 和 /WR 脉冲宽度为 7 个 SYSCLK 周期
111: /RD 和 /WR 脉冲宽度为 8 个 SYSCLK 周期
AUXR2: 辅助寄存器 2
MEGAWIN
MA82G5Cxx 数据手册
39
SFR 页 = 0~F
SFR 地址
= 0xA3
7
6
ALEINV
ADDRO
R/W
R/W
5
--
4
--
W
W
复位值 = 0000-0000
3
2
T1X12
T0X12
R/W
R/W
1
T1CKOE
0
T0CKOE
R/W
R/W
Bit 7: ALEINV,
0: 保持 ALE 输出高脉冲
1: ALE 反向输出低脉冲
Bit 6: ADDRO,
0: 无地址复用模式下禁止在端口上输出地址.
1: 无地址阶段模式下,在 P5[7:0]输出 ADD[7:0]和在 P6[7:2]与 P7[1:0]上输出 ADD[15:8]
AUXR3: 辅助寄存器 3
SFR 页 = 0 only
SFR 地址
= 0xA4
7
6
STAF
STOF
R/W
R/W
5
BPOC1
R/W
复位值 = 0000-0000
4
3
2
BPOC0
ALEPS0
TWIPS1
R/W
R/W
R/W
1
TWIPS0
0
T2PS0
R/W
R/W
1
DATH.1
0
DATH.0
R/W
R/W
Bit 3: ALEPS0, ALE 端口选择 0.
ALEPS0
ALE
0
P4.6
1
P4.7
DATH: 数据高字节
SFR 页 = 0~F
SFR 地址
= 0xBA
7
6
DATH.7
DATH.6
R/W
40
R/W
5
DATH.5
4
DATH.4
R/W
R/W
复位值 = 0000-0000
3
2
DATH.3
DATH.2
R/W
MA82G5Cxx 数据手册
R/W
MEGAWIN
6.4.1. 8 位地址复用模式用于 MOVX 访问 8 位数据
Muxed 8-bit Address mode for 8-bit Data Write
ADDR[15:8]
AD[7:0]
P2
P0
8-bit Low Address from R0 or R1
ALES[1:0]
ALE
P0
Write Data
ALES[1:0]
P4.6
P4.6
RWSH
nWR
P3.6
nRD
P3.7
RWS[2:0]
RWSH
P3.6
P3.7
MOVX Cycle
Muxed 8-bit Address mode for 8-bit Data Read
ADDR[15:8]
AD[7:0]
P2
P0
8-bit Low Address from R0 or R1
ALES[1:0]
ALE
P0
Read Data
ALES[1:0]
P4.6
P4.6
RWSH
RWS[2:0]
RWSH
nRD
P3.7
P3.7
nWR
P3.6
P3.6
MOVX Cycle
MEGAWIN
MA82G5Cxx 数据手册
41
6.4.2. 8 位地址复用模式用于 MOVX 访问 16 位数据
Muxed 8-bit Address mode for 16-bit Data Write
DATA[15:8]
AD[7:0]
P2
P0
P2
Write Data
P0
8-bit Low Address from R0 or R1
ALES[1:0]
ALE
8-bit High Data from DATH
ALES[1:0]
P4.6
P4.6
RWSH
nWR
P3.6
nRD
P3.7
RWS[2:0]
RWSH
P3.6
P3.7
MOVX Cycle
Muxed 8-bit Address mode for 16-bit Data Read
DATA[15:8]
P2
AD[7:0]
P0
8-bit Low Address from R0 or R1
ALES[1:0]
ALE
8-bit High Data to DATH
P2
Read Data
P0
ALES[1:0]
P4.6
P4.6
RWSH
RWS[2:0]
RWSH
nRD
P3.7
P3.7
nWR
P3.6
P3.6
MOVX Cycle
42
MA82G5Cxx 数据手册
MEGAWIN
6.4.3. 16 位地址复用模式用于 MOVX 访问 8 位数据
Muxed 16-bit Address mode for 8-bit Data Write
ADDR[15:8]
P2
AD[7:0]
P0
8-bit Low Address from DPL
ALES[1:0]
ALE
P2
8-bit High Address from DPH
P0
Write Data
ALES[1:0]
P4.6
P4.6
RWSH
nWR
P3.6
nRD
P3.7
RWS[2:0]
RWSH
P3.6
P3.7
MOVX Cycle
Muxed 16-bit Address mode for 8-bit Data Read
ADDR[15:8]
P2
AD[7:0]
P0
P0
Read Data
8-bit Low Address from DPL
ALES[1:0]
ALE
P2
8-bit High Address from DPH
ALES[1:0]
P4.6
P4.6
RWSH
RWS[2:0]
RWSH
nRD
P3.7
P3.7
nWR
P3.6
P3.6
MOVX Cycle
MEGAWIN
MA82G5Cxx 数据手册
43
6.4.4. 16 位地址复用模式用于 MOVX 访问 16 位数据
Muxed 16-bit Address mode for 16-bit Data Write
AD[15:8]
P2
8-bit High Address from DPH
8-bit High Data from DATH
P2
AD[7:0]
P0
8-bit Low Address from DPL
Write Data
P0
ALES[1:0]
ALE
ALES[1:0]
P4.6
P4.6
RWSH
nWR
P3.6
nRD
P3.7
RWS[2:0]
RWSH
P3.6
P3.7
MOVX Cycle
Muxed 16-bit Address mode for 16-bit Data Read
AD[15:8]
P2
8-bit High Address from DPH
8-bit High Data to DATH
P2
AD[7:0]
P0
8-bit Low Address from DPL
Read Data
P0
ALES[1:0]
ALE
ALES[1:0]
P4.6
P4.6
RWSH
RWS[2:0]
RWSH
nRD
P3.7
P3.7
nWR
P3.6
P3.6
MOVX Cycle
44
MA82G5Cxx 数据手册
MEGAWIN
6.4.5. 无地址模式用于 MOVX 访问 8 位数据
No Address Phase mode for 8-bit Data Write
ADDR[15:8]
DATA[7:0]
P2
P0
P0
Write Data
RWSH
RWS[2:0]
RWSH
nWR
P3.6
P3.6
nRD
P3.7
P3.7
MOVX Cycle
No Address Phase mode for 8-bit Data Read
ADDR[15:8]
DATA[7:0]
P2
P0
P0
Read Data
RWSH
RWS[2:0]
RWSH
nRD
P3.7
P3.7
nWR
P3.6
P3.6
MOVX Cycle
MEGAWIN
MA82G5Cxx 数据手册
45
6.4.6. 无地址模式用于 MOVX 访问 16 位数据
No Address Phase mode for 16-bit Data Write
DATA[15:8]
P2
8-bit High Data from DATH
P2
DATA[7:0]
P0
Write Data
P0
RWSH
RWS[2:0]
RWSH
nWR
P3.6
P3.6
nRD
P3.7
P3.7
MOVX Cycle
No Address Phase mode for 16-bit Data Read
DATA[15:8]
P2
8-bit High Data to DATH
P2
DATA[7:0]
P0
Read Data
P0
RWSH
RWS[2:0]
RWSH
nRD
P3.7
P3.7
nWR
P3.6
P3.6
MOVX Cycle
6.4.7. ADDRO 模式用于 MOVX 16 地址访问
6.4.8. ADDRO 模式用于 MOVX 16 地址访问
46
MA82G5Cxx 数据手册
MEGAWIN
6.5. 关于 C51 编译器的声明标识符
C51 编译器的声明识别符与 MA82G5C64 存储空间的对应关系如下:
data
128 字节的内部数据存储空间 (00h~7Fh)。使用除 MOVX 和 MOVC 以外的指令,可以直接或间接的访问。全部或
部分的堆栈可能保存在此区域中。
idata
间接数据。256 字节的内部数据存储空间 (00h~FFh) 使用除 MOVX 和 MOVC 以外的指令间接访问。全部或部分的
堆栈可能保存在此区域中。此区域包括 data 区 和 data 区以上的 128 字节。
sfr
特殊功能寄存器。CPU 寄存器和外围部件控制/状态寄存器,只能通过直接地址访问。
xdata
外部数据或片上的扩展 RAM (XRAM);通过―MOVX @DPTR‖指令访问标准 80C51 的 64K 存储空间。
MA82G5C64 有 3840 字节的片上 xdata 存储空间。
pdata
分页的外部数据(256 字节) 或片上的扩展 RAM(XRAM):重叠的 256 字节的存储器地址通过―MOVX @Ri‖指令
访问。MA82G5C64 有 256 字节片上 pdata 存储器它与片上 xdata 存储器共享。
code
64K 字节程序存储空间。通过―MOVC @A+DTPR‖访问,作为程序部分被读取。MA82G5C64 有 64K 字节的片上
程序存储器。
MEGAWIN
MA82G5Cxx 数据手册
47
7. 双数据指针寄存器(DPTR)
如图 7–1 所示的双 DPTR 结构是能让芯片指定外部数据存储器的定位地址的一种方法。有两个 16 位 DPTR 寄存
器,和一个称作为 DPS(AUXR1.0)的控制位,允许在程序代码和外部存储器之间的切换。
图 7–1. 双 DPTR
DPTR1
(83h)
(82h)
DPH
DPL
DPH
DPL
External Data Memory
DPS=1
DPS
DPS=0
AUXR1(A2H)
DPTR0
DPTR 指令
使用 DPS 位的六条指令参考 DPTR 的当前选择,如下:
INC DPTR
MOV DPTR,#data16
MOVC A,@A+DPTR
MOVX A,@DPTR
MOVX @DPTR,A
JMP @A+DPTR
AUXR1: 辅助寄存器 1
SFR 页 = 0~F
SFR 地址
= 0xA2
7
6
KBIPS1
KBIPS0
R/W
R/W
;数据指针加 1
;DPTR 加载 16 位常量
;将代码字节移动到 ACC
;移动外部 RAM(16 位地址)到 ACC
;移动 ACC 到外部 RAM(16 位地址)
;直接跳转到 DPTR
5
SPIPS0
4
S1PS1
R/W
R/W
POR+复位值 = 0000-0000
3
2
1
S1PS0
T01PS0
EXTRAM
R/W
R/W
R/W
0
DPS
R/W
Bit 0: DPS, DPTR 选择位,用来在 DPTR0 和 DPTR1 之间切换
0: 选择 DPTR0.
1: 选择 t DPTR1.
DPS
0
1
48
选择 DPTR
DPTR0
DPTR1
MA82G5Cxx 数据手册
MEGAWIN
8. 系统时钟
系统时钟有 4 个时钟来源:内部快频 RC 震荡器 (IHRCO),外部晶振 ,内部慢频 RC 震荡器(ILRCO) 和外部频率
输入。如图 8–1 所示 MA82G5C64 系统时钟结构。
MA82G5C64 总是由 IHRCO 12MHz 启动,并且保留晶振脚作为 P6.0/P6.1 通用 IO 口功能。软件可以根据应用要
求自由切换 4 种时钟的任意一种作为系统时钟, 但必须等时钟稳定后才能切换。如果软件选择外部时钟模式, 脚
P6.0 和 P6.1 分配给 XTAL2 和 XTAL1,并且 P6.0/P6.1 普通 I/O 功能失效。 在外部时钟输入模式 (ECKI), 时钟
源来自 P6.0 , P6.1 仍然是普通 I/O 口。
在置位 XTALE (CKCON2.5) 使能外部晶振后,XTOR(CKCON1.7)被硬件置位表示外部晶振已经稳定可以软件切换
给 OSCin 使用了。XTOR 是仅读位。在切换外部晶振作为系统时钟源之前,MCU 必须轮询它。
内建 IHRCO 提供两种频率供软件选择。通过软件置位 AFS(CKCON0.7)选择另一个频率 11.0592MHz。 IHRCO
的 12MHz 和 11.059 MHz 都可以给系统时钟提供高精度的频率。详细的 IHRCO 性能,请参考章节 (―34.4
IHRCO 特性‖)。在 IHRCO 或 ILRCO 模式, P6.0 可以作为内部 MCK 或 2 分频时钟(MCK/2)输出或 4 分频时钟
(MCK/4)输出给其他系统时钟源应用。
内置 ILRCO 提供约 32KHz 的低功耗,低速频率给 WDT 和系统时钟源使用。对于需低功耗运行的软件,MCU 可以选
择 ILRCO 作为系统时钟源。若要查找详细的 IHRCO 性能,请参考章节 ―34.5 ILRCO 特性‖)。在 ILRCO 模式下,
可以将 P6.0 配置为内部 MCK 输出或 MCK2 和 MCK4 为系统中的应用。
MA82G5C64 包含了一个时钟倍频器(CKM)产生高速时钟用于系统时钟源。 MA82G5C64 的 CKM 应用如 图 8–1
所示,它的典型输入频率是 6MHz。在使能 CKM 之前,软件必须配置 CKMIS1~0(CKCON.5~4)获得适当的 CKMI
频率用作 CKM 输入源。 CKM 可以产生 CKMHI 的 4/5.33/8 倍的频率,通过设置 MCKS1~0 (CKCON2.3~2) 选择
不同的 CKM 输出,为 MCU 提供高速操作,而无需高频时钟源。要找到详细的 CKM 性能,请参考章节 ―34.6CKM
特性‖).通过时钟分配器分配 4 种时钟源的一种作为系统时钟(SYSCLK),如 图 8–1 所示。用户能通过设置
CKCON0 寄存器的 SCKS2~SCKS0 位获得适当的系统时钟。
MEGAWIN
MA82G5Cxx 数据手册
49
8.1. 时钟结构
图 8–1 展示了 MA82G5C64 的主要时钟系统。系统时钟来自于外部振荡电路或内部振荡器。
图 8–1. 系统时钟
MCDRE
System Reset
(SIFIE.6)
MCDFIE
System Flag Interrupt
(SIFIE.5)
ESF
enable
(EIE1.3)
MCD
Module
MCDF
Clear OSCS[1:0] to "00"
HSE
(PCON1.5)
Set HSE to ‖1‖ if FCPUCLK > 6MHz
(DCON0.7)
12MHz
AFS
XCKS[5:0]
XTOR
11.059MHz
0
ISP/IAP Logic
(CKCON1.5~0)
CCKS
1
(CKCON0.3)
(CKCON0.7)
(CKCON1.7)
IHRCOE
enable
(CKCON2.4)
OSCin
0
1
XTALE
enable
(CKCON2.5)
0
XTAL2 (P6.0)
XTAL1 (P6.1)
1
OSCin
2
3
0~25MHz
ILRCO
¸1
¸2
¸4
¸6
2
CKMI x 4
CKMI
(5~7MHz)
0~40MHz
50
MCKDO
CPUCLK
(CPU Clock)
(25MHz Max.)
SCKS[2:0]
SYSCLK
(CKCON0.2~0)
(System Clock)
(50MHz Max.)
To PCA Module
CKMI x 5.33
(MCKDO, 50MHz Max.)
CKMI x 8
To PCA Module
X2
(CKMIX16, 100MHz Max.)
(CKCON0.6)
OSCS[1:0]
(CKCON2.1~0) 00: OSCin = IHRCO (default)
01: OSCin = XTAL
10: OSCin = ILRCO
11: OSCin = ECKI
Clock
Multiplier
3
MCK
¸1
¸2
¸4
¸8
32KHz
ENCKM
P6.0 (ECKI)
¸1
¸2
Clock default path
IHRCO
CKMIS[1:0]
(CKCON0.5~4)
enable
MCKS[1:0]
(CKCON2.3~2)
MCKD[1:0]
00: OSCin (default)
01: 24MHz (if CKMI=6MHz) (CKCON3.3~2)
00: PCK = MCK (default)
10: 32MHz (if CKMI=6MHz)
01: PCK = MCK/2
11: 48MHz (if CKMI=6MHz)
10: PCK = MCK/4
11: PCK = MCK/8
00: if OSCin = 5~7MHz
01: if OSCin = 10~14MHz (default)
10: if OSCin = 20~28MHz
11: if OSCin = 30~42MHz
MA82G5Cxx 数据手册
P6.0
SFR
0
1
¸2
¸4
P60OC[1:0]
(AUXR0.7~6)
2
P6.0(XTAL2)
3
00: P6.0 GPIO
01: MCK output
10: MCK/2 output
11: MCK/4 output
MEGAWIN
8.2. 时钟寄存器
CKCON0: 时钟控制寄存器 0
SFR 页 = 0~F & P
SFR 地址
= 0xC7
7
6
5
AFS
ENCKM
CKMIS1
R/W
R/W
R/W
4
CKMIS0
R/W
复位值 = 0001-0000
3
2
CCKS
SCKS2
R/W
R/W
1
SCKS1
0
SCKS0
R/W
R/W
1
XCKS1
0
XCKS0
R/W
R/W
Bit 7: AFS, 交替频率选择.
0: 选择 IHRCO 为 12MHz.
1: 选择 IHRCO 为 11.059MHz.
Bit 6: ENCKM, 使能时钟倍频器 (X8)
0: 禁止 X8 时钟倍频器
1: 使能 X8 时钟倍频器
Bit 5~4: CKMIS1 ~ CKMIS0, 时钟倍频器输入选项
CKMIS[1:0]
时钟倍频器输入选项
0 0
OSCin/1 (当 OSCin = 5 ~ 7MHz)
0 1
OSCin/2 (当 OSCin = 10 ~ 14MHz)
1 0
OSCin/4 (当 OSCin = 20 ~ 28MHz)
1 1
OSCin/6 (当 OSCin = 30 ~ 42MHz)
Bit 3: CCKS, CPU 时钟选择.
0: 选择 SYSCLK 为 CPU 时钟
1: 选择 SYSCLK/2 为 CPU 时钟
Bit 2~0: SCKS2 ~ SCKS0, 可编程系统时钟选项
SCKS[2:0]
系统时钟(SYSCLK)
0 0 0
MCKDO/1
0 0 1
MCKDO/2
0 1 0
MCKDO/4
0 1 1
MCKDO/8
1 0 0
MCKDO/16
1 0 1
MCKDO/32
1 1 0
MCKDO/64
1 1 1
MCKDO/128
CKCON1: 时钟控制寄存器 1
SFR 页 = 0~F & P
SFR 地址
= 0xBF
7
6
5
XTOR
-XCKS5
R
W
R/W
4
XCKS4
R/W
复位值 = 0x00-1011
3
2
XCKS3
XCKS2
R/W
R/W
Bit 7: XTOR, 晶振准备位。仅读
0: 晶振没有准备好
1: 晶振准备好了。当使能 XTALE , XTOR 报告晶振已经达到了启动数值。
Bit 6: 保留位。 写保留位。 写 CKCON0 时,这位必须写―0‖ 。
Bit 5~0: 根据 OSCin 频率值设置 ISP/IAP 操作 时基,依照 OSCin 这 6 位写恰当值参考如下。
[XCKS5~XCKS0] = OSCin – 1, 当 OSCin=1~40 (MHz).
MEGAWIN
MA82G5Cxx 数据手册
51
例如,
(1) 如果 OSCin=12MHz, 则 [XCKS5~XCKS0] 填入 11, 也就是, 00-1011B.
(2) 如果 OSCin=6MHz, 则 [XCKS5~XCKS0] 填入 5, 也就是, 00-0101B.
OSCin
1MHz
2MHz
3MHz
4MHz
……
……
38MHz
39MHz
40MHz
XCKS[5:0]
00-0000
00-0001
00-0010
00-0011
……
……
10-0101
10-0110
10-0111
CKCON2: 时钟控制寄存器 2
SFR 页 = P Only
SFR 地址
= 0x40
7
6
5
XTGS1
XTGS0
XTALE
R/W
R/W
4
IHRCOE
R/W
R/W
复位值 = 0101-0000
3
2
MCKS1
MCKS0
R/W
R/W
1
OSCS1
0
OSCS0
R/W
R/W
Bit 7~6: XTGS1~XTGS0, OSC 驱动控制寄存器.
增益定义
增益应用于 32.768K
增益应用于 2MHz ~ 25MHz
保留
XTGS1, XTGS0
0, 0
0, 1
Others
Bit 5: XTALE, 外部晶振(XTAL) 使能
0: 禁止 XTAL 振荡电路。 此时,XTAL2 和 XTAL1 作为 P6.0 和 P6.1 使用。
1: 使能 XTAL 振荡电路。 如果软件置位该位,软件必须轮询 XTOR (CKCON1.7)是否为 1,用来标明晶振是否为
OSCin 时钟选择准备好。
Bit 4: IHRCOE, 内部高频 RC 振荡使能。
0: 禁止内部高频 RC 振荡器。
1: 使能内部高频 RC 振荡器。如果软件设置这个位,在 IHRCOE 位使能后,必须等待 32 us IHRCOE 才能稳定输
出。
Bit 3~2: MCKS[1:0], MCK 时钟源选择.
MCKS[1:0]
0
0
1
1
0
1
0
1
MCK 时钟源选择
OSCin
CKMI x 4 (ENCKM =1)
CKMI x 5.33 (ENCKM =1)
CKMI x 8 (ENCKM =1)
OSCin =12MHz
CKMIS = [01]
12MHz
24MHz
32MHz
48MHz
OSCin =11.059MHz
CKMIS = [01]
11.059MHz
22.118MHz
29.491MHz
44.236MHz
Bit 1~0: OSCS[1:0], OSCin 时钟源选择.
OSCS[1:0]
OSCin 时钟源选择
0 0
IHRCO
0 1
XTAL
1 0
ILRCO
1 1
ECKI, 外部时钟输入 (P6.0) 作为 OSCin
52
MA82G5Cxx 数据手册
MEGAWIN
CKCON3: 时钟控制寄存器 3
SFR 页 = P only
SFR 地址
= 0x41
7
6
5
WDTCS1 WDTCS0
FWKP
R/W
R/W
AUXR0: 辅助寄存器 0
SFR 页 = 0~F
SFR 地址
= 0xA1
7
6
P60OC1
P60OC0
R/W
R/W
复位值 = 0000-0010
3
2
MCKD1
MCKD0
4
--
R/W
W
R/W
5
P60FD
4
T0XL
R/W
R/W
R/W
复位值 = 0000-0000
3
2
P4FS1
P4FS0
R/W
R/W
1
MCDS1
0
MCDS0
R/W
R/W
1
INT1H
0
INT0H
R/W
R/W
Bit 7~6: P60 输出配置控制位 1 和 0,这两位仅仅当内部振荡(IHRCO 或 ILRCO)被选择为系统时钟源时有效。
这种情况,在晶振模式, P6.0 和 P6.1 改变为 XTAL2 和 XTAL1 功能,在外部时钟输入模式,P6.0 专用于时钟输
入口。在内部振荡条件下, P6.0 为普通 I/O 或时钟源发生器提供下列选项, 当 P60OC[1:0] 索引为非 P6.0 GPIO
功能时,P6.0 将驱动内部 RC 振荡器输出为其它设备提供时钟源。
P60OC[1:0]
P60 function
I/O mode
00
P60
By P6M0.0
01
MCK
By P6M0.0
10
MCK/2
By P6M0.0
11
MCK/4
By P6M0.0
P6.0 作为时钟输出功能时, 建议设置 P6M0.0 为―1‖ 来选择 P6.0 为推挽输出模式。
Bit 5: P60FD, P6.0 快速驱动标志
0: P6.0 默认驱动输出
1: P6.0 快速驱动输出使能。若 P6.0 被配置为时钟输出, 当 P6.0 输出频率大于 12MHz (5V) 或者大于 6MHz
(3V) 的应用时使能此位。
DCON0: 设备控制寄存器 0
SFR 页 = P Only
SFR 地址
= 0x4C
7
6
HSE
IAPO
R/W
R/W
5
--
4
--
W
W
POR = 0000-x011
3
2
-IORCTL
W
R/W
1
RSTIO
0
OCDE
R/W
R/W
Bit 7: HSE, 高速工作使能
0: 选择 MCU 运行在低速模式,减慢内部电路速度,从而降低功耗。
1: 如果 FSYSCLK > 24MHz.,使能 MCU 全速运行。在 SYSCLK 选择高频时钟(>24MHz)之前,软件必须置位 HSE 切
换高速运行的内部电路
MEGAWIN
MA82G5Cxx 数据手册
53
9. 看门狗定时器(WDT)
9.1. WDT 结构
看门狗定时器 (WDT) 用来使程序从跑飞或死机状态恢复的一个手段。WDT 由一个 9 位独立定时器、一个 7 分频器
和一个控制寄存器(WDTCR)组成。 图 9–1 显示 MA82G5C64 的 WDT 结构框图。
当 WDT 使能,时钟源来自 32KHz ILRCO。WDT 溢出会设置位 WDTF PCON1.0, 也能产生中断通过使能位
WDTFIE (SFIE.0) 和 ESF (EIE1.3), 溢出也能触发系统复位通过设置位 WREN (WDTCR.7) 。软件可以在溢出之
前在 CLRW 位 (WDTCR.4)上写―1‖ 来清除它,可以阻止 WDT 溢出。
一旦 WDT 使能通过设置位 ENW, 将没有办法使之失效除非上电复位或在 page-p SFR 覆盖 ENW,能清除位
ENW。 WDTCR 会保持以前的值不会改变在硬件(RST-pin)复位、软件复位和 WDT 复位后 。
图 9–1. 看门狗定时器
ILRCO (~32KHz)
(0,0)
XTAL2/ECKI (P6.0)
(0,1)
SYSCLK/12
(1,0)
(Timer4 overflow) T4OF
(1,1)
WDTPS
(WDT prescaler output)
EIE1.ESF
8-bits prescaler
1/256
1/128
1/64
1/32
1/16
1/8
1/4
1/2
WDTCS[1:0]
(CKCON3[7:6])
PCON0.PD
SFIE.WDTFIE
8-bits
WDT
WDT
Interrupt
overflow
WDTF
PCON1.0
WDTOF
PCON0.IDL
(WDT overflow)
WDT
Reset
WDTCR Register
WREN
NSW
ENW
CLRW
WIDL
PS2
PS1
PS0
WREN
9.2. WDT 在掉电模式和空闲模式期间
空闲模式, 位标志 WIDL (WDTCR.3) 决定 WDT 是否计数。 设置这个位能让 WDT 在空闲模式一直计数。如果硬
件选项 WDTRCO 使能, WDT 会一直保持计数不管位 WIDL 设置情况 。
掉电模式, ILRCO 不会停如果 NSW (WDTCR.6) 使能。 MCU 进入 Watch 模式,这会让 WDT 保持计数即使掉电
模式下(Watch Mode)。WDT 溢出后,软件能设置进入中断或复位 唤醒 CPU。
54
MA82G5Cxx 数据手册
MEGAWIN
9.3. WDT 寄存器
WDTCR: 看门狗控制寄存器
SFR 页 = 0~F & P
SFR 地址
= 0xE1
7
6
5
WREN
NSW
ENW
R/W
R/W
R/W
4
CLRW
POR = XXX0-XXXX (0000-0111)
3
2
1
WIDL
PS2
PS1
R/W
R/W
R/W
R/W
0
PS0
R/W
Bit 7: WREN, WDT 复位使能标志, 初始值随硬件选项 WRENO。
0: WDT 溢出不产生复位 。 WDT 溢出标志 WDTF 可以供软件检测或触发中断。
1: WDT 溢出产生系统复位。 一旦 WREN 已经设置, 不能用软件在 page 0~F 中清除,但在 page P 中, 软件能修
改其值 “0” 或 “1”。
Bit 6: NSW. 不停止的 WDT 标志。 初始值随硬件选项 NSWDT。
0: WDT 在掉电模式停止计数 MCU。
1: WDT 在掉电模式(Watch Mode)或空闲模式下永远不会停止计数 MCU。 一旦 NSW 已经设置, 不能用软件在常
规页中清除, 但在 page P 中, 软件能修改其值 “0” 或 “1”。
Bit 5: ENW. 使能 WDT 标志。
0: 禁止 WDT 运行。此位仅仅能被 POR 清除。
1: 使能 WDT 。 一旦 ENW 位被设置,不能用软件在常规页中清除, 但在 page P 中, 软件能修改其值 “0” 或
“1”。
Bit 4: CLRW. WDT 清零位。
0: 写 ―0‖到此位 WDT 没有任何操作.
1: 写 ―1‖到此位会清除 9 位 WDT 计数器到 000H. 注意此位没有必须写―0‖清除.当此位设置―1‖时清除 WDT 重新计数.
Bit 3: WIDL. WDT 空闲模式控制位。
0: MCU 在空闲模式下 WDT 停止计数。
1: MCU 在空闲模式下 WDT 保持计数。
Bit 2~0: PS2 ~ PS0, 选择分频器输出作 WDT 基础时钟输入.
WDT 时间
PS[2:0]
分频值
(ILRCO)
0 0 0
1
15 ms
0 0 1
2
31 ms
0 1 0
4
62 ms
0 1 1
8
124 ms
1 0 0
16
248 ms
1 0 1
32
496 ms
1 1 0
64
992 ms
1 1 1
128
1.984 S
CKCON3: 时钟控制寄存器 3
SFR 页 = P only
SFR 地址
= 0x41
7
6
5
WDTCS1 WDTCS0
FWKP
R/W
R/W
R/W
4
--
复位值 = 0000-0010
3
2
MCKD1
MCKD0
W
R/W
R/W
1
MCDS1
0
MCDS0
R/W
R/W
Bit 7~6: WDTCS1~0. WDT 时钟源选择
WDTCS1~0
WDT 时钟源
00
ILRCO
01
XTAL2/ECKI (P6.0)
MEGAWIN
MA82G5Cxx 数据手册
55
10
11
SYSCLK/12
T4OF
(定时器 4 溢出)
PCON1: 电源控制寄存器 1
SFR 页 = 0~F & P
SFR 地址
= 0x97
7
6
5
SWRF
EXRF
MCDF
R/W
R/W
R/W
4
RTCF
R/W
POR = 0000-x000
3
2
-BOF1
W
R/W
1
BOF0
0
WDTF
R/W
R/W
1
BOF0IE
0
WDTFIE
R/W
R/W
Bit 1: WDTF, WDT 溢出标志。
0: 必须由软件写“1” 清除, 软件写―:0‖ 不操作。
1: 当 WDT 溢出时硬件置位此位,写 “1” 清除。
SFIE: 系统标志中断使能寄存器
SFR 页 = 0~F
SFR 地址
= 0x8E
7
6
5
SIDFIE
MCDRE
MCDFIE
R/W
R/W
R/W
POR = 0110-x000
4
3
2
RTCFIE
-BOF1IE
R/W
W
R/W
Bit 0: WDTFIE, 使能 WDTF (PCON1.0) 中断.
0: 禁止 WDTF 中断
1: 使能 WDTF 中断
56
MA82G5Cxx 数据手册
MEGAWIN
9.4. WDT 硬件选项
除了由软件初始化外,WDTCR 寄存器还能在上电的时候由硬件选项 WRENO,NSWDT,HWENW,HWWIDL 和
HWPS[2:0]来自动初始化,这些选项通过通用编程器来编程,如下所叙。
如果 HWENW 编程为―使能‖,则硬件在上电时为 WDTCR 寄存器作如下的初始化工作:(1)位 ENWI 置 1。
(2)载入 WRENO 的值到 WREN 位。(3)载入 NSWDT 的值到 NSW 位。(4)载入 HWWIDL 的值到 WIDL 位。
(5)载入 HWPS【2:0】的值到 PS【2:0】位。
如果 HWENW 和 WDSFWP 都被编程为―使能‖,则硬件仍然会在上电时由 WDT 硬件选项初始化 WDTCR 寄存器的
内容。之后,任何对 WDTCR 的位的写动作都会被忽略,除了写―1‖到 WDTCR.4(CLRW)位来清 WDT 之外,即使
通过对 Page-P SFR 的操作机制也不行。
WRENO:
:使能: 置位 WDTCR.WREN 以使能 WDTF 系统复位功能。
:禁止: 清除 WDTCR.WREN 以禁止 WDTF 系统复位功能。
NSWDT: Non-Stopped WDT
:使能:使能 WDT 在掉电模式也保持运行,设置位 WDTCR.NSW (watch 模式)。
:禁止: 禁止 WDT 在掉电模式下运行,清除位 WDTCR.NSW 。
HWENW: Hardware loaded for ―ENW‖ of WDTCR.
:使能: 上电时自动硬件使能看门狗定时器,并且自动加载 WRENO, NSWDT, HWWIDL 和 HWPS2~0 的值到
WDTCR 中。
:禁止: 上电时看门狗定时器(WDT)不自动使能。
HWWIDL, HWPS2, HWPS1, HWPS0:
当 HWENW 被使能,上电复位时,这四个保险丝位将被载入到特殊功能寄存器 WDTCR 中。
WDSFWP:
:使能: 特殊功能寄存器 WDTCR 中的 WREN, NSW, WIDL, PS2, PS1 和 PS0 软件写保护。
:禁止: 特殊功能寄存器 WDTCR 中的 WREN, NSW, WIDL, PS2, PS1 和 PS0 可被软件改写。
MEGAWIN
MA82G5Cxx 数据手册
57
10. 实时时钟 (RTC)/系统时间
10.1. RTC 结构
MA82G5C64 有一个简单的实时时钟允许使用者不停的记一个准确的时间在其它设备在掉电模式下。实时时钟能用
于唤醒或中断源。实时时钟是一个 21 位的计数器包含 14/15 位的一个预分频器和一个 6 位的重载计数器。当其溢
出,这个计数器会被重新加载并且 RTCF 旗标被设置。预分频器的时钟源来自内部系统时钟(SYSCLK)或者 XTAL
震荡器,条件是 XTAL 震荡器不可以作为系统时钟。图 10–1 显示 MA82G5C64 的 RTC 结构。
RTC 模组输入是 32.768KHz 震荡器可以程控提供时间段为 0.5S 到 64S。这个计数器也可以提供一个定时功能为
SYSCLK/12 或 SYSCLK/2^15 一个短的定时功能或一个长的系统定时功能。最大的系统溢出时间是
SYSCLK/2^21。
如果 XTAL 震荡器被用于系统时钟,P6.0 仍然作为 RTC 时钟输入源。只有上电复位会重置 RTC 和它相应的特殊
功能寄存器为默认值
图 10–1. 实时时钟计数器
( /2^15)
RTCPS[14] (0,0,0,0)
(32.768KHz)
XTAL2/ECKI (P6.0)
(0,0,0)
ILRCO
(0,0,1)
WDTPS
(0,1,0)
WDTOF
(0,1,1)
SYSCLK
(1,0,0)
RTC Prescaler
RTCPS[0:4] RTCPS[5:8]
RTCPS[13] (0,0,0,1)
RTCPS[9:12]
32
RTCPS[12] (0,0,1,0)
16
RTCPS[13:14]
0
RTCPS[11] (0,0,1,1)
16
1
0
15
RTCPS[10] (0,1,0,0)
4
1
0
RTCPS[9] (0,1,0,1)
1
RTCPS[8] (0,1,1,0)
15
RCSS[2:0]
3
RTCPS[7] (0,1,1,1)
RTCPS[6] (1,0,0,0)
RPCS[0]
RPCS[1]
RPCS[2]
RTCPS[5] (1,0,0,1)
RTCPS[4] (1,0,1,0)
RTCCS[3:0]
RCSS[2:0]
RPSC[2:0]
RTCCS[3:2]
RTCRL[5:0]
CKCON4 Register
RTCCT[5:0]
RTCCS[1:0]
Reload
RTCTM Register
EIE1.ESF
RTC
Interrupt
SFIE.RTCFIE
RTCCT[5:0]
6-bit Counter
Overflow
RTCF
PCON1.4
SFR P4.5
0
RTCCR Register
RTCE
58
RTCOE
Toggle
Q
1
RTCKO
RTCRL[5:0]
MA82G5Cxx 数据手册
MEGAWIN
10.2. RTC 寄存器
RTCCR: 实时时钟控制寄存器
SFR 页 = 0~F & P
SFR 地址
= 0xBE
7
6
5
RTCE
RTCOE
RTCRL.5
R/W
R/W
R/W
4
RTCRL.4
POR = 0011-1111
3
2
RTCRL.3 RTCRL.2
R/W
R/W
1
RTCRL.1
0
RTCRL.0
R/W
R/W
R/W
Bit 7: RTCE, RTC 使能
0: 停止 RTC 计数器,RTCCT
1: 使能 RTC 计数器并且当 RTCCT 溢出时置位 RTCF,当 RTCE 被设置,CPU 不能访问 RTCTM,只有当 RTCE
被清除后才能访问
Bit 6: RTCOE, RTC 输出使能。 RTCKO 输出频率是 (RTC 溢出率)/2
0: 禁止 RTCKO 输出
1: 使能 RTCKO 输出在 P4.5
Bit 5~0: RTCRL[5:0], RTC 计数器重载值寄存器。 当寄存器被 CPU 访问,且 RTCCT 溢出时寄存器值会被重载到
RTCCT.
RTCTM: 实时时钟定时器寄存器
SFR 页 = 0~F
SFR 地址
= 0xB6
7
6
5
RTCCS.1 RTCCS.0 RTCCT.5
R/W
R/W
R/W
4
RTCCT.4
POR = 0111-1111
3
2
RTCCT.3 RTCCT.2
R/W
R/W
Bit 7~6: RTCCS.1~0, RTC 时钟选择. 缺省值是 ―01‖
RTCCS.3~0
时钟源
0000
P6.0/2^15
0001
P6.0/2^14
0010
P6.0/2^13
………
………
1010
SYSCLK/2^5
Others
Reserved
1
RTCCT.1
0
RTCCT.0
R/W
R/W
R/W
RTC 中断周期
1S ~ 64S
when P6.0 = 32768Hz
0.5S ~ 32S
when P6.0 = 32768Hz
0.25S ~ 16S
when P6.0 = 32768Hz
………
9.765ms ~ 62.496ms
when P6.0 = 32768Hz
最小周期
1S
0.5S
0.25S
……
9.765ms
Bit 5~0: RTCCT[5:0], RTC 计数器寄存器。 通过选择不同的时钟源 RTCCS[1:0]来选择 RTC 功能或系统定时功
能。 当计数器溢出,置位 RTCF 旗标并且 RTCFIE 使能会产生系统旗标中断。 最大的 RTC 溢出时间为 64 秒。
CKCON4: 时钟控制寄存器 4
SFR 页 = P only
SFR 地址
= 0x42
7
6
5
RCCS2
RCCS1
RCCS0
R/W
R/W
PCON1: 电源控制寄存器 1
SFR 页 = 0~F & P
SFR 地址
= 0x97
MEGAWIN
R/W
4
RPCS2
R/W
POR = 0000-0000
3
2
RPCS1
RPCS0
R/W
R/W
1
RTCCS3
0
RTCCS2
R/W
R/W
POR = 0000-x000
MA82G5Cxx 数据手册
59
7
SWRF
6
EXRF
5
MCDF
4
RTCF
3
--
2
BOF1
1
BOF0
0
WDTF
R/W
R/W
R/W
R/W
W
R/W
R/W
R/W
1
BOF0IE
0
WDTFIE
R/W
R/W
Bit 4: RTCF, RTC 溢出标志
0: 这位必须通过软件写“1”清除,软件写―0‖不操作
1: 当 RTCCT 溢出此位仅仅被硬件置位,写“1”清除 RTCF
SFIE: 系统标志中断使能寄存器
SFR 页 = 0~F
SFR 地址
= 0x8E
7
6
5
SIDFIE
MCDRE
MCDFIE
R/W
R/W
R/W
4
RTCFIE
R/W
POR = 0110-x000
3
2
-BOF1IE
W
R/W
Bit 4: RTCFIE, 使能 RTCF (PCON1.4) 中断
0: 禁止 RTCF 中断
1: 使能 RTCF 中断。 如果使能。 RTCF 能唤醒 CPU 在空闲模式或掉电模式
60
MA82G5Cxx 数据手册
MEGAWIN
11. 系统复位
复位期间, 所有的 I/O 寄存器都设置为初始值,程序会根据 OR 设置选择从复位向量的 0000H 开始运行,或者从
ISP 地址开始运行。 MA82G5C64 有 8 种复位源 : 上电复位,外部复位,软件复位,非法地址复位,低电检测 0
复位,低电检测 1 复位, WDT 复位和时钟丢失监测复位。 如图 11–1 所示系统复位源(MA82G5C64)。
下面的选项描述复位产生源及其相应的控制寄存器和指示标志。
11.1. 复位源
图 11–1 显示 MA82G5C64 复位系统和所有的复位源
图 11–1. 系统复位源
POF0
Power-On Reset
EXRF
External Reset
SWRF
Software Reset
Internal Reset
Illegal Addr Reset
Brown-Out
Reset 0
BOD0 Triggered
BO0RE
(PCON2.1)
Brown-Out
Reset 1
BOD1 Triggered
BO1RE
(PCON2.3)
WDT Reset
WDT Overflow
WREN
(WDTCR.7)
MCD Reset
Missing Clock Event
MCDRE
(SFIE.6)
11.2. 上电复位
上电复位 (POR)用于在电源上电过程中产生一个复位信号。 微控制器在 VDD 电压上升到 VPOR (POR 开始电压)电
压之前将保持复位状态。 VDD 电压降到 VPOR 之下后微控制器将再次进入复位状态。 在一个电源周期中, 如果需
要再产生一次上电复位 VDD 必须降到 VPOR 之下。
PCON0: 电源控制寄存 0
SFR 页 = 0~F & P
SFR 地址
= 0x87
7
6
SMOD1
SMOD0
R/W
R/W
5
GF
R/W
POR = 0001-0000, 复位值 = 000X-0000
4
3
2
1
POF0
GF1
GF0
PD
R/W
R/W
R/W
R/W
0
IDL
R/W
Bit 4: POF0, 上电复位标志 0
0: 这标志必须通过软件清零以便认出下一个复位类型
1: 当VDD从0 伏上升到正常电压时硬件置位,POF 也能有软件置位
MEGAWIN
MA82G5Cxx 数据手册
61
上电标志 POF0 在上电过程中由硬件置―1‖ 或当 VDD 电压降到 VPOR 电压之下时由硬件置―1‖。它能通过软件来清除
但不受任何热复位(譬如:外部 RST 引脚复位、掉电检测器 Brown-Out 复位、软件(ISPCR.5)复位和 WDT 复位)
的影响。它帮助用户检测 CPU 是否从上电开始运行。注意:POF0 必须由软件清除。
11.3. 外部复位
保持复位引脚 RST 至少 24 个振荡周期的高电平,将产生一个复位信号,为确保 MCU 正常工作,必须在 RET 引
脚上连接可靠的硬件复位电路。
PCON1: 电源控制寄存器 1
SFR 页 = 0~F & P
SFR 地址
= 0x97
7
6
5
EXRF
SWRF
MCDF
R/W
R/W
R/W
4
RTCF
POR = 0000-x000
3
2
-BOF1
R/W
W
R/W
1
BOF0
0
WDTF
R/W
R/W
Bit 6: EXRF, 外部复位标志
0: 这位必须通过软件清零,写“1” 清零,写 ―0‖ 无效
1: 若外部复位产生则被硬件置位,写“1” 清零
11.4. 软件复位
软件通过对 SWRST(ISPCR.5) 位写―1‖触发一个系统热复位, 软件复位后,硬件置位 SWRF 标志(PCON1.7)。
SWBS 标志决定 CPU 是从 ISP 还是 AP 区域开始运行程序。
ISPCR: ISP 控制寄存器
SFR 页 = 0~F
SFR 地址
= 0xE7
7
6
SWBS
ISPEN
R/W
R/W
5
SWRST
R/W
POR+复位值 = 0000-XXXX
4
3
2
CFAIL
--R/W
W
W
1
--
0
--
W
W
1
BOF0
0
WDTF
R/W
R/W
Bit 6: SWBS, 软件执行起始选择控制
0: 复位软件从 AP 存储区开始执行
1: 复位软件从 ISP 存储区开始执行
Bit 5: SWRST, 软件复位触发控制
0: 写―0‖无操作
1: 写―1‖ 产生软件系统复位,它将被硬件自动清除
PCON1: 电源控制寄存器 1
SFR 页 = 0~F & P
SFR 地址
= 0x97
7
6
5
SWRF
EXRF
MCDF
R/W
R/W
R/W
POR = 0000-x000
4
3
2
RTCF
-BOF1
R/W
W
R/W
Bit 7: SWRF, 软件复位标志
0: 这位必须通过软件清零 ,写―1‖ 清零,写 ―0‖无操作
1: 软件复位产生时硬件置位此位,写―1‖ 清零
62
MA82G5Cxx 数据手册
MEGAWIN
11.5. 低电检测复位
MA82G5C64 中,有两个低电检测器(BOD0& BOD1)检测电源电压(VDD),低电检测器(BOD0) 的检测固定点为
VDD=1.7V,低电检测器(BOD1)的检测固定点可以被软件选择为 VDD=4.2V, 3.7V, 2.4V 或 2.0V,如果 VDD 电压
低于 BOD0 或 BOD1 检测点, 则置位相关联的 BOF0 和 BOF1 标志,如果 BO0RE (PCON2.1) 被使能, BOD0
事件将触发一个 CPU 复位并置位 BOF0 指示一个低电检测器(BOD0)复位发生;如果 BO1RE (PCON2.3) 被使
能, BOD1 事件将触发一个 CPU 复位并置位 BOF1 指示一个低电检测器(BOD1)复位发生。
PCON1: 电源控制寄存器 1
SFR 页 = 0~F & P
SFR 地址
= 0x97
7
6
5
SWRF
EXRF
MCDF
R/W
R/W
R/W
4
RTCF
R/W
POR = 0000-x000
3
2
BOF1
-W
R/W
1
BOF0
0
WDTF
R/W
R/W
Bit 2: BOF1, BOF1 (复位) 标志
0: 这位必须通过软件清零 ,写―1‖ 清零,写 ―0‖无操作
1: 当 VDD 电压碰到 BOD1 检测点时,硬件置位此位,写―1‖ 清零。如果 BO1RE (PCON2.3) 被使能,BOD1 事件
将触发一个 CPU 复位并置位 BOF1 指示一个掉点检测器(BOD1)复位发生
Bit 1: BOF0, BOF0(复位) 标志
0: 这位必须通过软件清零 ,写―1‖ 清零,写 ―0‖无操作
1: 当 VDD 电压碰到 BOD0 检测点时,硬件置位此位,写―1‖ 清零。如果 BO0RE (PCON2.1) 被使能,BOD0 事件
将触发一个 CPU 复位并置位 BOF0 指示一个掉点检测器(BOD0)复位发生
11.6. WDT 复位
当 WDT 使能开始计数, WDT 溢出时置位 WDTF 标志 。 如果 WREN (WDTCR.7) 使能, WDT 溢出将引起一个
系统热复位, 软件可以读 WDTF 标志来确认 WDT 复位发生。
PCON1: 电源控制寄存器 1
SFR 页 = 0~F & P
SFR 地址
= 0x97
7
6
5
SWRF
EXRF
MCDF
R/W
R/W
R/W
4
RTCF
R/W
POR = 0000-x000
3
2
-BOF1
W
R/W
1
BOF0
0
WDTF
R/W
R/W
Bit 0: WDTF, WDT 溢出/复位 标志
0: 这位必须通过软件清零 ,写―1‖清零,写―0‖无操作
1: 当 WDT 溢出产生时硬件置位此位,写―1‖ 清零。如果 位 WREN (WDTCR.7) 被设置, WDTF 标志指示一个
WDT 复位产生
11.7. 非法地址复位
MA82G5C64 如果软件程序运行到非法的地址比如超出程序空间(ROM)范围,将触发 CPU 复位,并且置位
PCON1 上的 IARF 标志位
MEGAWIN
MA82G5Cxx 数据手册
63
12. 电源管理
MA82G5C64 支持两个电源监测模块(低电监测器(BOD0 和 BOD1)模块),和 6 种电源节能模式:空闲模式
(IDLE)、掉电模式(Power-Down)、慢频模式、 副频模式、Watch 模式和 Monitor 模式。
BOD0 和 BOD1 通过 BOF0 和 BOF1 标志位报告电源状态,软件可以通过这个状态产生中断或复位。6 种电源节能
模式提供不同的节能应用, 通过对 CKCON0, CKCON2, PCON0, PCON1, PCON2, PCON3 和 WDTCR 寄存器的
访问来操作这些电源事件。
12.1. 低电监测器
MA82G5C64 有两个低电监测器 (BOD0& BOD1)通过比较固定的触发电压来检测芯片电压,图 12–1 是 BOD0 和
BOD1 功能逻辑图,BOD0 检测固定触发电压为 VDD=1.7V,BOD1 检测固定触发电压为 VDD=(4.2V/3.7V/2.4V/2.
0V ) 。 当 VDD 降到触发电压以下时, BOF0 (PCON1.1)标志被置位, 如果 ESF (EIE1.3) 和 BOF0IE (SFIE.1) 被
使能, 不管是普通模式或空闲模式都能产生一个中断请求以响应(BOD0)事件,BOD1 有同样的标志 BOF1,也有
同样的中断功能, 如果 AWBOD1 (PCON2.7)使能,这个中断(BOD1)也能唤醒掉电模式。
当 BO0RE (PCON2.1) 被使能, BOD0 事件产生一个系统复位并硬件置位 BOF0 指示一个 BOD0 复位事件已经产
生。在普通模式和空闲模式下 BOD0 事件能重新启动 CPU,BOD1 也有同样的复位功能设置相关的控制位
BO1RE (PCON2.3),如果 AWBOD1 (PCON2.7)位被使能,BOD1 也能重新启动掉电模式。
如果 BOD1 在应用中没有使用,为了节省功耗可以通过软件清除 EBOD1 (PCON2.2)来禁止 BOD1
图 12–1. 低电监测器 0/1
VDD
BO0RE
BOD0 Reset
(PCON2.1)
“1”
Voltage
Comparator
-
Load
ESF
+
1.7V
(EIE1.3)
BOF0IE
PCON0.PD
Enable
BOF0
BOD0 Interrupt
(SFIE.1)
(PCON1.1)
2.0V
0
2.4V
1
3.7V
2
4.2V
3
VDD
BO1RE
BOD1 Reset
(PCON2.3)
“1”
Voltage
Comparator
-
Load
ESF
+
BO1S1,0
(EIE1.3)
BOF1IE
(PCON2.5~4)
00: 2.0V
01: 2.4V
10: 3.7V
11: 4.2V
64
PCON0.PD
AWBOD1
Enable
BOF1
BOD1 Interrupt
(SFIE.2)
(PCON1.2)
(PCON2.7)
MA82G5Cxx 数据手册
MEGAWIN
12.2. 电源节省模式
12.2.1. 慢频模式
程序设置位 SCKS2~SCKS0( CKCON0 寄存器, 参考章节―8 系统时钟‖)为非 0/0/0 值,可以减慢 MCU 的工作速度
达到节能的目的, 使用者考量在特殊的程序段使用合适的慢速度,原则上不应该影响系统的其他功能。而且,应
该在普通的程序段恢复到正常的速度。
12.2.2. 副频模式
设置 OSCS1~0 选择 OSCS1~0 作为系统时钟,MCU 的工作频率会慢下来, 32KHz ILRCO 系统频率使 MCU 工
作在特别慢的速度和功耗下, 另外设置 SCKS2~SCKS0 位 ( CKCON0 寄存器, 参考章节―8 系统时钟‖) 使用者可以
使 MCU 的速度最低到 250HZ。
12.2.3. RTC 模式
MA82G5C64 有一个简单的 RTC 模块允许用户在设备部分掉电时继续运行准确的定时器。在 RTC 模式,RTC 模
块作为一个―时钟‖功能并且能在 RTC 溢出时唤醒芯片的掉电模式。详细描述请参考章节―10 实时时钟 (RTC)/系统
时间‖。
12.2.4. Watch 模式
如果看门狗被使能并且位 NSW 被设置 , 看门狗在掉电模式保持运行,这个在 MA82G5C64 应用中叫 Watch 模
式。 当 WDT 溢出, 软件选择中断或系统复位来唤醒 CPU 并硬件置位 WDTF 。 通过定义 WDT 预分频最大唤醒
时间能到 2 秒, 更详细信息请参考章节―9 看门狗定时器(WDT)‖和章节―14 中断‖。
12.2.5. Monitor 模式
如果 AWBOD1(PCON2.7)被设置, BOD1 即使在掉电模式下,低电检测功能 BOD1 会有效,这就是 MA82G5C64
应用中的 Monitor 模式。 当 BOD1 触发到检测电压, 软件选择中断或系统复位来唤醒 CPU 并硬件置位 BOF1 ,
更详细信息请参考章节―12.1 低电监测器‖和章节―14 中断‖。
12.2.6. 空闲模式
可以通过软件的方式置 PCON.IDL 位,使设备进入空闲模式。 在空闲模式下,系统不会给 CPU 提供时钟 CPU 状
态、RAM、SP、PC、PSW、ACC 被保护起来。I/O 端口也保持当前的逻辑状态。空闲模式保持外部设置当有中断
来时能唤醒 CPU, 空闲模式下定时器 0、定时器 1、定时器 2、nINT0~nINT3、UART0、 UART1、SPI、TWSI、
TWI1 、KBI、 ADC、SID 、RTC 、BOD0 和 BOD1 仍然处于工作状态。在空闲模式下 PCA 和 WDT 唤醒 CPU 有
条件制约。 任何使能的中断源或复位都能终止空闲模式, 一个中断会退出空闲模式, 并同时进入中断服务程序,
只有在中断返回后才会开始执行进入空闲模式指令之后的程序。
ADC 输入通道必须在 P1AIO SFR 设置为― 仅模拟输入‖当 MCU 在空闲模式和掉电模式。
12.2.7. 掉电模式
可以通过软件的方法置位 PCON0. PD 使设备进入掉电模式, 掉电模式下,震荡器停止震荡, Flash 存储器掉电
以节约电能, 只有上电电路继续刷新电源,在减少 VDD 的时候 RAM 的内容仍然会被保持;但如果电源电压低于
芯片工作电压,特殊功能寄存器 SFR 的内容就不一定能保持住。外部复位、上电复位、使能的外部中断、使能的
KBI、使能的 RTC (RTC 模式) 、使能的 BOD1(monitor 模式)或使能的不停止的 WDT 都能使系统退出掉电模式。
如果有下列情况发生,使用者至少要等 4 微秒后才能进入或再次进入掉电模式: 刚开始运行代码(任何形式的复位
后面),或者刚刚退出掉电模式。 为了在掉电模式达到最小功耗, 软件必须设置所有的 I/O 为非悬浮状态, 包含封
装中没有露出来的 I/O。为了确保在掉电模式处于最小功耗, 软件必须设置所有的 I/O 为非悬浮状态, 包含封装中没
有露出来的 I/O。例如, 在 MA82G5C64AD48 (LQFP48)封装中 P5.2 和 P7.2 都没有露出来. 软件必须设置
P2.5/P2.7 相对应的 SFR 位为 ―0‖ (输出低) 来避免在掉电模式 I/O 悬浮。
图 12–2 展示了 MA82G5C64 掉电模式唤醒结构
MEGAWIN
MA82G5Cxx 数据手册
65
图 12–2. 掉电模式唤醒结构
TCON.IT0=0
nINT0 input
0
IE0
nINT0 Wakeup
1
AUXR0.INT0H
IE.EX0
force to level-sensitive in PD
TCON.IT1=0
nINT1 input
0
IE1
nINT1 Wakeup
1
AUXR0.INT1H
IE.EX1
force to level-sensitive in PD
XICON.IT2=0
nINT2 input
0
IE2
nINT2 Wakeup
1
XICON.INT2H
XICON.EX2
force to level-sensitive in PD
XICON.IT3=0
nINT3 input
0
IE3
nINT3 Wakeup
1
XICON.INT3H
XICON.EX3
force to level-sensitive in PD
EIE1.EAC0
KBIF
AC0F
AC0CON.AC0PDX
EIE1.EKB
EIE2.EAC1
Keypad Wakeup
AC0 Wakeup
AC1 Wakeup
AC1F
AC1CON.AC1PDX
Event OR
Clear PCON0.PD
& Wakeup CPU
EIE2.EAC2
AC2 Wakeup
AC2F
AC2CON.AC2PDX
EXF4
EXF3
EXF2
Timer 2/3/4 External
Input Wakeup
EIE.ET2
EIE2.ET3
EIE2.ET4
SnCFG.SnTME
RXDn Pin
0
n = 1~3
1
RIn
S1/S2/S3 Timer
External Input Wakeup
SnCON.RENn
ESn
SCONn.RB8n
EIE1.ESF
WDT Wakeup
WDTCR.ENW
SFIE.WDTFIE
En
ILRCO
WDT
Overflow
WDTF
PCON0.PD
WDTCR.NSW
WDT Reset
WDTCR.WREN
RESET Wakeup
External Reset
PCON2.BO1RE
BOD1 Reset
PCON0.PD
EIE1.ESF
PCON2.AWBOD1
SFIE.BOF1IE
BOD0 Wakeup
En
PCON2.EBOD1
BOD1
BOF1
RTCF
RTC Wakeup
SFIE.RTCFIE
EIE1.ESF
66
MA82G5Cxx 数据手册
MEGAWIN
12.2.8. 中断唤醒掉电模式
四个外部中断都能终止掉电模式, 外部中断 nINT0(P3.2)、 nINT1(P3.3)、 nINT2(P4.3)和 nINT3(P4.2)能退出掉电
模式。为了能唤醒掉电模式, 中断 nINT0, nINT1, nINT2 或 nINT3 必须使能并且设置为电平触发操作,如果外部
中断使能且设置是边沿触发(上升或下降),他们会被硬件强置为电平触发(低电平或高电平)。
一个中断终止掉电模式,唤醒时间取决内部定时。 当中断口产生下降沿时 , 掉电模式被终止,震荡重新启动, 并
且一个内部计数器开始计数, 在内部计数器没有计满之前内部时钟不允许被应用 CPU 也不能运行指令。 计数溢出
后, 中断服务程序开始工作, 为了避免中断被重复触发, 中断服务程序在返回前应该被禁止,中断口低电平应保
持足够长的时间以等待系统问题。
12.2.9. 复位唤醒掉电模式
外部复位唤醒掉电模式有点类似于中断,复位脚有上升沿电平时系统退出掉电模式,震荡重新启动,且一个内部计
数器开始计数,在内部计数器没有计满之前内部时钟不允许被应用 CPU 也不能运行指令。复位脚必须保持长时间
的高电平以保证系统完全复位,复位脚变低电平时开始执行程序。
值得注意的是当空闲模式被硬件复位唤醒时,前两个机器周期(内部复位没有取得控制权),程序正常从进入
IDLE 模式的后一条指令执行,这时内部硬件是禁止访问内部 RAM 的,但访问 I/O 端口没有被禁止,为了保证不可
预料的写 I/O 口,在进入 IDLE 指令后不要放置写 I/O 口或外部存储器的指令。
12.2.10.
KBI 键盘唤醒掉电模式
MA82G5C64 中 KBI.7 ~ 0 具有键盘中断唤醒功能,通过使能 KBI 模块的控制寄存器。软件可以设置 AUXR1.7~6
上的 KBIPS1~0 切换 KBI 功能到 P0,P2,P5 或 P3 和 P4。更详细的 AUXR1 信息请参考章节―31 辅助特殊功能寄存
器‖。
通过使能 KBI 唤醒掉电模式有点类似中断唤醒, 在 KBI 模式下且已经使能 KBI 中断(EIE1.5, EKB),系统退出掉电
模式, 震荡重新启动, 且一个内部计数器开始计数, 在内部计数器没有计满之前内部时钟不允许被应用 CPU 也
不能运行指令。计数溢出后,CPU 会响应 KBI 中断并执行中断服务程序。
MEGAWIN
MA82G5Cxx 数据手册
67
12.3. 电源控制寄存器
PCON0: 电源控制寄存器 0
SFR 页 = 0~F & P
SFR 地址
= 0x87
7
6
SMOD1
SMOD0
R/W
R/W
5
GF
4
POF0
R/W
R/W
POR = 0001-0000, 复位值 = 000X-0000
3
2
1
GF1
GF0
PD
R/W
R/W
0
IDL
R/W
R/W
1
BOF0
0
WDTF
R/W
R/W
Bit 4: POF0, 上电标志 0
0: 这位必须由软件清零,写―0‖清零
1: 当上电复位产生时硬件置位此位
Bit 1: PD, 掉电控制位
0: CPU 清零或任何一个退出掉电模式的事件发生时硬件清零
1: 置位则激活掉电操作(即进入掉电模式)
Bit 0: IDL, 空闲模式控制位
0: CPU 清零或任何一个退出掉电模式的事件发生时硬件清零
1: 置位则激活空闲操作(即进入空闲模式)
PCON1: 电源控制寄存器 1
SFR 页 = 0~F & P
SFR 地址
= 0x97
7
6
5
SWRF
EXRF
MCDF
R/W
R/W
R/W
POR = 0000-x000
4
3
2
-RTCF
BOF1
R/W
W
R/W
Bit 7: SWRF, 软件复位标志
0: 这位必须由软件清零,写―1‖清零
1: 当软件复位产生时硬件置位此位
Bit 6: EXRF, 外部复位标志
0: 这位必须由软件清零,写―1‖清零
1: 当外部复位产生时硬件置位此位
Bit 5: MCDF. (验证中)
Bit 4: RTCF, RTC 溢出标志
0: 这位必须由软件清零,写―1‖清零。写―0‖无效
1: 当 RTCCT 溢出时此位仅由硬件置位。写―1‖则清除 RTCF
Bit 3: 保留位. 当写 PCON1 寄存器时软件必须在这位写 ―0‖
Bit 2: BOF1, 电源监控(Brown-Out)标志 1
0: 这位必须由软件清零,写―1‖清零
1: 当电源电压触及到电源监测器 1 电压(4.2V/3.7/2.4/2.0)时,硬件置位此位
Bit 1: BOF0, 电源监控(Brown-Out)标志 0
0: 这位必须由软件清零,写―1‖清零
1: 当电源电压触及到电源监测器 0 电压(1.7V)时,硬件置位此位
Bit 0: WDTF, WDT 溢出标志
0: 这位必须由软件清零,写―1‖清零
1: 当 WDT 复位产生时硬件置位此位
68
MA82G5Cxx 数据手册
MEGAWIN
PCON2: 电源控制寄存器 2
SFR 页 = P Only
SFR 地址
= 0x44
7
6
5
0
AWBOD1
BO1S1
R/W
W
R/W
4
BO1S0
R/W
POR = 0000-0101
3
2
BO1RE
EBOD1
R/W
R/W
1
BO0RE
0
1
R/W
W
Bit 7: AWBOD1, 掉电模式(PD)下 BOD1 的唤醒
0: 掉电模式(PD)下禁止 BOD1
1: 掉电模式(PD)下保持 BOD1
Bit 6: 保留位. 当写 PCON2 寄存器时软件必须在这位写 ―0‖
Bit 5~4: BO1S[1:0]. 低电监测器 1 监测电压选择
BO1S[1:0]
BOD1 监测电压
0 0
2.0V
0 1
2.4V
1 0
3.7V
1 1
4.2V
Bit 3: BO1RE, BOD1 复位使能
0: 当 BOF1 已经设置,禁止电源监控(BOD1)系统复位
1: 当 BOF1 已经设置,使能电源监控(BOD1)系统复位
Bit 2: EBOD1, 使能 BOD1 监测 VDD 下降到 BO1S1~0 设置的固定值
0: 禁止 BOD1 监测电源电压降低芯片功耗
1: 使能 BOD1 监测电源电压 VDD
Bit 1: BO0RE, BOD0 复位使能
0: 当 BOF0 已经设置,禁止电源监控(BOD0)系统复位
1: 当 BOF0 已经设置,使能电源监控(BOD0)系统复位(VDD 触到 1.7V)
Bit 0: 保留位. 当写 PCON2 寄存器时软件必须在这位写 ―1‖
MEGAWIN
MA82G5Cxx 数据手册
69
13. I/O 口配置
MA82G5C64 有下列 I/O 端口:P0.0~P0.7, P1.0~P1.7, P2.0~P2.7, P3.0~P3.7, P4.0~ P4.7, P5.0~P5.7,
P6.0~P6.7 和 P7.0~P7.2。如果选择外部振荡做系统时钟输入 ,则 P6.0 和 P 6.1 被配置为 XTAL2 和 XTAL1。如
果禁止外部复位脚功能,RST 引脚可以设置为 P4.7。准确的可用 I/O 引脚数量由封装类型决定。见表 13–1。
表 13–1. 可用引脚数量
封装类型
I/O 引脚
P0.0~P0.7, P1.0~P1.7, P2.0~P2.7, P3.0~P3.7,
P4.0~P4.6, P4.7(RST), P5.0~P5.7,
64-pin LQFP
P6.0 (ECKI/XTAL2), P6.1 (XTAL1), P6.2~P6.7
P7.0~P7.2
P0.0~P0.7, P1.0~P1.7, P2.0~P2.7, P3.0~P3.7,
P4.0~P4.6, P4.7(RST),
48-pin LQFP
P6.0 (ECKI/XTAL2), P6.1 (XTAL1), P6.2~P6.3
引脚数量
59 or
58 (RST selected) or
57 (RST & ECKI selected) or
56 (RST & XTAL selected)
44 or
43 (RST selected) or
42 (RST & ECKI selected) or
41 (RST & XTAL selected)
13.1. IO 结构
MA82G5C64 输入输出口分成两个配置类型。第一类仅仅是端口 3 有四种模式,这四种模式有:准双向口(标准
8051 的 I/O 端口)、推挽输出、集电极开漏输出和输入(高阻抗输入)。 缺省值是弱上拉的准双向口模式。
其它口属于第二类,这些口有两种模式分别是推挽输出和上拉电阻的集电极开漏输出。缺省是集电极开漏输出高,
也就意味着带有高阻状态的输入模式。
下面描述这四种类型的 I/O 模式的配置。
70
MA82G5Cxx 数据手册
MEGAWIN
13.1.1. 端口 3 准双向口结构
端口 3 引脚工作在准双向模式时与标准 8051 端口引脚类似。一个准双向端口用作输入和输出时不需要对端口重新
配置。这是因为端口输出逻辑高时,弱上拉,允许外部器件拉低引脚。当输出低时,强的驱动能力可吸收大电流。
在准双向输出时有三个上拉晶体管用于不同的目的。
其中的一种上拉,称为微上拉,只要端口寄存器的引脚包含逻辑 1 则打开。如果引脚悬空,则这种非常弱上拉提供
一个非常小的电流将引脚拉高。第二种上拉称为―弱上拉‖,端口寄存器的引脚包含逻辑 1 时且引脚自身也在逻辑电
平时打开。这种上拉对准双向引脚提供主要的电流源输出为 1。如果引脚被外部器件拉低,这个弱上拉关闭,只剩
一个微上拉。为了在这种条件下将引脚拉低,外部器件不得不吸收超过弱上拉功率的电流,且拉低引脚在输入的极
限电压之下。第三种上拉称为―强‖上拉。这种上拉用于加速准双向端口的上升沿跳变,当端口寄存器发生从逻辑 0
到逻辑 1 跳变时,强上拉打开一个 CPU 时钟,快速将端口引脚拉高。
端口 3 准双向口结构如图 13–1 所示。
图 13–1. 端口 3 准双向口结构
VDD
1 clock
delay
Strong
VDD
Very
weak
VDD
Weak
Port
Pin
Port latch data
Input data
MEGAWIN
MA82G5Cxx 数据手册
71
13.1.2. 端口 3 推挽输出结构
端口 3 推挽输出配置与开漏输出、准双向输出模式有着相同的下拉结构,但是当端口寄存器包含逻辑 1 时提供一个
连续的强上拉。当一个端口输出需要更大的电流时可配置为推挽输出模式。另外,在这种配置下端口的输入路径与
准双向模式相同。
推挽输出结构见 图 13–2.
图 13–2. 端口 3 推挽输出
VDD
Strong
Port
Pin
Port latch data
Input data
13.1.3. 端口 3 仅输入 (高阻抗输入) 结构
仅输入配置在引脚上没有任何上拉电阻,如下图 13–3.所示。
图 13–3. 端口 3 仅输入
Port
Pin
Input data
72
MA82G5Cxx 数据手册
MEGAWIN
13.1.4. 端口 3 开漏输出结构
端口 3 配置为开漏输出时,当端口寄存器包含逻辑 0 时,关闭所有上拉,只有端口引脚的下拉晶体管。在应用中使
用这个配置,端口引脚必须有外部上拉,典型的是将电阻接到 VDD。这个模式的下拉和准双向端口的模式相同。
另外,在这种配置下端口的输入路径与准双向模式相同。
端口 3 开漏输出结构如图 13–4 所示
图 13–4. 端口 3 开漏输出
Port
Pin
Port latch data
Input data
13.1.5. 通用开漏输出结构
当端口数据寄存器写‖0‖时,通用端口的集电极开漏输出仅是驱动端口的下拉晶体管。在应用中使用这个配置,端
口引脚可以选择外部上拉或 PUCON0 和 PUCON1 置位使能片内的内部上拉。
通用端口集电极开漏结构如图 13–5.所示。
图 13–5. 通用开漏输出
VDD
VDD
PxPU0/1
Very
weak
Weak
Port
Pin
Port latch data
Input data
MEGAWIN
MA82G5Cxx 数据手册
73
13.1.6. 通用推挽输出结构
通用端口推挽输出结构与集电极开漏输出有相同的下拉结构,但是端口数据寄存器写‖1‖提供一个强上拉输出。通
用端口推挽输出模式应用在需要强的源电流输出。另外,此结构下的端口输入与集电极开漏输出模式一样。
通用端口推挽输出结构如图 13–6 所示。
图 13–6. 通用推挽输出
VDD
Strong
Port
Pin
Port latch data
Input data
13.1.7. 通用端口数字输入配置
一个端口通过设置为―开路输出‖的输出模式,并写逻辑―1‖到向对应的端口数据寄存器位,可以配置成为数字输入.
例如, P1.1 通过设置 P1M0.1 为逻辑―0‖且 P1.1 为逻辑―1‖来配置为数字输入.
74
MA82G5Cxx 数据手册
MEGAWIN
13.2. I/O 口寄存器
MA82G5C64 所有的端口可通过软件个别的、独立的配置其工作模式,仅仅端口 3 有 4 种工作模式,如表 13–2。
两个寄存器用于选择每个端口 3 引脚的输出类型。
表 13–2. 端口 3 配置设定
P3M0.y
P3M1.y
0
0
0
1
1
0
1
1
端口模式
准双向
推挽输出
仅输入 (高阻抗输入)
集电极开漏输出
这里 y=0~7(端口引脚号)。寄存器 P3M0 和 P3M1 列举了每个引脚的描述。
其它的通用口引脚有两种模式见表 13–3,一个模式寄存器位选择每个引脚的输出类型。
表 13–3. 通用端口配置设定
PxM0.y
端口模式
0
集电极开漏输出
1
推挽输出
这里 x= 1, 2, 4, 6 (端口),y=0~7(端口引脚号)。寄存器 PxM0 列举了每个引脚的描述。
13.2.1. 端口 0 寄存器
P0: 端口 0 寄存器
SFR 页 = 0~F
SFR 地址
= 0x80
7
6
P0.7
P0.6
R/W
R/W
5
P0.5
4
P0.4
R/W
R/W
复位值 = 1111-1111
3
2
P0.3
P0.2
R/W
R/W
1
P0.1
0
P0.0
R/W
R/W
1
P0M0.1
0
P0M0.0
R/W
R/W
1
P1.1
0
P1.0
R/W
R/W
Bit 7~0: P1.7~P1.0 通过 CPU 置位/清零
P0M0: 端口 0 模式寄存器 0
SFR 页 = 1 only
SFR 地址
= 0x93
7
6
5
P0M0.7
P0M0.6
P0M0.5
R/W
R/W
R/W
4
P0M0.4
R/W
复位值 = 0000-0000
3
2
P0M0.3
P0M0.2
R/W
R/W
0: 端口定义为集电极开漏输出
1: 端口定义为推挽输出
13.2.2. 端口 1 寄存器
P1: 端口 1 寄存器
SFR 页 = 0~F
SFR 地址
= 0x90
7
6
P1.7
P1.6
R/W
R/W
5
P1.5
4
P1.4
R/W
R/W
复位值 = 1111-1111
3
2
P1.3
P1.2
R/W
R/W
Bit 7~0: P1.7~P1.0 通过 CPU 置位/清零
MEGAWIN
MA82G5Cxx 数据手册
75
P1M0: 端口 1 模式寄存器 0
SFR 页 = 0~F
SFR 地址
= 0x91
7
6
5
P1M0.7
P1M0.6
P1M0.5
R/W
R/W
R/W
4
P1M0.4
复位值 = 0000-0000
3
2
P1M0.3
P1M0.2
R/W
R/W
R/W
1
P1M0.1
0
P1M0.0
R/W
R/W
1
P2.1
0
P2.0
R/W
R/W
1
P2M0.1
0
P2M0.0
R/W
R/W
1
P3.1
0
P3.0
R/W
R/W
1
P3M0.1
0
P3M0.0
R/W
R/W
1
P3M1.1
0
P3M1.0
R/W
R/W
0: 端口定义为集电极开漏输出
1: 端口定义为推挽输出
13.2.3. 端口 2 Register
P2: 端口 2 寄存器
SFR 页 = 0~F
SFR 地址
= 0xA0
7
6
P2.7
P2.6
R/W
R/W
5
P2.5
4
P2.4
R/W
R/W
复位值 = 1111-1111
3
2
P2.3
P2.2
R/W
R/W
Bit 7~0: P2.7~P2.0 通过 CPU 置位/清零
P2M0: 端口 2 模式寄存器 0
SFR 页 = 1 only
SFR 地址
= 0x95
7
6
5
P2M0.7
P2M0.6
P2M0.5
R/W
R/W
R/W
4
P2M0.4
复位值 = 0000-0000
3
2
P2M0.3
P2M0.2
R/W
R/W
R/W
0: 端口定义为集电极开漏输出
1: 端口定义为推挽输出
13.2.4. 端口 3 Register
P3: 端口 3 寄存器
SFR 页 = 0~F
SFR 地址
= 0xB0
7
6
P3.7
P3.6
R/W
R/W
5
P3.5
4
P3.4
R/W
R/W
复位值 = 1111-1111
3
2
P3.3
P3.2
R/W
R/W
Bit 7~0: P3.7~P3.0 通过 CPU 置位/清零
P3M0: 端口 3 模式寄存器 0
SFR 页 = 0~F
SFR 地址
= 0xB1
7
6
5
P3M0.7
P3M0.6
P3M0.5
R/W
R/W
R/W
P3M1: 端口 3 模式寄存器 1
SFR 页 = 0~F
SFR 地址
= 0xB2
7
6
5
P3M1.7
P3M1.6
P3M1.5
R/W
R/W
R/W
4
P3M0.4
复位值 = 0000-0000
3
2
P3M0.3
P3M0.2
R/W
4
P3M1.4
R/W
R/W
复位值 = 0000-0000
3
2
P3M1.3
P3M1.2
R/W
R/W
R/W
P3.7 和 P3.6 在访问外部存储器时用于/RD 和/WR
76
MA82G5Cxx 数据手册
MEGAWIN
13.2.5. 端口 4 寄存器
P4: 端口 4 寄存器
SFR 页 = 0~F
SFR 地址
= 0xE8
7
6
P4.7
P4.6
R/W
R/W
5
P4.5
4
P4.4
R/W
R/W
复位值 = 1111-1111
3
2
P4.3
P4.2
R/W
R/W
1
P4.1
0
P4.0
R/W
R/W
1
P4M0.1
0
P4M0.0
R/W
R/W
1
P5.1
0
P5.0
R/W
R/W
1
P5M0.1
0
P5M0.0
R/W
R/W
1
P6.1
0
P6.0
R/W
R/W
Bit 7~0: P4.7~P4.0 通过 CPU 置位/清零.
P4M0: 端口 4 模式寄存器 0
SFR 页 = 1 only
SFR 地址
= 0xB3
7
6
5
P4M0.7
P4M0.6
P4M0.5
W
R/W
R/W
4
P4M0.4
R/W
复位值 = 0000-0000
3
2
P4M0.3
P4M0.2
R/W
R/W
0: 端口定义为集电极开漏输出
1: 端口定义为推挽输出
13.2.6. 端口 5 寄存器
P5: 端口 5 寄存器
SFR 页 = 0 only
SFR 地址
= 0xF8
7
6
P5.7
P5.6
R/W
R/W
5
P5.5
4
P5.4
R/W
R/W
复位值 = 1111-1111
3
2
P5.3
P5.2
R/W
R/W
Bit 7~0: P5.7~P5.0 通过 CPU 置位/清零
P5M0: 端口 5 模式寄存器 0
SFR 页 = 0 only
SFR 地址
= 0xB5
7
6
5
P5M0.7
P5M0.6
P5M0.5
R/W
R/W
R/W
复位值 = 0000-0000
4
3
2
P5M0.4
P5M0.3
P5M0.2
R/W
R/W
R/W
0: 端口定义为集电极开漏输出
1: 端口定义为推挽输出
13.2.7. 端口 6 寄存器
P6: 端口 6 寄存器
SFR 页 = 1 only
SFR 地址
= 0xF8
7
6
P6.7
P6.6
R/W
R/W
5
P6.5
4
P6.4
R/W
R/W
复位值 = 1111-1111
3
2
P6.3
P6.2
R/W
R/W
Bit 7~0: P6.7~P6.0 通过 CPU 置位/清零
P6.1 和 P6.0 复用晶体振荡电路功能,XTAL1 和 XTAL2
MEGAWIN
MA82G5Cxx 数据手册
77
P6M0: 端口 6 模式寄存器 0
SFR 页 = 1 only
SFR 地址
= 0xB5
7
6
5
P6M0.7
P6M0.6
P6M0.5
R/W
R/W
R/W
4
P6M0.4
复位值 = 0000-0000
3
2
P6M0.3
P6M0.2
R/W
R/W
R/W
1
P6M0.1
0
P6M0.0
R/W
R/W
1
P7.1
0
P7.0
R/W
R/W
1
P7M0.1
0
P7M0.0
R/W
R/W
1
P0PU1
0
P0PU0
RW
RW
0: 端口定义为集电极开漏输出
1: 端口定义为推挽输出
13.2.8. 端口 7 寄存器
P7: 端口 7 寄存器
SFR 页 = 2 only
SFR 地址
= 0xF8
7
6
--W
W
5
--
4
--
W
W
复位值 = xxxx-x111
3
2
-P7.2
W
R/W
Bit 7~3: 保留位。当 P7 被写时这些位软件必须写―1
Bit 2~0: P7.2~P7.0 通过 CPU 置位/清零
P7M0: 端口 7 模式寄存器 0
SFR 页 = 2 only
SFR 地址
= 0xB5
7
6
--W
W
5
--
4
--
W
W
复位值 = xxxx-x000
3
2
-P7M0.2
W
R/W
Bit 7~3: 保留位。当 P7M0 被写时这些位软件必须写―1‖
Bit 2~0:
0: 端口定义为集电极开漏输出
1: 端口定义为推挽输出
13.2.9. 上拉控制寄存器
PUCON0: 端口上拉控制寄存器 0
SFR 页 = 0 only
SFR 地址
= 0xB4
7
6
5
P4PU1
P4PU0
P2PU1
R/W
R/W
R/W
4
P2PU0
R/W
复位值 = 0000-0000
3
2
P1PU1
P1PU0
R/W
R/W
Bit 7: 端口 4(P4) 高四位上拉使能控制位
0: 在集电极开漏输出模式禁止 P4.7~P4.4 上拉
1: 在集电极开漏输出模式使能 P4.7~P4.4 上拉
Bit 6: 端口 4(P4) 低四位上拉使能控制位
0: 在集电极开漏输出模式禁止 P4.3~P4.0 上拉
1: 在集电极开漏输出模式使能 P4.3~P4.0 上拉
Bit 5: 端口 2(P2) 高四位上拉使能控制位
78
MA82G5Cxx 数据手册
MEGAWIN
0: 在集电极开漏输出模式禁止 P2.7 ~ P2.4 上拉
1: 在集电极开漏输出模式使能 P2.7 ~ P2.4 上拉
Bit 4: 端口 2(P2) 低四位上拉使能控制位
0: 在集电极开漏输出模式禁止 P2.3 ~ P2.0 上拉
1: 在集电极开漏输出模式使能 P2.3 ~ P2.0 上拉
Bit 3: 端口 1(P1) 高四位上拉使能控制位
0: 在集电极开漏输出模式禁止 P1.7 ~ P1.4 上拉
1: 在集电极开漏输出模式使能 P1.7 ~ P1.4 上拉
Bit 2: 端口 1(P1) 低四位上拉使能控制位
0: 在集电极开漏输出模式禁止 P1.3 ~ P1.0 上拉
1: 在集电极开漏输出模式使能 P1.3 ~ P1.0 上拉
Bit 1: 端口 0(P0) 高四位上拉使能控制位
0: 在集电极开漏输出模式禁止 P0.7 ~ P1.4 上拉
1: 在集电极开漏输出模式使能 P0.7 ~ P1.4 上拉
Bit 0: 端口 0(P0) 低四位上拉使能控制位
0: 在集电极开漏输出模式禁止 P0.3 ~ P0.0 上拉
1: 在集电极开漏输出模式使能 P0.3 ~ P0.0 上拉
PUCON1: 端口上拉控制寄存器 1
SFR 页 = 1 only
SFR 地址
= 0xB4
7
6
5
---W
W
W
复位值 = xxx0-0000
4
3
2
P7PU0
P6PU1
P6PU0
R/W
R/W
R/W
1
P5PU1
0
P5PU0
RW
RW
Bit 7 ~ 5: 保留位。当 PUCON1 被写时这些位软件必须写―0‖
Bit 4: 端口 7(P7) 低四位上拉使能控制位
0: 在集电极开漏输出模式禁止 P7.2 ~ P7.0 上拉
1: 在集电极开漏输出模式使能 P7.2 ~ P7.0 上拉
Bit 3: 端口 6(P6) 高四位上拉使能控制位
0: 在集电极开漏输出模式禁止 P6.7 ~ P6.4 上拉
1: 在集电极开漏输出模式使能 P6.7 ~ P6.4 上拉
Bit 2: 端口 6(P6) 低四位上拉使能控制位
0: 在集电极开漏输出模式禁止 P6.3 ~ P6.0 上拉
1: 在集电极开漏输出模式使能 P6.3 ~ P6.0 上拉
Bit 1: 端口 5(P5) 高四位上拉使能控制位
0: 在集电极开漏输出模式禁止 P5.7 ~ P5.4 上拉
1: 在集电极开漏输出模式使能 P5.7 ~ P5.4 上拉
Bit 1: 端口 5(P5) 低四位上拉使能控制位
0: 在集电极开漏输出模式禁止 P5.3 ~ P5.0 上拉
1: 在集电极开漏输出模式使能 P5.3 ~ P5.04 上拉
MEGAWIN
MA82G5Cxx 数据手册
79
13.2.10.
模拟输入配置寄存器
P1AIO: 端口 1 仅模拟输入
SFR 页 = 0 only
SFR 地址
= 0x92
7
6
5
P17AIO
P16AIO
P15AIO
R/W
R/W
R/W
复位值 = 0000-0000
4
3
2
P14AIO
P13AIO
P12AIO
R/W
R/W
R/W
1
P11AIO
0
P10AIO
R/W
R/W
1
P01AIO
0
AC2AIO
R/W
R/W
Bit 7~0: P17AIO ~ P10AIO, P1.7~P1.0 模拟仅输入配置寄存器.
0: 端口有数字和模拟输入的能力
1: 只能是模拟输入给 ADC 输入应用,当这位被设置相应的端口总是读到―0‖
PxAIO1: 端口引脚仅模拟输入寄存器 1
SFR 页 = 0 only
SFR 地址
= 0x94
复位值 = 0000-0000
7
6
5
4
3
2
P07AIO
P06AIO
P05AIO
P04AIO
P03AIO
P02AIO
R/W
R/W
R/W
R/W
R/W
R/W
Bit 7~6: P07AIO ~ P06AIO, P0.7~P0.6 模拟仅输入配置寄存器
0: 端口有数字和模拟输入的能力
1: 只能是模拟输入给 AC1(模拟比较器 1)输入应用,当这位被设置相应的端口总是读到―0‖
Bit 5~1: P05AIO ~ P01AIO, P0.5~P0.1 模拟仅输入配置寄存器.
0: 端口有数字和模拟输入的能力
1: 只能是模拟输入给 AC0(模拟比较器 0)输入应用,当这位被设置相应的端口总是读到―0‖
Bit 0: AC2AIO, AC2 (模拟比较器 2) 端口引脚模拟仅输入配置寄存器
AC2NIS
P6.3
AC2AIO
(AC2MOD.4)
(AC2PI)
0
x
P6M0.3
0
1
模拟仅输入
1
1
模拟仅输入
P6.2
(AC2NI)
P6M0.2
模拟仅输入
P6M0.2
PxAIO2: 端口引脚模拟仅输入配置寄存器 2
SFR 页
= 1 only
SFR 地址
= 0x92
复位值 = 0000-0000
7
6
5
4
3
2
P20AIO
P56AIO
P55AIO
P54AIO
P53AIO
P52AIO
R/W
R/W
R/W
R/W
R/W
R/W
1
P51AIO
0
P50AIO
R/W
R/W
Bit 7: P20AIO, P2.0 模拟仅输入配置寄存器
0: 端口有数字和模拟输入的能力
1: 只能是模拟输入给 ADC 输入应用,当这位被设置相应的端口总是读到―0‖
Bit 6~0: P56AIO ~ P50AIO, P5.6~P5.0 模拟仅输入配置寄存器
0: 端口有数字和模拟输入的能力
1: 只能是模拟输入给 ADC 输入应用,当这位被设置相应的端口总是读到―0‖
80
MA82G5Cxx 数据手册
MEGAWIN
13.2.11.
端口输出驱动能力控制寄存器
在 MA82G5C64, 除了 P4.7, P6.1 和 P6.0 之外,所有端口引脚都可以通过软件配置选择两种驱动能力。
PDRVC0: 端口驱动控制寄存器 0
SFR 页 = 2 only
SFR 地址
= 0xB4
7
6
5
P3DC1
P3DC0
P2DC1
R/W
R/W
R/W
4
P2DC0
R/W
复位值 = 0000-0000
3
2
P1DC1
P1DC0
R/W
R/W
1
P0DC1
0
P0DC0
RW
RW
1
P4DC1
0
P4DC0
RW
RW
Bit 7: P3DC1, 端口 3 高 4 位 输出驱动能力控制
0 :P3.7 ~ P3.4 选择输出高驱动能力
1: P3.7 ~ P3.4 选择输出低驱动能力.
Bit 6: P3DC0, 端口 3 低 4 位 输出驱动能力控制
0 :P3.3 ~ P3.0 选择输出高驱动能力
1: P3.3 ~ P3.0 选择输出低驱动能力.
Bit 5: P2DC1, 端口 2 高 4 位 输出驱动能力控制
0 :P2.7 ~ P2.4 选择输出高驱动能力
1: P2.7 ~ P2.4 选择输出低驱动能力.
Bit 4: P2DC0, 端口 2 低 4 位 输出驱动能力控制
0 :P2.3 ~ P2.0 选择输出高驱动能力
1: P2.3 ~ P2.0 选择输出低驱动能力.
Bit 3: P1DC1, 端口 1 高 4 位 输出驱动能力控制
0 :P1.7 ~ P1.4 选择输出高驱动能力
1: P1.7 ~ P1.4 选择输出低驱动能力.
Bit 2: P1DC0, 端口 1 低 4 位 输出驱动能力控制
0 :P1.3 ~ P1.0 选择输出高驱动能力
1: P1.3 ~ P1.0 选择输出低驱动能力.
Bit 1: P0DC1, 端口 0 高 4 位 输出驱动能力控制
0 :P0.7 ~ P0.4 选择输出高驱动能力
1: P0.7 ~ P0.4 选择输出低驱动能力.
Bit 0: P0DC0, 端口 0 低 4 位 输出驱动能力控制
0 :P0.3 ~ P0.0 选择输出高驱动能力
1: P0.3 ~ P0.0 选择输出低驱动能力.
PDRVC1: 端口驱动控制寄存器 1
SFR 页 = 3 only
SFR 地址
= 0xB4
7
6
5
-P7DC0
P6DC1
W
R/W
R/W
复位值 = x000-0000
4
3
2
P6DC0
P5DC1
P5DC0
R/W
R/W
R/W
Bit 7: 保留位。当 PDRVC1 被写时这些位软件必须写―0‖
Bit 6: P7DC0, 端口 7 低位 输出驱动能力控制
0 :P7.2 ~ P7.0 选择输出高驱动能力
1: P7.2 ~ P7.0 选择输出低驱动能力.
MEGAWIN
MA82G5Cxx 数据手册
81
Bit 5: P6DC1, 端口 6 高 4 位 输出驱动能力控制
0 :P6.7 ~ P6.4 选择输出高驱动能力
1: P6.7 ~ P6.4 选择输出低驱动能力.
Bit 4: P6DC0, 端口 6 低 4 位 输出驱动能力控制
0 :P6.3 ~ P6.2 选择输出高驱动能力
1: P6.3 ~ P6.2 选择输出低驱动能力.
Bit 3: P5DC1, 端口 5 高 4 位 输出驱动能力控制
0 :P5.7 ~ P5.4 选择输出高驱动能力
1: P5.7 ~ P5.4 选择输出低驱动能力.
Bit 2: P5DC0, 端口 5 低 4 位 输出驱动能力控制
0 :P5.3 ~ P5.0 选择输出高驱动能力
1: P5.3 ~ P5.0 选择输出低驱动能力.
Bit 1: P4DC1, 端口 4 高 4 位 输出驱动能力控制
0 :P4.6 ~ P4.4 选择输出高驱动能力
1: P4.6 ~ P4.4 选择输出低驱动能力.
Bit 0: P4DC0, 端口 4 低 4 位 输出驱动能力控制
0 :P4.3 ~ P4.0 选择输出高驱动能力
1: P4.3 ~ P4.0 选择输出低驱动能力.
82
MA82G5Cxx 数据手册
MEGAWIN
14. 中断
MA82G5C64 有 24 个带 4 级优先级的中断源。 这些中断源有几个特殊功能寄存器 SFR 与设定四个级别的中断优
先级相关。这些特殊功能寄存器分别是 IE, IP0L, IP0H, EIE1, EIP1L, EIP1H, EIE2, EIP2L, EIP2H 和 XICON。
IP0H(中断优先级 0 高字节),EIP1H(扩展中断优先级 1 高字节)和 EIP2H(扩展中断优先级 2 高字节)寄存
器使四个级别的中断结构合理分配。四个级别的中断优先级在处理这些中断源时更加灵活。
14.1. 中断结构
表 14–1 列出了所有的中断源。使能位被允许,中断请求时硬件会产生一个中断请求标志,当然,总中断使能位EA
( IE 寄存器)必须使能。中断请求位能由软件置位或清零,这和硬件置位或清零结果相同。同理,中断可以由软件产
生或取消,中断优先级位决定每个中断产生的优先级,多个中断同时产生时依照中断优先级顺序处理。中断向量地
址表示中断服务程序的入口地址。
图 14–1 展示了整个中断系统。每一个中断将在下面部分做简单的描述。
表 14–1. 中断源
序号
中断名称
外部中断 0,
#1
nINT0
#2
定时器 0
外部中断 1,
#3
nINT1
#4
定时器 1
#5
串口 0
#6
定时器 2
外部中断 2,
#7
nINT2
外部中断 3,
#8
nINT3
#9
SPI
#10
ADC
使能位
请求位
优先级位
优先级
向量地址
EX0
IE0
[ PX0H, PX0L ]
(Highest)
0003H
ET0
TF0
[ PT0H, PT0L ]
…
000Bh
EX1
IE1
[ PX1H, PX1L ]
…
0013H
ET1
ES0
ET2
TF1
RI0, TI0
TF2, EXF2
[ PT1H, PT1L ]
[ PS0H, PS0L ]
[ PT2H, PT2L ]
…
…
…
001BH
0023H
002Bh
EX2
IE2
[ PX2H, PX2L ]
…
0033H
EX3
IE3
[ PX3H, PX3L ]
…
003BH
ESPI
EADC
SPIF
ADCI
CF, CCFn
(n=0~5)
(Note 1)
RI1, TI1
KBIF
SI
AC0F
TF3, EXF3
AC1F
RI2, TI2
TF4, EXF4
RI3, TI3
C1F, C1CFn
(n=0~5)
SI1
AC2F
[ PSPIH, PSPIL ]
[ PADCH, PADCL ]
…
…
0043H
004Bh
[ PPCAH, PPCAL ]
…
0053H
[ PSFH, PSFL ]
[ PS1H, PS1L ]
[ PKBH, PKBL ]
[ PTWIH, PTWIL ]
[ PAC0H, PAC0L ]
[ PT2H, PT2L ]
[ PAC1H, PAC1L ]
[ PS2H, PS2L ]
[ PT3H, PT3L ]
[ PS3H, PS3L ]
…
…
…
…
…
…
…
…
…
…
005BH
0063H
006BH
0073H
007BH
0083H
008BH
0093H
009BH
00A3H
[ PPCA1H, PPCA1L ]
…
00ABH
[ PTWI1H, PTWI1L ]
[ PAC2H, PAC2L ]
…
(Lowest)
00B3H
00BBH
#11
PCA0
EPCA
#12
#13
#14
#15
#16
#17
#18
#19
#20
#21
系统标志
串口 1
键盘中断
TWSI
模拟比较器 0
定时器 3
模拟比较器 1
串口 2
定时器 4
串口 3
ESF
ES1
EKB
ETWSI
EAC0
ET3
EAC1
ES2
ET4
ES3
#22
PCA1
EPCA1
#23
#24
TWI1
模拟比较器 2
ETWI1
EAC2
注 1: 系统标志中断标志位包括:PCON1寄存器的WDTF, BOF0, BOF1, RTCF和MCDF;S0CON寄存器的TI0 ;
AUXR3寄存器的STAF和STOF。
MEGAWIN
MA82G5Cxx 数据手册
83
图 14–1. 中断系统
Global Enable
(IE.EA)
IP0L,IP0H,EIP1L,
EIP1H,EIP2L,EIP2H
Registers
Highest Priority Level
Interrupt
Interrupt Polling
Sequence
TCON.IT0
IE.EX0
iINT0
IE0
IE.ET0
TCON.TF0
TCON.IT1
IE.EX1
iINT1
IE1
IE.ET1
TCON.TF1
S0CON.RI0
IE.ES0
S0CON.TI0
T2CON.TF2
IE.ET2
T2CON.EXF2
XICON.IT2
XICON.EX2
iINT2
IE2
XICON.IT3
XICON.EX3
iINT3
IE3
EIE1.ESPI
SPSTAT.SPIF
EIE1.EADC
ADCON0.ADCI
EIE1.EPCA
PCA0 Interrupt
Flags
EIE1.ESF
Stystem Flags
S1CON.RI1
S1CON.TI1
EIE1.ES1
EIE1.EKB
KBCON.KBIF
EIE1.ETWSI
SICON.SI
EIE1.EAC0
AC0CON.AC0F
T3CON.TF3
T3CON.EXF3
EIE2.ET3
EIE2.EAC1
AC1CON.AC1F
EIE2.ES2
S2CON.RI2
S2CON.TI2
T4CON.TF4
T4CON.EXF4
S3CON.RI3
S3CON.TI3
PCA1 Interrupt
Flags
EIE2.ET4
EIE2.ES3
EIE2.EPCA1
EIE2.ETWI1
SI1CON.SI1
EIE2.EAC2
AC2CON.ACF2
Lowest Priority
Level Interrupt
84
MA82G5Cxx 数据手册
MEGAWIN
14.2. 中断源
表 14–2. 中断源标志位
序号
中断名称
#1
外部中断 0,nINT0
#2
定时器 0
#3
外部中断 1,nINT1
#4
定时器 1
请求位
IE0
TF0
IE1
TF1
#5
串行口 0
RI0, TI0
#6
定时器 2
TF2, EXF2
#7
#8
#9
#10
外部中断 2,nINT2
外部中断 3,nINT3
SPI
ADC
#11
PCA0
#12
系统标志
IE2
IE3
SPIF
ADCI
CF, CCFn
(n=0~5)
WDTF,
BOF1,
BOF0,
RTCF,
MCDF,
STAF,
STOF,
(TI0)
#13
串行口 1
RI1, TI1
#14
#15
#16
键盘中断
TWSI
模拟比较器 0
#17
定时器 3
#18
模拟比较器 1
KBIF
SI
AC0F
TF3,
EXF3,
(TF3L)
AC1F
#19
串口 2
RI2, TI2
#20
定时器 4
TF4,
EXF4,
(TF4L)
#21
串口 3
RI3, TI3
#22
PCA1
#23
#24
TWI1
模拟比较器 2
C1F, C1CFn
(n=0~5)
SI1
AC2F
位的位置
TCON.1
TCON.5
TCON.3
TCON.7
S0CON.0
S0CON.1
T2CON.7
T2CON.6
XICON.1
XICON.5
SPSTAT.7
ADCON0.4
CCON.7
CCON.5~0
PCON1.0
PCON1.1
PCON1.2
PCON1.4
PCON1.5
AUXR3.7
AUXR3.6
S0CON.1
S1CON.0
S1CON.1
KBCON.0
SICON.3
AC0CON.4
T3CON.7
T3CON.6
T3CON.5
AC1CON.4
S2CON.0
S2CON.1
T4CON.7
T4CON.6
T4CON.5
S3CON.0
S3CON.1
C1CON.7
C1CON.5~0
SI1CON.3
AC2CON.4
通过 TCON 寄存器的位 IT0 和 IT1 及 XICON 寄存器的位 IT2 和 IT3 可以设定外部中断 0(INT0)和外部中断 1
(INT1)及外部中断 2(nINT2) 和外部中断 3(nINT3)为电平触发或边沿触发。实际产生这些中断的标志位是
TCON 的 IE0 和 IE1,XICON 的 IE2 和 E3。外部中断发生后,进入中断服务程序,硬件将清除这个产生的标志
位。只要中断被激活,那么控制这些请求位的是外部请求源,而不是片内硬件。
TF0 和 TF1 产生定时器 0 和定时器 1 中断,多数情况下这两个标志位由它们对应的定时/计数寄存器翻转事件置
位。定时器中断发生后,进入中断服务程序,硬件将清除这个产生的标志位。
串口 0 中断由位 RI0 和位 TI0 的逻辑或产生。执行中断服务程序后不会被硬件清除须由软件清零,可以在中断服务
程序中查询 RI0 和 TI0 判断是接收中断还是发送中断。
MEGAWIN
MA82G5Cxx 数据手册
85
定时器/计数器 2 中断由两个标志位 TF2 或 EXF2 产生。跟串行口一样,执行中断服务程序后不会被硬件清除须由
软件清零,可以在中断服务程序中查询 TF2 和 EXF2 判断执行哪个中断服务子程序。
定时器 3 中断由两个标志位 TF3 或 EXF3 产生。如果定时器 3 在分割模式下,TL3 溢出将置位另一个中断标志位TF3L。跟串行口一样,这些标志位在执行中断服务程序后不会被硬件清除,须由软件清零。
定时器 4 中断由两个标志位 TF4 或 EXF4 产生。如果定时器 3 在分割模式下,TL3 溢出将置位另一个中断标志位TF3L。跟串行口一样,这些标志位在执行中断服务程序后不会被硬件清除,须由软件清零。
SPI 中断由寄存器 SPSTAT 里的 SPIF 位产生,SPI 引擎完成一个 SPI 传送后置该标志位。该标志位在执行中断服
务程序后不会被硬件清除,须由软件清除。
ADC 中断由寄存器 ADCON0 里的 ADCI 位产生。该标志位在执行中断服务程序后不会被硬件清除,须由软件清
除。
PCA0 中断由寄存器 CCON 里的 CF, CCF5, CCF4, CCF3, CCF2, CCF1 和 CCF0 位产生。这些标志位在执行中断
服务程序后不会被硬件清除。中断服务程序应当轮询这些标志位去判断是哪一个请求服务,并且在软件里清除这些
中断标志位。
PCA1 中断由寄存器 C1CON 里的 C1F, C1CF5, C1CF4, C1CF3, C1CF2, C1CF1 和 C1CF0 位产生。这些标志位
在执行中断服务程序后不会被硬件清除。中断服务程序应当轮询这些标志位去判断是哪一个请求服务,并且在软件
里清除这些中断标志位。
系统标志中断由 MCDF, RTCF, BOF1, BOF0, WDTF, TI0, STAF 和 STOF 位产生。STAF 和 STOF 存在寄存器
AUXR3 里,由串行接口监测置位这两个标志位。串口 TI 标志可以通过置位 UTIE 选择与系统标志中断共享中断向
量。复位标志存在于寄存器 PCON1 里。MCDF 由激活的时钟丢失监测置位。RTC 计数器溢出置位 RTCF。片内
低电监测器(BOD1 和 BOD0)监测到低压时置位 BOF1 和 BOF0。看门狗溢出置位 WDTF。这些标志位在执行中断
服务程序后不会被硬件清除。中断服务程序应当轮询这些标志位去判断是哪一个请求服务,并且在软件里清除这些
中断标志位。
图 14–2 展示了系统标志中断结构
图 14–2. 系统标志中断结构
PCON1.WDTF
SFIE.WDTFIE
System Flag
Interrupt
PCON1.BOF0
SFIE.BOF0IE
PCON1.BOF1
SFIE.BOF1IE
PCON1.RTCF
SFIE.RTCFIE
EIE1.ESF
PCON1.MCDF
SFIE.MCDFIE
S0CON.TI0
S0CFG.UTIE
AUXR1.STAF
AUXR1.STOF
SFIE.SIDFIE
串口 1 中断由 RI1 或 TI1 位产生。这些标志位在执行中断服务程序后不会被硬件清除。中断服务程序应当查询 RI1
和 TI1 去判断是哪一个请求服务,并且在软件里清除这些中断标志位。
串口 2 中断由 RI2 或 TI2 位产生。这些标志位在执行中断服务程序后不会被硬件清除。中断服务程序应当查询 RI2
和 TI2 去判断是哪一个请求服务,并且在软件里清除这些中断标志位。
86
MA82G5Cxx 数据手册
MEGAWIN
串口 3 中断由 RI3 或 TI3 位产生。这些标志位在执行中断服务程序后不会被硬件清除。中断服务程序应当查询 RI3
和 TI3 去判断是哪一个请求服务,并且在软件里清除这些中断标志位。
键盘中断由 KBCON 寄存器的位 KBIF 来产生,KBIF 由键盘模块遇到键输入来置位。执行中断服务程序后不会被硬
件清除。
TWSI 中断由 SICON 寄存器的位 SIF 来产生,SIF 由 TWSI 引擎检测到一个新的总线状态来置位。执行中断服务程
序后不会被硬件清除。
TWSI1 中断由 SI1CON 寄存器的位 SI1 来产生,由 TWSI1 引擎检测到一个新的总线状态来置位。执行中断服务程
序后不会被硬件清除。
AC0 中断由 AC0CON 寄存器的位 AC0F 来产生,由检测到 AC0OUT 上升沿,下降沿或者电平变化而置标志位。
该标志位在执行中断服务程序后不会被硬件清除。
AC1 中断由 AC1CON 寄存器的位 AC1F 来产生,由检测到 AC1OUT 上升沿,下降沿或者电平变化而置标志位。
该标志位在执行中断服务程序后不会被硬件清除。
AC2 中断由 AC2CON 寄存器的位 AC2F 来产生,由检测到 AC2OUT 上升沿,下降沿或者电平变化而置标志位。
该标志位在执行中断服务程序后不会被硬件清除。
所有这些中断标志都能被软件置位或清零,跟硬件置位或清零的结果是样的。也就是说,中断能通过软件来产生也
可以软件来取消。
MEGAWIN
MA82G5Cxx 数据手册
87
14.3. 中断使能
Table 14–3. Interrupt Enable
序号
中断名称
#1
外部中断 0,nINT0
#2
定时器 0
#3
外部中断 1,nINT1
#4
定时器 1
#5
串行口 0
#6
定时器 2
#7
外部中断 2,nINT2
#8
外部中断 3,nINT3
#9
SPI
#10
ADC
#11
PCA0
#12
系统标志
#13
串行口 1
#14
键盘中断
#15
TWSI
#16
模拟比较器 0
#17
定时器 3
#18
模拟比较器 1
#19
串口 2
#20
定时器 4
#21
串口 3
#22
PCA1
#23
TWI1
#24
模拟比较器 2
使能位
EX0
ET0
EX1
ET1
ES0
ET2
EX2
EX3
ESPI
EADC
EPCA
ESF
ES1
EKB
ETWSI
EAC0
ET3
EAC1
ES2
ET4
ES3
EPCA1
ETWI1
EAC2
位的位置
IE.0
IE.1
IE.2
IE.3
IE.4
IE.5
XICON.2
XICON.3
EIE1.0
EIE1.1
EIE1.2
EIE1.3
EIE1.4
EIE1.5
EIE1.6
EIE1.7
EIE2.0
EIE2.1
EIE2.2
EIE2.3
EIE2.4
EIE2.5
EIE2.6
EIE2.7
MA82G5C64 有 24 个中断源可用。每个中断源可以通过 IE, EIE1, EIE2 和 XICON 寄存器的中断使能位置位或清
零各自中断使能或禁止。IE 也提供一个全局中断使能位(EA),此位清零可以立刻禁止所有中断。如果此位置位
中断由相应的中断使能位各自使能或禁止。如果此位清零则所有中断被禁止。
88
MA82G5Cxx 数据手册
MEGAWIN
14.4. 中断优先级
服务中断的优先级除了有 4 个级别比 80C51 多 2 个之外跟 80C51 一样。优先级位决定每个中断的优先级(见表
14–1)。IP0L, IP0H, EIP1L, EIP1H, EIP2L 和 EIP2H 跟 4 个级别优先级中断相关。表 14–4 显示位的值和优先级
的关系。
表 14–4. 中断优先级
{IPnH.x , IPnL.x}
11
10
01
00
优先级
1 (最高)
2
3
4
每个中断源都有两个中断优先级相关位。一个位在 IPnH 寄存器另一个在 IPnL 寄存器。高优先级中断不会被低优
先级中断打断。如果两个不同优先级的中断请求同时出现,较高优先级将被执行。如果相同优先级的中断请求同时
出现,则按照内部优先级排序执行。表 14–2 显示了同一优先级的内部优先级排序和中断向量地址。
14.5. 中断处理
每一个系统时钟周期将采样每一个中断标志。在下一个系统时钟采样成功。如果其中一个标志在第一个周期置位,
第二个周期找到并且只要没有被下列条件阻止则中断系统产生一个硬件调用(LCALL)相应的中断服务程序。
阻止条件:
进行中已经有一个同级或更高级优先级的中断.
进行中当前周期(中断获得周期)不是指令执行结束周期.
指令进行是 RETI 或 IE, IP0L, IP0H, EIE1, EIP1L 和 EIP1H 寄存器的写操作.
上述三个条件中的任意一个将阻止硬件中断调用(LCALL)去中断服务程序。条件 2 确保中断进入任意一个服务程
序之前指令执行完毕。条件 3 确保如果在 RETI 执行或 IE, IP0L, IP0H, EIE1, EIP1L 及 or EIP1H 的访问之后,进入
中断服务程序之前至少一个或更多指令被执行。
MEGAWIN
MA82G5Cxx 数据手册
89
14.6. nINTx 输入源选择和输入滤波(x=0~3)
MA82G5C64 提供灵活的 nINT0, nINT1, nINT2 和 nINT3 输入源选择去共享端口引脚输入。
图 14-2. nINT0~3端口引脚选择结构
Sampling Type
Selection
P3.2
0
P3.0
1
P1.6
2
P4.0
3
nINT0 input
0
SYSCLK
1
0
SYSCLK x 3
1
SYSCLK/6 x 3
2
3
clock
Filter
INT0H
(AUXR0.0)
T3OF x 3
IT0 = 0
IE0
(TCON.1)
3
IT0 = 1
(TCON.0)
INT0IS.1~0
SYSCLK
(XICFG.5~4)
iINT0 to
internal logic
{X0FLT1,X0FLT}
(XICFG1.0, XICFG.0)
T3OF
or TL3OF if T3SPL=1
P3.3
0
P3.1
1
P1.7
2
P4.1
3
nINT1 input
0
SYSCLK
1
0
SYSCLK x 3
1
SYSCLK/6 x 3
2
3
clock
Filter
INT1H
(AUXR0.1)
T3OF x 3
IT1 = 0
IE1
(TCON.3)
3
IT1 = 1
(TCON.2)
INT1IS.1~0
SYSCLK
(XICFG.7~6)
iINT1 to
internal logic
{X1FLT1,X1FLT}
(XICFG1.1, XICFG.1)
T3OF
or TL3OF if T3SPL=1
P4.3
0
P6.2
1
P1.4
2
P6.1
3
nINT2 input
0
SYSCLK
1
0
SYSCLK x 3
1
SYSCLK/6 x 3
2
3
clock
Filter
INT2H
(XICON.3)
T3OF x 3
IT2 = 0
IE2
(XICON.1)
3
IT2 = 1
(XICON.0)
INT2IS.1~0
SYSCLK
(AUXR2.5~4)
iINT2 to
internal logic
{X2FLT1,X2FLT}
(XICFG1.2, XICFG.2)
T3OF
or TL3OF if T3SPL=1
P4.2
0
P6.3
1
P1.5
2
P6.0
3
nINT3 input
0
SYSCLK
1
0
SYSCLK x 3
1
SYSCLK/6 x 3
2
3
clock
Filter
INT3H
(XICON.7)
T3OF x 3
IT3 = 0
IE3
(XICON.5)
3
IT3 = 1
(XICON.4)
INT3IS.1~0
SYSCLK
(AUXR2.7~6)
T3OF
{X3FLT1,X3FLT}
(XICFG1.3, XICFG.3)
iINT3 to
internal logic
or TL3OF if T3SPL=1
Operating Example of nINTx Input Filter (x = 0~3)
nINTx input
(low/falling trigger)
Sampling Timing
iINTx input
IEx
when ITx=1
Set by hardware
90
Clear by software
MA82G5Cxx 数据手册
MEGAWIN
14.7. 中断寄存器
TCON: 定时器/计数器控制寄存器
SFR 页 = 0~F
SFR 地址
= 0x88
7
6
5
TF1
TR1
TF0
R/W
R/W
R/W
4
TR0
R/W
复位值 = 0000-0000
3
2
IE1
IT1
R/W
R/W
1
IE0
0
IT0
R/W
R/W
Bit 3: IE1, 外部中断 1 请求标志
0: 如果是边沿触发的中断则在进入中断向量后硬件清零。
1: 外部中断 1 由边沿或电平触发(由 IT1 设置)硬件置标志。
Bit 2: IT1: 外部中断 1 类型控制位
0: 软件选择低电平触发外部中断 1 。如果 INT1H (AUXR0.1)置位,则高电平触发外部中断 1(nINT1)。
1: 软件选择下降沿触发外部中断 1 。如果 INT1H (AUXR0.1)置位,则上升沿触发外部中断 1(nINT1)。
Bit 1: IE0, 外部中断 0 请求标志
0: 如果是边沿触发的中断则在进入中断向量后硬件清零。
1: 外部中断 0 由边沿或电平触发(由 IT0 设置)硬件置标志。
Bit 0: IT0: 外部中断 0 类型控制位
0: 软件选择低电平触发外部中断 0 。如果 INT0H (AUXR0.0)置位,则高电平触发外部中断 0(nINT0)。
1: 软件选择下降沿触发外部中断 0 。如果 INT0H (AUXR0.0)置位,则上升沿触发外部中断 0(nINT0)。
IE: 中断使能寄存器
SFR 页 = 0~F
SFR 地址
= 0xA8
7
6
EA
-R/W
5
ET2
4
ES0
R/W
R/W
W
复位值 = 0X00-0000
3
2
ET1
EX1
R/W
R/W
1
ET0
0
EX0
R/W
R/W
Bit 7: EA, 总中断使能位
0: 禁止所有中断。
1: 使能所有中断。
Bit 6: 保留。当 IE 写入时,此位软件必须写‖0‖。
Bit 5: ET2, 定时器 2 中断使能
0: 禁止定时器 2 中断。
1: 使能定时器 2 中断。
Bit 4: ES, 串行口 0 中断(UART0)使能
0: 禁止串行口 0 中断。
1: 使能串行口 0 中断。
Bit 3: ET1, 定时器 1 中断使能
0: 禁止定时器 1 中断。
1: 使能定时器 1 中断。
Bit 2: EX1, 外部中断 1(nINT1)使能
0: 禁止外部中断 1。
1: 使能外部中断 1。
Bit 1: ET0, 定时器 0 中断使能
MEGAWIN
MA82G5Cxx 数据手册
91
0: 禁止定时器 0 中断。
1: 使能定时器 0 中断。
Bit 0: EX0, 外部中断 0(nINT0)使能
0: 禁止外部中断 0。
1: 使能外部中断 0。
AUXR0: 辅助寄存器 0
SFR 页 = 0~F
SFR 地址
= 0xA1
7
6
P60OC1
P60OC0
R/W
5
P60FD
4
T0XL
R/W
R/W
R/W
复位值 = 0000-0000
3
2
P4FS1
P4FS0
1
INT1H
0
INT0H
R/W
R/W
R/W
复位值 = 0000-0000
3
2
INT2H
EX2
1
IE2
0
IT2
R/W
R/W
R/W
Bit 1: INT1H, INT1 高电平/上升沿触发使能
0: 保留 INT1 在选择的端口引脚上低电平或下降沿触发
1: 设置 INT1 在选择的端口引脚上高电平或上升沿触发
Bit 0: INT0H, INT0 高电平/上升沿触发使能
0: 保留 INT0 在选择的端口引脚上低电平或下降沿触发
1: 设置 INT0 在选择的端口引脚上高电平或上升沿触发
XICON: 扩展中断控制寄存器
SFR 页 = 0~F
SFR 地址
= 0xC0
7
6
5
INT3H
EX3
IE3
R/W
R/W
R/W
4
IT3
R/W
R/W
R/W
Bit 7: INT3H,外部中断 3(nINT3)触发方式控制位
0:被选择端口引脚输入的下降沿/低电平触发 nINT3.
1:被选择端口引脚输入的上升沿/高电平触发 nINT3
Bit 6: EX3, 外部中断 3 使能位
0: 禁止外部中断 3
1: 使能外部中断 3
当 CPU 在空闲或掉电模式,如果 EX3 使能 nINT3 事件触发 IE3 则可以唤醒 CPU;如果 EX3 禁止,nINT3 事件触
发 IE3 则不能唤醒 CPU。
Bit 5: IE3, 外部中断 3 (nINT3)中断标志
0: 如果是边沿触发的中断则在进入中断向量后硬件清零,也可以 CPU 清零
1: 外部中断 3 由边沿或电平触发(由 IT3 设置)硬件置位,也可以 CPU 置位
Bit 4: IT3, 外部中断 3 类型控制位
0: 软件选择低电平触发外部中断 3 。如果 INT3H 置位,则高电平触发外部中断 3
1: 软件选择下降沿触发外部中断 3 。如果 INT3H 置位,则上升沿触发外部中断 3
Bit 3: INT2H, 外部中断 2 触发方式控制位
0:被选择端口引脚输入的下降沿/低电平触发 nINT2
1:被选择端口引脚输入的上升沿/高电平触发 nINT2
Bit 2: EX2, 外部中断 2 使能位
0: 禁止外部中断 2
1: 使能外部中断 2
92
MA82G5Cxx 数据手册
MEGAWIN
当 CPU 在空闲或掉电模式,如果 EX2 使能 nINT2 事件触发 IE2 则可以唤醒 CPU;如果 EX2 禁止,nINT2 事件触
发 IE2 则不能唤醒 CPU。
Bit 1: IE2, 外部中断 2 中断标志
0: 如果是边沿触发的中断则在进入中断向量后硬件清零,也可以软件清零
1: 外部中断 2 由边沿或电平触发(由 IT2 设置)硬件置位,也可以软件置位
Bit 0: IT2, 外部中断 2 类型控制位
0: 软件选择低电平触发外部中断 2 。如果 INT2H 置位,则高电平触发外部中断 2
1: 软件选择下降沿触发外部中断 2 。如果 INT2H 置位,则上升沿触发外部中断 2
IP0L: 中断优先级 0 低字节寄存器
SFR 页 = 0~F
SFR 地址
= 0xB8
7
6
5
PX3L
PX2L
PT2L
R/W
R/W
4
PSL
R/W
R/W
复位值 = 0000-0000
3
2
PT1L
PX1L
R/W
R/W
1
PT0L
0
PX0L
R/W
R/W
1
PT0H
0
PX0H
R/W
R/W
1
EADC
0
ESPI
R/W
R/W
Bit 7: PX3L, 外部中断 3 中断优先级低位
Bit 6: PX2L, 外部中断 3 中断优先级低位
Bit 5: PT2L, 定时器 2 中断优先级低位
Bit 4: PSL, UART0 中断优先级低位
Bit 3: PT1L, 定时器 1 中断优先级低位
Bit 2: PX1L, 外部中断 1 中断优先级低位
Bit 1: PT0L, 定时器 0 中断优先级低位
Bit 0: PX0L, 外部中断 0 中断优先级低位
IP0H: 中断优先级 0 高字节寄存器
SFR 页 = 0~F
SFR 地址
= 0xB7
7
6
5
PX3H
PX2H
PT2H
R/W
R/W
4
PSH
R/W
R/W
复位值 = 0000-0000
3
2
PT1H
PX1H
R/W
R/W
Bit 7: PX3H, 外部中断 3 中断优先级高位
Bit 6: PX2H, 外部中断 2 中断优先级高位
Bit 5: PT2H, 定时器 2 中断优先级高位
Bit 4: PSH, UART0 中断优先级高位
Bit 3: PT1H, 定时器 1 中断优先级高位
Bit 2: PX1H, 外部中断 1 中断优先级高位
Bit 1: PT0H, 定时器 0 中断优先级高位
Bit 0: PX0H, 外部中断 0 中断优先级高位
EIE1: 扩展中断使能 1 寄存器
SFR 页 = 0~F
SFR 地址
= 0xAD
7
6
5
EAC0
ETWSI
EKB
R/W
R/W
R/W
4
ES1
R/W
复位值 = 0000-0000
3
2
ESF
EPCA
R/W
R/W
Bit 7: EAC0, 模拟比较器 0 (AC0)中断使能
0: 禁止 AC0 中断
1: 使能 AC0 中断
MEGAWIN
MA82G5Cxx 数据手册
93
Bit 6: ETWSI, TWSI 中断使能
0: 禁止 TWSI 中断
1: 使能 TWSI 中断
Bit 5: EKBI, 键盘中断使能
0: 当键盘控制模块的 KBCON.KBIF 置位时禁止中断
1: 当键盘控制模块的 KBCON.KBIF 置位时使能中断
Bit 4: ES1, 串行口 1 (UART1)中断使能
0: 禁止串行口 1 (UART1)I 中断
1: 使能串行口 1 (UART1)I 中断
Bit 3: ESF, 系统标志中断使能
0:当 PCON1 的位{ MCDF, RTCF,BOF1,BOF0,WDTF }置位,或 AUXR3 的位{STAF,STOF}置位,或 TI0 与 UTIE
一起置位时禁止中断
1:当 SFIE 寄存器的相关系统标志中断使能并且 PCON1 的位{ MCDF, RTCF,BOF1,BOF0,WDTF }置位,或
AUXR3 的位{STAF,STOF}置位,或 TI0 与 UTIE 一起置位时使能中断
Bit 2: EPCA, PCA0 中断使能
0: 禁止 PCA0 中断
1: 使能 PCA0 中断
Bit 1: EADC, ADC 中断使能
0: 当 ADC 模块的 ADCON0.ADCI 置位禁止中断
1: 当 ADC 模块的 ADCON0.ADCI 置位使能中断
Bit 0: ESPI, SPI 中断使能
0: 当 SPI 模块的 SPSTAT.SPIF 置位禁止中断
1: 当 SPI 模块的 SPSTAT.SPIF 置位使能中断
EIP1L: 扩展中断优先级 1 低字节寄存器
SFR 页 = 0~F
SFR 地址
= 0xAE
7
6
5
4
PAC0L
PTWIL
PKBL
PS1L
R/W
R/W
R/W
R/W
复位值 = 0000-0000
3
2
PSFL
PPCAL
R/W
R/W
1
PADCL
0
PSPIL
R/W
R/W
1
PADCH
0
PSPIH
R/W
R/W
Bit 7: PAC0L, AC0 中断优先级低位
Bit 6: PTWIL, TWSI 中断优先级低位
Bit 5: PKBL, 键盘中断优先级低位
Bit 4: PS1L, UART1 中断优先级低位
Bit 3: PSFL, 系统标志中断优先级低位
Bit 2: PPCAL, PCA 中断优先级低位
Bit 1: PADCL, ADC 中断优先级低位
Bit 0: PSPIL, SPI 中断优先级低位
EIP1H: 扩展中断优先级 1 高字节寄存器
SFR 页 = 0~F
SFR 地址
= 0xAF
复位值 = 0000-0000
7
6
5
4
3
2
PAC0H
PTWIH
PKBH
PS1H
PSFH
PPCAH
R/W
R/W
R/W
R/W
R/W
R/W
Bit 7: PAC0H, AC0 中断优先级高位
Bit 6: PTWIH, TWSI 中断优先级高位
94
MA82G5Cxx 数据手册
MEGAWIN
Bit 5: PKBH, 键盘中断优先级高位
Bit 4: PS1H, UART1 中断优先级高位
Bit 3: PSFH, 系统标志中断优先级高位
Bit 2: PPCAH, PCA 中断优先级高位
Bit 1: PADCH, ADC 中断优先级高位
Bit 0: PSPIH, SPI 中断优先级高位
EIE2: 扩展中断使能 2 寄存器
SFR 页 = 0~F
SFR 地址
= 0xA5
7
6
5
EAC2
ETWI1
EPCA1
R/W
R/W
R/W
4
ES3
R/W
复位值 = 0000-0000
3
2
ET4
ES2
R/W
R/W
1
EAC1
0
ET3
R/W
R/W
1
PAC1L
0
PT3L
R/W
R/W
Bit 7: EAC2, 模拟比较器 2 (AC2)中断使能
0: 禁止 AC2 中断
1: 使能 AC2 中断
Bit 6: ETWI1, TWI1 中断使能
0: 禁止 TWI1 中断
1: 使能 TWI1 中断
Bit 5: EPCA1, PCA1 中断使能
0: 禁止 PCA1 中断
1: 使能 PCA1 中断
Bit 4: ES3, 串口 3(UART3)中断使能
0: 禁止串口 3 中断
1: 使能串口 3 中断
Bit 3: ET4, 定时器 4 中断使能
0: 禁止定时器 4 中断
1: 使能定时器 4 中断
Bit2: ES2, 串口 2(UART2)中断使能
0: 禁止串口 2 中断
1: 使能串口 2 中断
Bit 1: EAC1, 模拟比较器 1 (AC1)中断使能
0: 禁止 AC1 中断
1: 使能 AC1 中断
Bit 0: ET3, 定时器 3 中断使能
0: 禁止定时器 3 中断
1: 使能定时器 3 中断
EIP2L: 扩展中断优先级 2 低字节寄存器
SFR 页 = 0~F
SFR 地址
= 0xA6
7
6
5
4
PAC2L
PTWI1L
PPCA1L
PS3L
R/W
R/W
R/W
R/W
复位值 = 0000-0000
3
2
PT4L
PS2L
R/W
R/W
Bit 7: PAC2L, AC2 中断优先级低位
Bit 6: PTWI1L, TWI1 中断优先级低位
MEGAWIN
MA82G5Cxx 数据手册
95
Bit 5: PPCA1L, PCA1 中断优先级低位
Bit 4: PS3L, UART3 中断优先级低位
Bit 3: PT4L, 定时器 4 系统标志中断优先级低位
Bit 2: PS2L, UART2 中断优先级低位
Bit 1: PAC1L, AC1 中断优先级低位
Bit 0: PT3L, 定时器 3 中断优先级低位
EIP2H: 扩展中断优先级 2 高字节寄存器
SFR 页 = 0~F
SFR 地址
= 0xA7
复位值 = 0000-0000
7
6
5
4
3
2
PAC2H
PTWI1H
PPCA1H
PS3H
PT4H
PS2H
R/W
R/W
R/W
R/W
R/W
R/W
1
PAC1H
0
PT3H
R/W
R/W
1
X1FLT
0
X0FLT
R/W
R/W
Bit 7: PAC2H, AC2 中断优先级高位
Bit 6: PTWI1H, TWI1 中断优先级高位
Bit 5: PPCA1H, PCA1 中断优先级高位
Bit 4: PS3H, UART3 中断优先级高位
Bit 3: PT4H, 定时器 4 系统标志中断优先级高位
Bit 2: PS2H, UART2 中断优先级高位
Bit 1: PAC1H, AC1 中断优先级高位
Bit 0: PT3H, 定时器 3 中断优先级高位
XICFG: 扩展中断配置寄存器
SFR 页 = 0 only
SFR 地址
= 0xC1
7
6
5
INT1IS.1
INT1IS.0
INT0IS.1
R/W
R/W
R/W
4
INT0IS.0
R/W
复位值 = 0000-0000
3
2
X3FLT
X2FLT
R/W
R/W
Bit 7~6: INT1IS.1~0, nINT3 的输入引脚选择表
INT1IS.1~0
nINT1 输入引脚
00
P3.3
01
P3.1
10
P1.7
11
P4.1
Bit 5~4: INT0IS.1~0, nINT0 的输入引脚选择表
INT0IS.1~0
nINT0 输入引脚
00
P3.2
01
P3.0
10
P1.6
11
P4.0
Bit 3: X3FLT, nINT3 滤波模式控制. 和 X3FLT1 (XICFG1.3)一起选择 nINT3 的输入滤波模式
X3FLT1, X3FLT
nINT3 输入滤波模式
00
禁止
01
SYSCLK x 3
10
SYSCLK/6 x 3
11
T3OF x 3
Bit 2: X2FLT, nINT2 滤波模式控制. 和 X2FLT1 (XICFG1.2)一起选择 nINT2 的输入滤波模式
X2FLT1, X2FLT
nINT2 输入滤波模式
96
MA82G5Cxx 数据手册
MEGAWIN
00
01
10
11
Disabled
SYSCLK x 3
SYSCLK/6 x 3
T3OF x 3
Bit 1: X1FLT, nINT1 滤波模式控制. 和 X1FLT1 (XICFG1.1)一起选择 nINT1 的输入滤波模式
X1FLT1, X1FLT
nINT1 输入滤波模式
00
禁止
01
SYSCLK x 3
10
SYSCLK/6 x 3
11
T3OF x 3
Bit 0: X0FLT, nINT0 滤波模式控制. 和 X0FLT1 (XICFG1.0)一起选择 nINT0 的输入滤波模式
X0FLT1, X0FLT
nINT0 输入滤波模式
00
禁止
01
SYSCLK x 3
10
SYSCLK/6 x 3
11
T3OF x 3
XICFG1: 扩展中断配置 1 寄存器
SFR 页 = 1 only
SFR 地址
= 0xC1
7
6
5
INT3IS.1
INT3IS.0
INT2IS.1
R/W
R/W
R/W
4
INT2IS.0
R/W
复位值 = 0000-0000
3
2
X3FLT1
X2FLT1
R/W
R/W
1
X1FLT1
0
X0FLT1
R/W
R/W
Bit 7~6: INT3IS1~0, nINT3 的输入引脚选择表.
INT3IS.1~0
nINT3 输入引脚
00
P4.2
01
P6.3
10
P1.5
11
P6.0
Bit 5~4: INT2IS1~0, nINT2 的输入引脚选择表
INT2IS.1~0
nINT2 输入引脚
00
P4.3
01
P6.2
10
P1.4
11
P6.1
Bit 3: X3FLT1, nINT3 滤波模式控制。和 X3FLT (XICFG.3)一起选择 nINT3 的输入滤波模式。参考寄存器 XICFG
有关 nINT3 输入滤波模式定义的描述。
Bit 2: X2FLT1, nINT2 滤波模式控制。和 X2FLT (XICFG.2)一起选择 nINT2 的输入滤波模式。参考寄存器 XICFG
有关 nINT2 输入滤波模式定义的描述。
Bit 1: X1FLT1, nINT1 滤波模式控制。和 X1FLT (XICFG.1)一起选择 nINT1 的输入滤波模式。参考寄存器 XICFG
有关 nINT1 输入滤波模式定义的描述。
Bit 0: X0FLT1, nINT0 滤波模式控制。和 X0FLT (XICFG.0)一起选择 nINT0 的输入滤波模式。参考寄存器 XICFG
有关 nINT0 输入滤波模式定义的描述。
SFIE: 系统标志中断使能寄存器
SFR 页 = 0~F
SFR 地址
= 0x8E
MEGAWIN
复位值 = 0110-X000
MA82G5Cxx 数据手册
97
7
SIDFIE
6
MCDRE
5
MCDFIE
4
RTCFIE
3
--
2
BOF1IE
1
BOF0IE
0
WDTFIE
R/W
R/W
R/W
R/W
W
R/W
R/W
R/W
1
BOF0
R/W
0
WDTF
R/W
Bit 7: SIDFIE, 串行接口监测标志中断使能
0: 禁止 SIDF(STAF 或 STOF) 中断
1: 使能 SIDF(STAF 或 STOF) 中断共享系统标志中断
Bit 6: MCDRE, 使能丢失时钟监测事件触发系统复位
0: 禁止 MCD 事件触发系统复位
1: 使能 MCD 事件触发系统复位
Bit 5: MCDFIE, 使能 MCDF (PCON1.5) 中断
0: 禁止 MCDF 中断
1: 使能 MCD 模块并且使能 MCDF 中断
Bit 4: RTCFIE, 使能 RTCF (PCON1.4) 中断
0: 禁止 RTCF 中断
1: 使能 RTCF 中断
Bit 3: 保留. 在写 SFIE 时,软件必须在该位上写‖0‖
Bit 2: BOF1IE, 使能 BOF1 (PCON1.2) 中断
0: 禁止 BOF1 中断
1: 使能 BOF1 中断
Bit 1: BOF0IE, 使能 BOF0 (PCON1.1) 中断
0: 禁止 BOF0 中断
1: 使能 BOF0 中断
Bit 0: WDTFIE, 使能 WDTF (PCON1.0) 中断
0: 禁止 WDTF 中断
1: 使能 WDTF 中断
PCON1: 电源控制寄存器 1
SFR 页
= 0~F & P
SFR 地址
= 0x97
7
6
5
SWRF
EXRF
MCDF
R/W
R/W
R/W
4
RTCF
R/W
POR = 0010-X000
3
2
-BOF1
W
R/W
Bit 7: SWRF, 软件复位标志
0:必须由软件写‖1‖ 才能清除这个位
1: 如果由软件导致的复位,则硬件会置位这个位
Bit 6: EXRF, 外部复位标志.
0: 必须由软件写‖1‖ 才能清除这个位
1: 如果由外部导致的复位,则硬件会置位这个位
Bit 5: MCDF. (在验证中…)
Bit 4: RTCF, RTC 溢出标志
0: 必须由软件写‖1‖ 才能清除这个位
1:当 RTCCT 溢出时,硬件会置位这个位
Bit 3: 保留. 在写 PCON1 时,软件必须在该位上写‖0‖
98
MA82G5Cxx 数据手册
MEGAWIN
Bit 2: BOF1, 低电监测标志 1.
0: 必须由软件写‖1‖ 才能清除这个位
1: 如果低电监测器 1 监测到工作电压匹配监测电平(4.2V/3.7/2.4/2.0),则硬件会置位这个位
Bit 1: BOF0, 低电监测标志 0.
0: 必须由软件写‖1‖ 才能清除这个位
1: 如果低电监测器 0 监测到工作电压匹配监测电平(2.2V),则硬件会置位这个位
Bit 0: WDTF, WDT overflow flag.
0: 必须由软件写‖1‖ 才能清除这个位
1: 如果 WDT 溢出,则硬件会置位这个位
AUXR3: 辅助寄存器 3
SFR 页 = 0 only
SFR 地址
= 0xA4
7
6
STAF
STOF
R/W
R/W
5
BPOC1
R/W
复位值 = 0000-0000
4
3
2
BPOC0
ALEPS0
TWIPS1
R/W
R/W
R/W
1
TWIPS0
0
T2PS0
R/W
R/W
Bit 7: STAF, SID(STWI)起始标志监测
0: 软件写‖0‖清除该位
1: 硬件置 1,表示在 STWI 总线上发生了一个起始动作
Bit 6: STOF, SID(STWI)结束标志监测
0: 软件写‖0‖清除该位
1: 硬件置 1,表示在 STWI 总线上发生了一个结束动作
MEGAWIN
MA82G5Cxx 数据手册
99
15. 定时器/计数器
MA82G5C64 有五个 16 位定时器/计数器:定时器 0,定时器 1,定时器 2,定时器 3 和定时器 4。所有这些操作
既可配置为定时器或事件记数器。
定时器功能,定时器预分频是每 12 个时钟周期加 1。换句话说,定时器是标准 C51 机器周期计数一次。
AUXR2.T0X12, AUXR2.T1X12 和 T2MOD.T2X12 可以设置定时器 0/1/2 每个时钟周期计数一次。这样就是标准
C51 定时器 12 倍的速度。结合 AUXR0.T0XL 和 T0X12 定时器 0 时钟输入可选择额外的预分频 SYSCLK/48 和
SYSCLK/192
计数器功能,下降沿时寄存器加1,根据相应的外部输入引脚T0,T1,T2,T3或T4。在这些功能中,每个定时器
时钟周期对外部输入信号进行采样。当采样信号出现一个高电平接着一个低电平,计数加1。当检测到跳变时,新
计数值在这一时钟周期后的下一周期结束时出现在寄存器中。
100
MA82G5Cxx 数据手册
MEGAWIN
15.1. 定时器 0 和 定时器 1
15.1.1. 定时器 0/1 模式 0
在模式 0,定时器寄存器配置为一个 PWM 产生器。计数器所有位从全 1 翻转到全 0,置位定时器中断标志位
TFx。当 TRx=1 且 GATE=0 或/INTx=1,定时器使能输入计数。定时器 0 和 1 的模式 0 操作是一样的。定时器 0/1
的 PWM 功能结构图见图 115–1 和 图 115–2.
图 115–1. 定时器 0 模式 0 结构
SYSCLK/12
(0,0,0)
T0 Pin
(0,0,1)
SYSCLK
(0,1,0)
ILRCO
(0,1,1)
SYSCLK/48
(1,0,0)
(WDT pre-scaler) WDTPS
(1,0,1)
SYSCLK/192
(1,1,0)
(Timer1 overflow) T1OF
(1,1,1)
00H
Reload
T0OF
(T0 overflow)
8-bit Up-Counter
Overflow
TL0[7:0]
TF0
T0 Interrupt
Port I/O
Q
{T0XL, T0X12, T0C/T}
TR0
0
T0GATE
8-Bit
Comparator
iINT0
{TL0} >= {TH0}
S
Q
R
Q
1
T0CKO
{TL0} < {TH0}
TH0[7:0]
T0CKOE
TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TMOD
T1GATE
T1C/T
T1M1
T1M0
T0GATE
T0C/T
T0M1
T0M0
AUXR0
P60OC1 P60OC0
AUXR2
ALEINV
ADDRO
P60FD
T0XL
P4FS1
P4FS0
--
--
T1X12
T0X12
0
0
INT1H
INT0H
T1CKOE T0CKOE
1
MEGAWIN
MA82G5Cxx 数据手册
101
图 115–2. 定时器 1 模式 0 结构
00H
Reload
T1OF
(T1 overflow)
SYSCLK/12
(0,0)
T1 Pin
(0,1)
SYSCLK
(1,0)
SYSCLK/48
(1,1)
8-bit Up-Counter
Overflow
TL1[7:0]
TF1
T1 Interrupt
Port I/O
Q
{T1X12, T1C/T}
TR1
0
T1GATE
8-Bit
Comparator
iINT1
{TL1} >= {TH1}
S
Q
R
Q
1
T1CKO
{TL1} < {TH1}
TH1[7:0]
T1CKOE
TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TMOD
T1GATE
T1C/T
T1M1
T1M0
T0GATE
T0C/T
T0M1
T0M0
0
0
--
--
T1X12
T0X12
AUXR2
ALEINV
ADDRO
T1CKOE T0CKOE
1
102
MA82G5Cxx 数据手册
MEGAWIN
15.1.2. 定时器 0/1 模式 1
在模式 1 定时器 0/1 配置成一个 16 位定时器或计数器。GATE,INTx 和 TRx 的功能和模式 0 一样。定时器 0/1 模式
1 的结构图见 图 15–3 和 图 15–4 。
图 15–3. 定时器 0 模式 1 结构
SYSCLK/12
(0,0,0)
T0 Pin
(0,0,1)
SYSCLK
(0,1,0)
ILRCO
(0,1,1)
SYSCLK/48
(1,0,0)
(WDT prescaler) WDTPS
(1,0,1)
SYSCLK/192
(1,1,0)
(Timer1 overflow) T1OF
(1,1,1)
00H
00H
Reload
T0OF
(T0 overflow)
Overflow
TL0[7:0]
TH0[7:0]
TF0
T0 Interrupt
16-bit Up-Counter
{T0XL, T0X12, T0C/T}
TR0
TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TMOD
T1GATE
T1C/T
T1M1
T1M0
T0GATE
T0C/T
T0M1
T0M0
T0GATE
iINT0
AUXR0
P60OC1 P60OC0
AUXR2
ALEINV
P60FD
T0XL
P4FS1
P4FS0
--
--
T1X12
T0X12
ADDRO
0
1
INT1H
INT0H
T1CKOE T0CKOE
图 15–4. 定时器 1 模式 1 结构
00H
SYSCLK /12
(0,0)
T1 Pin
(0,1)
SYSCLK
(1,0)
SYSCLK/48
(1,1)
00H
Reload
T1OF
(T1 overflow)
Overflow
TL1[7:0]
{T1X12, T1C/T}
TR1
TH1[7:0]
TF1
T1 Interrupt
16-bit Up-Counter
TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TMOD
T1GATE
T1C/T
T1M1
T1M0
T0GATE
T0C/T
T0M1
T0M0
0
1
--
--
T1X12
T0X12
T1GATE
iINT1
AUXR2
MEGAWIN
ALEINV
ADDRO
MA82G5Cxx 数据手册
T1CKOE T0CKOE
103
15.1.3. 定时器 0/1 模式 2
模式 2 配置定时器寄存器为一个自动加载的 8 位计数器(TLx)。TLx 溢出不仅置位 TFx,而且也将 THx 的内容加载
到 TLx,THx 内容由软件预置,加载不会改变 THx 的值。定时器 0 和 1 的模式 2 操作是一样的。定时器 0/1 模式 2
的结构图见 图 15–5 和 图 15–6
图 15–5. 定时器 0 模式 2 结构
SYSCLK/12
(0,0,0)
T0 Pin
(0,0,1)
SYSCLK
(0,1,0)
ILRCO
(0,1,1)
SYSCLK/48
(1,0,0)
(WDT prescaler) WDTPS
(1,0,1)
SYSCLK/192
(1,1,0)
(Timer1 overflow) T1OF
(1,1,1)
T0OF
8-bit Up-Counter
(T0 overflow)
Overflow
TL0[7:0]
TF0
T0 Interrupt
Reload
{T0XL, T0X12, T0C/T}
TH0[7:0]
TR0
T0GATE
iINT0
TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TMOD
T1GATE
T1C/T
T1M1
T1M0
T0GATE
T0C/T
T0M1
T0M0
1
0
INT1H
INT0H
AUXR0
P60OC1 P60OC0
AUXR2
ALEINV
P60FD
T0XL
P4FS1
P4FS0
--
--
T1X12
T0X12
ADDRO
T1CKOE T0CKOE
图 15–6. 定时器 1 模式 2 结构
SYSCLK/12
(0,0)
T1 Pin
(0,1)
SYSCLK
(1,0)
SYSCLK/48
(1,1)
T1OF
8-bit Up-Counter
(T1 overflow)
Overflow
TL1[7:0]
TF1
T1 Interrupt
Reload
{T1X12, T1C/T}
TR1
TH1[7:0]
T1GATE
iINT1
TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TMOD
T1GATE
T1C/T
T1M1
T1M0
T0GATE
T0C/T
T0M1
T0M0
1
0
--
--
T1X12
T0X12
AUXR2
104
ALEINV
ADDRO
MA82G5Cxx 数据手册
T1CKOE T0CKOE
MEGAWIN
15.1.4. 定时器 0/1 模式 3
定时器 1 在模式 3 保持计数值,效果和设置 TR1=1 一样。定时器 0 在模式 3 建立 TL0 和 TH0 两个独立的计数器。
TL0 使用定时器 0 控制位:C/T、GATE、TR0、/INT0 和 TF0。TH0 锁定为定时器功能(每个机器周期计数)且接替
定时器 1 来使用 TR1 和 TF1,因从 TH0 控制定时器 1 中断。定时器 0 模式 3 的结构图见 图 15–7
图 15–7. 定时器 0 模式 3 结构
SYSCLK/12
(0,0,0)
T0 Pin
(0,0,1)
SYSCLK
(0,1,0)
ILRCO
(0,1,1)
SYSCLK/48
(1,0,0)
(WDT prescaler) WDTPS
(1,0,1)
SYSCLK/192
(1,1,0)
(Timer1 overflow) T1OF
(1,1,1)
00H
Reload
T0OF
(T0 overflow)
Overflow
TL0[7:0]
TF0
T0 Interrupt
TF1
T1 Interrupt
8-bit Up-Counter
{T0XL, T0X12, T0C/T}
TR0
T0GATE
iINT0
00H
Reload
SYSCLK/12
(0,0)
SYSCLK
(0,1)
SYSCLK/48
(1,0)
SYSCLK/192
(1,1)
Overflow
TH0[7:0]
8-bit Up-Counter
{T0XL, T0X12}
MEGAWIN
TR1
TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TMOD
T1GATE
T1C/T
T1M1
T1M0
T0GATE
T0C/T
T0M1
T0M0
1
1
INT1H
INT0H
AUXR0
P60OC1 P60OC0
AUXR2
ALEINV
ADDRO
P60FD
T0XL
P4FS1
P4FS0
--
--
T1X12
T0X12
MA82G5Cxx 数据手册
T1CKOE T0CKOE
105
15.1.5. 定时器 0/1 可编程时钟输出
定时器 0 和 1 有一个时钟输出模式(当 C/Tx=0 并且 TxCKOE=1)。此模式下,定时器 0 或 1 操作在 8 位自动重
载占空比为 1:1 的可编程时钟发生器。产生的时钟在 P3.4 (T0CKO)和 P3.5 (T1CKO)独立输出。8 位定时器(TL0)
每个输入时钟(SYSCLK/12,SYSCLK,SYSCLK/48 或 SYSCLK/192)加一,在定时器 0 模块。8 位定时器(TL1)每个输
入时钟(SYSCLK/12 或 SYSCLK)加一,在定时器 1 模块。定时器从载入值到溢出重复计数。一旦溢出,(TH0,TH1)
的值被载入到(TL0, TL1)同时计数。图 15–8 和图 15–9 给出了定时器 0/1 时钟输出频率公式。图 15–10 和图 15–
11 给出了定时器 0/1 时钟输出结构。
图 15–8. 定时器 0 时钟输出公式
T0 Clock-out Frequency =
SYSCLK Frequency
n X (256 – THx)
; n=24, if {T0XL,T0X12}=00
; n=2, if {T0XL,T0X12}=01
; n=96, if {T0XL,T0X12}=10
; n=384, if {T0XL,T0X12}=11
; C/T = 0
图 15–9. 定时器 1 时钟输出公式
T1 Clock-out Frequency =
SYSCLK Frequency
n X (256 – TH1)
; n=24, if T1X12=0
; n=2, if T1X12=1
; C/T = 0
注意:
(1) 定时器 0/1 溢出标志 TF0/1,在定时器 0/1 溢出时置位但是不产生中断
(2) 当 SYSCLK=12MHz 及 TxX12=0, 定时器 0/1 可编程输出频率范围从 1.95KHz 到 500KHz.
(3) 当 SYSCLK=12MHz 及 TxX12=1, 定时器 0/1 可编程输出频率范围从 23.43KHz 到 6MHz.
(4) 当 SYSCLK=12MHz, T0X12=0 及 T0XL=1,定时器 0 可编程输出频率范围从 488Hz 到 125KHz.
(5) 当 SYSCLK=12MHz, TxX12=1 及 T0XL=1,定时器 0 可编程输出频率范围从 122Hz 到 31.25KHz.
Note:
图 15–10. 定时器 0 时钟输出模式
SYSCLK/12
(0,0,0)
T0 Pin
(0,0,1)
SYSCLK
(0,1,0)
ILRCO
(0,1,1)
SYSCLK/48
(1,0,0)
WDTPS
(1,0,1)
SYSCLK/192
(1,1,0)
T1OF
(1,1,1)
{T0XL, T0X12, T0C/T}
TR0
Toggle
Timer 0
in Mode 1/2/3
PORTn for T0CKO
Overflow
D
Q
AUXR2.T0CKOE = 1
TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TMOD
T1GATE
T1C/T
T1M1
T1M0
T0GATE
T0C/T
T0M1
T0M0
P60FD
T0XL
P4FS1
P4FS0
INT1H
INT0H
--
--
T1X12
T0X12
GATE
iINT0
AUXR0
P60OC1 P60OC0
AUXR2
ALEINV
ADDRO
T1CKOE T0CKOE
1
106
MA82G5Cxx 数据手册
MEGAWIN
图 15–11. 定时器 1 时钟输出模式
SYSCLK/12
(0,0)
T1 Pin
(0,1)
SYSCLK
(1,0)
SYSCLK/48
(1,1)
Toggle
Timer 1
in Mode 1/2/3
PORTn for T1CKO
Overflow
D
Q
AUXR2.T1CKOE = 1
{T1X12, T1C/T}
TR1
TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
GATE
iINT1
TMOD
T1GATE
T1C/T
T1M1
T1M0
T0GATE
T0C/T
T0M1
T0M0
P60FD
T0XL
P4FS1
P4FS0
INT1H
INT0H
--
--
T1X12
T0X12
AUXR0
P60OC1 P60OC0
AUXR2
ALEINV
ADDRO
T1CKOE T0CKOE
1
定时器 0/1 时钟输出模式如何编程
„AUXR2.T0X12 和 AUXR0.T0XL 来选择定时器 0 时钟源。AUXR2.T1X12 来选择定时器 1 时钟源
„AUXR2 寄存器的 T0CKOE/T1CKOE 置位
„TMOD 寄存器的 C/T 清零
„从公式计算出 8 位自动加载值并输入到 TH0/TH1 寄存器
„在 TL0/TL1 寄存器输入一个跟自动加载值相同 8 位初始值
„通过设置 TCON 寄存器的 TR0/TR1 位启动定时器
时钟输出模式,定时器 0/1 溢出不会中断。这跟定时器 1 被用作波特率发生器相似。定时器 1 即可用作波特率发生
器也可同时用作时钟发生器。注意,波特率和时钟输出频率都是相同的定时器 1 溢出率。
MEGAWIN
MA82G5Cxx 数据手册
107
15.1.6. 定时器 0/1 寄存器
TCON: 定时器/计数器控制寄存器
SFR 页 = 0~F
SFR 地址
= 0x88
7
6
5
TF1
TR1
TF0
R/W
R/W
R/W
4
TR0
复位值 = 0000-0000
3
2
IE1
IT1
R/W
R/W
R/W
1
IE0
0
IT0
R/W
R/W
1
T0M1
0
T0M0
R/W
R/W
Bit 7: TF1, 定时器 1 溢出标志
0: 处理器进入中断向量程序由硬件清零,或软件清零
1: 定时器/计数器 1 溢出时由硬件置位,或软件置位
Bit 6: TR1, 定时器 1 运行控制位
0: 软件清零关闭定时器/计数器 1
1: 软件置位开启定时器/计数器 1
Bit 5: TF0, 软件清零关闭定时器/计数器 1
0: 处理器进入中断向量程序由硬件清零,或软件清零
1: 处理器进入中断向量程序由硬件清零,或软件清零
Bit 4: TR0, 定时器 0 运行控制位
0: 软件清零关闭定时器/计数器 0
1: 软件置位开启定时器/计数器 0
TMOD: 定时器/计数器模式控制寄存器
SFR 页 = 0~F
SFR 地址
= 0x89
7
6
5
T1GATE
T1C/T
T1M1
R/W
R/W
R/W
4
T1M0
R/W
复位值 = 0000-0000
3
2
T0GATE
T0C/T
R/W
R/W
|----------------------- Timer1 -------------------------|--------------------------Timer0 ------------------------|
Bit 7: Gate, 定时器 1 门控制位
0: 禁止定时器 1 门控制
1: 使能定时器 1 门控制。当门控制位置位时,只有在/INT1 引脚是高电平且 TR1 控制位置位时,定时器/计数器 1
使能
Bit 6: T1C/T, 定时器 1 时钟源控制位,和 T1X12 一起控制定时器 1 时钟源。详情参见 AUXR2.T1X12 的描述.
Bit 5~4: 操作模式选择
M1 M0
操作模式
0 0
定时器 1 的 8 位 PWM 产生器
0 1
定时器 1 工作在 16 位定时器/计数器模式
1 0
定时器 1 工作在 8 位自动装载定时器/计数器模式
1 1
(定时器 1) 定时器/计数器停止
Bit 3: Gate, 定时器 0 门控制位
0: 禁止定时器 0 门控制
1: 使能定时器 0 门控制。当门控制位置位时,只有在/INT0 引脚是高电平且 TR0 控制位置位时,定时器/计数器 0
使能
Bit 6: T0C/T, 定时器 1 时钟源控制位,和 T0X12 与 T0XL.一起控制定时器 0 时钟源。详情参见 AUXR2.T0X12 的
描述.
108
MA82G5Cxx 数据手册
MEGAWIN
Bit1~0: 操作模式选择
M1 M0
操作模式
0 0
定时器 0 的 8 位 PWM 产生器
0 1
定时器 0 工作在 16 位定时器/计数器模式
1 0
定时器 0 工作在 8 位自动装载定时器/计数器模式
1 1
(定时器 0) TL0 是 8 位定时器/计数器,TH0 锁定 8 位定时器
TL0: 定时器 0 低字节寄存器
SFR 页 = 0~F
SFR 地址
= 0x8A
7
6
5
TL0.7
TL0.6
TL0.5
R/W
R/W
R/W
TH0: 定时器 0 高字节寄存器
SFR 页 = 0~F
SFR 地址
= 0x8C
7
6
5
TH0.7
TH0.6
TH0.5
R/W
R/W
R/W
TL1: 定时器 1 低字节寄存器
SFR 页 = 0~F
SFR 地址
= 0x8B
7
6
5
TL1.7
TL1.6
TL1.5
R/W
R/W
R/W
TH1: 定时器 1 高字节寄存器
SFR 页 = 0~F
SFR 地址
= 0x8D
7
6
5
TH1.7
TH1.6
TH1.5
R/W
R/W
AUXR2: 辅助寄存器 2
SFR 页 = 0~F
SFR 地址
= 0xA3
7
6
ALEINV
ADDRO
R/W
R/W
复位值 = 0000-0000
4
3
2
TL0.4
TL0.3
TL0.2
R/W
R/W
R/W
复位值 = 0000-0000
4
3
2
TH0.4
TH0.3
TH0.2
R/W
4
TL1.4
R/W
4
TH1.4
R/W
R/W
5
--
4
--
R/W
R/W
R/W
R/W
复位值 = 0000-0000
3
2
TL1.3
TL1.2
R/W
R/W
复位值 = 0000-0000
3
2
TH1.3
TH1.2
R/W
R/W
复位值 = 0000-0000
3
2
T1X12
T0X12
R/W
R/W
1
TL0.1
0
TL0.0
R/W
R/W
1
TH0.1
0
TH0.0
R/W
R/W
1
TL1.1
0
TL1.0
R/W
R/W
1
TH1.1
0
TH1.0
R/W
R/W
1
T1CKOE
0
T0CKOE
R/W
R/W
Bit 3: T1X12, 和 T1C/T 一起控制定时器 1 时钟源
T1X12, T1C/T
Timer 1 时钟选择
0 0
SYSCLK/12
0 1
T1 引脚
1 0
SYSCLK
1 1
SYSCLK/48
Bit 2: T0X12, 和 T0C/T 与 T0XL 一起控制定时器 0 时钟源。输入源如下…
T0XL, T0X12, T0C/T
Timer 0 时钟选择
0 0 0
SYSCLK/12
0 0 1
T0 引脚
MEGAWIN
MA82G5Cxx 数据手册
109
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
SYSCLK
ILRCO
SYSCLK/48
WDTPS
SYSCLK/192
T1OF
Bit 1: T1CKOE, 定时器 1 时钟输出使能
0: 禁止定时器 1 时钟输出
1: 禁止定时器 1 时钟输出在 P3.5
Bit 0: T0CKOE, 定时器 0 时钟输出使能
0: 禁止定时器 0 时钟输出
1: 禁止定时器 0 时钟输出在 P3.4
TREN0: 定时器运行使能寄存器 0
SFR 页 = 1 Only
SFR 地址
= 0x95
7
6
5
TR4LE
TR3LE
TR2LE
R/W
R/W
R/W
4
TR4E
R/W
RESET= 0000-0000
3
2
TR3E
TR2E
R/W
R/W
1
TR1E
0
TR0E
R/W
R/W
Bit 1, TR1E, 该位上写―1‖ 设置 TR1 使能(TR1=1). 这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
Bit 0, TR0E, 该位上写―1‖ 设置 TR0 使能(TR0=1). 这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
TRLC0: 定时器重载控制寄存器 0
SFR 页 = 2 Only
SFR 地址
= 0x95
7
6
5
TL4RLC
TL3RLC
TL2RLC
R/W
R/W
R/W
4
T4RLC
R/W
RESET= 0000-0000
3
2
T3RLC
T2RLC
R/W
R/W
1
T1RLC
0
T0RLC
R/W
R/W
Bit 1, T1RLC, 该位上写―1‖ 强制 TH1/TL1 重载. 这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
Bit 0, T0RLC, 该位上写―1‖ 强制 TH0/TL0 重载. 这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
TSPC0: 定时器停止控制寄存器 0
SFR 页 = 3 Only
SFR 地址
= 0x95
7
6
5
TL4SC
TL3SC
TL2SC
R/W
R/W
R/W
4
T4SC
R/W
RESET= 0000-0000
3
2
T3SC
T2SC
R/W
R/W
1
T1SC
0
T0SC
R/W
R/W
Bit 1, T1SC, 该位上写―1‖ 设置 TR1 禁止(TR1=0). 这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
Bit 0, T0SC, 该位上写―1‖ 设置 TR0 禁止(TR0=0). 这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
110
MA82G5Cxx 数据手册
MEGAWIN
AUXR1: 辅助控制寄存器 1
SFR 页 = 0~F
SFR 地址
= 0xA2
7
6
5
KBIPS1
KBIPS0
SPIPS0
R/W
R/W
R/W
4
S1PS1
POR+复位值 = 0000-0000
3
2
1
S1PS0
T01PS0
EXTRAM
R/W
R/W
R/W
0
DPS
R/W
R/W
1
INT1H
0
INT0H
R/W
R/W
Bit 2: T01PS0, Timer0/1 Port Selection 0.
T01PS0
T0/T0CKO
T1/T1CKO
0
P3.4
P3.5
1
P5.5
P5.6
AUXR0: 辅助控制寄存器 0
SFR 页 = 0~F
SFR 地址
= 0xA1
7
6
5
P60OC1
P60OC0
P60FD
R/W
R/W
R/W
4
T0XL
R/W
Bit 3~2: P4.4 和 P4.5 功能选择
P4FS[1:0]
P4.4
00
P4.4
01
RXD0
10
T0/T0CKO
11
T2EX
MEGAWIN
复位值 = 000X-0000
3
2
P4FS1
P4FS0
R/W
R/W
P4.5
P4.5
TXD0
T1/T1CKO
T2/T2CKO
MA82G5Cxx 数据手册
111
15.2. 定时器 22
定时器 2 是一个 16 位定时器/计数器,既可作为一个定时器也可以作为一个事件计数器,通过专用寄存器 T2CON
的 C/T2 位来选择。定时器 2 有四种工作模式:捕获、自动加载(向上或向下计数)、波特率发生器和可编程时钟输
出,通过专用寄存器 T2CON 和 T2MOD 来选择。
15.2.1. 定时器 2 模式 0 (自动重载和外部中断)
图 15–12 阐明了自动重载和外部中断模式
图 15–12. 定时器 2 模式 0 结构 (自动重载和外部中断模式)
SYSCLK/12
(0,0,0)
T2 Pin
(0,0,1)
SYSCLK
(0,1,0)
iINT0
(0,1,1)
(S1BRG Overflow) S1TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC0ES
(1,1,0)
AC1ES
(1,1,1)
T2SPL = 0, CP/RL2 = 0, T2MS0 = 0
16-bit Up Counter
TL2
(8 Bits)
TR2
(0,0,0)
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT2
(0,1,1)
RXD1
(1,0,0)
AC0OUT
(1,0,1)
AC1OUT
(1,1,0)
TWSI_SCL
(1,1,1)
CP2S[2:0]
TF2
Reload
T2OF
(T2 overflow)
{T2CKS, T2X12, C/T2}
T2EX Pin
Overflow
TH2
(8 Bits)
RCAP2L
Timer 2
Interrupt
RCAP2H
EXEN2
EXF2
T2EXH
T2CON
TF2
EXF2
RCLK
TCLK
EXEN2
TR2
C/T2
CP/RL2
T2MOD
T2SPL
TL2X12
T2EXH
T2X12
TR2L
TR2LC
T2OE
T2MS0
T2MOD1
TL2CS
--
--
T2CKS
--
CP2S2
CP2S1
CP2S0
0
0
112
0
MA82G5Cxx 数据手册
MEGAWIN
15.2.2. 定时器 2 模式 1 (带外部中断的自动重载)
图 15–13 阐明了带外部中断的自动重载模式
图 15–13. 定时器 2 模式 1 结构 (带外部中断的自动重载)
SYSCLK/12
(0,0,0)
T2 Pin
(0,0,1)
SYSCLK
(0,1,0)
iINT0
(0,1,1)
(S1BRG Overflow) S1TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC0ES
(1,1,0)
AC1ES
(1,1,1)
T2SPL = 0, CP/RL2 = 0, T2MS0 = 1
16-bit Up Counter
TL2
(8 Bits)
TR2
(0,0,0)
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT2
(0,1,1)
RXD1
(1,0,0)
AC0OUT
(1,0,1)
AC1OUT
(1,1,0)
TWSI_SCL
(1,1,1)
CP2S[2:0]
Overflow
TF2
Reload
T2OF
(T2 overflow)
{T2CKS, T2X12, C/T2}
T2EX Pin
TH2
(8 Bits)
RCAP2L
Timer 2
Interrupt
RCAP2H
EXEN2
EXF2
T2EXH
T2CON
TF2
EXF2
RCLK
TCLK
EXEN2
TR2
C/T2
CP/RL2
T2MOD
T2SPL
TL2X12
T2EXH
T2X12
TR2L
TR2LC
T2OE
T2MS0
T2MOD1
TL2CS
--
--
T2CKS
--
CP2S2
CP2S1
CP2S0
0
0
MEGAWIN
1
MA82G5Cxx 数据手册
113
15.2.3. 定时器 2 模式 2 (捕获)
图 15–14 阐明了定时器 2 的捕获模式
图 15–14. 定时器 2 模式 2 结构 (捕获模式)
T2SPL = 0, CP/RL2 = 1, T2MS0 = 0
00H
SYSCLK/12
(0,0,0)
T2 Pin
(0,0,1)
SYSCLK
(0,1,0)
iINT0
(0,1,1)
(S1BRG Overflow) S1TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC0ES
(1,1,0)
AC1ES
(1,1,1)
Reload
T2OF
(T2 overflow)
16-bit Up Counter
(0,0,0)
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT2
(0,1,1)
RXD1
(1,0,0)
AC0OUT
(1,0,1)
AC1OUT
(1,1,0)
TWSI_SCL
(1,1,1)
CP2S[2:0]
TL2
(8 Bits)
TH2
(8 Bits)
RCAP2L
RCAP2H
TF2
Overflow
Capture
TR2
{T2CKS, T2X12, C/T2}
T2EX Pin
00H
Timer 2
Interrupt
EXEN2
EXF2
T2EXH
T2CON
TF2
EXF2
RCLK
TCLK
EXEN2
TR2
C/T2
1
T2MOD
T2SPL
TL2X12
T2EXH
T2X12
TR2L
TR2LC
T2OE
T2MS0
--
--
T2CKS
--
CP2S2
CP2S1
CP2S0
0
T2MOD1
114
CP/RL2
TL2CS
0
MA82G5Cxx 数据手册
MEGAWIN
15.2.4. 定时器 2 模式 3 (捕获带自动清零)
图 15–15 阐明了定时器 2 的捕获带自动清零模式
图 15–15. 定时器 2 模式 3 结构 (捕获带自动清零 TL2 & TH2)
T2SPL = 0, CP/RL2 = 1, T2MS0 = 1
00H
SYSCLK/12
(0,0,0)
T2 Pin
(0,0,1)
SYSCLK
(0,1,0)
iINT0
(0,1,1)
(S1BRG Overflow) S1TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC0ES
(1,1,0)
AC1ES
(1,1,1)
Reload
T2EX Pin
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT2
(0,1,1)
RXD1
(1,0,0)
AC0OUT
(1,0,1)
AC1OUT
(1,1,0)
TWSI_SCL
(1,1,1)
CP2S[2:0]
Reload
T2OF
(T2 overflow)
TL2
(8 Bits)
TH2
(8 Bits)
TF2
Overflow
16-bit Up Counter
Capture
TR2
{T2CKS, T2X12, C/T2}
(0,0,0)
00H
RCAP2L
Timer 2
Interrupt
RCAP2H
EXEN2
EXF2
T2EXH
T2CON
TF2
EXF2
RCLK
TCLK
EXEN2
TR2
C/T2
CP/RL2
T2MOD
T2SPL
TL2X12
T2EXH
T2X12
TR2L
TR2LC
T2OE
T2MS0
1
0
T2MOD1
MEGAWIN
TL2CS
1
--
MA82G5Cxx 数据手册
--
T2CKS
--
CP2S2
CP2S1
CP2S0
115
15.2.5. 分割定时器 2 模式 0 (自动重载和 外部中断)
图 15–16. 分割定时器 2 模式 0 结构(自动重载和外部中断)
SYSCLK/12
(0,0,0)
T2 Pin
(0,0,1)
SYSCLK
(0,1,0)
(TL2 Overflow) T2LOF
(0,1,1)
(S1BRG Overflow) S1TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC0ES
(1,1,0)
AC1ES
(1,1,1)
T2SPL = 1, CP/RL2 = 0, T2MS0 = 0
8-bit Up Counter
TR2
(0,0,0)
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT2
(0,1,1)
RXD1
(1,0,0)
AC0OUT
(1,0,1)
AC1OUT
(1,1,0)
TWSI_SCL
(1,1,1)
TF2
Reload
{T2CKS, T2X12, C/T2}
T2EX Pin
Overflow
TH2
(8 Bits)
EXEN2
EXF2
T2EXH
CP2S[2:0]
TR2LC
SYSCLK/12
(0,0)
SYSCLK
(0,1)
(S1BRG Overflow) S1TOF
(1,0)
iINT0
(1,1)
Clear TR2L
8-bit Up Counter
Overflow
TL2
(8 Bits)
TR2L
Reload
{TL2CS, TL2X12}
T2CON
Timer 2
Interrupt
RCAP2H
TF2
EXF2
RCLK
TCLK
EXEN2
TR2
C/T2
CP/RL2
TL2 Overflow (TL2OF)
0. T2OF == TL2OF
1. to T2CKO
2. to Peripheral Clock
3. to UART0 RX Clock
4. to UART0 TX Clock
RCAP2L
0
T2MOD
T2SPL
TL2X12
T2EXH
T2X12
TR2L
TR2LC
T2OE
T2MS0
--
--
T2CKS
--
CP2S2
CP2S1
CP2S0
1
T2MOD1
116
TL2CS
0
MA82G5Cxx 数据手册
MEGAWIN
15.2.6. 分割定时器 2 模式 1 (自动重载带外部中断)
图 15–17. 分割定时器 2 模式 1 (自动重载带外部中断)
SYSCLK/12
(0,0,0)
T2 Pin
(0,0,1)
SYSCLK
(0,1,0)
(TL2 Overflow) T2LOF
(0,1,1)
(S1BRG Overflow) S1TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC0ES
(1,1,0)
AC1ES
(1,1,1)
T2SPL = 1, CP/RL2 = 0, T2MS0 = 1
8-bit Up Counter
TR2
(0,0,0)
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
nINT2
(0,1,1)
RXD1
(1,0,0)
AC0OUT
(1,0,1)
AC1OUT
(1,1,0)
TWSI_SCL
(1,1,1)
TF2
Reload
{T2CKS, T2X12, C/T2}
T2EX Pin
Overflow
TH2
(8 Bits)
EXEN2
EXF2
T2EXH
CP2S[2:0]
TR2LC
SYSCLK/12
(0,0)
SYSCLK
(0,1)
(S1BRG Overflow) S1TOF
(1,0)
iINT0
(1,1)
Clear TR2L
8-bit Up Counter
Overflow
TL2
(8 Bits)
TR2L
Reload
{TL2CS, TL2X12}
T2CON
Timer 2
Interrupt
RCAP2H
TF2
EXF2
RCLK
TCLK
EXEN2
TR2
C/T2
CP/RL2
TL2 Overflow (TL2OF)
0. T2OF == TL2OF
1. to T2CKO
2. to Peripheral Clock
3. to UART0 RX Clock
4. to UART0 TX Clock
RCAP2L
0
T2MOD
T2SPL
TL2X12
T2EXH
T2X12
TR2L
TR2LC
T2OE
T2MS0
--
--
T2CKS
--
CP2S2
CP2S1
CP2S0
1
T2MOD1
TL2CS
MEGAWIN
1
MA82G5Cxx 数据手册
117
15.2.7. 分割定时器 2 模式 2(捕获)
图 15–18. 分割定时器 2 模式 2 结构(捕获)
T2SPL = 1, CP/RL2 = 1, T2MS0 = 0
00H
SYSCLK/12
(0,0,0)
T2 Pin
(0,0,1)
SYSCLK
(0,1,0)
(TL2 Overflow) T2LOF
(0,1,1)
(S1BRG Overflow) S1TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC0ES
(1,1,0)
AC1ES
(1,1,1)
Reload
TH2
(8 Bits)
8-bit Up Counter
Capture
TR2
{T2CKS, T2X12, C/T2}
T2EX Pin
(0,0,0)
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT2
(0,1,1)
RXD1
(1,0,0)
AC0OUT
(1,0,1)
AC1OUT
(1,1,0)
TWSI_SCL
(1,1,1)
TF2
Overflow
EXEN2
EXF2
T2EXH
CP2S[2:0]
TR2LC
SYSCLK/12
(0,0)
SYSCLK
(0,1)
(S1BRG Overflow) S1TOF
(1,0)
iINT0
(1,1)
Clear TR2L
8-bit Up Counter
Overflow
TL2
(8 Bits)
TR2L
Reload
{TL2CS, TL2X12}
T2CON
Timer 2
Interrupt
RCAP2H
TF2
EXF2
RCLK
TCLK
EXEN2
TR2
C/T2
CP/RL2
TL2 Overflow (TL2OF)
0. T2OF == TL2OF
1. to T2CKO
2. to Peripheral Clock
3. to UART0 RX Clock
4. to UART0 TX Clock
RCAP2L
1
T2MOD
T2SPL
TL2X12
T2EXH
T2X12
TR2L
TR2LC
T2OE
T2MS0
--
--
T2CKS
--
CP2S2
CP2S1
CP2S0
1
T2MOD1
118
TL2CS
0
MA82G5Cxx 数据手册
MEGAWIN
15.2.8. 分割定时器 2 模式 3(捕获带自动清零)
图 15–19. 分割定时器模式 3 结构 (捕获带自动清零 TH2)
T2SPL = 1, CP/RL2 = 1, T2MS0 = 1
00H
SYSCLK/12
(0,0,0)
T2 Pin
(0,0,1)
SYSCLK
(0,1,0)
(TL2 Overflow) T2LOF
(0,1,1)
(S1BRG Overflow) S1TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC0ES
(1,1,0)
AC1ES
(1,1,1)
Reload
TH2
(8 Bits)
T2EX Pin
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT2
(0,1,1)
RXD1
(1,0,0)
AC0OUT
(1,0,1)
AC1OUT
(1,1,0)
TWSI_SCL
(1,1,1)
TF2
Overflow
8-bit Up Counter
Capture
TR2
{T2CKS, T2X12, C/T2}
(0,0,0)
Reload
Timer 2
Interrupt
RCAP2H
EXEN2
EXF2
T2EXH
CP2S[2:0]
TR2LC
SYSCLK/12
(0,0)
SYSCLK
(0,1)
(S1BRG Overflow) S1TOF
(1,0)
iINT0
(1,1)
Clear TR2L
8-bit Up Counter
Overflow
TL2
(8 Bits)
TR2L
Reload
TL2 Overflow (TL2OF)
0. T2OF == TL2OF
1. to T2CKO
2. to Peripheral Clock
3. to UART0 RX Clock
4. to UART0 TX Clock
{TL2CS, TL2X12}
T2CON
TF2
EXF2
RCLK
TCLK
EXEN2
TR2
C/T2
CP/RL2
RCAP2L
1
T2MOD
T2SPL
TL2X12
T2EXH
T2X12
TR2L
TR2LC
T2OE
T2MS0
--
--
T2CKS
--
CP2S2
CP2S1
CP2S0
1
T2MOD1
TL2CS
MEGAWIN
1
MA82G5Cxx 数据手册
119
15.2.9. 波特率发生器模式(BRG)
T2CON 寄存器的 RCLK 和 TCLK 位允许串行口发送和接收波特率源可选择定时器 1 或定时器 2。当 TCLK=0 时,
定时器 1 作为串行口传送波特率发生器。当 TCLK=1,定时器 2 作为串行口传送波特率发生器。RCLK 对串行口接
收波特率有相同的功能。有了这两位,串行口可以有不同的接收和发送波特率,一个通过定时器 1 来产生,另一个
通过定时器 2 来产生。
图 15–20 所示定时器 2 在波特率发生器模式 UART 引擎产生 RX 和 TX 时钟(见图 18–6.)。波特率发生器模式像
自动加载模式,翻转时将把寄存器 RCAP2H 和 RCAP2L 的值加载到定时器 2 的寄存器,RCAP2H 和 RCAP2L 的
值由软件预置。
定时器 2 作为波特率发生器只有在 T2CON 寄存器的位 RCLK=1 和/或 TCLK=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)。
注意:
当定时器 2 用作波特率发生器时,参考章节“18.7.3 Mode 1 & 3 波特率”波特率模式 1 和 3 获取波特率设定值
图 15–20. 定时器 2 波特率发生器模式
T2SPL = 0, CP/RL2 = 0, T2MS0 = 0
2
0
Timer 1 Overflow
SYSCLK/2
(0,0,0)
T2 Pin
(0,0,1)
SMOD1
SYSCLK
(0,1,0)
16-bit Up Counter
(S1BRG Overflow) S1TOF
(0,1,1)
iINT0
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC0ES
(1,1,0)
AC1ES
(1,1,1)
TL2
(8 Bits)
(0,0,0)
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT2
(0,1,1)
RXD1
(1,0,0)
AC0OUT
(1,0,1)
AC1OUT
(1,1,0)
TWSI_SCL
(1,1,1)
CP2S[2:0]
RX Clock to S0
1
RCLK
Overflow
TH2
(8 Bits)
0
TX Clock to S0
1
TR2
Reload
TCLK
{T2CKS, T2X12, C/T2}
T2EX Pin
0
1
RCAP2L
TF2
RCAP2H
EXEN2
Timer 2 Overflow (T2OF)
1. to T2CKO
2. to Peripheral Clock
Timer 2
Interrupt
EXF2
T2EXH
T2CON
TF2
T2MOD
T2SPL
T2MOD1
TL2CS
EXF2
RCLK
TCLK
0/1
0/1
EXEN2
TR2
C/T2
CP/RL2
TL2X12
T2EXH
T2X12
TR2L
TR2LC
T2OE
T2MS0
--
--
T2CKS
--
CP2S2
CP2S1
CP2S0
0
0
120
0
MA82G5Cxx 数据手册
MEGAWIN
图 15–21. 分割定时器 2 波特率发生器模式
SYSCLK/12
(0,0,0)
T2 Pin
(0,0,1)
SYSCLK
(0,1,0)
(TL2 Overflow) T2LOF
(0,1,1)
(S1BRG Overflow) S1TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC0ES
(1,1,0)
AC1ES
(1,1,1)
T2SPL = 1, CP/RL2 = 0/1, T2MS0 = 0/1
8-bit Up Counter
TR2
(0,0,0)
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
nINT2
(0,1,1)
RXD1
(1,0,0)
AC0OUT
(1,0,1)
AC1OUT
(1,1,0)
TWSI_SCL
(1,1,1)
TF2
Reload
{T2CKS, T2X12, C/T2}
T2EX Pin
Overflow
TH2
(8 Bits)
Timer 2
Interrupt
RCAP2H
EXEN2
EXF2
T2EXH
2
CP2S[2:0]
0
0
Timer 1 Overflow
RX Clock to S0
1
1
SMOD1
SYSCLK/12
(0,0)
SYSCLK
(0,1)
(S1BRG Overflow) S1TOF
(1,0)
iINT0
(1,1)
8-bit Up Counter
Overflow
TL2
(8 Bits)
0
TX Clock to S0
1
TR2L
Reload
TCLK
{TL2CS, TL2X12}
T2CON
TF2
EXF2
RCLK
0/1
0/1
T2MOD
T2SPL
TL2X12
T2EXH
T2MOD1
TL2CS
--
--
TCLK
EXEN2
TR2
C/T2
CP/RL2
T2X12
TR2L
TR2LC
T2OE
T2MS0
T2CKS
--
CP2S2
CP2S1
CP2S0
RCAP2L
0
1
MEGAWIN
RCLK
0
TL2 Overflow (TL2OF)
0. T2OF == TL2OF
1. to T2CKO
2. to Peripheral Clock
0
MA82G5Cxx 数据手册
TL2 for UART0 Baud Rate Generator & T2OF
121
定时器 2 可编程时钟输出
15.2.10.
定时器有一个时钟输出模式(当 CP/RL2=0 并且 T2OE=1)。在这个模式,定时器 2 运行为一个占空比为 50%的可编
程时钟输出。 产生的时钟从 P1.0 输出。输入时钟(SYSCLK/2 或 SYSCLK) 使 16 位定时器(TH2, TL2)加一。定时
器从载入值到溢出重复计数。一旦溢出,(RCAP2H, RCAP2L))的值被载入到(TH2, TL2)同时计数。图 15–22 给出
了定时器 2 时钟输出频率计算公式。图 15–23 展示了定时器 2 的时钟输出结构。
图 15–22. 定时器 2 时钟输出公式
T2 Clock-out Frequency =
SYSCLK Frequency
n x (65536 – (RCAP2H, RCAP2L))
; n=4, if T2X12=0
; n=2, if T2X12=1
注意:
(1) 定时器 2 溢出标志 TF2,在定时器 2 溢出时置位但是不产生中断
(2) 当 SYSCLK=12MHz 及 T2X12=0, 定时器 2 可编程输出频率范围从 45.7Hz 到 3MHz.
(3) 当 SYSCLK=12MHz 及 T2X12=1, 定时器 2 可编程输出频率范围从 91.5Hz 到 6MHz.
图 15–23. 定时器 2 时钟输出模式
Toggle
SYSCLK /2
0
SYSCLK
1
TL2
(8 Bits)
PORTn for T2CKO
Overflow
TH2
(8 Bits)
D
Q
T2X12
( T2MOD.4 )
C/T2 = 0
TR2
( T2CON.1 )
( T2CON.2 )
Reload
T2OE
( T2MOD.1 )
RCAP2L
RCAP2H
Timver 2 Overflow (T2OF)
定时器 2 时钟输出模式如何编程
„T2MOD 寄存器的位 T2X12 来选择定时器 2 时钟源
„T2MOD 寄存器的 T2OE 置位
„T2CON 寄存器的 C/T2 清零
„从公式计算出 16 位自动加载值并输入到 RCAP2H 和 RCAP2L 寄存器
„在 TH2 和 TL2 寄存器输入一个跟自动加载值相同的初始值
„通过设置 T2CON 寄存器的 TR2 位启动定时器
在时钟输出模式,定时器 2 翻转不会产生中断,这和用作波特率发生器时相似。可同时使用定时器 2 作为一个波特
率发生器和时钟发生器。注意,波特率和时钟输出都由定时器 2 的溢出速率来决定。
122
MA82G5Cxx 数据手册
MEGAWIN
15.2.11.
定时器 2 寄存器
T2CON: 定时器 2 控制寄存器
SFR 页 = 0 Only
SFR 地址
= 0xC8
7
6
5
TF2
EXF2
RCLK
R/W
R/W
R/W
复位值 = 0000-0000
4
3
2
TCLK
EXEN2
TR2
R/W
R/W
R/W
1
C/T2
0
CP/RL2
R/W
R/W
Bit 7: TF2, 定时器2溢出标志
0: TF2必须软件清零
1: 定时器2溢出TF2置位。当RCLK=1或TCLK=1时,TF2不会被置位
Bit 6: EXF2, 定时器2外部标志
0: EXF2必须软件清零
1: 当EXEN2=1且在T2EX上有负跳变导致重载或捕获,或者T2EXH=1并且在T2EX上有一个正跳变,将置位定时器
外部标志。当定时器2中断使能时,EXF2=1时将引起CPU进入定时器2中断向量程序。
Bit 5: RCLK, 接收时钟控制位
0: 定时器1溢出用于串行口接收时钟。
1: 定时器2溢出用于串行口模式1和3的接收时钟
Bit 4: TCLK, 发送时钟控制位
0: 定时器1溢出用于串行口发送时钟
1: 定时器2溢出用于串行口模式1和3的发送时钟
Bit 3: EXEN2, 定时器2外部使能位在T2EX引脚的负跳变T
0: 定时器2忽略T2EX引脚的负跳变事件
1: 如果定时器2没有用作串行口时钟,在T2EX的负跳变时捕获或加载并作为结果。如果定时器2配置为串行口0的
时钟,T2EX保持外部信号侦测并产生 EXF2 旗标响应中断
Bit 2: TR2, 定时器2运行控制位
0: 定时器2停止运行
1: 定时器2开启运行
Bit 1: C/T2, 定时器或计数器输入源选择位,和T2X12 (T2MOD.4)与T2CKS (T2MOD1.4) 一起决定定时器2的输入
来源
T2CKS, T2X12, C/T2
定时器 2 时钟源
分割模式下 TH2 时钟选择
0 0 0
SYSCLK/12
SYSCLK/12
0 0 1
T2 引脚
T2 引脚
0 1 0
SYSCLK
SYSCLK
0 1 1
iINT0
TL2OF
1 0 0
S1TOF
S1TOF
1 0 1
T0OF
T0OF
1 1 0
AC0ES
AC0ES
1 1 1
AC1ES
AC1ES
Bit 0: CP/-RL2, 定时器2模式选择位。 和T2MS0 (T2MOD.0)一起决定定时器2的工作模式。参见T2MOD.T2MS0 的
定时器2模式设置描述
MEGAWIN
MA82G5Cxx 数据手册
123
T2MOD: 定时器模式寄存器
SFR 页 = 0 Only
SFR 地址
= 0xC9
7
6
5
T2SPL
TL2X12
T2EXH
R/W
R/W
4
T2X12
R/W
R/W
RESET= 0000-0000
3
2
TR2L
TR2LC
R/W
R/W
1
T2OE
0
T2MS0
R/W
R/W
Bit 7: T2SPL, 定时器 2 分割模式选择
0: 禁止定时器2分割模式
1: 使能定时器2分割模式
Bit 6: TL2X12, 定时器 2 分割模式下 TL2 时钟控制位
TL2CS, TL2X12
TL2 时钟选择 n
0 0
SYSCLK/12
0 1
SYSCLK
1 0
S1TOF
1 1
iINT0
Bit 5: T2EXH, 定时器2检测T2EX 输入正跳变使能
0: 定时器2忽略T2EX引脚的正跳变事件
1: 如果定时器2没有用作串行口0时钟,在T2EX的正跳变时捕获或加载并作为结果。如果定时器2配置为串行口0的
时钟,T2EX保持外部信号侦测并产生 EXF2 旗标响应中断
Bit 4: T2X12, 定时器 2 时钟源选择. 参见 T2CON.C/T2 的定时器 2 时钟来源定义描述。
Bit 3: TR2L, 在分割模式, TL2 运行控制位
0: 停止TL2.
1: 启动TL2.
Bit 2: TR2LC, TR2L 清除控制位
0: 禁止硬件事件清零 TR2L
1: 使能 TH2 溢出(定时器 2 在模式 0/1)或者捕获输入(定时器 2 在模式 2/3)时自动清零 TR2L
Bit 1: T2OE, 定时器 2 时钟输出使能位
0: 禁止定时器 2 时钟输出
1: 使能定时器 2 时钟输出
Bit 0: T2MS0, 定时器 2 模式选择位 0.
CP/RL2, T2MS0
定时器 2 工作模式
0 0
模式 0, 自动重载和外部中断模式
0 1
模式 1, 自动重载带外部中断模式
1 0
模式 2, 捕获模式
1 1
模式 3, 捕获带自动清零模式
T2MOD1: 定时器 2 模式寄存器 1
SFR 页 = 1 Only
SFR 地址
= 0x93
7
6
5
TL2CS
--R/W
W
W
4
T2CK2
RESET= 0XX0-X000
3
2
-CP2S2
R/W
W
R/W
1
CP2S1
0
CP2S0
R/W
R/W
Bit 7: TL2CS. 在定时器 2 分割模式下的 TL2 时钟选择选择。参见 T2MOD.TL2X12 的 TL2 输入选项的描述。
Bit 6~5: 保留。当写 T2MOD1 时,这两位软件必须写‖0‖
124
MA82G5Cxx 数据手册
MEGAWIN
Bit 4: T2CKS. 定时器 2 时钟输入选择。参见 TC/T2 (T2CON.1) 的时钟输入选项的描述。
Bit 3: 保留。当写 T2MOD1 时,该位软件必须写‖0‖
Bit 2~0: CP2S.2~0. 定时器 2 捕获源选择
CP2S.2~0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
TREN0: 定时器运行使能寄存器 0
SFR 页 = 1 Only
SFR 地址
= 0x95
7
6
5
TR4LE
TR3LE
TR2LE
R/W
R/W
R/W
定时器 2 捕获源选择
T2EX Pin
RXD0
XTAL2/ECKI
iINT2
RXD1
AC0OUT
AC1OUT
TWSI_SCL
RESET= 0000-0000
4
3
2
TR4E
TR3E
TR2E
R/W
R/W
R/W
1
TR1E
0
TR0E
R/W
R/W
Bit 5, TR2LE, 在分割模式下,该位上写―1‖ 设置 TR2L 使能(TR2L =1). 这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
Bit 2, TR2E, 该位上写―1‖ 设置 TR2 使能(TR2 =1). 这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
TRLC0: 定时器重载控制寄存器 0
SFR 页 = 2 Only
SFR 地址
= 0x95
7
6
5
TL4RLC
TL3RLC
TL2RLC
R/W
R/W
R/W
RESET= 0000-0000
4
3
2
T4RLC
T3RLC
T2RLC
R/W
R/W
R/W
1
T1RLC
0
T0RLC
R/W
R/W
Bit 5, TL2RLC, 定时器 2 在分割模式下,该位上写―1‖ 强制 TL2 重载. 这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
Bit 2, T2RLC, 定时器 2 在非分割模式下,该位上写―1‖ 强制 TH2 和 TL2 重载。在分割模式下,该位上写―1‖ 强制 TH2
重载。这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
TSPC0: 定时器停止控制寄存器 0
SFR 页 = 3 Only
SFR 地址
= 0x95
7
6
5
TL4SC
TL3SC
TL2SC
R/W
R/W
R/W
4
T4SC
R/W
RESET= 0000-0000
3
2
T3SC
T2SC
R/W
R/W
1
T1SC
0
T0SC
R/W
R/W
Bit 5, TL2SC, 定时器 2 在分割模式下,该位上写―1‖ 设置 TR2L 禁止(TR2L =0). 这位在写 ―1‖ 后硬件自动清零。写―0‖
无效。
Bit 2, T2SC, 该位上写―1‖ 设置 TR2 禁止(TR2 =0). 这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
MEGAWIN
MA82G5Cxx 数据手册
125
TL2: 定时器 2 低字节寄存器
SFR 页 = 0 Only
SFR 地址
= 0xCC
7
6
5
TL2.7
TL2.6
TL2.5
R/W
R/W
R/W
TH2: 定时器 2 高字节寄存器
SFR 页 = 0 Only
SFR 地址
= 0xCD
7
6
5
TH2.7
TH2.6
TH2.5
R/W
R/W
R/W
4
TL2.4
复位值 = 0000-0000
3
2
TL2.3
TL2.2
R/W
4
TH2.4
R/W
R/W
复位值 = 0000-0000
3
2
TH2.3
TH2.2
R/W
R/W
R/W
1
TL2.1
0
TL2.0
R/W
R/W
1
TH2.1
0
TH2.0
R/W
R/W
RCAP2L: 定时器 2 捕获低字节寄存器
SFR 页 = 0 Only
SFR 地址
= 0xCA
复位值 = 0000-0000
7
6
5
4
3
2
1
0
RCAP2L.7 RCAP2L.6 RCAP2L.5 RCAP2L.4 RCAP2L.3 RCAP2L.2 RCAP2L.1 RCAP2L.1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
RCAP2H: 定时器 2 捕获高字节寄存器
SFR 页 = 0 Only
SFR 地址
= 0xCB
复位值 = 0000-0000
7
6
5
4
3
2
1
0
RCAP2H.7 RCAP2H.6 RCAP2H.5 RCAP2H.4 RCAP2H.3 RCAP2H.2 RCAP2H.1 RCAP2H.0
R/W
R/W
AUXR3: 辅助寄存器 3
SFR 页 = 0 only
SFR 地址
= 0xA4
7
6
STAF
STOF
R/W
R/W
R/W
R/W
5
BPOC1
4
BPOC0
R/W
R/W
Bit 0: T2PS0, 定时器 2 端口选择 0.
T2PS0
T2/T2CKO
0
P1.0
1
P3.6
126
R/W
R/W
复位值 = 0000-0000
3
2
ALEPS0
TWIPS1
R/W
R/W
R/W
R/W
1
TWIPS0
0
T2PS0
R/W
R/W
T2EX
P1.1
P3.7
MA82G5Cxx 数据手册
MEGAWIN
15.3. 定时器 3
15.3.1. 定时器 3 模式 0 (自动重载和外部中断)
图 15–24. 定时器 3 模式 0 结构 (自动重载和外部中断)
SYSCLK/12
(0,0,0)
T3 Pin
(0,0,1)
SYSCLK
(0,1,0)
iINT1
(0,1,1)
(S2BRG Overflow) S2TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC1ES
(1,1,0)
ILRCO
(1,1,1)
T3SPL = 0, CP/RL3 = 0, T3MS0 = 0
16-bit Up Counter
TL3
(8 Bits)
TR3
(0,0,0)
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT3
(0,1,1)
RXD2
(1,0,0)
AC0OUT
(1,0,1)
AC1OUT
(1,1,0)
TWI1_SCL
(1,1,1)
CP3S[2:0]
T3OF
(T3 overflow)
RCAP3L
Timer 3
Interrupt
RCAP3H
EXEN3
EXF3
T3EXH
T3CON
TF3
EXF3
TF3L
TL3IE
EXEN3
TR3
C/T3
CP/RL3
0
T3MOD
T3SPL
TL3X12
T3EXH
T3X12
TR3L
TR3LC
T3OE
T3MS0
--
--
T3CKS
--
CP3S2
CP3S1
CP3S0
0
T3MOD1
MEGAWIN
TF3
Reload
{T3CKS, T3X12, C/T3}
T3EX Pin
Overflow
TH3
(8 Bits)
TL3CS
0
MA82G5Cxx 数据手册
127
15.3.2. 定时器 3 模式 1(自动重载带外部中断)
图 15–25. 定时器 3 模式 1 结构 (自动重载带外部中断模式)
SYSCLK/12
(0,0,0)
T3 Pin
(0,0,1)
SYSCLK
(0,1,0)
iINT1
(0,1,1)
(S2BRG Overflow) S2TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC1ES
(1,1,0)
ILRCO
(1,1,1)
T3SPL = 0, CP/RL3 = 0, T3MS0 = 1
16-bit Up Counter
TL3
(8 Bits)
TR3
(0,0,0)
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT3
(0,1,1)
RXD2
(1,0,0)
AC0OUT
(1,0,1)
AC1OUT
(1,1,0)
TWI1_SCL
(1,1,1)
CP3S[2:0]
TF3
Reload
T3OF
(T3 overflow)
{T3CKS, T3X12, C/T3}
T3EX Pin
Overflow
TH3
(8 Bits)
RCAP3L
Timer 3
Interrupt
RCAP3H
EXEN3
EXF3
T3EXH
T3CON
TF3
EXF3
TF3L
TL3IE
EXEN3
TR3
C/T3
CP/RL3
T3MOD
T3SPL
TL3X12
T3EXH
T3X12
TR3L
TR3LC
T3OE
T3MS0
0
0
T3MOD1
128
TL3CS
MA82G5Cxx 数据手册
1
--
--
T3CKS
--
CP3S2
CP3S1
CP3S0
MEGAWIN
15.3.3. 定时器 3 模式 2(捕获)
图 15–26. 定时器 3 模式 2 结构(捕获模式)
T3SPL = 0, CP/RL3 = 1, T3MS0 = 0
00H
SYSCLK/12
(0,0,0)
T3 Pin
(0,0,1)
SYSCLK
(0,1,0)
iINT1
(0,1,1)
(S2BRG Overflow) S2TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC1ES
(1,1,0)
ILRCO
(1,1,1)
Reload
T3OF
(T3 overflow)
16-bit Up Counter
(0,0,0)
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT3
(0,1,1)
RXD2
(1,0,0)
AC0OUT
(1,0,1)
AC1OUT
(1,1,0)
TWI1_SCL
(1,1,1)
CP3S[2:0]
TL3
(8 Bits)
TH3
(8 Bits)
RCAP3L
RCAP3H
TF3
Overflow
Capture
TR3
{T3CKS, T3X12, C/T3}
T3EX Pin
00H
Timer 3
Interrupt
EXEN3
EXF3
T3EXH
T3CON
TF3
EXF3
TF3L
TL3IE
EXEN3
TR3
C/T3
CP/RL3
T3MOD
T3SPL
TL3X12
T3EXH
T3X12
TR3L
TR3LC
T3OE
T3MS0
T3MOD1
TL3CS
--
--
T3CKS
--
CP3S2
CP3S1
CP3S0
1
0
MEGAWIN
MA82G5Cxx 数据手册
0
129
15.3.4. 定时器 3 模式 3(捕获和自动清零)
图 15–27. 定时器 3 模式 3 结构(捕获带自动清零 TL3 & TH3)
T3SPL = 0, CP/RL3 = 1, T3MS0 = 1
00H
SYSCLK/12
(0,0,0)
T3 Pin
(0,0,1)
SYSCLK
(0,1,0)
iINT1
(0,1,1)
(S2BRG Overflow) S2TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC1ES
(1,1,0)
ILRCO
(1,1,1)
Reload
(0,0,0)
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT3
(0,1,1)
RXD2
(1,0,0)
AC0OUT
(1,0,1)
AC1OUT
(1,1,0)
TWI1_SCL
(1,1,1)
CP3S[2:0]
Reload
T3OF
(T3 overflow)
TL3
(8 Bits)
TH3
(8 Bits)
TF3
Overflow
16-bit Up Counter
Capture
TR3
{T3CKS, T3X12, C/T3}
T3EX Pin
00H
RCAP3L
Timer 3
Interrupt
RCAP3H
EXEN3
EXF3
T3EXH
T3CON
TF3
EXF3
TF3L
TL3IE
EXEN3
TR3
C/T3
CP/RL3
T3MOD
T3SPL
TL3X12
T3EXH
T3X12
TR3L
TR3LC
T3OE
T3MS0
1
0
T3MOD1
130
TL3CS
MA82G5Cxx 数据手册
1
--
--
T3CKS
--
CP3S2
CP3S1
CP3S0
MEGAWIN
15.3.5. 分割定时器 3 模式 0(自动重载和外部中断)
图 15–28. 分割定时器 3 模式 0 结构(自动重载和外部中断)
SYSCLK/12
(0,0,0)
T3 Pin
(0,0,1)
SYSCLK
(0,1,0)
(TL3 Overflow) T3LOF
(0,1,1)
(S2BRG Overflow) S2TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC1ES
(1,1,0)
ILRCO
(1,1,1)
T3SPL = 1, CP/RL3 = 0, T3MS0 = 0
8-bit Up Counter
TR3
T3EX Pin
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT3
(0,1,1)
RXD2
(1,0,0)
AC0OUT
(1,0,1)
AC1OUT
(1,1,0)
TWI1_SCL
(1,1,1)
TF3
Reload
{T3CKS, T3X12, C/T3}
(0,0,0)
Overflow
TH3
(8 Bits)
RCAP3H
EXEN3
Timer 3
Interrupt
EXF3
T3EXH
CP3S[2:0]
TR3LC
SYSCLK/12
(0,0)
SYSCLK
(0,1)
(S2BRG Overflow) S2TOF
(1,0)
iINT1
(1,1)
Clear TR3L
8-bit Up Counter
Overflow
TL3
(8 Bits)
TR3L
TF3L
Reload
TL3IE
{TL3CS, TL3X12}
T3CON
TF3
EXF3
TF3L
TL3IE
EXEN3
TR3
C/T3
CP/RL3
RCAP3L
0
T3MOD
T3SPL
TL3X12
T3EXH
T3X12
TR3L
TR3LC
T3OE
T3MS0
--
--
T3CKS
--
CP3S2
CP3S1
CP3S0
1
T3MOD1
TL3CS
MEGAWIN
TL3 Overflow (TL3OF)
0. T3OF == TL3OF
1. to T3CKO
2. to Peripheral Clock
0
MA82G5Cxx 数据手册
131
15.3.6. 分割定时器 3 模式 1(自动重载带外部中断)
图 15–29. 分割定时器 3 模式 1 结构 (自动重载带外部中断)
SYSCLK/12
(0,0,0)
T3 Pin
(0,0,1)
SYSCLK
(0,1,0)
(TL3 Overflow) T3LOF
(0,1,1)
(S2BRG Overflow) S2TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC1ES
(1,1,0)
ILRCO
(1,1,1)
T3SPL = 1, CP/RL3 = 0, T3MS0 = 1
8-bit Up Counter
TR3
T3EX Pin
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT3
(0,1,1)
RXD2
(1,0,0)
AC0OUT
(1,0,1)
AC1OUT
(1,1,0)
TWI1_SCL
(1,1,1)
TF3
Reload
{T3CKS, T3X12, C/T3}
(0,0,0)
Overflow
TH3
(8 Bits)
RCAP3H
EXEN3
Timer 3
Interrupt
EXF3
T3EXH
CP3S[2:0]
TR3LC
SYSCLK/12
(0,0)
SYSCLK
(0,1)
(S2BRG Overflow) S2TOF
(1,0)
iINT1
(1,1)
Clear TR3L
8-bit Up Counter
Overflow
TL3
(8 Bits)
TR3L
TF3L
Reload
TL3IE
{TL3CS, TL3X12}
T3CON
TF3
EXF3
TF3L
TL3IE
EXEN3
TR3
C/T3
CP/RL3
RCAP3L
0
T3MOD
T3SPL
TL3X12
T3EXH
T3X12
TR3L
TR3LC
T3OE
T3MS0
--
--
T3CKS
--
CP3S2
CP3S1
CP3S0
1
T3MOD1
132
TL3CS
TL3 Overflow (TL3OF)
0. T3OF == TL3OF
1. to T3CKO
2. to Peripheral Clock
1
MA82G5Cxx 数据手册
MEGAWIN
15.3.7. 分割定时器 3 模式 2 (捕获)
图 15–30. 分割定时器 3 模式 2 结构 (捕获)
T3SPL = 1, CP/RL3 = 1, T3MS0 = 0
00H
SYSCLK/12
(0,0,0)
T3 Pin
(0,0,1)
SYSCLK
(0,1,0)
(TL3 Overflow) T3LOF
(0,1,1)
(S2BRG Overflow) S2TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC1ES
(1,1,0)
ILRCO
(1,1,1)
Reload
TH3
(8 Bits)
8-bit Up Counter
Capture
TR3
{T3CKS, T3X12, C/T3}
T3EX Pin
(0,0,0)
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT3
(0,1,1)
RXD2
(1,0,0)
AC0OUT
(1,0,1)
AC1OUT
(1,1,0)
TWI1_SCL
(1,1,1)
TF3
Overflow
RCAP3H
EXEN3
Timer 3
Interrupt
EXF3
T3EXH
CP3S[2:0]
TR3LC
SYSCLK/12
(0,0)
SYSCLK
(0,1)
(S2BRG Overflow) S2TOF
(1,0)
iINT1
(1,1)
Clear TR3L
8-bit Up Counter
Overflow
TL3
(8 Bits)
TR3L
TF3L
Reload
TL3IE
{TL3CS, TL3X12}
T3CON
TF3
EXF3
TF3L
TL3IE
EXEN3
TR3
C/T3
CP/RL3
T3MOD
T3SPL
TL3X12
T3EXH
T3X12
TR3L
TR3LC
T3OE
T3MS0
RCAP3L
1
1
T3MOD1
TL3CS
MEGAWIN
TL3 Overflow (TL3OF)
0. T3OF == TL3OF
1. to T3CKO
2. to Peripheral Clock
0
--
--
T3CKS
--
CP3S2
CP3S1
CP3S0
MA82G5Cxx 数据手册
133
15.3.8. 分割定时器 3 模式 3(捕获带自动清零)
图 15–31. 分割定时器 3 模式 3 结构 (捕获带自动清零 TH3)
T3SPL = 1, CP/RL3 = 1, T3MS0 = 1
00H
SYSCLK/12
(0,0,0)
T3 Pin
(0,0,1)
SYSCLK
(0,1,0)
(TL3 Overflow) T3LOF
(0,1,1)
(S2BRG Overflow) S2TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC1ES
(1,1,0)
ILRCO
(1,1,1)
Reload
TH3
(8 Bits)
(0,0,0)
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT3
(0,1,1)
RXD2
(1,0,0)
AC0OUT
(1,0,1)
AC1OUT
(1,1,0)
TWI1_SCL
(1,1,1)
TF3
Overflow
8-bit Up Counter
Capture
TR3
{T3CKS, T3X12, C/T3}
T3EX Pin
Reload
RCAP3H
EXEN3
Timer 3
Interrupt
EXF3
T3EXH
CP3S[2:0]
TR3LC
SYSCLK/12
(0,0)
SYSCLK
(0,1)
(S2BRG Overflow) S2TOF
(1,0)
iINT1
(1,1)
Clear TR3L
8-bit Up Counter
Overflow
TL3
(8 Bits)
TR3L
TF3L
Reload
TL3IE
{TL3CS, TL3X12}
T3CON
TF3
EXF3
TF3L
TL3IE
EXEN3
TR3
C/T3
CP/RL3
T3MOD
T3SPL
TL3X12
T3EXH
T3X12
TR3L
TR3LC
T3OE
T3MS0
RCAP3L
1
1
T3MOD1
134
TL3CS
TL3 Overflow (TL3OF)
0. T3OF == TL3OF
1. to T3CKO
2. to Peripheral Clock
1
--
--
T3CKS
--
CP3S2
CP3S1
CP3S0
MA82G5Cxx 数据手册
MEGAWIN
15.3.9. 定时器 3 寄存器
T3CON: 定时器 3 控制寄存器
SFR 页 = 1 Only
SFR 地址
= 0xC8
7
6
5
TF3
EXF3
TF3L
R/W
R/W
R/W
复位值 = 0000-0000
4
3
2
TL3IE
EXEN3
TR3
R/W
R/W
1
C/T3
0
CP/RL3
R/W
R/W
R/W
Bit 7: TF3, 定时器3溢出标志位
0: TF3必须软件清零
1: 定时器3发生溢出时硬件置位 TF3
Bit 6: EXF3, 定时器3外部标志
0: EXF3必须软件清零
1: 当EXEN3=1且在T3EX上有负跳变导致重载或捕获,或者T3EXH=1并且在T3EX上有一个正跳变,将置位定时器
外部标志。当定时器3中断使能时,EXF3=1时将引起CPU进入定时器3中断向量程序。当 MCU在掉电模式并且
定时器3中断使能,EXF3强制改为电平触发,并且有唤醒MCU的能力。
Bit 5: TF3L, 当定时器3在分割模式(T3SPL=1)下TL3 溢出标志
0: TF3L 必须软件清零
1: 当定时器3在分割模式(T3SPL=1)下TL3发生溢出时置位TF3L。
Bit 4: TL3IE, TF3L 中断使能
0: 禁止TF3L 的中断功能
1: 使能TF3L的中断能力,与定时器3共享中断向量
Bit 3: EXEN3, 定时器3外部使能位在T3EX引脚的负跳变
0: 定时器3忽略T3EX引脚的负跳变事件
1: 允许在定时器3外部输入1到0跳变时产生一次捕获或重载。如果定时器被配置成模式0,则不会产生捕捉或重载
的功能,定时器3外部输入保留外部变化监测和报告EXF3标志给定时器3中断。
Bit 2: TR3, 定时器3运行控制位。如果在定时器3分割模式下,它仅能控制TH3。
0: 定时器3停止运行
1: 定时器3开启运行
Bit 1: C/T3, 定时器或计数器输入源选择位,和T3X12 (T3MOD.4)与T3CKS (T3MOD1.4) 一起决定定时器3的输入
来源。如下所示:
T3CKS, T3X12, C/T3
定时器 3 时钟选择
分割模式下 TH3 时钟选择
0 0 0
SYSCLK/12
SYSCLK/12
0 0 1
T3 引脚
T3 引脚
0 1 0
SYSCLK
SYSCLK
0 1 1
iINT1
TL3OF
1 0 0
S2TOF
S2TOF
1 0 1
T0OF
T0OF
1 1 0
AC1ES
AC1ES
1 1 1
ILRCO
ILRCO
Bit 0: CP/RL3, 定时器 3 模式选择位。参见 T3MOD.T3MS0 的定时器 3 模式设置描述。
MEGAWIN
MA82G5Cxx 数据手册
135
T3MOD: 定时器 3 模式寄存器
SFR 页 = 1 Only
SFR 地址
= 0xC9
7
6
5
T3SPL
TL3X12
T3EXH
R/W
R/W
4
T3X12
R/W
R/W
RESET= 0000-0000
3
2
TR3L
TR3LC
R/W
R/W
1
T3OE
0
T3MS0
R/W
R/W
Bit 7: T3SPL, 定时器 3 分割模式选择
0: 禁止定时器3分割模式
1: 使能定时器3分割模式
Bit 6: TL3X12, 在定时器 3 分割模式下 TL3 时钟控制位
TL3CS, TL3X12
TL3 时钟选择
0 0
SYSCLK/12
0 1
SYSCLK
1 0
S2TOF
1 1
iINT1
Bit 5: T3EXH, 定时器3检测T3EX 输入正跳变使能
0: 定时器3忽略T3EX引脚的正跳变事件
1: 允许在定时器3外部输入0到1跳变时产生一次捕获或重载,并且置位 EXF3。
Bit 4: T3X12, 定时器 3 时钟源选择。参见 T3CON.C/T3 的定时器 3 时钟来源定义描述。
Bit 3: TR3L, 在分割模式, TL3 运行控制位
0: 停止TL3.
1: 启动TL3.
Bit 2: TR3LC, TR3L 清除控制位
0: 禁止硬件事件清零 TR3L
1: 使能 TH3 溢出(定时器 3 在模式 0/1)或者捕获输入(定时器 3 在模式 2/3)时自动清零 TR3L
Bit 1: T3OE, 定时器 3 时钟输出使能位
0: 禁止定时器 3 时钟输出
1: 使能定时器 3 时钟输出
Bit 0: T3MS0, 定时器 3 模式选择位 0.
CP/RL3, T3MS0
定时器 3 模式选择
0 0
模式 0, 自动重载和外部中断模式
0 1
模式 1, 自动重载带外部中断模式
1 0
模式 2, 捕获模式
1 1
模式 3, 捕获带自动清零模式
T3MOD1: 定时器 3 模式寄存器 1
SFR 页 = 2 Only
SFR 地址
= 0x93
7
6
5
TL3CS
--R/W
W
W
4
T3CK2
RESET= 0XX0-X000
3
2
-CP3S2
R/W
W
R/W
1
CP3S1
0
CP3S0
R/W
R/W
Bit 7: TL3CS. 在定时器 3 分割模式下的 TL3 时钟选择选择。参见 T3MOD.TL3X12 的 TL3 输入选项的描述。
Bit 6~5: 保留。当写 T3MOD1 时,这两位软件必须写‖0‖
Bit 4: T3CKS, 定时器 3 时钟输入选择。参见 C/T3 (T3CON.1) 的时钟输入选项的描述。T
136
MA82G5Cxx 数据手册
MEGAWIN
Bit 3: 保留。当写 T3MOD1 时,该位软件必须写‖0‖
Bit 2~0: CP3S.2~0. 这些位定义了定时器 3 的捕获源选择
CP3S.2~0
定时器 3 捕获源选择
0 0 0
T3EX 引脚
0 0 1
RXD0
0 1 0
XTAL2/ECKI
0 1 1
iINT3
1 0 0
RXD2
1 0 1
AC0OUT
1 1 0
AC1OUT
1 1 1
TWI1_SCL
TREN0: 定时器运行使能寄存器 0
SFR 页 = 1 Only
SFR 地址
= 0x95
7
6
5
TR4LE
TR3LE
TR2LE
R/W
R/W
R/W
RESET= 0000-0000
4
3
2
TR4E
TR3E
TR2E
R/W
R/W
R/W
1
TR1E
0
TR0E
R/W
R/W
Bit 6, TR3LE, 在分割模式下,该位上写―1‖ 设置 TR3L 使能(TR3L =1). 这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
Bit 3, TR3E, 该位上写―1‖ 设置 TR3 使能(TR3=1). 这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
TRLC0: 定时器重载控制寄存器 0
SFR 页 = 2 Only
SFR 地址
= 0x95
7
6
5
TL4RLC
TL3RLC
TL2RLC
R/W
R/W
R/W
4
T4RLC
R/W
RESET= 0000-0000
3
2
T3RLC
T2RLC
R/W
R/W
1
T1RLC
0
T0RLC
R/W
R/W
Bit 6, TL3RLC, 定时器 3 在分割模式下,该位上写―1‖ 强制 TL3 重载. 这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
Bit 3, T3RLC, 定时器 3 在非分割模式下,该位上写―1‖ 强制 TH3 和 TL3 重载。在分割模式下,该位上写―1‖ 强制 TH3
重载。这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
TSPC0: 定时器停止控制寄存器 0
SFR 页 = 3 Only
SFR 地址
= 0x95
7
6
5
TL4SC
TL3SC
TL2SC
R/W
R/W
R/W
4
T4SC
R/W
RESET= 0000-0000
3
2
T3SC
T2SC
R/W
R/W
1
T1SC
0
T0SC
R/W
R/W
Bit 6, TL3SC, 定时器 3 在分割模式下,该位上写―1‖ 设置 TR3L 禁止(TR3L =0). 这位在写 ―1‖ 后硬件自动清零。写―0‖
无效。
Bit 3, T3SC, 该位上写―1‖ 设置 TR3 禁止(TR3 =0). 这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
MEGAWIN
MA82G5Cxx 数据手册
137
TL3: 定时器 3 低字节寄存器
SFR 页 = 1 Only
SFR 地址
= 0xCC
7
6
5
TL3.7
TL3.6
TL3.5
R/W
R/W
4
TL3.4
R/W
R/W
5
TH3.5
4
TH3.4
R/W
R/W
复位值 = 0000-0000
3
2
TL3.3
TL3.2
R/W
R/W
1
TL3.1
0
TL3.0
R/W
R/W
1
TH3.1
0
TH3.0
R/W
R/W
TH3: 定时器 3 高字节寄存器
SFR 页 = 1 Only
SFR 地址
= 0xCD
7
6
TH3.7
TH3.6
R/W
R/W
复位值 = 0000-0000
3
2
TH3.3
TH3.2
R/W
R/W
RCAP3L: 定时器 3 捕获低字节寄存器
SFR 页 = 1 Only
SFR 地址
= 0xCA
复位值 = 0000-0000
7
6
5
4
3
2
1
0
RCAP3L.7 RCAP3L.6 RCAP3L.5 RCAP3L.4 RCAP3L.3 RCAP3L.2 RCAP3L.1 RCAP3L.1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
RCAP3H: 定时器 3 捕获高字节寄存器
SFR 页 = 1 Only
SFR 地址
= 0xCB
复位值 = 0000-0000
7
6
5
4
3
2
1
0
RCAP3H.7 RCAP3H.6 RCAP3H.5 RCAP3H.4 RCAP3H.3 RCAP3H.2 RCAP3H.1 RCAP3H.0
R/W
R/W
AUXR5: 辅助寄存器 5
SFR 页
= 2 Only
SFR 地址
= 0xA4
7
6
SnMIPS
S3PS0
R/W
R/W
R/W
R/W
5
S2PS0
4
C1PPS0
R/W
R/W
Bit 1~0: T3PS1~0, 定时器 3 端口选择[1:0].
T3PS1~0
T3/T3CKO
00
P4.6
01
P4.0
10
P2.1
11
P6.7
138
R/W
R/W
复位值 = 0000-0000
3
2
T0OPS0
T4PS0
R/W
R/W
R/W
R/W
1
T3PS1
0
T3PS0
R/W
R/W
T3EX
P7.2
P4.1
P2.0
P5.7
MA82G5Cxx 数据手册
MEGAWIN
15.4. 定时器 4
15.4.1. 定时器 4 模式 0 (自动重载和外部中断)
图 15–32. 定时器 4 模式 0 结构(自动重载和外部中断模式)
SYSCLK/12
(0,0,0)
T4 Pin
(0,0,1)
SYSCLK
(0,1,0)
iINT2
(0,1,1)
(S3BRG Overflow) S3TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC2ES
(1,1,0)
AC0ES
(1,1,1)
T4SPL = 0, CP/RL4 = 0, T4MS0 = 0
16-bit Up Counter
TL4
(8 Bits)
TR4
T4EX Pin
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT1
(0,1,1)
RXD3
(1,0,0)
AC0OUT
(1,0,1)
AC2OUT
(1,1,0)
ILRCO
(1,1,1)
CP4S[2:0]
MEGAWIN
TF4
Reload
T4OF
(T4 overflow)
{T4CKS, T4X12, C/T4}
(0,0,0)
Overflow
TH4
(8 Bits)
RCAP4L
Timer 4
Interrupt
RCAP4H
EXEN4
EXF4
T4EXH
T4CON
TF4
EXF4
TF4L
TL4IE
EXEN4
TR4
C/T4
CP/RL4
T4MOD
T4SPL
TL4X12
T4EXH
T4X12
TR4L
TR4LC
T4OE
T4MS0
T4MOD1
TL4CS
--
--
T4CKS
--
CP4S2
CP4S1
CP4S0
0
0
0
MA82G5Cxx 数据手册
139
15.4.2. 定时器 4 模式 1 (自动重载带外部中断)
图 15–33. 定时器 4 模式 1 结构 (自动重载带外部中断模式)
SYSCLK/12
(0,0,0)
T4 Pin
(0,0,1)
SYSCLK
(0,1,0)
iINT2
(0,1,1)
(S3BRG Overflow) S3TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC2ES
(1,1,0)
AC0ES
(1,1,1)
T4SPL = 0, CP/RL4 = 0, T4MS0 = 1
16-bit Up Counter
TL4
(8 Bits)
TR4
(0,0,0)
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT1
(0,1,1)
RXD3
(1,0,0)
AC0OUT
(1,0,1)
AC2OUT
(1,1,0)
ILRCO
(1,1,1)
CP4S[2:0]
T4OF
(T4 overflow)
RCAP4L
Timer 4
Interrupt
RCAP4H
EXEN4
EXF4
T4EXH
T4CON
TF4
EXF4
TF4L
TL4IE
EXEN4
TR4
C/T4
CP/RL4
0
T4MOD
T4SPL
TL4X12
T4EXH
T4X12
TR4L
TR4LC
T4OE
0
T4MOD1
140
TF4
Reload
{T4CKS, T4X12, C/T4}
T4EX Pin
Overflow
TH4
(8 Bits)
TL4CS
MA82G5Cxx 数据手册
T4MS0
1
--
--
T4CKS
--
CP4S2
CP4S1
CP4S0
MEGAWIN
15.4.3. 定时器 4 模式 2(捕获)
图 15–34. 定时器 4 模式 2 结构(捕获模式)
T4SPL = 0, CP/RL4 = 1, T4MS0 = 0
00H
SYSCLK/12
(0,0,0)
T4 Pin
(0,0,1)
SYSCLK
(0,1,0)
iINT2
(0,1,1)
(S3BRG Overflow) S3TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC2ES
(1,1,0)
AC0ES
(1,1,1)
Reload
T4OF
(T4 overflow)
16-bit Up Counter
T4EX Pin
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT1
(0,1,1)
RXD3
(1,0,0)
AC0OUT
(1,0,1)
AC2OUT
(1,1,0)
ILRCO
(1,1,1)
CP4S[2:0]
TL4
(8 Bits)
TH4
(8 Bits)
RCAP4L
RCAP4H
Capture
Timer 4
Interrupt
EXEN4
EXF4
T4EXH
T4CON
TF4
EXF4
TF4L
TL4IE
EXEN4
TR4
C/T4
CP/RL4
T4MOD
T4SPL
TL4X12
T4EXH
T4X12
TR4L
TR4LC
T4OE
T4MS0
1
0
T4MOD1
MEGAWIN
TF4
Overflow
TR4
{T4CKS, T4X12, C/T4}
(0,0,0)
00H
TL4CS
MA82G5Cxx 数据手册
0
--
--
T4CKS
--
CP4S2
CP4S1
CP4S0
141
15.4.4. 定时器 4 模式 3 (捕获带自动清零)
图 15–35. 定时器 4 模式 2 结构(捕获带自动清零 TL4 & TH4)
T4SPL = 0, CP/RL4 = 1, T4MS0 = 1
00H
SYSCLK/12
(0,0,0)
T4 Pin
(0,0,1)
SYSCLK
(0,1,0)
iINT2
(0,1,1)
(S3BRG Overflow) S3TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC2ES
(1,1,0)
AC0ES
(1,1,1)
Reload
(0,0,0)
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT1
(0,1,1)
RXD3
(1,0,0)
AC0OUT
(1,0,1)
AC2OUT
(1,1,0)
(HKBO) ILRCO
(1,1,1)
CP4S[2:0]
Reload
T4OF
(T4 overflow)
TL4
(8 Bits)
TF4
Overflow
16-bit Up Counter
Capture
RCAP4L
Timer 4
Interrupt
RCAP4H
EXEN4
EXF4
T4EXH
T4CON
TF4
EXF4
TF4L
TL4IE
EXEN4
TR4
C/T4
CP/RL4
1
T4MOD
T4SPL
TL4X12
T4EXH
T4X12
TR4L
TR4LC
T4OE
T4MS0
--
--
T4CKS
--
CP4S2
CP4S1
CP4S0
0
T4MOD1
142
TH4
(8 Bits)
TR4
{T4CKS, T4X12, C/T4}
T4EX Pin
00H
TL4CS
MA82G5Cxx 数据手册
1
MEGAWIN
15.4.5. 分割定时器 4 模式 0 (自动重载和外部中断)
图 15–36. 分割定时器 4 模式 0 结构(自动重载和外部中断)
SYSCLK/12
(0,0,0)
T4 Pin
(0,0,1)
SYSCLK
(0,1,0)
(TL4 Overflow) T4LOF
(0,1,1)
(S3BRG Overflow) S3TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC2ES
(1,1,0)
AC0ES
(1,1,1)
T4SPL = 1, CP/RL4 = 0, T4MS0 = 0
8-bit Up Counter
TR4
T4EX Pin
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT1
(0,1,1)
RXD3
(1,0,0)
AC0OUT
(1,0,1)
AC2OUT
(1,1,0)
ILRCO
(1,1,1)
TF4
Reload
{T4CKS, T4X12, C/T4}
(0,0,0)
Overflow
TH4
(8 Bits)
RCAP4H
EXEN4
Timer 4
Interrupt
EXF4
T4EXH
CP4S[2:0]
TR4LC
SYSCLK/12
(0,0)
SYSCLK
(0,1)
(S3BRG Overflow) S3TOF
(1,0)
iINT2
(1,1)
Clear TR4L
8-bit Up Counter
Overflow
TL4
(8 Bits)
TR4L
TF4L
Reload
TL4IE
{TL4CS, TL4X12}
T4CON
TF4
EXF4
TF4L
TL4IE
EXEN4
TR4
C/T4
CP/RL4
T4MOD
T4SPL
TL4X12
T4EXH
T4X12
TR4L
TR4LC
T4OE
T4MS0
RCAP4L
0
1
T4MOD1
TL4CS
MEGAWIN
TL4 Overflow (TL4OF)
0. T4OF == TL4OF
1. to T4CKO
2. to Peripheral Clock
0
--
--
T4CKS
--
CP4S2
CP4S1
CP4S0
MA82G5Cxx 数据手册
143
15.4.6. 分割定时器 4 模式 1(自动重载带外部中断)
图 15–37. 分割定时器 4 模式 1 结构 (自动重载带外部中断)
SYSCLK/12
(0,0,0)
T4 Pin
(0,0,1)
SYSCLK
(0,1,0)
(TL4 Overflow) T4LOF
(0,1,1)
(S3BRG Overflow) S3TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC2ES
(1,1,0)
AC0ES
(1,1,1)
T4SPL = 1, CP/RL4 = 0, T4MS0 = 1
8-bit Up Counter
TR4
(0,0,0)
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT1
(0,1,1)
RXD3
(1,0,0)
AC0OUT
(1,0,1)
AC2OUT
(1,1,0)
ILRCO
(1,1,1)
TF4
Reload
{T4CKS, T4X12, C/T4}
T4EX Pin
Overflow
TH4
(8 Bits)
RCAP4H
EXEN4
Timer 4
Interrupt
EXF4
T4EXH
CP4S[2:0]
TR4LC
SYSCLK/12
(0,0)
SYSCLK
(0,1)
(S3BRG Overflow) S3TOF
(1,0)
iINT2
(1,1)
Clear TR4L
8-bit Up Counter
Overflow
TL4
(8 Bits)
TR4L
TF4L
Reload
TL4IE
{TL4CS, TL4X12}
T4CON
TF4
EXF4
TF4L
TL4IE
EXEN4
TR4
C/T4
CP/RL4
T4MOD
T4SPL
TL4X12
T4EXH
T4X12
TR4L
TR4LC
T4OE
T4MS0
T4MOD1
TL4CS
--
--
T4CKS
--
CP4S2
CP4S1
CP4S0
RCAP4L
0
1
144
TL4 Overflow (TL4OF)
0. T4OF == TL4OF
1. to T4CKO
2. to Peripheral Clock
1
MA82G5Cxx 数据手册
MEGAWIN
15.4.7. 分割定时器 4 模式 2(捕获)
图 15–38. 分割定时器 4 模式 2 结构 (捕获)
T4SPL = 1, CP/RL4 = 1, T4MS0 = 0
00H
SYSCLK/12
(0,0,0)
T4 Pin
(0,0,1)
SYSCLK
(0,1,0)
(TL4 Overflow) T4LOF
(0,1,1)
(S3BRG Overflow) S3TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC2ES
(1,1,0)
AC0ES
(1,1,1)
Reload
TH4
(8 Bits)
8-bit Up Counter
Capture
TR4
{T4CKS, T4X12, C/T4}
T4EX Pin
(0,0,0)
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT1
(0,1,1)
RXD3
(1,0,0)
AC0OUT
(1,0,1)
AC2OUT
(1,1,0)
ILRCO
(1,1,1)
TF4
Overflow
RCAP4H
EXEN4
Timer 4
Interrupt
EXF4
T4EXH
CP4S[2:0]
TR4LC
SYSCLK/12
(0,0)
SYSCLK
(0,1)
(S3BRG Overflow) S3TOF
(1,0)
iINT2
(1,1)
Clear TR4L
8-bit Up Counter
Overflow
TL4
(8 Bits)
TR4L
TF4L
Reload
TL4IE
{TL4CS, TL4X12}
T4CON
TF4
EXF4
TF4L
TL4IE
EXEN4
TR4
C/T4
CP/RL4
T4MOD
T4SPL
TL4X12
T4EXH
T4X12
TR4L
TR4LC
T4OE
T4MS0
RCAP4L
1
1
T4MOD1
TL4CS
MEGAWIN
TL4 Overflow (TL4OF)
0. T4OF == TL4OF
1. to T4CKO
2. to Peripheral Clock
0
--
--
T4CKS
--
CP4S2
CP4S1
CP4S0
MA82G5Cxx 数据手册
145
15.4.8. 分割定时器 4 模式 3 (捕获带自动清零)
图 15–39. 分割定时器 4 模式 3 结构(捕获带自动清零 TH4)
T4SPL = 1, CP/RL4 = 1, T4MS0 = 1
00H
SYSCLK/12
(0,0,0)
T4 Pin
(0,0,1)
SYSCLK
(0,1,0)
(TL4 Overflow) T4LOF
(0,1,1)
(S3BRG Overflow) S3TOF
(1,0,0)
(Timer0 Overflow) T0OF
(1,0,1)
AC2ES
(1,1,0)
AC0ES
(1,1,1)
Reload
TH4
(8 Bits)
T4EX Pin
RXD0
(0,0,1)
XTAL2/ECKI
(0,1,0)
iINT1
(0,1,1)
RXD3
(1,0,0)
AC0OUT
(1,0,1)
AC2OUT
(1,1,0)
ILRCO
(1,1,1)
TF4
Overflow
8-bit Up Counter
Capture
TR4
{T4CKS, T4X12, C/T4}
(0,0,0)
Reload
RCAP4H
EXEN4
Timer 4
Interrupt
EXF4
T4EXH
CP4S[2:0]
TR4LC
SYSCLK/12
(0,0)
SYSCLK
(0,1)
(S3BRG Overflow) S3TOF
(1,0)
iINT2
(1,1)
Clear TR4L
8-bit Up Counter
Overflow
TL4
(8 Bits)
TR4L
TF4L
Reload
TL4IE
{TL4CS, TL4X12}
T4CON
TF4
EXF4
TF4L
TL4IE
EXEN4
TR4
C/T4
CP/RL4
T4MOD
T4SPL
TL4X12
T4EXH
T4X12
TR4L
TR4LC
T4OE
T4MS0
T4MOD1
TL4CS
--
--
T4CKS
--
CP4S2
CP4S1
CP4S0
RCAP4L
1
1
146
TL4 Overflow (TL4OF)
0. T4OF == TL4OF
1. to T4CKO
2. to Peripheral Clock
1
MA82G5Cxx 数据手册
MEGAWIN
15.4.9. 定时器 4 寄存器
T4CON: 定时器 4 控制寄存器
SFR 页 = 2 Only
SFR 地址
= 0xC8
7
6
5
TF4
EXF4
TF4L
R/W
R/W
R/W
复位值 = 0000-0000
4
3
2
TL4IE
EXEN4
TR4
R/W
R/W
1
C/T4
0
CP/RL4
R/W
R/W
R/W
Bit 7: TF4, 定时器4溢出标志位
0: TF4 必须软件清零
1: 定时器3发生溢出时硬件置位 TF4
Bit 6: EXF4, 定时器4外部标志
0: EXF4必须软件清零
1: 当EXEN4=1且在T4EX上有负跳变导致重载或捕获,或者T4EXH=1并且在T4EX上有一个正跳变,将置位定时器
外部标志。当定时器4中断使能时,EXF4=1时将引起CPU进入定时器4中断向量程序。当 MCU在掉电模式并且
定时器4中断使能,EXF4强制改为电平触发,并且有唤醒MCU的能力。
Bit 5: TF4L, 当定时器4在分割模式(T4SPL=1)下TL4溢出标志
0: TF4L 必须软件清零
1: 当定时器4在分割模式(T4SPL=1)下TL4发生溢出时置位TF4L。
Bit 4: TL4IE, TF4L中断使能
0: 禁止TF4L 的中断功能
1: 使能TF4L的中断能力,与定时器4共享中断向量
Bit 3: EXEN4, 定时器4外部使能位在T4EX引脚的负跳变
0: 定时器4忽略T3EX引脚的负跳变事件
1: 允许在定时器3外部输入1到0跳变时产生一次捕获或重载。如果定时器被配置成模式0,则不会产生捕捉或重载
的功能,定时器4外部输入保留外部变化监测和报告EXF4标志给定时器4中断。
Bit 2: TR4, 定时器4运行控制位。如果在定时器4分割模式下,它仅能控制TH4。
0: 定时器4停止运行
1: 定时器4开启运行
Bit 1: C/T4, 定时器或计数器输入源选择位,和T4X12 (T4MOD.4)与T4CKS (T4MOD1.4) 一起决定定时器4的输入
来源。如下所示:
T4CKS, T4X12, C/T4
定时器 4 时钟选择
分割模式下 TH4 时钟选择
0 0 0
SYSCLK/12
SYSCLK/12
0 0 1
T4 Pin
T4 Pin
0 1 0
SYSCLK
SYSCLK
0 1 1
iINT2
TL4OF
1 0 0
S3TOF
S3TOF
1 0 1
T0OF
T0OF
1 1 0
AC2ES
AC2ES
1 1 1
AC0ES
AC0ES
Bit 0: CP/RL4, 定时器 4 模式选择位。参见 T4MOD.T4MS0 的定时器 4 模式设置描述。
MEGAWIN
MA82G5Cxx 数据手册
147
T4MOD: 定时器 4 模式寄存器
SFR 页 = 2 Only
SFR 地址
= 0xC9
7
6
5
T4SPL
TL4X12
T4EXH
R/W
R/W
4
T4X12
R/W
R/W
RESET= 0000-0000
3
2
TR4L
TR4LC
R/W
R/W
1
T4OE
0
T4MS0
R/W
R/W
Bit 7: T4SPL, 定时器 4 分割模式选择.
0: 禁止定时器4分割模式
1: 使能定时器4分割模式
Bit 6: TL4X12, 在定时器 4 分割模式下 TL4 时钟控制位
TL4CS, TL4X12
TL4 时钟选择
0 0
SYSCLK/12
0 1
SYSCLK
1 0
S3TOF
1 1
iINT2
Bit 5: T4EXH, 定时器4检测T4EX 输入正跳变使能
0: 定时器4忽略T4EX引脚的正跳变事件
1: 允许在定时器4外部输入0到1跳变时产生一次捕获或重载,并且置位 EXF4。
Bit 4: T4X12, 定时器 4 时钟源选择。参见 T4CON.C/T4 的定时器 4 时钟来源定义描述。
Bit 3: TR4L, 在分割模式, TL4 运行控制位
0: 停止TL4.
1: 启动TL4.
Bit 2: TR4LC, TR4L 清除控制位
0: 禁止硬件事件清零 TR4L
1: 使能 TH4 溢出(定时器 4 在模式 0/1)或者捕获输入(定时器 4 在模式 2/3)时自动清零 TR4L
Bit 1: T4OE, 定时器 4 时钟输出使能位
0: 禁止定时器 4 时钟输出
1: 使能定时器 4 时钟输出
Bit 0: T4MS0, 定时器 3 模式选择位 0.
CP/RL4, T4MS0
定时器 4 模式选择
0 0
模式 0, 自动重载和外部中断模式
0 1
模式 1, 自动重载带外部中断模式
1 0
模式 2, 捕获模式
1 1
模式 3, 捕获带自动清零模式
T4MOD1: 定时器 3 模式寄存器 1
SFR 页 = 3 Only
SFR 地址
= 0x93
7
6
5
TL4CS
--R/W
W
W
4
T4CK2
RESET= 0XX0-X000
3
2
-CP4S2
R/W
W
R/W
1
CP4S1
0
CP4S0
R/W
R/W
Bit 7: TL4CS. 在定时器 4 分割模式下的 TL4 时钟选择选择。参见 T4MOD.TL4X12 的 TL4 输入选项的描述。
Bit 6~5: 保留。当写 T4MOD1 时,这两位软件必须写‖0‖
Bit 4: T4CKS, 定时器 4 时钟输入选择。参见 C/T3 (T4CON.1) 的时钟输入选项的描述。T
148
MA82G5Cxx 数据手册
MEGAWIN
Bit 3: 保留。当写 T4MOD1 时,该位软件必须写‖0‖
Bit 2~0: CP4S.2~0. 这些位定义了定时器 4 的捕获源选择
CP4S.2~0
定时器 4 捕获源选择
0 0 0
T4EX 引脚
0 0 1
RXD0
0 1 0
XTAL2/ECKI
0 1 1
iINT1
1 0 0
RXD3
1 0 1
AC0OUT
1 1 0
AC2OUT
1 1 1
ILRCO
TREN0: 定时器运行使能寄存器 0
SFR 页 = 1 Only
SFR 地址
= 0x95
7
6
5
TR4LE
TR3LE
TR2LE
R/W
R/W
R/W
4
TR4E
R/W
RESET= 0000-0000
3
2
TR3E
TR2E
R/W
R/W
1
TR1E
0
TR0E
R/W
R/W
Bit 7, TR4LE, 在分割模式下,该位上写―1‖ 设置 TR4L 使能(TR4L =1). 这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
Bit 4, TR4E, 该位上写―1‖ 设置 TR4 使能(TR4=1). 这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
TRLC0: 定时器重载控制寄存器 0
SFR 页 = 2 Only
SFR 地址
= 0x95
7
6
5
TL4RLC
TL3RLC
TL2RLC
R/W
R/W
R/W
4
T4RLC
R/W
RESET= 0000-0000
3
2
T3RLC
T2RLC
R/W
R/W
1
T1RLC
0
T0RLC
R/W
R/W
Bit 7, TL4RLC, 定时器 4 在分割模式下,该位上写―1‖ 强制 TL4 重载. 这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
Bit 4, T4RLC, 定时器 4 在非分割模式下,该位上写―1‖ 强制 TH4 和 TL4 重载。在分割模式下,该位上写―1‖ 强制 TH4
重载。这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
TSPC0: 定时器停止控制寄存器 0
SFR 页 = 3 Only
SFR 地址
= 0x95
7
6
5
TL4SC
TL3SC
TL2SC
R/W
R/W
R/W
4
T4SC
R/W
RESET= 0000-0000
3
2
T3SC
T2SC
R/W
R/W
1
T1SC
0
T0SC
R/W
R/W
Bit 6, TL4SC, 定时器 4 在分割模式下,该位上写―1‖ 设置 TR4L 禁止(TR4L =0). 这位在写 ―1‖ 后硬件自动清零。写―0‖
无效。
Bit 3, T4SC, 该位上写―1‖ 设置 TR4 禁止(TR4 =0). 这位在写 ―1‖ 后硬件自动清零。写―0‖ 无效。
MEGAWIN
MA82G5Cxx 数据手册
149
TL4: 定时器 4 低字节寄存器
SFR 页 = 2 Only
SFR 地址
= 0xCC
7
6
5
TL4.7
TL4.6
TL4.5
R/W
R/W
R/W
TH4: 定时器 4 高字节寄存器
SFR 页 = 2 Only
SFR 地址
= 0xCD
7
6
5
TH4.7
TH4.6
TH4.5
R/W
R/W
R/W
4
TL4.4
复位值 = 0000-0000
3
2
TL4.3
TL4.2
R/W
R/W
4
TH4.4
R/W
复位值 = 0000-0000
3
2
TH4.3
TH4.2
R/W
R/W
R/W
1
TL4.1
0
TL4.0
R/W
R/W
1
TH4.1
0
TH4.0
R/W
R/W
RCAP4L: 定时器 4 捕获低字节寄存器
SFR 页 = 2 Only
SFR 地址
= 0xCA
复位值 = 0000-0000
7
6
5
4
3
2
1
0
RCAP4L.7 RCAP4L.6 RCAP4L.5 RCAP4L.4 RCAP4L.3 RCAP4L.2 RCAP4L.1 RCAP4L.1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
RCAP4H: 定时器 4 捕获高字节寄存器
SFR 页 = 2 Only
SFR 地址
= 0xCB
复位值 = 0000-0000
7
6
5
4
3
2
1
0
RCAP4H.7 RCAP4H.6 RCAP4H.5 RCAP4H.4 RCAP4H.3 RCAP4H.2 RCAP4H.1 RCAP4H.0
R/W
R/W
AUXR5: 辅助寄存器 5
SFR 页 = 2 Only
SFR 地址
= 0xA4
7
6
SnMIPS
S3PS0
R/W
R/W
R/W
R/W
5
S2PS0
4
C1PPS0
R/W
R/W
Bit 2: T4PS0, 定时器 4 端口选择 0.
T4PS0
T4/T4CKO
0
P7.0
1
P4.2
150
R/W
R/W
复位值 = 0000-0000
3
2
T0OPS0
T4PS0
R/W
R/W
R/W
R/W
1
T3PS1
0
T3PS0
R/W
R/W
T4EX
P7.1
P4.3
MA82G5Cxx 数据手册
MEGAWIN
16. 可编程计数器阵列(PCA0)
MA82G5C64 带有一个可编程计数器阵列(PCA0),该功能与标准定时/计数器相比以更少的 CPU 占用提供了更多
的定时能力。它的优点包括减少了软件复杂度并提高了精度。
16.1. PCA 概述
PCA 由一个专用定时/计数器作为一个 6 组比较/捕获模块的时间基础,图 16–1 显示了 PCA 的功能方框图。需要注
意的是 PCA 定时器和模块都是 16 位的。如果一个外部事件同一个模块关联,那么该功能就和相应的端口 2 引脚共
享。若某模块没有使用端口引脚,这个引脚还可以用作标准 I/O。
模块 0~5 中的任一组都可以编程为如下任意模式:
-上升和/或下降沿捕获
-软件定时器
-高速输出
-脉宽调制(PWM)输出
所有这些模式将在后面的章节进行详细讨论。这里,让我们先看看如何设置 PCA 定时器和模块。
图 16–1. PCA 方框图
16 Bits Each
16 Bits
overflow
Module 0
CEX0 Port Pin
Module 1
CEX1 Port Pin
Module 2
CEX2 Port Pin
Module 3
CEX3 Port Pin
Module 4
CEX4 Port Pin
Module 5
CEX5 Port Pin
PCA0 Timer/Counter
reload
16 bits Reload
Resigter
MEGAWIN
MA82G5Cxx 数据手册
151
16.2. PCA 定时器/计数器
PCA 的定时器/计数器由一个可以自动重载的 16 位定时器组成,如
图 16–2 所示包含 CH 和 CL(计数变量的高低字节),CHRL 和 CLR(重载寄存器的高低之间)。每次{CH+CL}溢出
时 CHRL 和 CLRL 的值将会重载到 CH 和 CL.,这样就可以改变 PCA 的周期,用于可变 PWM 分辨率,例如 7 位
或 9 位 PWM。
{CH + CL}是所有模块的共有时间基础,它的时钟输入可以从以下来源选择:
- 1/12 系统时钟频率
- 1/2 系统时钟频率
-定时器 0 溢出,可以让低频时钟源输入到 PCA 定时器
-外部时钟输入,ECI(P2.1/P3.2)引脚的 1-0 反转
- 直接从系统时钟
- SIBRG 溢出,S1TOF
特殊功能寄存器 CMOD 包含了计数脉冲选择位 (CPS2,CPS1 和 CPS0) 来指定 PCA 定时器时钟源。这个寄存器也
包括了 ECF 位来使能计数器溢出中断。此外,用户可以在待机模式下设置计数器待机位(CIDL),来关闭 PCA
定时器,这样可以进一步降低待机模式下的功耗。
图 16–2. PCA 定时器/计数器
SYSCLK/12
(0,0,0)
SYSCLK/2
(0,0,1)
(Timer0 Overflow) T0OF
(0,1,0)
(PCA0 External Input) ECI
(0,1,1)
CKMIX16
(1,0,0)
SYSCLK
(1,0,1)
(S1BRC Overflow) S1TOF
(1,1,0)
MCKDO
(1,1,1)
To PCA0 Module 0~5
16-bits Up Counter
CH
8 bits
CF
CHRL
CF
CMOD: PCA 计数器模式寄存器
SFR 页 = 0 Only
SFR 地址
= 0xD9
7
6
5
CIDL
BME4
BME2
R/W
CLRL
CIDL
BME4
BME2
BME0
CPS2
CPS1
CPS0
ECF
CR
CCF5
CCF4
CCF3
CCF2
CCF1
CCF0
CCON
复位值 = 0000-0000
4
3
2
BME0
CPS2
CPS1
R/W
PCA0 Interrupt
Enable
reload
IDLE
R/W
overflow
Control
CPS[2:0] Indexed
R/W
CL
8 bits
R/W
R/W
CMOD
1
CPS0
0
ECF
R/W
R/W
Bit 7: CIDL, PCA 计数器空闲模式控制
0: 让 PCA 计数器在空闲模式下继续运行。
1: 空闲模式下关闭 PCA 计数器。
Bit 6: BME4, PCA 模块 4/5 缓冲模式使能
0: PCA 模块 4/5 禁止缓冲模式
1: PCA 模块 4/5 使能缓冲模式
152
MA82G5Cxx 数据手册
MEGAWIN
Bit 5: BME2, PCA 模块 2/3 缓冲模式使能.
0: PCA 模块 2/3 禁止缓冲模式
1: PCA 模块 2/3 使能缓冲模式
Bit 4: BME0, PCA 模块 0/1 缓冲模式使能.
0: PCA 模块 0/1 禁止缓冲模式
1: PCA 模块 0/1 使能缓冲模式
Bit 3~1: CPS2-CPS0, PCA 计数器时钟源选择位.
CPS1
CPS1
CPS0
PCA 时钟源
0
0
0
内部时钟, 系统时钟 (system clock)/12
0
0
1
内部时钟, 系统时钟(system clock)/2
0
1
0
定时器 0 溢出
0
1
1
来自 ECI 引脚的外部时钟
1
0
0
CKMI x16 输出
1
0
1
系统时钟(SYSCLK)
1
1
0
S1BRT 溢出
1
1
1
MCK 分频输出
Bit 0: ECF,使能 PCA 计数器溢出中断
0:当 CF 位(CCON 寄存器中)置位时禁止中断
1:当 CF 位(CCON 寄存器中)置位时使能中断
如下所示的CCON寄存器包含PCA运行控制位和PCA定时器与每个模块的标志。要运行PCA,CR为(CCON.6)
必须软件置位,要关闭PCA,可以清除该位。PCA计数器溢出时,CF (CCON.7)置位,并且若CMOD寄存器的
ECF为置位,还会产生一个中断,CF位只能软件清零。CCF0到CCF5是模块0到模块5的相应中断标志位,当发生
一个匹配或捕获事件时,硬件置位,这些位也必须软件清零。PCA中断系统如 图16–3所示。
CCON: PCA 计数器控制寄存器
SFR 页 = 0 only
SFR 地址
= 0xD8
7
6
5
CF
CR
CCF5
R/W
R/W
R/W
4
CCF4
R/W
复位值 = 0000-0000
3
2
CCF3
CCF2
R/W
R/W
1
CCF1
0
CCF0
R/W
R/W
Bit 7: CF, PCA 计数器溢出标志
0: 只能软件清零
1:溢出时硬件置位,CF 标志在 CMOD 寄存器的 ECF 位置位时会产生一个中断,CF 可以硬件或软件置位
Bit 6: CR, PCA 计数器运行控制位
0: 软件清零关闭 PCA 计数器
1:软件置位启动 PCA 计数器
Bit 5: CCF5, PCA 模块 5 中断标志
0: 必须软件清零
1: 当发生一个匹配或捕获事件时,硬件置位
Bit 4: CCF4, PCA 模块 4 中断标志
0: 必须软件清零
1: 当发生一个匹配或捕获事件时,硬件置位
Bit 3: CCF3, PCA 模块 3 中断标志
0: 必须软件清零
1: 当发生一个匹配或捕获事件时,硬件置位
MEGAWIN
MA82G5Cxx 数据手册
153
Bit 2: CCF2, PCA 模块 2 中断标志
0: 必须软件清零
1: 当发生一个匹配或捕获事件时,硬件置位
Bit 1: CCF1, PCA 模块 1 中断标志
0: 必须软件清零
1: 当发生一个匹配或捕获事件时,硬件置位
Bit 0: CCF0, PCA 模块 0 中断标志
0: 必须软件清零
1: 当发生一个匹配或捕获事件时,硬件置位
图 16–3. PCA 中断系统
CF
CR
CCF5
CCF4
CCF3
CCF2
CCF1
CCON
CCF0
CMOD.ECF
PCA0 Timer/Counter
Module 0
Module 1
EIE1.EPCA
IE.EA
To Interrupt
Priority Processing
Module 2
Module 3
Module 4
Module 5
CCAPMn.0 (n=0~5)
ECCF0~ECCF5
CH: PCA 基准时钟高八位
SFR 页 = 0 only
SFR 地址
= 0xF9
7
6
CH.7
CH.6
R/W
R/W
CL: PCA 基准时钟低八位
SFR 页 = 0 only
SFR 地址
= 0xE9
7
6
CL.7
CL.6
R/W
154
R/W
5
CH.5
4
CH.4
R/W
R/W
5
CL.5
4
CL.4
R/W
R/W
复位值 = 0000-0000
3
2
CH.3
CH.2
R/W
R/W
复位值 = 0000-0000
3
2
CL.3
CL.2
R/W
MA82G5Cxx 数据手册
R/W
1
CH.1
0
CH.0
R/W
R/W
1
CL.1
0
CL.0
R/W
R/W
MEGAWIN
CHRL: PCA CH 重载寄存器高八位
SFR 页 = 0 only
SFR 地址
= 0xCF
7
6
5
CHRL.7
CHRL.6
CHRL.5
R/W
R/W
R/W
CLRL: PCA CL 重载寄存器低八位
SFR 页 = 0 only
SFR 地址
= 0xCE
7
6
5
CLRL.7
CLRL.6
CLRL.5
R/W
MEGAWIN
R/W
R/W
4
CHRL.4
R/W
4
CLRL.4
R/W
复位值 = 0000-0000
3
2
CHRL.3
CHRL.2
R/W
R/W
复位值 = 0000-0000
3
2
CLRL.3
CLRL.2
R/W
MA82G5Cxx 数据手册
R/W
1
CHRL.1
0
CHRL.0
R/W
R/W
1
CLRL.1
0
CLRL.0
R/W
R/W
155
16.3. 比较/捕获模块
比较/捕获模块 0~5 中的每一组都有一个模式寄存器,叫做 CCAPMn(n = 0,1,2,3,4 或 5),用来选择其工
作模式。ECCFn 位控制当中断标志置位时每个模块的中断开启/关闭。
CCAPMn: PCA 模块比较/捕获寄存器, n=0~5
SFR 页 = 0 only
SFR 地址
= 0xDA~0xDF
复位值 = 0000-0000
7
6
5
4
3
2
DTEn
ECOMn
CAPPn
CAPNn
MATn
TOGn
R/W
R/W
R/W
R/W
R/W
R/W
1
PWMn
0
ECCFn
R/W
R/W
Bit 7: DTEn. PWMHn/PWMLn 成对输出死区控制使能。该位仅在 n=0,2 或 4 时有效,并且在 PWM 通道工作在缓
冲模式时激活死区功能。通道的缓冲模式由寄存器 CMOD 里的 BME0, BME2 或 BME4 使能。
0: PWMn 输出禁止死区控制
1: PWMn 输出使能死区控制
Bit 6: ECOMn, 比较器使能
0: 禁止数字比较器功能
1: 使能数字比较器功能
Bit 5: CAPPn, 上升沿捕获使能
0:禁止在 CEXn 引脚侦察到上升沿时的 PCA 捕获功能
1:使能在 CEXn 引脚侦察到上升沿时的 PCA 捕获功能
Bit 4: CAPNn, 下降沿捕获使能
0:禁止在 CEXn 引脚侦察到下降沿时的 PCA 捕获功能
1:使能在 CEXn 引脚侦察到下降沿时的 PCA 捕获功能
Bit 3: MATn, 匹配控制
0:禁止数字比较器匹配事件去置位 CCFn
1: PCA 计数器同相应模块的比较/捕获寄存器匹配时设置 CCON 寄存器的 CCFn 位
Bit 2: TOGn, 翻转控制
0:禁止数字比较器匹配事件去翻转 CEXn
1: PCA 计数器同相应模块的比较/捕获寄存器匹配时设置 CEXn 引脚翻转
Bit 1: PWMn, PWM 控制
0:禁止 PCA 模块中的 PWM 模块
1:使能 PWM 功能,并设置 CEXn 引脚用作脉宽调制输出引脚
Bit 0: ECCFn, CCFn 中断使能
0: 禁止 CCON 寄存器中的比较/捕获标志位 CCFn 产生中断
1:使能 CCON 寄存器中的比较/捕获标志位 CCFn 产生中断
注意:CAPNn (CCAPMn.4)位和 CAPPn (CCAPMn.5)位决定了捕获发生时信号脉冲沿,若这两位同时设置,则上
下降沿都会发生捕获
模块 6~7 仅有 PWM 功能由 CCAPMn.PWMn (n = 6 或 7)的设置来使能。这两个模块没有中断标志。
每个模块都有一对 8 位比较/捕获寄存器(CCAPnH, CCAPnL)。这些寄存器用来存储一个捕获事件发生的时间或者
一个比较时间产生的时间。当模块用于 PWM 模式时,除这两个寄存器之外,一个扩展寄存器 PCAPWMn 用来扩
展输出占空比的范围,扩展的范围从 0%到 100%,步距是 1/256。关于 10/12/16 bit PWM…
156
MA82G5Cxx 数据手册
MEGAWIN
CCAPnH: PCA 模块 n 捕获高寄存器, n=0~5
SFR 页 = 0 only
SFR 地址
= 0xFA~0xFF
复位值 = 0000-0000
7
6
5
4
3
2
1
0
CCAPnH.7 CCAPnH.6 CCAPnH.5 CCAPnH.4 CCAPnH.3 CCAPnH.2 CCAPnH.1 CCAPnH.0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CCAPnL: PCA 模块 n 捕获低寄存器, n=0~5
SFR 页 = 0 only
SFR 地址
= 0xEA~0xEF
复位值 = 0000-0000
7
6
5
4
3
2
1
0
CCAPnL.7 CCAPnL.6 CCAPnL.5 CCAPnL.4 CCAPnL.3 CCAPnL.2 CCAPnL.1 CCAPnL.0
R/W
R/W
R/W
R/W
R/W
R/W
PCAPWMn: PWM 模式辅助寄存器, n=0~5
SFR 页 = 0 only
SFR 地址
= 0xF2~0xF7
复位值 = 0000-0000
7
6
5
4
3
2
PnRS1
PnRS0
PnPS2
PnPS1
PnPS0
PnINV
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
1
ECAPnH
0
ECAPnL
R/W
R/W
Bit 1: ECAPnH, 扩展第 9 位(MSB), 联合 CCAPnH 形成 9 位寄存器用于 PWM 模式
Bit 0: ECAPnL, 扩展第 9 位(MSB),联合 CCAPnL 形成 9 位寄存器用于 PWM 模式
MEGAWIN
MA82G5Cxx 数据手册
157
16.4. PCA 操作模式
表 16–1 显示了不同 PCA 功能对应的 CCAPMn 寄存器设置
表 16–1. PCA 模块模式
ECOMn CAPPn CAPNn MATn
模块功能
TOGn PWMn ECCFn
0
0
0
0
0
0
0
无操作
X
1
0
0
0
0
X
16 位 CEXn 引脚上升沿触发捕获模式
X
0
1
0
0
0
X
16 位 CEXn 引脚下降沿触发捕获模式
X
1
1
0
0
0
X
16 位 CEXn 引脚跳变触发捕获模式
1
0
0
1
0
0
X
16 位软件定时器
1
0
0
1
1
0
X
16 位高速输出
1
0
0
0
0
1
0
脉宽调制器(PWM)
16.4.1. 捕获模式
要让某一PCA模块工作在捕获模式,模块的CAPN、CAPP任何一位或两位必须置位。外部CEX输入会在每次跳变
时采样,当有效跳变发生时,PCA硬件会将PCA计数器寄存器值装入模块的捕获寄存器(CH放入CCAPnH,CL放
入CCAPnL)。若模块的CCFn和ECCFn标志置位,会产生一个中断。
图 16–4. PCA 捕获模式
CF
CR
CCF5
CCF4
CCF3
CCF2
CCF1
CCF0
CCON
PCA Interrupt
(To CCFn)
CCAPnH
CCAPnL
Capture
CEXn
PCA Timer/Counter
CH
CL
overflow
reload
CCAPMn
n= 0 to 5
DTEn
ECOMn
CAPPn
CAPNn
MATn
TOGn
PWMn
ECCFn
0
0
1
1
0
0
0
0/1
CAPPn or CAPNn =1
158
MA82G5Cxx 数据手册
CHRL
CLRL
MEGAWIN
图 16–5. PCA 捕获缓冲模式(BMEn=1, n= 0, 2, 4)
PCA Interrupt
CCON
CF
CR
CCF5
CCF4
CCF3
CCF2
CCF1
CCF0
(To CCFn)
CCAPmH
CCAPmL
m = 1, 3, 5
CCAPnH
CCAPnL
n = 0, 2, 4
Capture
CEXn
n = 0, 2, 4
PCA Timer/Counter
CH
CL
overflow
reload
CCAPMn
n= 0, 2, 4
DTEn
ECOMn
CAPPn
CAPNn
MATn
TOGn
PWMn
ECCFn
0
0
1
1
0
0
0
0/1
CHRL
CAPPn or CAPNn =1
CLRL
Figure 16–6. PCA 缓冲模式捕获波形
CEXn input
n = 0, 2, 4
{CH,CL}
n-1
n
n+1
Transfer
{CCAPnH,CCAPnL}
m
n
n = 0, 2, 4
Transfer
{CCAPnH,CCAPnL}
m
n = 1, 3, 5 (buffer)
CCFn
CCFn Cleared
Before Capture
n = 0, 2, 4
Software clear
Transfer
Software clear
CCFn
n = 1, 3, 5
CCFn
CCFn non-Cleared
Before Capture
n = 0, 2, 4
Transfer
Software clear
CCFn
n = 1, 3, 5
Software clear
MEGAWIN
MA82G5Cxx 数据手册
159
16.4.2. 16 位软件定时器模式
PCA模块可以通过设置CCAPMn寄存器的ECOM位和MAT位来作为一个软件定时器使用,PCA定时器与模块的捕
获寄存器值进行比较,若相等且当CCFn和ECCFn位设置时会产生一个中断信号。
图 16–7. PCA 软件定时器模式
Write to
CCAPnL
CF
Write to
CCAPnH
CCAPnH
1
0
CR
CCF5
CCF4
CCF3
CCF2
CCF1
CCF0
CCON
Reset
Enable
CCAPnL
(To CCFn)
PCA Interrupt
Match
16-Bit Comparator
PCA Timer/Counter
CH
CL
overflow
reload
CHRL
CLRL
DTEn
0
160
ECOMn
CAPPn
CAPNn
MATn
TOGn
PWMn
ECCFn
0
0
1
0
0
0/1
MA82G5Cxx 数据手册
CCAPMn, n= 0 to 5
MEGAWIN
16.4.3. 高速输出模式
这种模式下,每当PCA计数器与模块捕获寄存器值相等时,CEX的输出就翻转一次。为激活这种模式,CCAPMn
寄存器的TOG、MAT 和 ECOM 位必须都置为1。
图 16–8. PCA 高速输出模式
Write to
CCAPnL
CF
CCAPnH
0
CCF5
CCF4
CCF3
CCF2
CCF1
CCF0
CCON
Reset
Write to
CCAPnH
1
CR
Enable
CCAPnL
(To CCFn)
PCA Interrupt
Match
16-Bit Comparator
Toggle
PCA Timer/Counter
CH
CL
CEXn
overflow
reload
CHRL
CLRL
DTEn
0
MEGAWIN
ECOMn
CAPPn
CAPNn
MATn
TOGn
PWMn
ECCFn
0
0
1
1
0
0/1
MA82G5Cxx 数据手册
CCAPMn, n= 0 to 5
161
16.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 寄存器的8位值, ECAPnH ( PCAPWMn 寄存器的第1位) 是1位值。所以,
{ ECAPnH, [CCAPnH] } 组成了9位比较器用的9位值。
例如
a. 若ECAPnH=0且CCAPnH=0x00 (即9位值, 0x000), 占空比为100%.
b. 若ECAPnH=0且CCAPnH=0x40 (即9位值, 0x040), 占空比为75%.
c. 若ECAPnH=0且CCAPnH=0xC0 (即9位值, 0x0C0), 占空比为25%.
d. 若ECAPnH=1且CCAPnH=0x00 (即9位值, 0x100), 占空比为0%.
图 16–9. PCA PWM 模式
CF
--
1
0
0
0
0
1
0
ECOMn
CAPPn
CAPNn
MATn
TOGn
PWMn
ECCFn
CR
CCF5
CCF4
CCF3
CCF2
CCF1
CCF0
CCON
CCAPMn
n= 0 to 5
PCA Interrupt
9 Bits
ECAPnH
9th Bit
(To CCFn)
CCAPnH
ECCFn
C0PLK
reload
Port I/O
9 Bits
ECAPnL
Q
CCAPnL
MATn
Enable
Match
9-Bit
Comparator
S
R
9 Bits
PCA Timer/Counter
(Fixed 0)
CL
CL
Overflow
Q
PWMnH
0
PWMnL
1
0
1
CEXn
Q
PIVOn
PWMn
reload
CLRL
162
MA82G5Cxx 数据手册
MEGAWIN
16.4.5. 增强型 PWM 模式
PCA 提供可变的 PWM 模式以增强控制能力。有额外的 10/12/16 位 PWM 被分配给每一路及每一路 PWM 有不同
的分辨率操作能力。
图 16–10. PCA 用于 10/12/16 位 PWM 模式的增强型 PWM
CF
--
1
0
0
0/1
0
1
0
ECOMn
CAPPn
CAPNn
MATn
TOGn
PWMn
ECCFn
CR
CCF5
CCF4
CCF3
CCAPMn,
n= 0 to 5
CCF2
CCF1
CCF0
CCON
(To CCFn)
PCA Interrupt
ECAPnH
ECCFn
C0PLK
reload
11/13/17th Bit
Port I/O
Q
ECAPnL
CCAPnH
CCAPnL
MATn
Enable
Match
11/13/17-Bit Comparator
S
Q
R
17 Bits
PCA Timer/Counter
1b '0'
CH
PWMnH
0
PWMnL
1
0
CEXn
1
Q
Overflow
CL
PIVOn
PWMn
11/13/17th Bit
reload
CHRL
CLRL
图 16–11. PCA 用于缓冲模式的增强型 PWM
CF
0/1
1
0
0
0/1
0
1
0/1
DTEn
ECOMn
CAPPn
CAPNn
MATn
TOGn
PWMn
ECCFn
CR
CCAPMn,
n= 0 to 5
11/13/17th Bit
ECAPnL
CCAPnH
CCF5
CCF4
CCF3
CCF2
CCF1
CCF0
CCON
(To CCFn)
PCA Interrupt
C0PLK
CCAPnL
n= 1, 3, 5
ECCFn
reload
Port I/O
Q
11/13/17 Bits
ECAPnL
CCAPnH
MATn
CCAPnL
n= 0, 2, 4
Enable
Match
11/13/17-Bit Comparator
17 Bits
PCA Timer/Counter
1b '0'
CH
CL
S
Q
R
Q
PWMnH
PWMnL
Overflow
Dead
Time
Control
dPWMnH
1
reload
CLRL
0
1
PnINV,
n= 1, 3, 5
MEGAWIN
MA82G5Cxx 数据手册
1
PWM0,
PWM2,
PWM4,
Output
Port I/O
DTE0, DET2 or DET4
dPWMnL
CHRL
0
PWMn,
n= 0, 2, 4
PnINV,
n= 0, 2, 4
Enabled by:
11/13/17th Bit
0
0
1
PWM1,
PWM3,
PWM5,
Output
PWMn,
n= 1, 3, 5
163
PCAPWMn: PWM 模式辅助寄存器,, n=0~5
SFR 页 = 0 only
SFR 地址
= 0xF2~0xF7
复位值 = 0000-0000
7
6
5
4
3
2
PnRS1
PnRS0
PnPS2
PnPS1
PnPS0
PnINV
R/W
R/W
R/W
R/W
R/W
R/W
1
ECAPnH
0
ECAPnL
R/W
R/W
Bit 7~6: PWMn 分辨率设置位 1~0.
00: 8 位 PWMn, 溢出激活当[CH, CL]计数 XXXX-XXXX-1111-1111 XXXX-XXXX-0000-0000.
01: 10 位 PWMn, 溢出激活当[CH, CL]计数 XXXX-XX11-1111-1111 XXXX-XX00-0000-0000.
10: 12 位 PWMn, 溢出激活当[CH, CL]计数 XXXX-1111-1111-111 XXXX-0000-0000-0000.
11: 16 位 PWMn, 溢出激活当[CH, CL] 计数 1111-1111-1111-1111 0000-0000-0000-0000.
Bit 5~3: PWMn 相位设置位 2~0.
000:使能的 PWM 通道在 0 度开始
001:使能的 PWM 通道在 90 度开始
010:使能的 PWM 通道在 180 度开始
011:使能的 PWM 通道在 270 度开始
100:使能的 PWM 通道在 120 度开始
101:使能的 PWM 通道在 240 度开始
110:使能的 PWM 通道在 60 度开始
111:使能的 PWM 通道在 300 度开始
在缺省的 PCA PWM 模式下,CL 溢出时所有 PWM 输出被清除(见图 16–9)。所有 PWM 同时输出低,并且通过
各自 CCAPnL 设置和 CL 计数器的匹配事件设定输出高。此模式 PWM 是一个同相 PWM 因为 PWM 输出总是在同
一时间起始。PCA 增强型 PWM 模式根据每个不同 PWM 分辨率通道提供相位延时功能。下表简要地说明如果比较
器结果是匹配的,计数器值清除 PWM 输出。PWM 输出设定条件通过{CCFnH, CCFnL}和 CH, CL}保持最初的匹配
事件。这样设置完相位延时参数之后,软件仅通过 PWM END 计数值(PWM 输出 SET)来执行不同的相位延时
PWM。
Phase 0˚/360˚
PWM8
00
90˚
180˚
270˚
120˚
240˚
60˚
300˚
40
80
C0
55
AA
2A
D5
PWM10 {00}00 {01}00 {10}00 {11}00 {01}55 {10}AA {00}AA {11}55
2AA
D55
PWM12 000
400
800
C00
555
AAA
PWM16
0000
4000
8000
C000
5555
AAAA
2AAA
D555
Bit 2: 在 CEXn 上反向 PWM 输出
0: 不反向 PWM 输出
1: 反向 PWM 输出
Bit 1: ECAPnH: 扩展最高位(MSB), 联合 CCAPnH 形成 9 位寄存用于 8 位的 PWM 模式。 当然对于 10/12/16 位
PWM, 它将成为第 11/13/17 位寄存器
Bit 0: ECAPnL: 扩展最高位(MSB),联合 CCAPnL 形成 9 位寄存用于 8 位的 PWM 模式。 当然对于 10/12/16 位
PWM, 它将成为第 11/13/17 位寄存器
164
MA82G5Cxx 数据手册
MEGAWIN
CMOD: PCA 计数器模式寄存器
SFR 页 = 0 only
SFR 地址
= 0xD9
7
6
5
CIDL
BME4
BME2
R/W
R/W
R/W
4
BME0
R/W
POR+复位值 = 0000-x000
3
2
CPS2
CPS1
R/W
R/W
1
CPS0
0
ECF
R/W
R/W
Bit 6: BME4, PCA 模块 4/5 缓冲模式使能。仅当 PCA 模块 4 和模块 5 都是捕获或者 PWM 模式时有效。
0: PCA 模块 4/5 禁止缓冲模式
1: PCA 模块 4/5 使能缓冲模式
Bit 5: BME2, PCA 模块 2/3 缓冲模式使能。仅当 PCA 模块 2 和模块 3 都是捕获或者 PWM 模式时有效。
0: PCA 模块 2/3 禁止缓冲模式
1: PCA 模块 2/3 使能缓冲模式
Bit 4: BME0, PCA 模块 0/1 缓冲模式使能。仅当 PCA 模块 0 和模块 1 都是捕获或者 PWM 模式时有效。
0: PCA 模块 0/1 禁止缓冲模式
1: PCA 模块 0/1 使能缓冲模式
MEGAWIN
MA82G5Cxx 数据手册
165
17. 可编程计数器阵列 1 (PCA1)
MA82G5C64 带有第二个 PCA(叫做 PCA1),它和第一个 PCA(PCA0)有相同的功能,除了下列不同之外:
(1) PCA1 没有死区控制 PWM.
(2) PCA1 没有中心对齐 PWM
(3) PCA1 无法实现打断功能
MA82G5C64 的 PCA1 和 PCA0 可以同时使用不同或相同的模式和通信速率。
图 17–1. PCA1 方框图
16 Bits Each
16 Bits
overflow
Module 0
C1EX0 Port Pin
Module 1
C1EX1 Port Pin
Module 2
C1EX2 Port Pin
Module 3
C1EX3 Port Pin
Module 4
C1EX4 Port Pin
Module 5
C1EX5 Port Pin
PCA1 Timer/Counter
reload
16 bits Reload
Resigter
166
MA82G5Cxx 数据手册
MEGAWIN
图 17–2. PCA1 定时器/计数器
SYSCLK/12
(0,0,0)
SYSCLK/2
(0,0,1)
(Timer0 Overflow) T0OF
(0,1,0)
(PCA1 External Input) ECI1
(0,1,1)
CKMIX16
(1,0,0)
SYSCLK
(1,0,1)
(S1BRC Overflow) S1TOF
(1,1,0)
MCKDO
(1,1,1)
To PCA0 Module 0~5
16-bits Up Counter
CH1
8 bits
CL1
8 bits
overflow
C1F
PCA1 Interrupt
Control
Enable
reload
CH1RL
CPS21~01 Indexed
IDLE
CL1RL
C1IDL BME41 BME21 BME01 CPS21 CPS11 CPS01
C1F
C1R
C1CF5 C1CF4 C1CF3 C1CF2 C1CF1 C1CF0
ECF1
C1MOD
C1CON
图 17–3. PCA 中断系统
C1F
C1R
C1CF5 C1CF4 C1CF3 C1CF2 C1CF1 C1CF0
CCON
C1MOD.ECF1
PCA1 Timer/Counter
Module 0
Module 1
EIE2.EPCA1
IE.EA
To Interrupt
Priority Processing
Module 2
Module 3
Module 4
Module 5
C1CAPMn.0 (n=0~5)
ECCF01~ECCF51
MEGAWIN
MA82G5Cxx 数据手册
167
17.1. PCA1 寄存器
PCA1 特殊功能寄存器的每个控制位的功能全兼容 PCA0。为获得特殊功能寄存器的功能定义,请参考 PCA0 寄存
器的描述。
C1CON: PCA1 计数器控制寄存器
SFR 页 = 1 only
SFR 地址
= 0xD8
7
6
5
C1F
C1R
C1CF5
R/W
R/W
R/W
C1MOD: PCA1 计数器模式寄存器
SFR 页 = 1 Only
SFR 地址
= 0xD9
7
6
5
C1IDL
BME41
BME21
R/W
R/W
R/W
CH1: PCA1 基准时间高位
SFR 页 = 1 only
SFR 地址
= 0xF9
7
6
5
CH1.7
CH1.6
CH1.5
R/W
R/W
CL1: PCA1 基准时间低位
SFR 页 = 1 only
SFR 地址
= 0xE9
7
6
CL1.7
CL1.6
R/W
R/W
R/W
R/W
4
BME01
R/W
4
CH1.4
R/W
5
CL1.5
4
CL1.4
R/W
R/W
R/W
CL1RL: PCA CL1 重载寄存器
SFR 页 = 1 only
SFR 地址
= 0xCE
7
6
5
CL1RL.7
CL1RL.6
CL1RL.5
R/W
R/W
R/W
CHRL: PCA CH1 重载寄存器
SFR 页 = 1 only
SFR 地址
= 0xCF
7
6
5
CH1RL.7
CH1RL.6
CH1RL.5
R/W
4
C1CF4
R/W
4
CH1RL.4
R/W
4
CL1RL.4
R/W
复位值 = 0000-0000
3
2
C1CF3
C1CF2
R/W
R/W
复位值 = 0000-0000
3
2
CPS21
CPS11
R/W
R/W
复位值 = 0000-0000
3
2
CH1.3
CH1.2
R/W
R/W
复位值 = 0000-0000
3
2
CL1.3
CL1.2
R/W
R/W
复位值 = 0000-0000
3
2
CH1RL.3 CH1RL.2
R/W
R/W
复位值 = 0000-0000
3
2
CL1RL.3
CL1RL.2
R/W
R/W
C1CAPMn: PCA1 模块比较/捕获寄存器, n=0~5
SFR 页 = 1 only
SFR 地址
= 0xDA~0xDF
复位值 = x000-0000
7
6
5
4
3
2
-ECOMn1
CAPPn1
CAPNn1
MATn1
TOGn1
W
168
R/W
R/W
R/W
R/W
MA82G5Cxx 数据手册
R/W
1
C1CF1
0
C1CF0
R/W
R/W
1
CPS01
0
ECF1
R/W
R/W
1
CH1.1
0
CH1.0
R/W
R/W
1
CL1.1
0
CL1.0
R/W
R/W
1
CH1RL.1
0
CH1RL.0
R/W
R/W
1
CL1RL.1
0
CL1RL.0
R/W
R/W
1
PWMn1
0
ECCFn1
R/W
R/W
MEGAWIN
C1CAPnH: PCA1 模块捕获寄存器高位, n=0~5
SFR 页 = 1 only
SFR 地址
= 0xFA~0xFF
复位值 = 0000-0000
7
6
5
4
3
2
.7
.6
.5
.4
.3
.2
R/W
R/W
R/W
R/W
R/W
R/W
C1CAPnL: PCA1 模块捕获寄存器低位, n=0~5
SFR 页 = 1 only
SFR 地址
= 0xEA~0xEF
复位值 = 0000-0000
7
6
5
4
3
2
.7
.6
.5
.4
.3
.2
R/W
R/W
R/W
R/W
R/W
R/W
C1PWMn: PCA1 PWM 模式辅助寄存器, n=0~5
SFR 页 = 1 Only
SFR 地址
= 0xF2~0xF7
复位值 = 0000-0000
7
6
5
4
3
2
PnRS11
PnRS01
PnPS21
PnPS11
PnPS01
PnINV1
R/W
R/W
AUXR4: 辅助寄存器 4
SFR 页 = 1 only
SFR 地址
= 0xA4
7
6
C1IC2S1
C1IC2S0
R/W
R/W
R/W
R/W
5
C1IC0S1
4
C1IC0S0
R/W
R/W
R/W
R/W
复位值 = 0000-0000
3
2
AC1OE
AC1FLT1
R/W
R/W
1
.1
0
.0
R/W
R/W
1
.1
0
.0
R/W
R/W
1
ECAPnH1
0
ECAPnL1
R/W
R/W
1
AC0OE
0
AC0FLT1
R/W
R/W
Bit 7~6: C1IC2S1~0, PCA1 输入通道 2 输入选择
C1IC2S1~0
C1EX2 输入
00
C1EX2 端口引脚
01
AC1OUT
10
-11
AC0OUT
Bit 5~4: C1IC0S1~0, PCA1 输入通道 0 输入选择
C1IC0S1~0
C1EX0 输入
00
C1EX0 端口引脚
01
AC0OUT
10
-11
ILRCO
MEGAWIN
MA82G5Cxx 数据手册
169
18. 串口 0 (UART0)
MA82G5C64 支持一个全双工的串行口,意思是可以同时发送和接收数据。它有一个接收缓冲,意味着在前一个接
收到的字节没有从寄存器读出前,就可以开始接收第二个字节。但是,如果第一个字节在第二个字节接收完成前仍
然没有被读出,则其中的一个字节将会丢失。串行口的接收和发送寄存器都通过特殊寄存器 S0BUF 来访问。写到
S0BUF 加载到传送寄存器,当从 S0BUF 读时是一个物理上独立分离的接收寄存器。
串行口可以工作在 5 种模式:模式 0 提供同步通讯,同时模式 1、2 和模式 3 提供异步通讯。异步通讯作为一个全
双工的通用异步收发器(UART),可以同时发送和接收,并使用不同的波特率。UART0 的模式 4 支持 SPI 主机工
作,速率设置跟模式 0 一样。
模式 0:8 位数据(低位先出)通过 RXD0 传送和接收。TXD0 总是作为输出移位时钟。波特率可通过 S0CFG 寄存器
的 URM0X3 位选择为系统时钟频率的 1/12 或 1/4。MA82G5C64 串行口模式 0 的时钟极性也可以软件选择。在串
行数据移入或移出之前它由 P3.1 的状态决定。图 18–4 和图 18–5 所示模式 0 的时钟极性波形。
模式 1: 10 位通过 TXD0 传送或通过 RXD0 接收,数据帧包括一个起始位(0),8 个数据位(低位优先),和一个停止
位(1)(如图 18–1 所示)。在接收时,停止位进入到专用寄存器(S0CON)的 RB80。波特率是可变的。
图 18–1. 模式 1 数据帧
Mode 1
8-bit data
Start
D1
D0
D2
D3
D4
D5
D6
D7
Stop
模式 2: 11 位通过 TXD0 传送或通过 RXD0 接收,数据帧包括一个起始位(0),8 个数据位(低位优先),一个可编程
的第九个数据位和一个停止位(1) (如图 18–2 所示)。在传送时,第 9 个数据位(TB80 在 S0CON 寄存器)可以分
配为 0 或者 1。例如,奇偶检验位(P,在 PSW 寄存器)可以移到 TB80 中。在接收时,第九个数据位到 S0CON 寄
存器中的 RB80,同时忽略停止位。波特率可以配置为 1/32 或 1/64 的系统时钟频率。
图 18–2. 模式 2, 3 数据帧
Mode 2, 3
9-bit data
Start
D0
D1
D2
D3
D4
D5
D6
D7
D8
Stop
Mode 3: 除了波特率是可变之外,模式 3 与模式 2 一样
在四种模式中,使用S0BUF作为一个目的寄存器,可以通过任何指令发起传输。在模式0,当 RI0=0且REN0=1 时
启动接收。在其它模式,在 REN0=1 时,收到起始位时启动接收。
除了标准操作外,UART0 还能具有侦察丢失停止位的帧错误和自动地址识别的功能。
170
MA82G5Cxx 数据手册
MEGAWIN
18.1. 串口 0 模式 0
串行数据通过RXD0读入和输出,TXD0输出移位时钟。接收和发送 8 位数据:8 个数据位(低位优先)。波特率可通
过S0CFG寄存器中的URM0X3选择为系统时钟的 1/12或1/4。图 18–3 显示了串口模式 0 的简化功能框图。
使用 S0BUF 作为一个目的寄存器可通过任何指令来启动传输。―写到 S0BUF ‖信号触发 UART0 引擎开始发送。
S0BUF 里面的数据在 TXD0(P3.1)脚的每一个上升沿移出到 RXD0(P3.0)脚。八个上升沿移位时钟过后,硬
件置 TI 为 1 标志发送完成。模式 0 发送时序见图 18–4 。
当 REN0=1 和 RI0=0 时接收启动。在下一个指令周期,RX0 控制单元写 11111110 到接收移位寄存器,且在下一
个时钟阶段激活接收。
接收使能移位时钟选择输出功能 TXD0(P3.1)引脚。当接收激活时,在移位时钟的下降沿采样 RXD0(P3.0)脚
并移到寄存中。八个下降沿移位时钟过后,硬件置 RI0 为 1 标志接收完成。模式 0 接收时序见图 18–5。
当 TXD0 被分配在 P3.1,在串行传送移位之前,时钟极性可以通过 P3.1 数据锁存的软件设置来选择。如果 P3.1
设置为逻辑高,时钟极性跟标准 8051 一样。如果 P3.1 数据锁存为逻辑低,时钟极性跟标准 8051 UART 模式 0 相
反。
图 18–3. 串口 0 模式 0
SYSCLK
80C51 Internal BUS
12
“0”
4
Write
S0BUF
“1”
URM0X3
TX Clock
RXD0 Alternated
for Input/output
Function
TXBUF
RX Clock
RXBUF
UART engine
REN0
TXD0 Alternated
for output
Function
Shift-clock
RXSTART
RI0
Serial Port 0 Interrupt
RI0
TI0
BTI
System Flag Interrupt
UTIE
Read
S0BUF
ESF
80C51 Internal BUS
MEGAWIN
MA82G5Cxx 数据手册
171
图 18–4. 模式 0 发送波形
Write to
S0BUF
TXD0
Software set/clear TXD0 assigned port pin to initial clock polarity, such as P3.1
TXD0
RXD0
D0
D1
D2
D3
D4
D5
D6
D7
TI0
RI0
图 18–5. 模式 0 接收波形
Write to
S0CON
Set REN0, Clear RI0
TXD0
Software set/clear TXD0 assigned port pin to initial clock polarity, such as P3.1
TXD0
RXD0
D0
D1
D2
D3
D4
D5
D6
D7
TI0
RI0
172
MA82G5Cxx 数据手册
MEGAWIN
18.2. 串口 0 模式 1
通过 TXD0 发送 10 位数据或通过 RXD0 接收 10 位数据:一个起始位(0),8 个数据位(低位先出),和一个停止位
(1)。在接收时,停止位进入 S0CON 的 RB80,波特率由定时器 1 或定时器 2 的溢出速率来决定。模式 1 数据帧时
序如图 18–1 所示并且模式 1 的简化功能框图如图 18–6 所示
使用 S0BUF 作为目的寄存器的任何指令来启动传输。写到 S0BUF 的信号请求 UART0 引擎开始发送,当收到一
个发送请求后,UART0 将在 TX 时钟的上升沿开始发送。S0BUF 中的数据从 TXD0 引脚串行输出,数据帧如
图 18–1 所示及数据宽度根据 TX 时钟不同而不同。当 8 位数据发送完后,硬件将置位 TI0 表示发送结束,并且它
的中断向量可以由 BTI 切换到系统标志中断,也可由 UTIE 屏蔽掉!
当串行口 0 控制器在 RCK 采样时钟下检测到在 RXD0 有 1 到 0 跳变的起始位时接收开始。在 RXD0 引脚上的数据
将被串行口 0 的位侦查器采样。当收到停止位后,硬件置位 RI0 表示接收结束并把停止位加载到 S0CON 寄存器的
RB80。
图 18–6. 串口模式 1, 2, 3
Mode 2
clock source
SYSCLK/2
Mode 1, 3
clock source
Timer 2
Overflow
Timer 1
Overflow
80C51 Internal BUS
Write
S0BUF
2
“0”
2
“1”
“0”
SM00
“1”
SM10
SMOD1
TXBUF
TXD0
RXBUF
RXD0
TB80
SMOD2
“1”
“0”
TCLK
1
16
TX Clock
UART engine
0
RI0
Serial Port 0
Interrupt
TI0
BTI
“1”
“0”
SM1
RCLK
System Flag
Interrupt
UTIE
1
RCK
16
RX Clock
STOP-Bit
ESF
0
0
RB80
1
9th-Bit
SM10
Read
S0BUF
SM00
80C51 Internal BUS
MEGAWIN
MA82G5Cxx 数据手册
173
18.3. 串口 0 模式 2 和模式 3
通过 TXD0 传送 11 位或通过 RXD0 接收 11 位:一个起始位(0),8 个数据位(低位在先),一个可编程的第 9 个数据
位和一个停止位(1)。在传送时,数据的第 9 位(TB80)可分配为 0 或 1。在接收时,数据的第 9 位将进入到 S0CON
的 RB80。在模式 2 波特率可编程为 1/16,1/32 或 1/64 的系统时钟频率。模式 3 可以产生可以从定时器 1 或定时
器 2 产生可变的波特率。
模式 2 和 3 数据帧如 图 18–2 所示,模式 2 和模式 3 的功能框图如图 18–5 所示。接收部分和模式 1 相同。与模式
1 传送部分不同的仅仅是传送移位寄存器的第 9 位。
写到 S0BUF 的信号请求 UART0 引擎加载 TB8 到发送移位寄存器的第 9 位并开始发送,当收到一个发送请求后,
UART0 将在 TX 时钟的上升沿开始发送。S0BUF 中的数据从 TXD0 引脚串行输出,数据帧如 图 18–2 所示及数据
宽度根据 TX 时钟不同而不同。当 9 位数据发送完后,硬件将置位 TI0 表示发送结束,并且它的中断向量可以由 BTI
切换到系统标志中断,也可由 UTIE 屏蔽掉!。
当串行口 0 控制器在 RCK 采样时钟下检测到在 RXD0 有 1 到 0 跳变的起始位时接收开始。在 RXD0 引脚上的数据
将被串行口 0 的位侦查器采样。当收数据接收完后,硬件置位 RI0 表示接收结束并把第 9 位加载到 S0CON 寄存器
的 RB80。
在四种模式中,使用 S0BUF 作为一个目的寄存器,可以通过任何指令发起传输。在模式 0,当 RI0=0 且 REN0=1
时启动接收。在其它模式,在 REN0=1 时,收到有 1 到 0 跳变的起始位时启动接收。
18.4. 帧错误检测
开启帧错误检测功能后,UART0会在通讯中检测是否丢失停止位,如果丢失一个停止位,就设置S0CON寄存器的
FE标志位。FE标志位和SM00标志位共享SCON0.7,SMOD0标志位(PCON.6)决定S0CON.7究竟代表哪个标志,
如 果 SMOD0 位 ( PCON0.6 ) 置 位 则 S0CON.7 就 是 FE 标 志 , SMOD0 位 清 零 则 S0CON.7 就 是 SM00 标 志 。 当
S0CON.7代表FE时,只能软件清零。参考 图 18–7。
图 18–7. UART0 帧错误检测
9-bit data
Start
D0
D1
D2
D3
D4
D5
D6
D7
D8
Stop
SET FE bit if STOP=0
SM00 to UART mode control
PCON0.SMOD0
S0CON
174
SM00/
FE
SM10
SM20
REN0
TB80
RB80
MA82G5Cxx 数据手册
TI0
RI0
MEGAWIN
18.5. 多处理器通讯
模式 2 和 3 在用作多处理器通讯时有特殊的规定如图 18–8 所示。在这两种模式,接收 9 个数据位。第 9 个数据位
存入 RB80,接着进来一个停止位。端口可以编程为:在 RB80=1 时,当收到停止位后,串口中断将激活。这种特
征通过设置 SM20 位(在 S0CON 寄存器中)来使能。这种方式用于多处理器系统如下:
当主处理器想传送一个数据块到多个从机中的某一个时,首先传送想要传送的目标地址标识符的地址。地址字节与
数据字节的区别在于,在地址字节中第 9 位为 1,数据字节中为 0。当 SM20=1 时,收到一个数据字节将不会产生
中断。然而一个地址字节将引发所有从机中断。因而所有的从机可以检测收到的字节是否是自己的地址。从机地址
将清除 SM20 位并准备好接收即将进来的所有数据。从机地址不匹配的将保持 SM20 置位,并继续他们的工作,忽
略进来的数据字节。
SM20 在模式 0 和模式 1 没有影响,但是可以用来检测停止位的有效性。在接收模式 1 中,如果 SM20=1,除非收
到一个有效的停止位否则接收中断不会被激活。
图 18–8. UART0 多处理器通讯
VCC
Pull-up
R
Slave 3
Slave 2
Slave 1
Master
RX
RX
RX
RX
TX
TX
TX
TX
18.6. 自动地址识别
自动地址识别通过硬件比较可以让 UART0 识别串行码流中的地址部分,该功能免去了使用软件识别时需要大量代
码的麻烦。该功能通过设定 S0CON 的 SM20 位来开启。
在 9 位数据 UART0 模式下,即模式 2 和模式 3,收到特定地址或广播地址时自动置位接收中断(RI0)标志,9 位模
式的第 9 位信息为 1 表明接收的是一个地址而不是数据。自动地址识别功能请参考图 18–9。在 8 位模式,即模式
1 下,如果 SM20 置位并且在 8 位地址与给定地址或广播地址核对一致后收到有效停止位则 RI0 置位。 模式 0 是
移位寄存器模式,SM20 被忽略。
使用自动地址识别功能可以让一个主机选择性的同一个或多个从机进行通讯,所有从机可以使用广播地址接收信
息。增加了 SADDR 从机地址寄存器和 SADEN 地址掩码寄存器。
SADEN 用来定义 SADDR 中的那些位是―无关紧要‖的,SADEN 掩码和 SADDR 寄存器进行逻辑与来定义供主机寻
址从机的―给定‖ 地址,该地址让多个从机进行排他性的识别。
下面的实例帮助理解这个方案的通用性:
从机 0
SADDR = 1100 0000
SADEN = 1111 1101
Given = 1100 00X0
MEGAWIN
从机 1
SADDR = 1100 0000
SADEN = 1111 1110
Given = 1100 000X
MA82G5Cxx 数据手册
175
上面的例子中 SADDR 是相同的值,而使用 SADEN 数据来区分两个从机。从机 0 要求第 0 位必须为 0,并忽略第
1 位的值;从机 1 要求第 1 位必须为 0,并忽略第 0 位的值。从机 0 的唯一地址是 1100 0010,而从机 1 的唯一地
址是 1100 0001,地址 1100 0000 是可以同时寻找到从机 0 和从机 1 的。
下面一个更为复杂的系统可以寻址到从机 1 和从机 2,而不会寻址到从机 0:
从机 0
SADDR = 1100 0000
SADEN = 1111 1001
Given = 1100 0XX0
从机 1
SADDR = 1110 0000
SADEN = 1111 1010
Given = 1110 0X0X
从机 2
SADDR = 1110 0000
SADEN = 1111 1100
Given = 1110 00XX
上面的例子中,3 个从机的低 3 位地址不一样,从机 0 要求第 0 位必须为 0,1110 0110 可以唯一寻址从机 0;从
机 1 要求第 1 位必须为 0,1110 0101 可以唯一寻址从机 1;从机 2 要求第 2 位必须为 0,它的唯一地址是 1110
0011。为了寻址到从机 0 和从机 1 而不会寻址到从机 2,可以使用地址 1110 0100,因为这个地址第 2 位是 1。
每个从机的广播地址的创建都是通过SADDR和SADEN的逻辑或,0按不需关心处理。大部分情况下,使用FF作为
广播地址。
复位后,SADDR(SFR 地址 0xA9)和 SADEN(SFR 地址 0xB9)值均为 0,这样可以接收所有地址的信息,也
就有效的禁用了自动地址识别模式,从而使该处理器运行于标准 80C51 的 UART 下。
图 18–9. 自动地址识别
9-bit data
Start
D0
D1
S0CON
D2
SM00/
FE
D3
SM10
Receive Address D0~D7
Comparator
D4
SM20
REN0
D5
TB80
D6
D7
RB80
TI0
D8
Stop
RI0
addr_match
Programmed Address
注意:
(1) 收到匹配地址后(addr_match=1),清 SM20 以接收数据字节
(2) 收完全部数据字节后,置 SM20 为 1 以等待下一个地址
176
MA82G5Cxx 数据手册
MEGAWIN
18.7. 波特率设置
位T2X12 (T2MOD.4), T1X12 (AUXR2.3), URM0X3 (S0CFG.5)和SMOD2 (S0CFG.6)提供一个新的波特率选项设
置,如下所列:
18.7.1. 模式 0 波特率
FSYSCLK
Mode 0 Baud Rate =
; n=12, if URM0X3=0
; n=4, if URM0X3=1
n
注意:
如果 URM0X3=0, 波特率公式跟标准 8051 一样
18.7.2. 模式 2 波特率
2SMOD1 X 2(SMOD2 X 2)
Mode 2 Baud Rate =
64
X FSYSCLK
注意:
如果 SMOD2=0,波特率公式跟标准 8051 一样。如果 SMOD2=1,波特率设置有增强功能。表 18–1 定义了模
式 2 波特率发生器由 SMOD2 因数决定的波特率设置。
表 18–1. SMOD2 在模式 2 中的应用标准
SMOD2 SMOD1 波特率
0
0
1
1
0
1
0
1
备注
缺省波特率
双倍波特率
双倍波特率 X2
双倍波特率 X4
标准功能
标准功能
增强型功能
增强型功能
推荐的最大接收误差
(%)
3%
3%
2%
1%
18.7.3. Mode 1 & 3 波特率
16.7.3.1 使用定时器 1 作为波特率发生器
2SMOD1 X 2(SMOD2 X 2)
Mode 1, 3 Baud Rate =
or =
32
2SMOD1 X 2(SMOD2 X 2)
32
X
X
FSYSCLK
12 x (256 – TH1)
FSYSCLK
1 x (256 – TH1)
; T1X12=0
; T1X12=1
注意:
如果 SMOD2=0,T1X12=0,波特率公式跟标准 8051 一样。如果 SMOD2=1,波特率设置有增强功能。Table
18–2 定义了定时器 1 波特率发生器由 SMOD2 因数决定的波特率设置。
Table 18–2. SMOD2 在模式 1&3 使用定时器 1 时的应用标准
SMOD2 SMOD1 波特率
备注
0
0
1
1
MEGAWIN
0
1
0
1
缺省波特率
双倍波特率
双倍波特率 X2
双倍波特率 X4
标准功能
标准功能
增强型功能
增强型功能
MA82G5Cxx 数据手册
推荐的最大接收误差
(%)
3%
3%
2%
1%
177
表 18–3 ~ 表 18–14 列出了 8 位自动加载模式的定时器 1 中各种常用的波特率和怎样获得.
表 18–3. 定时器 1 产生常用的波特率@ FSYSCLK=11.0592MHz
TH1, 重载值
波特率
1200
2400
4800
9600
14400
19200
28800
38400
57600
115200
230400
T1X12=0 & SMOD2=0
T1X12=1 & SMOD2=0
SMOD1=0
SMOD1=1
误差
SMOD1=0
SMOD1=1
误差
232
244
250
253
254
-255
-----
208
232
244
250
252
253
254
-255
---
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
-0.0%
---
-112
184
220
232
238
244
247
250
253
--
--112
184
208
220
232
238
244
250
253
-0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
表 18–4. 定时器 1 产生高波特率@ FSYSCLK =11.0592MHz
TH1, 重载值
波特率
230.4K
460.8K
691.2K
921.6K
1.3824M
2.7648M
T1X12=0 & SMOD2=1
T1X12=1 & SMOD2=1
SMOD1=0
SMOD1=1
误差
SMOD=0
SMOD=1
误差
-------
255
------
0.0%
------
250
253
254
-255
--
244
250
252
253
254
255
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
表 18–5. 定时器 1 产生常用的波特率@ FSYSCLK=22.1184MHz
TH1, 重载值
波特率
1200
2400
4800
9600
14400
19200
28800
38400
57600
115200
230400
460800
178
T1X12=0 & SMOD2=0
T1X12=1 & SMOD2=0
SMOD1=0
SMOD1=1
误差
SMOD1=0
SMOD1=1
误差
208
232
244
250
252
253
254
-255
----
160
208
232
244
248
250
252
253
254
255
---
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
---
--112
184
208
220
232
238
244
250
253
--
---112
160
184
208
220
232
244
250
253
-0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
MA82G5Cxx 数据手册
MEGAWIN
表 18–6. 定时器 1 产生高波特率@ FSYSCLK=22.1184MHz
TH1, 重载值
波特率
460.8K
691.2K
921.6K
1.3824M
1.8432M
2.7648M
5.5296M
T1X12=0 & SMOD2=1
T1X12=1 & SMOD2=1
SMOD1=0
SMOD1=1
误差
SMOD=0
SMOD=1
误差
-----
255
----
0.0%
----
---
---
---
250
252
253
254
-255
--
244
248
250
252
253
254
255
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
表 18–7. 定时器 1 产生常用的波特率@ FSYSCLK=12.0MHz
TH1, 重载值
波特率
1200
2400
4800
9600
14400
19200
28800
38400
57600
115200
T1X12=0 & SMOD2=0
T1X12=1 & SMOD2=0
SMOD=0
SMOD=1
误差
SMOD=0
SMOD=1
误差
230
243
---------
204
230
243
--------
0.16%
0.16%
0.16%
--------
-100
178
217
230
-243
246
---
--100
178
204
217
230
236
243
--
-0.16%
0.16%
0.16%
0.16%
0.16%
0.16%
2.34%
0.16%
--
表 18–8. 定时器 1 产生高波特率@ FSYSCLK=12.0MHz
TH1, 重载值
波特率
115.2K
230.4K
460.8K
T1X12=0 & SMOD2=1
T1X12=1 & SMOD2=1
SMOD1=0
SMOD1=1
误差
SMOD=0
SMOD=1
误差
----
----
----
243
---
230
243
--
0.16%
0.16%
--
表 18–9. 定时器 1 产生常用的波特率@ FSYSCLK=24.0MHz
TH1, 重载值
波特率
1200
2400
4800
9600
14400
19200
MEGAWIN
T1X12=0 & SMOD2=0
T1X12=1 & SMOD2=0
SMOD=0
SMOD=1
误差
SMOD=0
SMOD=1
误差
204
230
243
----
152
204
230
243
---
0.16%
0.16%
0.16%
0.16%
---
--100
178
204
217
---100
152
178
--0.16%
0.16%
0.16%
0.16%
MA82G5Cxx 数据手册
179
28800
38400
57600
115200
-----
-----
-----
230
-243
--
204
217
230
243
0.16%
0.16%
0.16%
0.16%
表 18–10. 定时器 1 产生高波特率@ FSYSCLK=24.0MHz
TH1, 重载值
波特率
230.4K
460.8K
691.2K
921.6K
T1X12=0 & SMOD2=1
T1X12=1 & SMOD2=1
SMOD1=0
SMOD1=1
误差
SMOD=0
SMOD=1
误差
-----
-----
-----
243
----
230
243
---
0.16%
0.16%
---
表 18–11. 定时器 1 产生常用的波特率@ FSYSCLK=29.4912MHz
表 18–12. 定时器 1 产生常用的波特率@ FSYSCLK=44.2368MHz
表 18–13. 定时器 1 产生常用的波特率@ FSYSCLK=32MHz
表 18–14. 定时器 1 产生常用的波特率@ FSYSCLK=48.0MHz
180
MA82G5Cxx 数据手册
MEGAWIN
16.7.3.2 使用定时器 2 作为波特率发生器
当定时器 2 作波特率发生器时(T2CON 寄存器中的 TCLK 或 RCLK 任一位为‗1‘),波特率如下:
Mode 1, 3 Baud Rate =
or =
2SMOD2 X (SMOD1 + 1) x FSYSCLK
32 x (65536 – (RCAP2H, RCAP2L))
2SMOD2 X (SMOD1 + 1) x FSYSCLK
16 x (65536 – (RCAP2H, RCAP2L))
; T2X12=0
; T2X12=1
注意:
如果 SMOD2=0,波特率公式跟标准 8051 一样。如果 SMOD2=1,波特率设置有增强功能。表 18–15 定义了
定时器 2 波特率发生器由 SMOD2 因数决定的波特率设置。
表 18–15. SMOD2 在定时器 2 模式 1 & 3 中应用条件
SMOD2
SMOD1
0
1
1
X
0
1
波特率
推荐的最大接收误差
(%)
3%
3%
2%
备注
缺省波特率
双倍波特率
双倍波特率 X2
标准功能
增强型功能
增强型功能
表 18–16 ~ 表 18–27 列出定时器 2 中波特率产生器模式中的各种通用的波特率和怎样获得
表 18–16. 定时器 2 产生普通的波特率@ FSYSCLK=11.0592MHz
[RCAP2H, RCAP2L], 重载值
波特率
1200
2400
4800
9600
14400
19200
28800
38400
57600
115200
230400
T2X12=0 & SMOD2=0
T2X12=1 & SMOD2=0
SMOD1=0
SMOD1=1
误差
SMOD1=0
SMOD1=1
误差
65248
65392
65464
65500
65512
65518
65524
65527
65530
65533
--
65248
65392
65464
65500
65512
65518
65524
65527
65530
65533
--
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
--
64960
65248
65392
65464
65488
65500
65512
65518
65524
65530
65533
64960
65248
65392
65464
65488
65500
65512
65518
65524
65530
65533
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
表 18–17. 定时器 2 产生高波特率@ FSYSCLK=11.0592MHz
[RCAP2H, RCAP2L], 重载值
波特率
230.4K
460.8K
691.2K
921.6K
1.3824M
2.7648M
MEGAWIN
T2X12=0 & SMOD2=1
T2X12=1 & SMOD2=1
SMOD1=0
SMOD1=1
误差
SMOD=0
SMOD=1
误差
65533
-65535
----
65530
65533
65534
-65535
--
0.0%
0.0%
0.0%
-0.0%
--
65530
65533
65534
-65535
--
65524
65530
65532
65533
65534
65535
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
MA82G5Cxx 数据手册
181
表 18–18. 定时器 2 产生普通的波特率@ FSYSCLK=22.1184MHz
[RCAP2H, RCAP2L], 重载值
波特率
1200
2400
4800
9600
14400
19200
28800
38400
57600
115200
230400
460800
T2X12=0 & SMOD2=0
T2X12=1 & SMOD2=0
SMOD1=0
SMOD1=1
误差
SMOD1=0
SMOD1=1
误差
64960
65248
65392
65464
65488
65500
65512
65518
65524
65530
65533
--
64960
65248
65392
65464
65488
65500
65512
65518
65524
65530
65533
--
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
--
64384
64960
65248
65392
65440
65464
65488
65500
65512
65524
65530
65533
64384
64960
65248
65392
65440
65464
65488
65500
65512
65524
65530
65533
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
表 18–19. 定时器 2 产生高波特率@ FSYSCLK=22.1184MHz
[RCAP2H, RCAP2L], 重载值
波特率
460.8K
691.2K
921.6K
1.3824M
1.8432M
2.7648M
5.5296M
T2X12=0 & SMOD2=1
T2X12=1 & SMOD2=1
SMOD1=0
SMOD1=1
误差
SMOD=0
SMOD=1
误差
65533
65534
-65535
----
65530
65532
65533
65534
-65535
--
0.0%
0.0%
0.0%
0.0%
-0.0%
--
65530
65532
65533
65534
-65535
--
65524
65528
65530
65532
65533
65534
65535
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
表 18–20. 定时器 2 产生普通的波特率@ FSYSCLK=12.0MHz
[RCAP2H, RCAP2L], 重载值
波特率
1200
2400
4800
9600
14400
19200
28800
38400
57600
115200
T2X12=0 & SMOD2=0
T2X12=1 & SMOD2=0
SMOD=0
SMOD=1
误差
SMOD=0
SMOD=1
误差
65224
65380
65458
65497
65510
65516
65523
----
65224
65380
65458
65497
65510
65516
65523
----
0.16%
0.16%
0.16%
0.16%
0.16%
2.34%
0.16%
----
64912
65224
65380
65458
65484
65497
65510
65516
65523
--
64912
65224
65380
65458
65484
65497
65510
65516
65523
--
0.16%
0.16%
0.16%
0.16%
0.16%
0.16%
0.16%
2.34%
0.16%
--
表 18–21. 定时器 2 产生高波特率@ FSYSCLK=12.0MHz
182
MA82G5Cxx 数据手册
MEGAWIN
[RCAP2H, RCAP2L], 重载值
波特率
115.2K
230.4K
460.8K
T2X12=0 & SMOD2=1
T2X12=1 & SMOD2=1
SMOD1=0
SMOD1=1
误差
SMOD=0
SMOD=1
误差
----
65523
---
0.16%
---
65523
---
65510
65523
--
0.16%
0.16%
--
Table 18–22. 定时器 2 产生普通的波特率@ FSYSCLK=24.0MHz
[RCAP2H, RCAP2L], 重载值
波特率
1200
2400
4800
9600
14400
19200
28800
38400
57600
115200
T2X12=0 & SMOD2=0
T2X12=1 & SMOD2=0
SMOD=0
SMOD=1
误差
SMOD=0
SMOD=1
误差
64912
65224
65380
65458
65484
65497
65510
65516
65523
--
64912
65224
65380
65458
65484
65497
65510
65516
65523
--
0.16%
0.16%
0.16%
0.16%
0.16%
0.16%
0.16%
2.34%
0.16%
--
64288
64912
65224
65380
65432
65458
65484
65497
65510
65523
64288
64912
65224
65380
65432
65458
65484
65497
65510
65523
0.16%
0.16%
0.16%
0.16%
0.16%
0.16%
0.16%
0.16%
0.16%
0.16%
表 18–23. 定时器 2 产生高波特率@ FSYSCLK=24.0MHz
[RCAP2H, RCAP2L], 重载值
波特率
230.4K
460.8K
691.2K
921.6K
T2X12=0 & SMOD2=1
T2X12=1 & SMOD2=1
SMOD1=0
SMOD1=1
误差
SMOD=0
SMOD=1
误差
-----
65523
----
0.16%
----
65523
----
65510
65523
---
0.16%
0.16%
---
表 18–24. 定时器 2 产生普通的波特率@ FSYSCLK=29.4912MHz
表 18–25. 定时器 2 产生普通的波特率@ FSYSCLK=44.2368MHz
表 18–26. 定时器 2 产生普通的波特率@ FSYSCLK=32MHz
表 18–27. 定时器 2 产生普通的波特率@ FSYSCLK=48.0MHz
16.7.3.3 使用串行口 1 波特率定时器作为波特率发生器
MA82G5C64 第二串口 UART1 (S1)有一个独立的波特率发生器。串行口 0 可以置位 URTS (S0CFG.7)来选择
S1BRT 作为模式 1 和 3 的定时器源。详细的描述见―19.6 S1 波特率发生器用于 S0‖
MEGAWIN
MA82G5Cxx 数据手册
183
18.8. 串口 0 模式 4 (SPI 主机)
MA82G5C64 串口嵌入了一个额外的模式 4 支持 SPI 主机引擎。模式 4 由 SM3, SM0 和 SM1 选择。表 18–28 展示
了 MA82G5C64 的串行口模式定义。
表 18–28. 串口 0 模式选择
SM30
SM00
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
SM10
0
1
0
1
0
1
0
1
模式
0
1
2
3
4
5
6
7
描述
移位寄存器
8-bit UART
9-bit UART
9-bit UART
SPI 主机
保留
保留
保留
波特率
SYSCLK/12 or SYSCLK/4
可变
SYSCLK/64, /32
可变
SYSCLK/12 or SYSCLK/4
保留
保留
保留
URM0X3 也可控制 SPI 的传输速度。如果 URM0X3 = 0,则 SPI 的时钟频率是 SYSCLK/12。如果 URM0X3 = 1, 则
SPI 的时钟频率是 SYSCLK/4。
MA82G5C64 的 SPI 主机使用 TXD 作为 SPICLK, RXD 作为 MOSI,以及 S0MI 作为 MISO。而 nSS 由 MCU 软件
选择在其它端口引脚。图 18–10 展示了 SPI 连接。他支持多从机通讯架构见图 18–11.
图 18–10. 串口 0 模式 4,单主机和单从机架构(n = 0)
MCU Serial Port n
Mode 4
(Master)
TXDn
SPICLK
RXDn
MOSI
SnMI
MISO
Port Pin
SPI
Slave
nSS
图 18–11. 串口 0 模式 4, 单主机和多从机架构(n = 0)
MCU Serial Port n
TXDn
SPICLK
RXDn
MOSI
SnMI
MISO
Port Pin 1
Slave #1
nSS
Mode 4
(Master)
SPICLK
MOSI
MISO
Port Pin 2
184
MA82G5Cxx 数据手册
Slave #2
nSS
MEGAWIN
SPI 主机能满足笙泉 MA82/84 系列 MCU(由 CPOL, CPHA 和 DORD 选择)的全功能 SPI 模块的传输。在 CPOL
和 CPHA 条件下, MA82G5C64 很容易初始化 SPI 的时钟(TXD0, P3.1/P4.5)极性去适合他们使用 。表 18–29 展示
了串行口模式 4 的 4 个 SPI 工作模式。
表 18–29. 串行口 0 模式 4 的 SPI 模式配置
SPI Mode CPOL CPHA 当 TXD0 在 P3.1 脚 MA82G5B32 的结构
0
0
0
清除 P3.1 为―0‖
1
0
1
清除 P3.1 为―0‖
2
1
0
设置 P3.1 为―1‖
3
1
1
设置 P3.1 为―1‖
SPI 系列传输的位序控制(DORD),MA82G5C64 提供了一个软件编程可以相反的位序控制(SFR, BOREV)。 在
MCU 写一个数据格式(MSB)到 BOREV ,MCU 通过读 BOREV 得到一个数据格式(LSB)回来。SPI 主机引擎
在串行口模式 4 与串行口模式 0 一样都是(LSB)传输。为了支持 SPI(MSB)移位传输, MCU 必须使用
(BOREV)写/读取操作来翻转 SPI 输入/输出传送的数据位序。图 18–12 展示了 BOREV 结构。
图 18–12. SFR BOREV 读/写 结构
MCU Write
BOREV
D7
D6
D5
D4
D3
D2
D1
D0
D0
D1
D2
D3
D4
D5
D6
D7
MCU Read
通过指令使用 SBUF 作为目标寄存器初始化传送。―写数据到 SBUF‖触发 UART 引擎开始传送。SBUF 的数据被移
位到作为 MOSI 串口数据的 RXD 引脚。SPI 移位时钟由作为 SPICLK 输出的 TXD 引脚输出。在 8 个移位时钟的
上升沿之后,TI 被硬件声明传送结束。同时 S0MI 引脚的内容被采样并且移位到移位寄存器。然后―读取 SBUF‖能
获取 SPI 的移入数据。 图 18–13 展示了模式 4 传送波形。RI 在模式 4 不被声明。
图 18–13. 串行口 0 模式 4 传送波形(n = 0)
Write to SnBUF
TXDn
(SPICLK)
Software set/clear TXDn assigned port pin to initial clock polarity
RXDn
(MOSI)
D0
D1
D2
D3
D4
D5
D6
D7
SnMI
(MISO)
D0
D1
D2
D3
D4
D5
D6
D7
TIn
RIn
MEGAWIN
MA82G5Cxx 数据手册
185
18.9. 串口 0 寄存器
串行口的四种操作模式除波特率的设定之外都与标准的 8051 相同。此三个寄存器 PCON, AUXR2 和 S0CFG 是与
波特率的设定有关
S0CON: 串口 0 控制寄存器
SFR 页 = 0 only
SFR 地址
= 0x98
7
6
5
SM00/FE
SM10
SM20
R/W
R/W
R/W
4
REN0
复位值 = 0000-0000
3
2
TB80
RB80
R/W
R/W
R/W
1
TI0
0
RI0
R/W
R/W
Bit 7: FE, 帧错误位。SMOD0 必须置位才能访问 FE 位
0: FE 位不会被有效的帧清零,它应当被软件清零
1: 当检测到一个无效的停止位时,该位被接收器置位
Bit 7: 串口 0 模式位 0, (SMOD0 必须 = 0 才能访问位 SM0)
Bit 6: 串口 0 模式位 1
SM30
0
0
0
0
1
1
1
1
SM00
0
0
1
1
0
0
1
1
SM10
0
1
0
1
0
1
0
1
模式
0
1
2
3
4
5
6
7
描述
移位寄存器
8-bit UART
9-bit UART
9-bit UART
SPI 主机
保留
保留
保留
波特率
SYSCLK/12 or SYSCLK/4
可变的
SYSCLK/64, /32, /16 or /8
可变的
SYSCLK/12 or SYSCLK/4
保留
保留
保留
Bit 5: 串口 0 模式位 2
0: 禁止 SM20 功能
1: 在模式 2 和 3 时使能地址自动识别,如果 SM20=1 那么 RI0 将不能设置,除非接收到的第 9 位数据(RB80)为
1,指示是一个地址,并且接收到的字节是本机地址或者是一个广播地址;在模式 1,如果 SM20=1 那么 RI0 将
不能被激活除非收到一个有效的停止位,并且接收到的字节是本机地址或者是一个广播地址;在模式 0,SM20
可以为 0。
Bit 4: REN0, 使能串行接收
0: 软件清零将禁止接收
1: 软件置位使能接收
Bit 3: TB80, 在模式 2 和 3 时第 9 位数据被传送,根据需要通过软件置位或清零
Bit 2: RB80, 在模式 2 和 3 时收到的第 9 位数据。在模式 1,如果 SM20=0,RB80 是收到数据的停止位。在模式
0,RB80 没有使用。
Bit 1: TI0. 发送中断标志
0: 必须由软件清零
1: 在模式 0 时,在第 8 位个数据位时序后由硬件置位。其它模式中,在发送停止位之初由硬件置位
Bit 0: RI0. 接收中断标志
0: 必须由软件清零
1: 在模式 0 时,在第 8 位个数据位时序后由硬件置位。其它模式中(除留意 SM20 外),在接收停止位的中间时刻由
硬件置位
186
MA82G5Cxx 数据手册
MEGAWIN
S0BUF: 串口 0 缓冲寄存器
SFR 页 = 0 only
SFR 地址
= 0x99
7
6
5
S0BUF.7
S0BUF.6
S0BUF.5
R/W
R/W
4
S0BUF.4
R/W
R/W
复位值 = XXXX-XXXX
3
2
S0BUF.3 S0BUF.2
R/W
1
S0BUF.1
0
S0BUF.0
R/W
R/W
1
SADDR.1
0
SADDR.0
R/W
R/W
1
SADEN.1
0
SADEN.0
R/W
R/W
R/W
Bit 7~0: 在发送和接收时作缓冲寄存器
SADDR: 从机地址寄存器
SFR 页 = 0~F
SFR 地址
= 0xA9
7
6
5
SADDR.7 SADDR.6 SADDR.5
R/W
R/W
R/W
SADEN: 从机地址屏蔽寄存器
SFR 页 = 0~F
SFR 地址
= 0xB9
7
6
5
SADEN.7 SADEN.6 SADEN.5
R/W
R/W
4
SADDR.4
R/W
4
SADEN.4
R/W
R/W
复位值 = 0000-0000
3
2
SADDR.3 SADDR.2
R/W
R/W
复位值 = 0000-0000
3
2
SADEN.3 SADEN.2
R/W
R/W
当地址自动识别功能启用后,可用 SADDR 和 SADEN 组合来预置地址,事实上,SADEN 是 SADDR 的―屏蔽‖寄
存器,如下图所示
SADDR = 1100 0000
SADEN = 1111 1101
Given = 1100 00x0
得出的这个从机地址将被选中
位 1 作―不关心‖处理
每个从对象的广播地址为 SADDR 和 SADEN 进行逻辑―或‖的结果,结果中为―0‖的位将被忽略。在系统复位后,
SADDR 和 SADEN 都被初始化为 0,从而忽略―Given‖地址的全部地址位和―广播‖地址的全部地址位而导致自动地
址识别功能无效。
PCON0: 电源控制寄存器 0
SFR 页 = 0~F
SFR 地址
= 0x87
7
6
SMOD1
SMOD0
R/W
R/W
5
GF
4
POF
R/W
R/W
POR = 0001-0000, 复位值 = 0000-0000
3
2
1
GF1
GF0
PD
R/W
R/W
R/W
0
IDL
R/W
Bit 7: SMOD1, 双倍波特率控制位
0: 禁止 UART 双倍波特率
1: 使能 UART 双倍波特率(模式 1, 2,或 3)
Bit 6: SMOD0, 帧错误选择
0: S0CON.7 作 SM0 功能
1: S0CON.7 作 FE 功能。注:当帧错误后不管 SMOD0 什么状态 FE 都将置位
MEGAWIN
MA82G5Cxx 数据手册
187
S0CFG: 串口 0 配置寄存器
SFR 页 = 0 only
SFR 地址
= 0x9C
7
6
5
URTS
SMOD2
URM0X3
R/W
R/W
R/W
4
SM30
复位值 = 0000-100x
3
2
S0DOR
BTI
R/W
R/W
R/W
1
UTIE
0
--
R/W
W
Bit 7: URTS, UART0 定时器选择
0: 模式 1 和模式 3 时选择定时器 1 或定时器 2 作波特率发生器
1: UART0 的模式 1 或模式 3 中当定时器 1 被选择作波特率发生器时,定时器 1 溢出信号被 UART1 波特率定时器
溢出信号取代。(参考章节― 18.7.3 Mode 1 & 3‖)
Bit 6: SMOD2, UART0 额外双倍波特率选择
0: 禁止 UART0 额外双倍波特率
1: 使能 UART0 额外双倍波特率
Bit 5: URM0X3, 串口模式 0 和模式 4 波特率选择
0: 清零选择 SYSCLK/12 作 UART 模式 0 和模式 4 波特率
1: 置位选择 SYSCLK/4 作 UART 模式 0 和模式 4 波特率
Bit 4: SM30, 串口模式控制位 3
0: 禁止串口模式 4
1: 使能 SM30 去控制串口模式 4,SPI 主机。更多 S0 模式选择信息参考 S0CON 描述
Bit 3: S0DOR,串口 0 模式 4 数据序位控制
0: 数据字节高位在先(MSB)传送
1: 数据字节低位在先(LSB)传送。默认是 S0DOR 为―1‖
Bit 2: BTI,在串口 0 中断阻止 TI0
0: 保留 TI0 作为一个串口 0 中断源
1: 阻止 TI0 作为一个串口 0 中断源
Bit 1: UTIE,在系统标志中断里使能 S0 TI0
0: 禁止在系统标志中断里中断向量共享给 TI0
1: 设置 TI0 标志将与系统标志中断共享中断向量
Bit 0: 保留。当写 S0CF 时,软件必须在这位上写―0‖
AUXR2: 辅助寄存器 2
SFR 页 = 0~F
SFR 地址
= 0xA3
7
6
ALEINV
ADDRO
R/W
R/W
5
--
4
--
W
W
复位值 = 0000-0000
3
2
T1X12
T0X12
R/W
R/W
1
T1CKOE
0
T0CKOE
R/W
R/W
Bit 3: T1X12, 当 C/T=0 时,定时器 1 时钟源选择
0: 清零选择 SYSCLK/12
1: 选择 SYSCLK 作时钟源。若在模式 1 和模式 3 中 UART0 选择定时器 1 作波特率发生器则速率是标准 8051 的
12 倍
188
MA82G5Cxx 数据手册
MEGAWIN
19. 串口 1 (UART1)
MA82G5C64 装备有第 2 个 UART(以后就称作 UART1),和第 1 个 UART 一样,也有 5 种运行模式,两个
UART 的区别如下:
(1) UART1 没有增强功能:帧错误检测和自动地址识别
(2) UART1 使用特定的波特率定时器作为其波特率发生器(S1BRG)
(3) UART1 使用端口 TXD1 和 RXD1 分别作为接收和发送端口
(4) 波特率发生器提供 S1CKO 切换时钟源和外设时钟
(5) S1 + S1BRG 在端口改变检测下可以被配置成一个 8 位自动重载定时器
(6) 模式 0 和模式 4,UART1 的 S1TX12 与 UART0 的 URM0X3 一样的功能
(7) 扩展模式 5 支持 LIN 总线,模式 7 支持 SMC 接口
MA82G5C64 的 UART1 和 UART0 可以同时使用不同或相同模式和通讯速率。
19.1. 串口 1 波特率发生器(S1BRG)
MA82G5C64 在模式 1 和模式 3 有一个嵌入式波特率发生器给串行口 1 提供 UART 时钟。它由一个 8 位的向上计
数器(S1BRC)和一个自动装载寄存器(S1BRT)构成。S1BRC 的溢出(S1TOF)是 UART1 在模式 1 和模式 3 串行引擎
的时间基准并且触发 S1BRT 的值重载到 S1BRC 继续计数。
如果 S1TR=0,软件写 S1BRT 将同步修改 S1BRC。S1TR 使能启动 S1BRC 计数后,写 S1BRT 将不会影响
S1BRC。修改 S1BRC 总是独立于 S1BRT 的内容。
此波特率发生器通过软件配置也能给串行口 0 提供时基。这里有一个 S1BRC 溢出率 2 分频(S1TOF/2)的额外时钟
输出(S1CKO)。S1TOF 也支持 UART0, PCA, SPI, TWSI, TWI1 和 ADC 时钟输入源切换。无论 S1 运行还是待
运行,S1BRG 总是为这些外设提供时间基准功能。
串口 1 波特率发生器结构见 图 19–1.
图 19–1. S1BRG 结构 (S1TME=0)
0
1
UARTn (Sn)
Mode1, 3, 5 and 7
SYSCLK /12
0
SYSCLK
1
S1BRC
Overflow
16
(8 Bit)
TX Clock
SnBRC Overflow (SnTOF)
1. to SnCKO
2. to Peripheral Clock
RIn
UARTn (Sn)
Interrupt
SnTX12
SnTR
( SnCFG.2 )
( SnCFG.4 )
Reload
16
RX Clock
S1BRT
n = 1, 2, 3
(8 Bit)
MEGAWIN
TIn
MA82G5Cxx 数据手册
189
19.2. 串口 1 波特率设置
19.2.1. 模式 0 波特率
FSYSCLK
S1 Mode 0 Baud Rate =
; n=12, if S1TX12=0
; n=4, if S1TX12=1
n
19.2.2. 模式 2 波特率
2S1MOD1
64
S1 Mode 2 Baud Rate =
X FSYSCLK
19.2.3. 模式 1 和 3 波特率
S1 Mode 1, 3 Baud Rate =
or =
2S1MOD1
32
2S1MOD1
32
X
X
FSYSCLK
12 x (256 – S1BRT)
FSYSCLK
1 x (256 – S1BRT)
; S1TX12=0
; S1TX12=1
表 19–1 ~ 表 19–4 出 S1BRG(串口 1 波特率产生器)各种通用的波特率和怎样获得
表 19–1. S1BRG 产生普通波特率@ FSYSCLK=11.0592MHz
S1BRT, S1BRG 重载值
波特率
1200
2400
4800
9600
14400
19200
28800
38400
57600
115200
230400
S1TX12=0
S1TX12=1
S1MOD1=0
S1MOD1=1
误差
S1MOD1=0
S1MOD1=1
误差
232
244
250
253
254
-255
-----
208
232
244
250
252
253
254
-255
---
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
-0.0%
---
-112
184
220
232
238
244
247
250
253
--
--112
184
208
220
232
238
244
250
253
-0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
表 19–2. S1BRG 产生普通波特率 @ FSYSCLK=22.1184MHz
S1BRT, S1BRG 重载值
波特率
1200
2400
4800
9600
190
S1TX12=0
S1TX12=1
S1MOD1=0
S1MOD1=1
误差
S1MOD1=0
S1MOD1=1
误差
208
232
244
250
160
208
232
244
0.0%
0.0%
0.0%
0.0%
--112
184
---112
-0.0%
0.0%
0.0%
MA82G5Cxx 数据手册
MEGAWIN
14400
19200
28800
38400
57600
115200
230400
460800
252
253
254
-255
----
248
250
252
253
254
255
---
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
---
208
220
232
238
244
250
253
--
160
184
208
220
232
244
250
253
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
表 19–3. S1BRG 产生普通波特率@ FSYSCLK=12.0MHz
S1BRT, S1BRG 重载值
波特率
1200
2400
4800
9600
14400
19200
28800
38400
57600
115200
S1TX12=0
S1TX12=1
S1MOD=0
S1MOD=1
误差
S1MOD=0
S1MOD=1
误差
230
243
---------
204
230
243
--------
0.16%
0.16%
0.16%
--------
-100
178
217
230
-243
246
---
--100
178
204
217
230
236
243
--
-0.16%
0.16%
0.16%
0.16%
0.16%
0.16%
2.34%
0.16%
--
表 19–4. S1BRG 产生普通波特率 @ FSYSCLK=24.0MHz
S1BRT, S1BRG 重载值
波特率
1200
2400
4800
9600
14400
19200
28800
38400
57600
115200
S1TX12=0
S1TX12=1
S1MOD=0
S1MOD=1
误差
S1MOD=0
S1MOD=1
误差
204
230
243
--------
152
204
230
243
-------
0.16%
0.16%
0.16%
0.16%
-------
--100
178
204
217
230
-243
--
---100
152
178
204
217
230
243
--0.16%
0.16%
0.16%
0.16%
0.16%
0.16%
0.16%
0.16%
表 19–5. S1BRG 产生普通波特率@ FSYSCLK=29.4912MHz
表 19–6. S1BRG 产生普通波特率 @ FSYSCLK=44.2368MHz
表 19–7. S1BRG 产生普通波特率 @ FSYSCLK=32.0MHz
表 19–8. S1BRG 产生普通波特率 @ FSYSCLK=48.0MHz
MEGAWIN
MA82G5Cxx 数据手册
191
19.3. 串口 1 模式 4 (SPI 主机)
MA82G5C64 串口嵌入了一个模式 4 支持 SPI 主机引擎。模式 4 由 SM31, SM01 和 SM11 选择。表 19–9 展示了
MA82G5C64 的串口模式定义。
表 19–9. 串口 1 模式选择
SM31
SM01
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
SM11
0
1
0
1
0
1
0
1
模式
0
1
2
3
4
5
6
7
描述
移位寄存器
8-bit UART
9-bit UART
9-bit UART
SPI 主机
LIN 总线
保留
SMC 接口
波特率
SYSCLK/12 or SYSCLK/4
可变
SYSCLK/64, /32
可变
SYSCLK/12 or SYSCLK/4
可变
保留
可变
S1TX12 也控制 SPI 的传输速度。如果 S1TX12 = 1,则 SPI 的时钟频率是 SYSCLK/4。如果 S1TX12 = 0, 则 SPI 的
时钟频率是 SYSCLK/12。
MA82G5C64 的 SPI 主机使用 TXD1 作为 SPICLK, RXD1 作为 MOSI,以及 S1MI 作为 MISO。而 nSS 由 MCU 软
件选择在其它端口引脚。图 19–2 展示了 SPI 连接。他支持多从机通讯架构见图 19–3
图 19–2. 串口模式 4, 单主机和单从机架构(n = 1)
MCU Serial Port n
Mode 4
(Master)
TXDn
SPICLK
RXDn
MOSI
SnMI
MISO
Port Pin
SPI
Slave
nSS
图 19–3. 串口 1 模式 4,单主机和多从机架构( (n = 1)
MCU Serial Port n
TXDn
SPICLK
RXDn
MOSI
SnMI
MISO
Port Pin 1
Slave #1
nSS
Mode 4
(Master)
SPICLK
MOSI
MISO
Port Pin 2
192
MA82G5Cxx 数据手册
Slave #2
nSS
MEGAWIN
SPI 主机能满足笙泉 MA82/84 系列 MCU(由 CPOL, CPHA 和 DORD 选择)的全功能 SPI 模块的传输。在 CPOL
和 CPHA 条件下, MA82G5C64 很容易初始化 SPI 的时钟(TXD1, P1.3/P3.4)极性去适合他们使用 。表 18–10 列出
了串口模式 4 的 4 个 SPI 工作模式。
表 19–10. 串口 1 模式 4 的 SPI 模式结构
SPI Mode CPOL CPHA 当 TXD1 在 P1.3 脚 MA82G5C64 的结构
0
0
0
清除 P1.3 为―0‖
1
0
1
清除 P1.3 为―0‖
2
1
0
设置 P1.3 为―1‖
3
1
1
设置 P1.3 为―1‖
SPI 系列传输的位序控制(DORD),MA82G5C64 提供了一个软件编程可以相反的位序控制(SFR, BOREV)。 在
MCU 写一个数据格式(MSB)到 BOREV ,MCU 通过读 BOREV 得到一个数据格式(LSB)回来。SPI 主机引擎
在串行口 1 模式 4 与串行口 1 模式 0 一样都是(LSB)传输。为了支持 SPI(MSB)移位传输, MCU 必须使用
(BOREV)写/读取操作来翻转 SPI 输入/输出传送的数据位序。图 19–4 展示了 BOREV 结构。
图 19–4. SFR BOREV 读/写结构
MCU Write
BOREV
D7
D6
D5
D4
D3
D2
D1
D0
D0
D1
D2
D3
D4
D5
D6
D7
MCU Read
通过指令使用 S1BUF 作为目标寄存器初始化传送。―写数据到 S1BUF‖触发 UART 引擎开始传送。S1BUF 的数据
被移位到作为 MOSI 串口数据的 RXD1 引脚。SPI 移位时钟由作为 SPICLK 输出的 TXD1 引脚输出。在 8 个移位
时钟的上升沿之后,TI1 被硬件声明传送结束。同时 S0MI 引脚的内容被采样并且移位到移位寄存器。然后―读取
S1BUF‖能获取 SPI 的移入数据。图 19–5 展示了模式 4 传送波形。RI1 在模式 4 不被声明。
图 19–5. 串口 1 模式 4 传送波形(n =1)
Write to SnBUF
TXDn
(SPICLK)
Software set/clear TXDn assigned port pin to initial clock polarity
RXDn
(MOSI)
D0
D1
D2
D3
D4
D5
D6
D7
SnMI
(MISO)
D0
D1
D2
D3
D4
D5
D6
D7
TIn
RIn
MEGAWIN
MA82G5Cxx 数据手册
193
19.4. S1BRG 纯定时器模式
如果 UART1 不用或软件搁置,MA82G5C64 设定 S1TME=1 串行口 1 波特率发生器(S1BRG)提供纯定时器操作模
式。此定时器操作在一个 8 位自动重载定时器并且提供溢出标志(即 S1CON.1 的 TI1 置位)。S1CON.0 的 RI1
服务于 RXD1 端口引脚的端口变化检测器。在此模式下 TI1 和 RI1 保持 UART1 中断源的中断能力并且有一个独立
中断使能控制(TB81 和 REN1)。RB81 选择 RXD1 端口输入的 RI1 检测电平。如果 RB81=0,RI1 由 REN1=1 并且
检测到 RXD1 引脚下降沿置位;否则 RI1 将检测 RXD1 端口引脚的下降沿。在 MCU 掉电模式,RI1 被强制成电平
传感操作并且如果 UART1 中断使能可以唤醒 CPU。
此纯定时器模式有一个来自定时器 1 溢出的时钟输入选项,是一个级联计数器工作在一个 16 位定时器。当
S1BRC 溢出,它将是 UART0, PCA, ADC, SPI, TWSI 和 TWI1 的时钟源或切换端口引脚输出。S1CKOE=1 使能
S1CKO 输出在端口引脚并且屏蔽 RI1 中断。
S1BRG 纯定时器模式框图见图 19–6。
图 19–6. S1BRG 定时器模式结构 (S1TME=1)
SYSCLK/12
(0,0)
(Timer1 overflow) T1OF
(0,1)
SYSCLK
(1,0)
(Timer 0 overflow) T0OF
8-bit Up-Counter
S1BRC
Overflow
TI1
(8 Bit)
(S1CON.1)
(1,1)
Reload
TB81
( S1CON.3 )
{S1TX12, SM21}
S1BRC Overflow (S1TOF)
1. to S1CKO
2. to Peripheral Clock
S1TR
S1BRT
S1MOD1
(8 Bit)
( S1CFG.3 )
RXD1 Pin
UART1 (S1)
Interrupt
0
Transition
Detection
RI1
1
(S1CON.0)
RB81
REN1
( S1CON.2 )
194
( S1CON.4 )
MA82G5Cxx 数据手册
MEGAWIN
19.5. S1BRT 可编程时钟输出
当 S1BRC 溢出时,溢出标志 S1TOF 提供 S1CKO 切换时钟源和外设时钟。输入时钟(SYSCLK/12 或 SYSCLK)
作为 8 位定时器(S1BRC)时钟源。定时器重复计数到被载入值溢出。一旦溢出,S1BRC 载入 S1BRT 的值继续计
数。图 19–7 是串行口 1 波特率产生器的方框图。时钟输出频率如下公式:
SYSCLK Frequency
S1T Clock-out Frequency =
; n=24, if S1TX12=0
; n=2, if S1TX12=1
n x (256 – S1BRT)
注意:
(1) 如 SYSCLK=12MHz 和 S1TX12=0, S1BRG 可编程输出频率范围从 1.95KHz 到 500KHz.
(2) 如 SYSCLK=12MHz 和 S1TX12=1, S1BRG 可编程输出频率范围从 23.43KHz 到 6MHz.
图 19–7. S1BRG 时钟输出模式
SYSCLK /12
0
SYSCLK
1
S1BRC Overflow (S1TOF)
1. to Peripheral Clock
0
S1BRC
1
(8 Bits)
Overflow
Port Latch
Q
S1TX12
( S1CFG.2 )
S1TR
Timer 1
overflow
Reload
0
( S1CFG.4 )
SM21
(S1CON.5)
Toggle
D
Q
1
S1CKO
S1BRT
(8 Bits)
S1CKOE
( S1CFG.1 )
在时钟输出模式如何编程 8 位 S1BRG
„ S1CFG.S1TX12 和 S1CON.SM21 选择 S1BRG 时钟源
„由公式计算 8 位重装载值并且存入 S1BRT 和 S1BRC 寄存器
„ S1CFG 寄存器的 S1CKOE 位置位
„ S1TR 置位去启动 S1BRC 定时器
MEGAWIN
MA82G5Cxx 数据手册
195
19.6. S1 波特率发生器用于 S0
串行口 0(UART0)的模式 1 和 3 操作,软件通过 T2CON 寄存器的位 TCLK 和 RCLK 清零可以选择定时器 1 作
为波特率发生器。同时,如果 URTS(在 S1CFG 寄存器)置位,定时器 1 溢出信号通过 UART1 波特率定时器溢出
信号被替代。换句话说,只要 RCLK=0, TCLK=0 和 URTS=1 用户可以采用 UART1 波特率定时器作为 UART0 模
式 1 或 3 的波特率发生器。这种情况下,定时器 1 也可以用作其他应用。当然,如果 UART1 的模式 1 或 3 也同时
操作,则两个 UART 具有相同的波特率。
图 19–8. UART0 额外波特率源
Timer 1 Overflow
0
S1BRG Overflow
1
2
URTS
0
0
1
(S1TOF)
( S0CFG.7 )
UART0
Mode1 and Mode3
TX Clock
1
SMOD1
( PCON0.7 )
TCLK
( T2CON.4 )
0
Timer 2 Overflow
RX Clock
1
RCLK
( T2CON.5 )
196
MA82G5Cxx 数据手册
MEGAWIN
19.7. 串口 1 寄存器
下面的特殊功能寄存器与 UART1 有关:
S1CON: 串口 1 控制寄存器
SFR 页 = 1 & 2 only
SFR 地址
= 0x98
7
6
5
SM01
SM11
SM21
R/W
R/W
R/W
4
REN1
R/W
复位值 = 0000-0000
3
2
TB81
RB81
R/W
R/W
1
TI1
0
RI1
R/W
R/W
Bit 7: SM01, 串口 1 模式位 0
Bit 6: SM11, 串口 1 模式位 1
SM31
0
0
0
0
1
1
1
1
SM01
0
0
1
1
0
0
1
1
SM11
0
1
0
1
0
1
0
1
模式
0
1
2
3
4
5
6
7
描述
移位寄存器
8-bit UART
9-bit UART
9-bit UART
SPI 主机
LIN 总线
保留
SMC 接口
波特率
SYSCLK/12 or SYSCLK/4
可变的
SYSCLK/64 or SYSCKLK/32
可变的
SYSCLK/12 or SYSCLK/4
可变的
保留
可变的
Bit 5: 串口 1 模式位 2
0: 禁止 SM21 功能
1: 在模式 2 和 3 时使能地址自动识别,如果 SM21=1 那么 RI1 将不能设置,除非接收到的第 9 位数据(RB81)为
1,指示是一个地址,并且接收到的字节是本机地址或者是一个广播地址;在模式 1,如果 SM21=1 那么 RI1 将
不能被激活除非收到一个有效的停止位,并且接收到的字节是本机地址或者是一个广播地址;在模式 0,SM21
应当为 0. 在 S1BRG 定时器模式....
Bit 4: REN1, 使能串行接收
0: 软件清零将禁止接收
1: 软件置位使能接收
Bit 3: TB81, 在模式 2 和 3 时第 9 位数据被传送,根据需要通过软件置位或清零
Bit 2: RB81, 在模式 2 和 3 时收到的第 9 位数据。在模式 1,如果 SM21=0,RB81 是收到数据的停止位。在模式
0,RB81 没有使用
Bit 1: TI1. 发送中断标志
0: 必须由软件清零
1: 在模式 0 时,在第 8 位个数据位时序后由硬件置位。其它模式中,在发送停止位之初由硬件置位
Bit 0: RI1. 接收中断标志
0: 必须由软件清零
1: 在模式 0 时,在第 8 位个数据位时序后由硬件置位。其它模式中(除留意 SM21 外),在接收停止位的中间时刻由
硬件置位
MEGAWIN
MA82G5Cxx 数据手册
197
S1BUF: 串口 1 缓冲寄存器
SFR 页 = 1 & 2only
SFR 地址
= 0x99
7
6
5
S1BUF.7
S1BUF.6
S1BUF.5
R/W
R/W
R/W
4
S1BUF.4
R/W
复位值 = XXXX-XXXX
3
2
S1BUF.3 S1BUF.2
R/W
R/W
1
S1BUF.1
0
S1BUF.0
R/W
R/W
1
S1BRT.1
0
S1BRT.0
R/W
R/W
1
S1BRC.1
0
S1BRC.0
R/W
R/W
Bit 7~0: 在发送和接收时作缓冲寄存器
S1BRT: 串口 1 波特率定时器重载寄存器
SFR 页 = 1 & 2 only
SFR 地址
= 0x9A
复位值 = 0000-0000
7
6
5
4
3
2
S1BRT.7
S1BRT.6
S1BRT.5 S1BRT.4 S1BRT.3 S1BRT.2
R/W
R/W
R/W
R/W
R/W
R/W
Bit 7~0: 它用于波特率定时器发生器重载变量,工作类似于定时器 1
S1BRC: 串口 1 波特率计数寄存器
SFR 页 = 1 & 2 only
SFR 地址
= 0x9B
7
6
5
S1BRC.7 S1BRC.6 S1BRC.5
R/W
R/W
R/W
4
S1BRC.4
R/W
复位值 = 0000-0000
3
2
S1BRC.3 S1BRC.2
R/W
R/W
Bit 7~0: 用作波特率定时器发生器重载寄存器,用法与定时器 1 相似。此寄存器总是可以软件读写。如果
S1CFG1.S1TME = 0,软件写数据到 S1BRT 同时数据存入 S1BRT 和 S1BRC
S1CFG: 串口 1 配置寄存器
SFR 页 = 1 & 2 only
SFR 地址
= 0x9C
7
6
5
SM31
EVPS1
S1DOR
R/W
R/W
R/W
Bit 7: SM31, 串口 1 模式控制位 3.
SM31
SM01
SM11
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
复位值 = 0010-0000
4
3
2
S1TR
S1MOD1
S1TX12
R/W
模式
0
1
2
3
4
5
6
7
R/W
描述
移位寄存器
8-bit UART
9-bit UART
9-bit UART
SPI 主机
LIN 总线
保留
SMC 接口
R/W
1
S1CKOE
0
S1TME
R/W
R/W
波特率
SYSCLK/12
可变的
SYSCLK/64, /32
可变的
SYSCLK/12
可变的
保留
可变的
Bit 6: EVPS1, 在 UART1 模式 7 里选择偶校验
Bit 5: S1DOR, 串口 1 数据的顺序
0: 数据的最高位首先传输
1: 数据的最低位首先传输。S1DOR 默认为 ―1‖
198
MA82G5Cxx 数据手册
MEGAWIN
Bit 4: S1TR, UART1 波特率定时器控制位
0: 清零关闭 S1BRG
1: 置位开启 S1BRG
Bit 3: S1MOD1, UART1 双倍波特率选择使能位
0:禁止 UART1 双倍波特率功能
1:使能 UART1 双倍波特率功能
Bit 2: S1TX12, UART1 波特率定时器时钟源选择
0:清零选择 SYSCLK/12 作 S1BRG 的时钟源
1:置位选择 SYSCLK 作 S1BRG 的时钟源
Bit 1: S1CKOE,串口 1 波特率定时器时钟输出使能
0:禁止 S1CKO 在端口引脚输出
1:使能 S1CKO 在端口引脚输出
Bit 0: S1TME,串口 1 波特率(BRG)定时器模式使能
0:保持 S1BRG 服务串行口 1 (UART1)
1:禁止串行口 1 功能并且 S1BRG 作为一个 8 位自动装载的定时器。这个模式下,这是一个 RXD1 端口引脚变化检
测器的额外功能
AUXR1: 辅助控制寄存器 1
SFR 页 = 0~F
SFR 地址
= 0xA2
7
6
5
KBIPS1
KBIPS0
SPIPS0
R/W
R/W
R/W
4
S1PS1
复位值 = 0000-0000
3
2
S1PS0
T01PS0
R/W
R/W
Bit 4~3: S1PS1~0, 串口 1 (UART1) 端口选择 [1:0]
S1PS2
S1PS1~0
RXD1
0
00
P1.2
0
01
P3.2
0
10
P0.6
0
11
P0.0
1
xx
P7.0
AUXR6: 辅助寄存器 6
SFR 页 = 3 only
SFR 地址
= 0xA4
7
6
HKBIPS1 HKBIPS0
R/W
R/W
5
TWI1PS1
4
TWI1PS0
R/W
R/W
AUXR5: 辅助控制寄存器 5
SFR 页 = 2 Only
SFR 地址
= 0xA4
7
6
5
SnMIPS
S3PS0
S2PS0
R/W
R/W
R/W
4
C1PPS0
R/W
R/W
复位值 = 0000-0000
3
2
T0OPS0
T4PS0
R/W
0
DPS
R/W
R/W
1
PCAPS0
0
S1PS2
R/W
R/W
1
T3PS1
0
T3PS0
R/W
R/W
TXD1
P1.3
P3.3
P0.7
P0.5
P7.1
复位值 = 0000-0000
3
2
C1IC4S0
C1PS0
Bit 7: SnMIPS, {S0MI, S1MI, S2MI, S3MI} 端口选择.
SnMIPS
S0MI
S1MI
0
P4.0
P4.1
1
P5.3
P5.4
MEGAWIN
R/W
1
EXTRAM
R/W
R/W
S2MI
P4.2
P5.5
MA82G5Cxx 数据手册
S3MI
P4.3
P5.6
199
20. 串口 2 (UART2)
MA82G5C64 装备有第三个 UART(以后就称作 UART2),和第二个 UART 一样,也有 5 种运行模式,模式 0~
模式 4,两个 UART 的区别如下:
(1) UART2 使用特定的波特率定时器作为其波特率发生器(S2BRG).
(2) UART2 使用端口 TXD2 和 RXD2 分别作为接收和发送端口
(3) 波特率发生器提供外设时钟和用于 S2CKO 的触发源。
(4) 在 UART2 模式 5 里没有 LIN 总线
MA82G5C64 的 UART2,UART1 和 UART0 可以同时使用不同或相同模式和通讯速率。
20.1. S2BRG 的纯定时器模式
图 20–1. S2BRG 定时器模式结构 (S2TME=1)
SYSCLK /12
(0,0)
(S1BRC overflow) S1TOF
(0,1)
SYSCLK
(1,0)
(Timer0 overflow) T0OF
(1,1)
8-bit Up-Counter
S2BRC
Overflow
TI2
(8 Bit)
(S2CON.1)
Reload
TB82
( S2CON.3 )
{S2TX12, SM22}
S2BRC Overflow (S2TOF)
1. to S2CKO
2. to Peripheral Clock
S2TR
S2BRT
S2MOD1
(8 Bit)
( S2CFG.3 )
RXD2 Pin
UART2 (S2)
Interrupt
0
Transition
Detection
RI2
1
(S2CON.0)
RB82
REN2
( S2CON.2 )
200
( S2CON.4 )
MA82G5Cxx 数据手册
MEGAWIN
20.2. 串口 2 寄存器
下面的特殊功能寄存器与 UART2 有关:
S2CON: 串口 2 控制寄存器
SFR 页 = 3 only
SFR 地址
= 0x98
7
6
5
SM02
SM12
SM22
R/W
R/W
R/W
4
REN2
R/W
复位值 = 0000-0000
3
2
TB82
RB82
R/W
R/W
1
TI2
0
RI2
R/W
R/W
Bit 7: SM02, 串口 2 模式位 0
Bit 6: SM12, 串口 2 模式位 1
SM32
0
0
0
0
1
1
1
1
SM02
0
0
1
1
0
0
1
1
SM12
0
1
0
1
0
1
0
1
模式
0
1
2
3
4
5
6
7
描述
移位寄存器
8-bit UART
9-bit UART
9-bit UART
SPI 主机
保留
保留
SMC 接口
波特率
SYSCLK/12 or SYSCLK/4
可变的
SYSCLK/64 or SYSCKLK/32
可变的
SYSCLK/12 or SYSCLK/4
保留
保留
可变的
Bit 5: 串口 2 模式位 2
0: 禁止 SM22 功能
1: 在模式 2 和 3 时使能地址自动识别,如果 SM22=1 那么 RI2 将不能设置,除非接收到的第 9 位数据(RB82)为
1,指示是一个地址,并且接收到的字节是本机地址或者是一个广播地址;在模式 1,如果 SM22=1 那么 RI2 将
不能被激活除非收到一个有效的停止位,并且接收到的字节是本机地址或者是一个广播地址;在模式 0,SM22
应当为 0. 在 S2BRG 定时器模式....
Bit 4: REN2, 使能串行接收
0: 软件清零将禁止接收
1: 软件置位使能接收
Bit 3: TB82, 在模式 2 和 3 时第 9 位数据被传送,根据需要通过软件置位或清零
Bit 2: RB82, 在模式 2 和 3 时收到的第 9 位数据。在模式 1,如果 SM22=0,RB82 是收到数据的停止位。在模式
0,RB82 没有使用
Bit 1: TI2. 发送中断标志
0: 必须由软件清零
1: 在模式 0 时,在第 8 位个数据位时序后由硬件置位。其它模式中,在发送停止位之初由硬件置位
Bit 0: RI2. 接收中断标志
0: 必须由软件清零
1: 在模式 0 时,在第 8 位个数据位时序后由硬件置位。其它模式中(除留意 SM22 外),在接收停止位的中间时刻由
硬件置位
MEGAWIN
MA82G5Cxx 数据手册
201
S2BUF: 串口 2 缓冲寄存器
SFR 页 = 3 only
SFR 地址
= 0x99
7
6
5
S2BUF.7
S2BUF.6
S2BUF.5
R/W
R/W
R/W
4
S2BUF.4
R/W
复位值 = XXXX-XXXX
3
2
S2BUF.3 S2BUF.2
R/W
R/W
1
S2BUF.1
0
S2BUF.0
R/W
R/W
1
S2BRT.1
0
S2BRT.0
R/W
R/W
1
S2BRC.1
0
S2BRC.0
R/W
R/W
Bit 7~0: 在发送和接收时作缓冲寄存器
S2BRT: 串口 2 波特率定时器重载寄存器
SFR 页 = 3 only
SFR 地址
= 0x9A
复位值 = 0000-0000
7
6
5
4
3
2
S2BRT.7
S2BRT.6
S2BRT.5 S2BRT.4 S2BRT.3 S2BRT.2
R/W
R/W
R/W
R/W
R/W
R/W
Bit 7~0: 它用于波特率定时器发生器重载变量,工作类似于定时器 1
S2BRC: 串口 2 波特率计数寄存器
SFR 页 = 3 only
SFR 地址
= 0x9B
7
6
5
S2BRC.7 S2BRC.6 S2BRC.5
R/W
R/W
R/W
4
S2BRC.4
R/W
复位值 = 0000-0000
3
2
S2BRC.3 S2BRC.2
R/W
R/W
Bit 7~0: 用作波特率定时器发生器重载寄存器,用法与定时器 1 相似。此寄存器总是可以软件读写。如果
S2CFG1.S2TME = 0,软件写数据到 S2BRT 同时数据存入 S2BRT 和 S2BRC
S2CFG: 串口 2 配置寄存器
SFR 页 = 3 only
SFR 地址
= 0x9C
7
6
5
SM32
EVPS2
S2DOR
R/W
R/W
R/W
Bit 7: SM32, 串口 2 模式控制位 3
SM32
SM02
SM12
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
复位值 = 0010-0000
4
3
2
S2TR
S2MOD1
S2TX12
R/W
模式
0
1
2
3
4
5
6
7
R/W
描述
移位寄存器
8-bit UART
9-bit UART
9-bit UART
SPI 主机
保留
保留
SMC 接口
R/W
1
S2CKOE
0
S2TME
R/W
R/W
波特率
SYSCLK/12
可变的
SYSCLK/64, /32
可变的
SYSCLK/12
保留
保留
可变的
Bit 6: EVPS2, 在 UART2 模式 7 里选择偶校验
Bit 5: S2DOR, 串口 2 数据的顺序
0: 数据的最高位首先传输
1: 数据的最低位首先传输。S2DOR 默认为 ―1‖
202
MA82G5Cxx 数据手册
MEGAWIN
Bit 4: S2TR, UART2 波特率定时器控制位
0: 清零关闭 S2BRG
1: 置位开启 S2BRG
Bit 3: S2MOD1, UART2 双倍波特率选择使能位
0:禁止 UART2 双倍波特率功能
1:使能 UART2 双倍波特率功能
Bit 2: S2TX12, UART2 波特率定时器时钟源选择
0:清零选择 SYSCLK/12 作 S2BRG 的时钟源
1:置位选择 SYSCLK 作 S2BRG 的时钟源
Bit 1: S2CKOE,串口 2 波特率定时器时钟输出使能
0:禁止 S2CKO 在端口引脚输出
1:使能 S2CKO 在端口引脚输出
Bit 0: S2TME,串口 2 波特率(BRG)定时器模式使能
0:保持 S2BRG 服务串口 2 (UART2)
1:禁止串口 2 功能并且 S2BRG 作为一个 8 位自动装载的定时器。这个模式下,这是一个 RXD2 端口引脚变化检测
器的额外功能
AUXR5: 辅助控制寄存器 5
SFR 页 = 2 Only
SFR 地址
= 0xA4
7
6
5
SnMIPS
S2PS0
S3PS0
R/W
R/W
复位值 = 0000-0000
4
3
2
C1PPS0
T0OPS0
T4PS0
R/W
R/W
R/W
Bit 7: SnMIPS, {S0MI, S1MI, S2MI, S3MI} 端口选择
SnMIPS
S0MI
S1MI
0
P4.0
P4.1
1
P5.3
P5.4
Bit 5: S2PS0,串口 2 (UART2) 端口选择 0.
S2PS0
RXD2
0
P3.2
1
P5.7
MEGAWIN
R/W
S2MI
P4.2
P5.5
1
T3PS1
0
T3PS0
R/W
R/W
S3MI
P4.3
P5.6
TXD2
P3.3
P6.7
MA82G5Cxx 数据手册
203
21. 串口 3 (UART3)
MA82G5C64 装备有第四个 UART(以后就称作 UART3),和第二个 UART 一样,也有 5 种运行模式,模式 0~
模式 4,两个 UART 的区别如下:
(1) UART3 使用特定的波特率定时器作为其波特率发生器(S3BRG).
(2) UART3 使用端口 TXD3 和 RXD3 分别作为接收和发送端口
(3) 波特率发生器提供外设时钟和用于 S3CKO 的触发源。
(4) 在 UART3 模式 5 里没有 LIN 总线
MA82G5C64 的 UART3,UART2,UART1 和 UART0 可以同时使用不同或相同模式和通讯速率。
21.1. S3BRG 的纯定时器模式
图 21–1. S3BRG 定时器模式结构(S3TME=1)
SYSCLK/12
(0,0)
(S2BRC overflow) S2TOF
(0,1)
SYSCLK
(1,0)
(Timier0 overflow) T0OF
(1,1)
8-bit Up-Counter
S3BRC
Overflow
TI3
(8 Bit)
(S3CON.1)
Reload
TB83
( S3CON.3 )
{S3TX12, SM23}
S3BRC Overflow (S3TOF)
1. to S3CKO
2. to Peripheral Clock
S3TR
S3BRT
S3MOD1
(8 Bit)
(S3CFG.3)
RXD3 Pin
UART3 (S3)
Interrupt
0
Transition
Detection
RI3
1
(S3CON.0)
RB83
REN3
(S3CON.2)
204
( S3CON.4 )
MA82G5Cxx 数据手册
MEGAWIN
21.2. 串口 3 寄存器
下面的特殊功能寄存器与 UART3 有关:
S3CON: 串口 3 控制寄存器
SFR 页 = 4 only
SFR 地址
= 0x98
7
6
5
SM03
SM13
SM23
R/W
R/W
R/W
4
REN3
R/W
复位值 = 0000-0000
3
2
TB83
RB83
R/W
R/W
1
TI3
0
RI3
R/W
R/W
Bit 7: SM03, 串口 3 模式位 0
Bit 6: SM13, 串口 3 模式位 1
SM33
0
0
0
0
1
1
1
1
SM03
0
0
1
1
0
0
1
1
SM13
0
1
0
1
0
1
0
1
模式
0
1
2
3
4
5
6
7
描述
移位寄存器
8-bit UART
9-bit UART
9-bit UART
SPI 主机
保留
保留
SMC 接口
波特率
SYSCLK/12 or SYSCLK/4
可变的
SYSCLK/64 or SYSCKLK/32
可变的
SYSCLK/12 or SYSCLK/4
保留
保留
可变的
Bit 5: 串口 3 模式位 2
0: 禁止 SM23 功能
1: 在模式 2 和 3 时使能地址自动识别,如果 SM23=1 那么 RI3 将不能设置,除非接收到的第 9 位数据(RB83)为
1,指示是一个地址,并且接收到的字节是本机地址或者是一个广播地址;在模式 1,如果 SM23=1 那么 RI3 将
不能被激活除非收到一个有效的停止位,并且接收到的字节是本机地址或者是一个广播地址;在模式 0,SM23
应当为 0. 在 S3BRG 定时器模式....
Bit 4: REN3, 使能串行接收
0: 软件清零将禁止接收
1: 软件置位使能接收
Bit 3: TB83, 在模式 2 和 3 时第 9 位数据被传送,根据需要通过软件置位或清零
Bit 2: RB83, 在模式 2 和 3 时收到的第 9 位数据。在模式 1,如果 SM23=0,RB82 是收到数据的停止位。在模式
0,RB83 没有使用
Bit 1: TI3. 发送中断标志
0: 必须由软件清零
1: 在模式 0 时,在第 8 位个数据位时序后由硬件置位。其它模式中,在发送停止位之初由硬件置位
Bit 0: RI3. 接收中断标志
0: 必须由软件清零
1: 在模式 0 时,在第 8 位个数据位时序后由硬件置位。其它模式中(除留意 SM23 外),在接收停止位的中间时刻由
硬件置位
MEGAWIN
MA82G5Cxx 数据手册
205
S3BUF: 串口 3 缓冲寄存器
SFR 页 = 4 only
SFR 地址
= 0x99
7
6
5
S3BUF.7
S3BUF.6
S3BUF.5
R/W
R/W
R/W
4
S3BUF.4
R/W
复位值 = XXXX-XXXX
3
2
S3BUF.3 S3BUF.2
R/W
R/W
1
S3BUF.1
0
S3BUF.0
R/W
R/W
1
S3BRT.1
0
S3BRT.0
R/W
R/W
1
S3BRC.1
0
S3BRC.0
R/W
R/W
Bit 7~0: 在发送和接收时作缓冲寄存器
S3BRT: 串口 3 波特率定时器重载寄存器
SFR 页 = 4 only
SFR 地址
= 0x9A
复位值 = 0000-0000
7
6
5
4
3
2
S3BRT.7
S3BRT.6
S3BRT.5 S3BRT.4 S3BRT.3 S3BRT.2
R/W
R/W
R/W
R/W
R/W
R/W
Bit 7~0: 它用于波特率定时器发生器重载变量,工作类似于定时器 1
S3BRC: 串口 3 波特率计数寄存器
SFR 页 = 4 only
SFR 地址
= 0x9B
7
6
5
S3BRC.7 S3BRC.6 S3BRC.5
R/W
R/W
R/W
4
S3BRC.4
R/W
复位值 = 0000-0000
3
2
S3BRC.3 S3BRC.2
R/W
R/W
Bit 7~0: 用作波特率定时器发生器重载寄存器,用法与定时器 1 相似。此寄存器总是可以软件读写。如果
S3CFG1.S3TME = 0,软件写数据到 S2BRT 同时数据存入 S3BRT 和 S3BRC
S3CFG: 串口 3 配置寄存器
SFR 页 = 4 only
SFR 地址
= 0x9C
7
6
5
SM33
EVPS3
S3DOR
R/W
R/W
R/W
Bit 7: SM33, 串口 3 模式控制位 3.
SM33
SM03
SM13
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
复位值 = 0010-0000
4
3
2
S3TR
S3MOD1
S3TX12
R/W
模式
0
1
2
3
4
5
6
7
R/W
描述
移位寄存器
8-bit UART
9-bit UART
9-bit UART
SPI 主机
保留
保留
SMC 接口
R/W
1
S3CKOE
0
S3TME
R/W
R/W
波特率
SYSCLK/12
可变的
SYSCLK/64, /32
可变的
SYSCLK/12
保留
保留
可变的
Bit 6: EVPS3, 在 UART3 模式 7 里选择偶校验.
Bit 5: S3DOR, 串口 3 数据的顺序
0: 数据的最高位首先传输
1: 数据的最低位首先传输。S3DOR 默认为 ―1‖
206
MA82G5Cxx 数据手册
MEGAWIN
Bit 4: S3TR, UART3 波特率定时器控制位
0: 清零关闭 S3BRG
1: 置位开启 S3BRG
Bit 3: S3MOD1, UART3 双倍波特率选择使能位
0:禁止 UART3 双倍波特率功能
1:使能 UART3 双倍波特率功能
Bit 2: S3TX12, UART3 波特率定时器时钟源选择
0:清零选择 SYSCLK/12 作 S3BRG 的时钟源
1:置位选择 SYSCLK 作 S3BRG 的时钟源
Bit 1: S3CKOE,串口 3 波特率定时器时钟输出使能
0:禁止 S3CKO 在端口引脚输出
1:使能 S3CKO 在端口引脚输出
Bit 0: S3TME,串口 3 波特率(BRG)定时器模式使能
0:保持 S3BRG 服务串口 3 (UART2)
1:禁止串口 3 功能并且 S3BRG 作为一个 8 位自动装载的定时器。这个模式下,这是一个 RXD3 端口引脚变化检测
器的额外功能
AUXR5: 辅助控制寄存器 5
SFR 页 = 2 Only
SFR 地址
= 0xA4
7
6
5
SnMIPS
S3PS0
S2PS0
R/W
R/W
R/W
4
C1PPS0
复位值 = 0000-0000
3
2
T0OPS0
T4PS0
R/W
R/W
Bit 7: SnMIPS, {S0MI, S1MI, S2MI, S3MI}端口选择.
SnMIPS
S0MI
S1MI
0
P4.0
P4.1
1
P5.3
P5.4
Bit 6: S3PS0, 串口 3 (UART3) 端口选择 0.
S3PS0
RXD3
0
P3.6
1
P6.5
MEGAWIN
R/W
S2MI
P4.2
P5.5
1
T3PS1
0
T3PS0
R/W
R/W
S3MI
P4.3
P5.6
TXD3
P3.7
P6.6
MA82G5Cxx 数据手册
207
22. 串行外围接口(SPI)
MA82G5C64 提供了一个高速串行外设接口(SPI)。SPI 接口是一种全双工、高速同步通讯总线,有两种操作模
式:主机模式和从机模式。在 12MHz 的系统时钟下主机模式支持高达 3MHz 速率。在 SPI 状态寄存器(SPSTAT)
里有三个标志传送完成标志(SPIF),写冲突标志(WCOL)和模式缺陷标志(MODF)。与传统的 SPI 相比较,一个经
过特别设计的发送保持寄存器(THR)显著改善了传输效率。SPI 工作下忙状态由只读标志 SPIBSY 指示。
图 22–1. SPI 方框图
SET THRF if THRF=0, or
SET WCOL if THRF=1
CPU Write SPDAT
CPU Read SPDAT
SYSCLK
S1TOF
T0OF
Transmit Holding
Register (THR)
Receive Holding
Register (RHR)
/4
/8
/16
/32
/64
/128
CLEAR THRF
Auto-Load
Auto-Load
Output Shift
Register (OSR)
SPICLK
(P1.7/P4.0)
Input Shift
Register (ISR)
MISO
(P1.6/P4.1)
I/O
Control
MOSI
(P1.5/P2.1)
SPI Control
nSS
(P1.4/P2.0)
S1TOF/6
T0OF/6
SSIG
SPEN
DORD
MSTR
CPOL
CPHA
SPR1
SPR0
SPCON
SPIF
WCOL
THRF
SPIBSY
MODF
--
--
SPR2
SPSTAT
SPI 接口有 4 个引脚: MISO (P1.6), MOSI (P1.5), SPICLK (P1.7) 和 nSS (P1.4):
• SPICLK, MOSI 和 MISO 通常将两个或多个 SPI 设备连接在一起。数据从主机到从机使用 MOSI 引脚 (Master
Out / 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 使用
注意:引脚输出选项见引脚功能控制寄存器 AUXR1 参考章节“4.3 功能复用”。
注意,即使 SPI 被配置成主机运行(MSTR=1), 它仍然可以被/SS 引脚的低电平拉成从机(若 SSIG=0),一旦发生
这种情况, SPIF 位(SPSTAT.7)置位并且 SPEN 会被清零。 (参考章节― 22.2.3 nSS 引脚的模式改变‖) 。
208
MA82G5Cxx 数据手册
MEGAWIN
22.1. SPI 典型配置
22.1.1. 单主机& 单从机
对于主机: 任何端口,包括 P1.4 (nSS),都可以用来控制从机的 nSS 片选引脚。
对于从机: SSIG 为 ‗0‘,nSS 引脚决定该设备是否被选中。
图 22–2. SPI 单主机 & 单从机结构
SPICLK
Master
SPICLK
MISO
MISO
MOSI
MOSI
Port Pin
Slave
nSS
22.1.2. 双驱动,既是主机也是从机
两个彼此连接的设备,均可成为主机或从机,没有 SPI 操作时,都可以被通过设置 MSTR=1, SSIG=0, P1.4
(nSS)双向口配置成主机。任何一方要发起传输,它可以配置 P1.4 位输出并强行拉低,使另一个设备发生―被改成
从机模式‖事件。(参考― 22.2.3 nSS 引脚的模式改变‖) 。
图 22–3. SPI 双驱动结构,既是主机也是从机
SPICLK
Master/
Slave
SPICLK
MISO
MISO
MOSI
MOSI
nSS
Slave/
Master
nSS
22.1.3. 单主机 & 多从机
对于主机: 任何端口,包括 P1.4 (nSS),都可以用来控制从机的/SS 片选引脚。
对于所有从机:SSIG 为 ‗0‘,nSS 引脚决定该设备是否被选中。
图 22–4. SPI 单主机多从机结构
SPICLK
SPICLK
MISO
MISO
MOSI
MOSI
Port Pin 1
Slave #1
nSS
Master
SPICLK
MISO
MOSI
Port Pin 2
MEGAWIN
Slave #2
nSS
MA82G5Cxx 数据手册
209
22.2. 配置 SPI
表 22–1 不但列出了主机/从机模式的配置,而且列出了这些模式的用法和引脚状态。
表 22–1. SPI 主机和从机选择
SPEN
SSIG
(SPCTL.6) (SPCTL.7)
nSS
-pin
(SPCTL.4)
MSTR
0
X
X
X
1
0
0
0
1
0
1
0
1
0
0
10
模式
MISO
-引脚
MOSI
-引脚
SPICLK
-引脚
SPI 禁用
输入
输入
输入
P1.4~P1.7 用作通用 I/O
输出
输入
输入
被选择为从机
高阻
输入
输入
未被选中
输出
输入
输入
若 nSS 被拉低,MSTR 被硬件自动
清‗0‘,模式被改为从机
高阻
高阻
MOSI 和 SPICLK 在主机待机时被
置为高阻,以防止总线冲突。
输出
输出
MOSI 和 SPICLK 在主机活动时被
上拉。
从机
(被选中)
从机
(未被选中)
从机
(通过模式改
变)
主机
1
0
1
1
(待机)
输入
主机
(激活)
1
1
X
0
从机
输出
输入
输入
1
1
X
1
主机
输入
输出
输出
备注
―X‖ 表示―无关紧要‖.
22.2.1. 从机注意事项
当 CPHA = 0 时, SSIG 必须为 0 且 nSS 引脚必须在每次串行字节传输前负跳变,传输结束恢复正常高电平。
注意 SPDAT 寄存器不能在 nSS 引脚低电平时写入;CPHA = 0, SSIG=1 的操作是未定义的。
当 CPHA =1 时, SSIG 可以为 0 或 1。若 SSIG=0,nSS 引脚可以在每次成功传输之间保持低电平(可以一直拉
低),这种格式有时非常适合单固定主从机配置应用。
22.2.2. 主机注意事项
SPI 通讯中,传输总是由主机发起 。若 SPI 使能(SPEN=1)并作为主机运行,写入 SPI 数据寄存器(SPDAT) 数据即
可启动 SPI 时钟生成器和数据传输器,大约半个到 1 个 SPI 位时间后写入 SPDAT 的数据开始出现在 MOSI 线上。
在开始传输之前,主机通过拉低相应 nSS 引脚选择一个从机作为当前从机。写入 SPDAT 寄存器德数据从主机
MOSI 引脚移出,同时从从机 MISO 移入主机 MISO 的数据也写入到主机的 SPDAT 寄存器中。
移出 1 字节后,SPI 时钟发生器停止,置传输完成标志(SPIF),若 SPI 中断使能则生成一个中断。主机 CPU 和从
机 CPU 中的两个移位寄存器可以看成一个分开的 16 位环形移位寄存器,数据从主机移到从机同时数据也从从机移
到主机。这意味着,在一次传输过程中,主从机数据进行了交换。
210
MA82G5Cxx 数据手册
MEGAWIN
22.2.3. nSS 引脚的模式改变
若 SPEN=1, SSIG=0, MSTR=1 且 /SS 引脚=1, SPI 使能在主机模式,这种情况下,其他主机可以将/SS 引脚
拉低来选择该设备为从机并开始发送数据过来。为避免总线冲突,该 SPI 设备成为一个从机,MOSI 和 SPICLK 引
脚被强制为输入端口,MISO 成为输出端口,SPSTAT 中 SPIF 标志置位,若此时 SPI 中断使能,则还会产生一个
SPI 中断。用户软件必须经常去检查 MSTR 位,若该位被从机选择清零而用户又想要继续保持该 SPI 主机模式,
用户必须再次设置 MSTR 位,否则,将处于从机模式。
22.2.4. 发送保持寄存器满标志
为了提高 SPI 发送速度一个特殊设计保持寄存器(THR)可以减短 CPU 数据移动字节与字节传送的延迟时间。THRF
置位表明 THR 的数据是有效的并且等待发送。如果 THR 是空的(THRF=0),软件写一个字节数据到 SPDAT 数据
将存储在 THR 并且 THRF 置位。如果输出移位寄存器(OSR)是空的 ,硬件立刻将 THR 数据移到 OSR 并且 THRF
清零。在 SPI 主机模式,OSR 有效数据将触发 SPI 发送。在 SPI 从机模式,OSR 有效数据等待另一个 SPI 主机
移出数据。如果 THR 是非空(THRF=1),软件写一个字节数据到写冲突标志 WCOL (SPSTAT.6)将置位。
22.2.5. 写冲突
MA82G5C64 的 SPI 在发送方向和接收方向是双缓冲数据器。发送数据在 THR 空时才能写入到缓冲器 THR。只读
标志 THRF 表示 THR 是空或非空。在 THRF 为‖1‖时数据寄存器被写入数据冲突标志 WCOL (SPSTAT.6)将置位。
这种情况下,SPDAT 写入操作将被忽略。
主机或从机检测到写冲突时,主机异常是主机传输过程中有非空控制;从机是在主机初始化传输没有控制结束时出
现冲突 。
WCOL 软件写‖1‖清零。
22.2.6. SPI 忙标志
22.2.7. SPI 时钟速率选择
SPI 时钟频率选择(主机模式)使用 SPCON 寄存器的 SPR1 和 SPR0 位及 SPSTAT 寄存器的 SPR2 来设置,如
表 22–2 所示。
表 22–2. SPI 串行时钟速率
SPR2
SPR1
SPR0
SPI 时钟选择
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
SYSCLK/4
SYSCLK/8
SYSCLK/16
SYSCLK/32
SYSCLK/64
SYSCLK/128
S1TOF/6
T0OF/6
SPI 时钟速率 @
SYSCLK=12MHz
3 MHz
1.5 MHz
750 KHz
375 KHz
187.5 KHz
93.75 KHz
可变的
可变的
SPI 时钟速率 @
SYSCLK=48MHz
12 MHz
6 MHz
3 MHz
1.5 MHz
750 KHz
375 KHz
可变的
可变的
注意:
1. SYSCLK 是系统时钟
2. S1TOF 是 UART1 波特率产生器溢出
3. T0OF 是定时器 0 溢出
MEGAWIN
MA82G5Cxx 数据手册
211
22.3. 数据模式
时钟相位(CPHA) 位可以让用户设定数据采样和改变时的时钟沿。时钟极性位 CPOL 可以让用户设定时钟极性。下
面图例显示了不同时钟相位、极性设置下 SPI 通讯时序。
图 22–5. SPI 从机传送格式 CPHA=0
1
Clock Cycle
2
3
4
5
6
7
8
SPICLK (CPOL=0)
SPICLK (CPOL=1)
1st bit in
MOSI
Slave Intput
DORD=0
MSB
6
5
4
3
2
1
LSB
DORD=1
LSB
1
2
3
4
5
6
MSB
Not
defined
MISO
Slave Output
1st bit out
data sampled
nSS (if SSIG=0)
This edge is used by the slave to shift out the 1st bit
of each data byte while CPHA=0
图 22–6. SPI 从机传送格式 CPHA=1
Slave w/ CPHA=1
1
Clock Cycle
2
3
4
5
6
7
8
SPICLK (CPOL=0)
SPICLK (CPOL=1)
1st bit in
MOSI
Slave Intput
DORD=0
MSB
6
5
4
3
2
1
LSB
DORD=1
LSB
1
2
3
4
5
6
MSB
MISO
Slave Output
1st bit out
Not defined
data sampled
nSS (if SSIG=0)
212
MA82G5Cxx 数据手册
MEGAWIN
图 22–7. SPI 主机传送格式 CPHA=0
Clock Cycle
Enable SPI
1
2
3
4
5
6
7
8
SPICLK (CPOL=0)
SPICLK (CPOL=1)
1st bit out
MOSI
Master Output
DORD=0
MSB
6
5
4
3
2
1
LSB
DORD=1
LSB
1
2
3
4
5
6
MSB
MISO
Master Input
1st bit in
data sampled
nSS (if SSIG=0)
图 22–8. SPI 主机传送格式 CPHA=1
1
Clock Cycle
2
3
4
5
6
7
8
SPICLK (CPOL=0)
SPICLK (CPOL=1)
1st bit out
MOSI
Master Output
DORD=0
MSB
6
5
4
3
2
1
LSB
DORD=1
LSB
1
2
3
4
5
6
MSB
MISO
Master Input
1st bit in
data sampled
nSS (if SSIG=0)
MEGAWIN
MA82G5Cxx 数据手册
213
22.4. SPI 寄存器
下面是 SPI 操作的相关特殊功能寄存器:
SPCON: SPI 控制寄存器
SFR 页 = 0~F
SFR 地址
= 0x85
7
6
SSIG
SPEN
R/W
R/W
5
DORD
4
MSTR
R/W
R/W
RESET= 0000-0100
3
2
CPOL
CPHA
R/W
1
SPR1
0
SPR0
R/W
R/W
R/W
Bit 7: SSIG, 忽略 nSS
0: nSS 引脚决定该设备是主机还是从机
1: MSTR 位决定该设备是主机还是从机
Bit 6: SPEN, SPI 使能
0: SPI 接口禁用,所有 SPI 引脚可作为通用 I/O 口使用
1: SPI 使能
Bit 5: DORD, SPI 数据顺序
0:传送数据时先传数据字节最高位(MSB)
1:传送数据时先传数据字节最低位(LSB)
Bit 4: MSTR, 主机/从机模式选择
0: SPI 从机模式
1: SPI 主机模式
Bit 3: CPOL, SPI 时钟极性选择
0: SPICLK 待机是为低电平,SPICLK 时钟脉冲前沿是上升沿,而后沿是下降沿
1: SPICLK 待机是为高电平,SPICLK 时钟脉冲前沿是下降沿,而后沿是上升沿
Bit 2: CPHA, SPI 时钟相位选择
0: /SS 引脚低电平 (SSIG=0)开始放数据并在 SPICLK 后沿改变数据。 数据在 SPICLK 的前沿采样
1: SPICLK 脉冲前沿放数据,后沿采样
(注:如果 SSIG=1,CPHA 必须不为 1,否则这个功能是没有定义的)
Bit 1~0: SPR1-SPR0, SPI 时钟速率选择位 0 和 1 (主机模式,与 SPR2 配合使用)
SPI 时钟速率 @
SPR2 SPR1 SPR0
SPI 时钟选择
SYSCLK=12MHz
0
0
0
SYSCLK/4
3 MHz
0
0
1
SYSCLK/8
1.5 MHz
0
1
0
SYSCLK/16
750 KHz
0
1
1
SYSCLK/32
375 KHz
1
0
0
SYSCLK/64
187.5 KHz
1
0
1
SYSCLK/128
93.75 KHz
S1TOF/6
1
1
0
可变的
T0OF/6
1
1
1
可变的
SPI 时钟速率 @
SYSCLK=48MHz
12 MHz
6 MHz
3 MHz
1.5 MHz
750 KHz
375 KHz
可变的
可变的
注意:
1. SYSCLK 是系统时钟
2. S1TOF 是 UART1 波特率定时器溢出
3. T0OF 是定时器 0 溢出
214
MA82G5Cxx 数据手册
MEGAWIN
SPSTAT: SPI 状态寄存器
SFR 页 = 0~F
SFR 地址
= 0x84
7
6
5
4
RESET= 0000-0000
3
2
1
SPIF
WCOL
THRF
SPIBSY
MODF
DBEN
QPIEN
R/W
R/W
R
R
R/W
R/W
R/W
0
SPR2/
QDOE
R/W
Bit 7: SPIF, SPI 传输完成标志
0:软件写“1”此位清零
1:当一次串行传输完成时,SPIF 位置位,同时若 SPI 中断允许,会产生一个中断。若 nSS 引脚在主机模式下被拉
低且 SSIG=0,SPIF 位也会置位以表明―模式改变‖
Bit 6: WCOL, SPI 写冲突标志
0:软件写“1”此位清零
1: SPI 数据寄存器(SPDAT)在数据传输过程中被写入此位置位(见章节―22.2.5 写冲突‖)
Bit 5: THRF,发送保持寄存器(THR)非空标志。只读
0:表明 THR 是―空的‖。当 THR 为空时此位被硬件清零,这意味着 THR 中的数据已经被装入移位输出寄存器进行发
送,而现在用户可以向 SPDAT 写下一个要发送的数据
1:表明 THR 是―非空‖。当软件向 SPDAT 写数据时由硬件置位
Bit 4, SPIBSY, SPI 忙标志。只读
0:表示 SPI 是待机状态并且所有的移位寄存器是空的
1: 置位表示 SPI 传输进行中(主机或从机)
Bit 3: 模式错误标志。当检测到主机模式冲突时(nSS 为低电平,MSTEN=1,并且 SSIG=0),硬件置该位为 1。
如果中断使能,就会产生一个中断。该位不会由硬件自动清零,必须由软件写“1”清零。
Bit 2, DBEN, 双字节传送使能
0: 在 QPI 模式禁止 16 位数据传送
1: 在 QPI 模式使能 16 位数据传送。发送/接收的高字节在特殊寄存器 DATH 里,地址是 B9H
Bit 1, QPIEN, QPI 模式使能.
0: 设置模块为 SPI 模式
1: 设置模块为 QPI 模式,使用 4 位数据总线 {SPID3, SPID2, SPID1(MISO), SPID0(MOSI)}.
Bit 0: SPR2, 当 QPIEN 禁止时,该位是 SPI 时钟速率选择 2 (与 SPR1 和 SPR0 配合使用) 。如果 QPIEN 使能
时,这位是 QPI 总线的输入/输出控制位(QDOE)。 QDOE=0, QPI 总线时输入模式。QDOE=1 使能数据在 QPI
总线上输出。
SPDAT: SPI 数据寄存器
SFR 页 = 0~F
SFR 地址
= 0x86
7
6
(MSB)
R/W
R/W
5
4
R/W
R/W
RESET= 0000-0000
3
2
R/W
R/W
1
0
(LSB)
R/W
R/W
SPDAT 有两个物理缓冲器供发送和接收过程中各自独立写入和读取。
MEGAWIN
MA82G5Cxx 数据手册
215
AUXR1: 辅助寄存器 1
SFR 页 = 0~F
SFR 地址
= 0xA2
7
6
KBIPS1
KBIPS0
R/W
R/W
5
SPIPS0
4
S1PS1
R/W
R/W
复位值 = 0000-0000
3
2
S1PS0
T01PS0
R/W
Bit 5: SPIPS0, SPI 端口选择 0.
SPIPS0
nSS
0
P1.4
1
P4.3
MOSI
P1.5
P4.2
216
MA82G5Cxx 数据手册
MISO
P1.6
P4.1
1
EXTRAM
0
DPS
R/W
R/W
R/W
SPICLK
P1.7
P4.0
SPID2
P5.3
P3.6
SPID3
P5.4
P3.7
MEGAWIN
23. 双线串行接口(TWSI 和 TWI1)
双线串行接口是一个双线双向总线。双线串行接口(TWSI)很适合于典型的处理器应用。MA82G5C64 锲入了两个
独立的双线串行接口硬件引擎(TWSI 和 TWI1)。TWI1 是跟 TWSI 一样的设计除了不同的 SFR 访问页和不同的端口
引脚之外具有全兼容的控制流。所有 TWSI 的 SFR 都在 SFR 1 页并且接口引脚是 TWI_SCL 和 TWI_SDA。所有
TWI1 的 SFR 都在 SFR 2 页并且接口引脚是 TWI1_SCL 和 TWI1_SDA。
TWSI 协议允许系统设计人员只用两根双向传输线来连接多达 128 个不同的设备,一根用于时钟(SCL),一根用
于数据(SDA)。双线串行接口(TWSI)由 SDA(串行数据,P4.1)SCL(串行时钟,P4.0)控制产生和同步,仲
裁逻辑以及起始/停止(START/STOP)。唯一需要的外部硬件就是在 TWSI 的每根传输线上添加一个上拉电阻。
所有连接到总线的设备都有自己的地址,而且 TWSI 协议解决了总线仲裁的问题。
图 23–1. TWSI 总线互联框图
VDD
Device 0
Device 1
Device 2
………
Device n
TWI_SDA
TWI_SCL
TWSI 总线可以操作在主机或从机也可以是多主机。CPU 通过 SIADR(串行接口从机地址寄存器)、SIDAT(串
行接口数据寄存器,用于发送和接收 TWSI 数据)、SICON(串行接口控制寄存器)、SISTA(串行接口状态寄存
器)这四个特殊功能寄存器与 TWSI 相连。TWSI 硬件通过两根数据线与串行总线相连:SDA(串行数据
线,P4.1)、SCL(串行时钟线,P4.0)。
图 23–2. TWSI 方框图
CPU Write SIDAT
Output Shift
Register
CPU Read SIDAT
Input Shift
Register
CPU R/W SIADR
SYSCLK
S1TOF
T0OF
TWSI Control
TWI_SCL
(P4.0/P6.0)
Slave Addr
Register
/8
/16
/32
/64
/128
/256
SICON
CR2
ENSI
STA
STO
SI
AA
CR1
CR0
S1TOF/6
SISTA
T0OF/6
b7
MEGAWIN
TWI_SDA
(P4.1/P6.1)
I/O
Control
b6
b5
MA82G5Cxx 数据手册
b4
b3
b2
b1
b0
217
23.1. 操作模式
TWSI 有 4 种操作模式: 1) 主机/发送模式, 2)主机/接收模式, 3)从机/发送模式 4)从机/接收模式。SI 软件清零之
后 SICON 寄存器的位 STA, STO 和 AA 决定 TWSI 硬件下一个执行的是哪一个操作。当下一个操作完成,SISTA
寄存器将更新一个新状态同时 SI 也会硬件置位。现在,中断服务程序会被调用(如果 TWSI 中断使能),软件可
以通过新的状态区分需要调用哪一个子程序。
23.1.1. 主机发送模式
在主机发送模式,一定数量的字节数据可以发送到一个从机接收器。在进入主机发送模式前,SICON 必须作如下
设置:
SICON
7
CR2
Bit rate
6
ENSI
1
5
STA
0
4
STO
0
3
SI
0
2
AA
x
1
0
CR1
CR0
Bit rate
CR0、 CR1和CR2定义了串行位速率。ENSI必须设置为逻辑1来使能TWSI。如果AA位复位,在其它设备成为总线
的主机时,TWSI将不会应答它自身的从机地址或广播地址。也就是说,如果AA复位,TWSI不能进入从机模式。
STA、STO与SI必须复位。
置位STA也许可以立即进入主机发送模式。TWSI逻辑将检测串行总线并且在总线空闲时产生一个START信号。发
送完START信号后,串行中断标志(SI)将被置位,并且状态寄存器(SISTA)中的状态编码将为08H。这个状态
编码必须用于指示一个中断服务程序加载从机地址和数据方向位(SLA+W)到SIDAT。SICON的SI位必须清零,
串行传输才能继续进行。
当从机地址与方向位发送完,并且接收到一个应答位后,串行中断标志(SI)会再次被置位。SISTA可能为以下的
编码:在主机模式为18H,20H或38H,如果从机模式使能(AA=1),也可以为68H,78H或B0H。在这些状态编
码下对应的操作将在随后的工作流程图中详细叙述。在一个REPEATED START信号后(状态编码10H),TWSI
可以通过向SIDAT写入SLA+R进入主机接收模式。
23.1.2. 主机接收模式
在主机接收模式,可以从从机发送器接收一定数量的字节数据。SICON也必须如主机发送模式一样初始化。开始信
号发送后,中断服务程序必须向SIDAT写入7位从机地址与数据方向位(SLA+R)。SICON的SI位必须清零,串行
传输才能继续进行。
在从机地址与数据方向位发送完并且接收到应答位后,串行中断标志(SI)重新置位。SISTA可能为以下的编码:
在主机模式为40H,48H或38H,如果从机模式使能(AA=1),也可以为68H,78H或B0H。这些状态编码下对应
的操作将在随后的工作流程图中详细叙述。在一个REPEATED START信号后(状态编码10H),TWSI可以通过
向SIDAT写入SLA+W进入主机接收模式。
218
MA82G5Cxx 数据手册
MEGAWIN
23.1.3. 从机发送模式
在从机发送模式下,许多数据发送给主机接收。SIADR 和 SICON 必须如下初始化从机发送模式:
SIADR
7
6
5
4
3
2
1
X
X
X
X
X
X
X
||
0
GC
高 7 位是响应被主机寻址的 TWSI 地址。如果 LSB (GC)置位,TWSI 将应答广播地址(00H);否则将忽略广播地
址。
SICON
7
CR2
x
6
ENSI
1
5
STA
0
4
STO
0
3
SI
0
2
AA
1
1
CR1
x
0
CR0
x
在从机模式下 CR0, CR1 和 CR2 不影响 TWSI 。ENSI 必须置位去使能 TWSI。AA 必须置位去使能 TWSI 应答自
己的从机地址或广播地址。STA, STO 和 SI 必须清零。
当SIADR和SICON初始化之后,TWSI会等待直到其从机地址被寻址并且数据方向为‖1‖(R),TWSI将工作于从机
发送模式。在接收到自身的从机地址以及‖R‖位后,串行中断标志(SI)置位,并且可以从SISTA读出一个可用的
状态编码。这些状态编码可以用作指示一个中断服务程序,在这些状态编码下对应的操作将在随后的工作流程图详
细叙述。当TWSI处于主机模式时,如果仲裁失败也可能进入从机发送模式(参考B0H状态)。
如果在一次传输的过程中 AA 位复位,TWSI 将发送完当前字节的数据后进入 C0H 或 C8H 状态。TWSI 会转换到
未被寻址从机模式,如果主机继续传输,TWSI 将会忽略主机接收器,因此主机总是接收到‖1‖。当 AA 复位时,
TWSI 不会回应其从机地址或广播地址,但是会继续监听串行总线。在任何时候可以通过置位 AA 恢复,这意味着
AA 位可用于暂时从总线中隔离 TWSI。
23.1.4. 从机接收模式
在从机接收模式,会从主机发送器接收一定数量的字节数据。数据传送的初始化与从机发送模式一样。
SIADR与SICON初始化后,TWSI会等待直到其从机地址被寻址并且数据方向为‖0‖(W),TWSI将工作于从机接
收模式。在接收到其从机地址与‖W‖位后,串行中断标志(SI)置位,并且可以从SISTA读出一个可用的状态编
码。这些状态编码可以用作指示一个中断服务程序,在这些状态编码下对应的操作将在随后的工作流程图详细叙
述。当TWSI处于主机模式时,如果仲裁失败可能进入从机接收模式(参考状态68H和78H)。
如果在一次传输的过程中AA位被复位,TWSI会在接收到下一个字节后回复NACK(逻辑1)。当AA复位时,TWSI
不会响应自身的从机地址或广播地址,但是会继续监听串行总线。在任何时候可以通过置位AA恢复,这意味着AA
位可用于暂时从总线中隔离TWSI。
MEGAWIN
MA82G5Cxx 数据手册
219
23.2. 混合状态
有两个SISTA编码没有与已经定义的TWSI硬件状态对应,描述如下:
S1STA = F8H:
这个状态编码表明还没有相应的信息可用,因为串行中断标志(SI)还没有置位。这种情况发生在状态转换之间和
TWSI未涉及串行传输时。
S1STA = 00H:
这个状态编码表明在一个TWSI串行传输过程中发生总线错误。当一个START或STOP信号在一帧的不合法位置发
送时,总线错误就会发生。例如:在传输一个字节地址、数据时,或者在应答位。总线错误也会在外界干扰扰乱内
部TWSI信号时发生。当总线错误发生时,SI被置位,STO标志必须置位并且SI必须软件清零用来从总线错误中恢
复。这会使TWSI进入―未被寻址‖(not-addressed)从机状态(已定义的状态)并且清除STO标志(SICON的其它
位不受影响)。SDA与SCL线将被释放(不会发送STOP信号)。
23.3. 使用 TWSI
TWSI 是面向字节并且基于中断的。中断会在所有总线事件后发生,例如接收到一字节数据或发送 START 信号。
因为 TWSI 是基于中断的,应用软件可以自由的在一个 TWSI 字节发送的过程中处理其它工作。注意,TWSI 中断
标志位(AUXIE.6)与 EA 位允许应用程序选择在 SI 标志出现时是否产生中断请求。当 SI 标志出现时,表明
TWSI 已经完成一个操作并且等待程序响应。此时状态寄存器 SISTA 保存的状态编码表明 TWSI 总线的当前状态。
用户程序可以通过对 STA,STO 和 AA 位(在 SICON 中)进行适当的编程来决定接下来 TWSI 总线将如何运行。
下面的操作流程图将指导用户通过―状态到状态‖(state-by-state)的操作来使用 TWSI。首先,用户应该向 SIADR
写入自身的从机地址(参考前面对 SIADR 的描述)。作为主机时,在初始 SICON 后,第一步为置位―STA‖来向总
线产生一个 START 信号。作为从机时,在初始化 SICON 后,TWSI 等待直到被寻址。然后参考操作流程图对
SICON 的 STA,STO,SI,AA 位进行适当的编程来进行后续动作。当 SI 清零后 TWSI 硬件就会进行下一步动
作,因此推荐使用如下两个步骤:先对 STA,STO 与 AA 编程,然后清零 SI 位(可以使用―CLR SI‖指令)来进行
可靠的操作。
下面的图指出如何阅读流程图.
Set STA to generate
a START
08H
A START has been
transmitted
The status code in SISTA, it is the current bus state.
The TWSI bus operation has just finished.
(STA,STO,SI,AA)=(0,0,0,X)
Setting for the next bus operation. "X" means "don't care".
SLA+W will be transmitted;
ACK bit will be received.
The expected next bus operation.
220
MA82G5Cxx 数据手册
MEGAWIN
(1) Master/Transmitter Mode
Set STA to generate
a START
From Slave Mode
C
08H
A START has been
transmitted
(STA,STO,SI,AA)=(0,0,0,X)
SLA+W will be transmitted;
ACK bit will be received.
B
From Master/Receiver
18H
SLA+W will be transmitted;
ACK bit will be received.
or
20H
SLA+W will be transmitted;
NOT ACK bit will be received.
(STA,STO,SI,AA)=(0,0,0,X)
(STA,STO,SI,AA)=(1,0,0,X)
(STA,STO,SI,AA)=(0,1,0,X)
(STA,STO,SI,AA)=(1,1,0,X)
Data byte will be transmitted;
ACK bit will be received.
A repeated START will be
transmitted.
A STOP will be transmitted;
STO flag will be reset.
A STOP followed by a
START will be transmitted;
STO flag will be reset.
28H
10H
Data byte in SIDAT has
been transmitted; ACK has
been received.
A repeated START has
been transmitted.
Send a STOP
Send a STOP
followed by a START
or
30H
Data byte in SIDAT has
been transmitted; NOT ACK
has been received.
38H
Arbitration lost in
SLA+W or Data bytes
(STA,STO,SI,AA)=(0,0,0,X)
SLA+R will be transmitted;
ACK will be received;
TWSI will be switched to
Master/Receiver mode
(STA,STO,SI,AA)=(0,0,0,X)
(STA,STO,SI,AA)=(1,0,0,X)
The bus will be released;
Not addressed Slave mode
will be entered.
A START will be transmitted
when the bus becomes free.
A
To Master/Receiver
Enter NAslave
MEGAWIN
MA82G5Cxx 数据手册
Send a START
when bus becomes
free
221
(2) Master/Receiv er Mode
Set STA to generate
a START.
C
From Slave Mode
08H
A START has been
transmitted.
(STA,STO,SI,AA)=(0,0,0,X)
SLA+R will be transmitted;
ACK will be received.
From Master/Transmitter
A
48H
40H
SLA+R has been transmitted;
NOT ACK has been received.
SLA+R has been transmitted;
ACK has been received.
(STA,STO,SI,AA)=(1,1,0,X)
A STOP followed by a START will
be transmitted;
STO flag will be reset.
(STA,STO,SI,AA)=(0,1,0,X)
A STOP will be transmitted;
STO flag will be reset.
Send a STOP
Send a STOP
followed by a START
222
58H
50H
Data byte has been received;
NOT ACK has been returned.
Data byte has been received;
ACK has been returned.
(STA,STO,SI,AA)=(1,0,0,X)
A repeated START will be transmitted.
10H
(STA,STO,SI,AA)=(0,0,0,X)
SLA+W will be transmitted;
ACK will be received;
TWSI will be switched to MST/TRX mode.
Arbitration lost in SLA+R
or NOT ACK bit.
Send a START
when bus becomes free
(STA,STO,SI,AA)=(0,0,0,1)
Data byte will be received;
ACK will be returned.
A repeated START has been
transmitted.
38H
(STA,STO,SI,AA)=(1,0,0,X)
A START will be transmitted
when the bus becomes free.
(STA,STO,SI,AA)=(0,0,0,0)
Data byte will be received;
NOT ACK will be returned.
(STA,STO,SI,AA)=(0,0,0,X)
The bus will be released;
Not addressed SLV mode will be entered.
B
To Master/Transmitter
Enter NAslave
MA82G5Cxx 数据手册
MEGAWIN
(3) Slav e/Transmitter Mode
Set AA
A8H
Own SLA+R has been received;
ACK has been returned.
or
B0H
Arbitration lost in SLA+R/W as master;
Own SLA+R has been received;
ACK has been returned.
(STA,STO,SI,AA)=(0,0,0,0)
Last data byte will be transmitted;
ACK will be received.
(STA,STO,SI,AA)=(0,0,0,1)
Data byte will be transmitted;
ACK will be received.
C8H
C0H
B8H
Last data byte in SIDAT has been transmitted;
ACK has been received.
Data byte or Last data byte in SIDAT has been transmitted;
NOT ACK has been received.
Data byte in SIDAT has been transmitted;
ACK has been received.
(STA,STO,SI,AA)=(0,0,0,0)
Last data byte will be transmitted;
ACK will be received.
(STA,STO,SI,AA)=(1,0,0,1)
Switch to not addressed SLV mode;
Own SLA will be recognized;
A START will be transmitted when
the bus becomes free.
(STA,STO,SI,AA)=(1,0,0,0)
Switch to not addressed SLV mode;
No recognition of own SLA;
A START will be transmitted when
the bus becomes free.
(STA,STO,SI,AA)=(0,0,0,1)
Switch to not addressed SLV mode;
Own SLA will be recognized.
(STA,STO,SI,AA)=(0,0,0,1)
Data byte will be transmitted;
ACK will be received.
(STA,STO,SI,AA)=(0,0,0,0)
Switch to not addressed SLV mode;
No recognition of own SLA.
Enter NAslave
`
Send a START
when bus becomes free
C
To Master Mode
MEGAWIN
MA82G5Cxx 数据手册
223
(4) Slav e/Receiv er Mode
Set AA
60H
Own SLA+W has been received;
ACK has been returned.
or
68H
Arbitration lost in SLA+R/W as master;
Own SLA+W has been received;
ACK has been returned.
(STA,STO,SI,AA)=(0,0,0,0)
Data byte will be received;
NOT ACK will be returned.
(STA,STO,SI,AA)=(0,0,0,1)
Data byte will be received;
ACK will be returned.
88H
80H
Data byte has been received;
NOT ACK has been returned.
Data byte has been received;
ACK has been returned.
(STA,STO,SI,AA)=(0,0,0,0)
Data will be received;
NOT ACK will be returned.
A0H
A STOP or repeated START has been
received while still addressed as SLV/REC.
(STA,STO,SI,AA)=(1,0,0,1)
Switch to not addressed SLV mode;
Own SLA will be recognized;
A START will be transmitted when
the bus becomes free.
(STA,STO,SI,AA)=(1,0,0,0)
Switch to not addressed SLV mode;
No recognition of own SLA;
A START will be transmitted when
the bus becomes free.
(STA,STO,SI,AA)=(0,0,0,1)
Data will be received;
ACK will be returned.
(STA,STO,SI,AA)=(0,0,0,1)
Switch to not addressed SLV mode;
Own SLA will be recognized.
(STA,STO,SI,AA)=(0,0,0,0)
Switch to not addressed SLV mode;
No recognition of own SLA.
Enter NAslave
Send a START
when bus becomes free
`
C
To Master Mode
224
MA82G5Cxx 数据手册
MEGAWIN
(5) Slav e/Receiv er Mode (For General Call)
Set AA
70H
General Call address has been received;
ACK has been returned.
or
78H
Arbitration lost in SLA+R/W as master;
General Call address has been received;
ACK has been returned.
(STA,STO,SI,AA)=(0,0,0,0)
Data byte will be received;
NOT ACK will be returned.
(STA,STO,SI,AA)=(0,0,0,1)
Data byte will be received;
ACK will be returned.
98H
90H
Previously addressed with General Call address;
Data byte has been received;
NOT ACK has been returned.
Previously addressed with General Call address;
Data byte has been received;
ACK has been returned.
(STA,STO,SI,AA)=(0,0,0,0)
Data will be received;
NOT ACK will be returned.
A0H
A STOP or repeated START has been
received while still addressed as SLV/REC.
(STA,STO,SI,AA)=(1,0,0,1)
Switch to not addressed SLV mode;
Own SLA will be recognized;
A START will be transmitted when
the bus becomes free.
(STA,STO,SI,AA)=(1,0,0,0)
Switch to not addressed SLV mode;
No recognition of own SLA;
A START will be transmitted when
the bus becomes free.
(STA,STO,SI,AA)=(0,0,0,1)
Data will be received;
ACK will be returned.
(STA,STO,SI,AA)=(0,0,0,1)
Switch to not addressed SLV mode;
Own SLA will be recognized.
(STA,STO,SI,AA)=(0,0,0,0)
Switch to not addressed SLV mode;
No recognition of own SLA.
Enter NAslave
Send a START
when bus becomes free
`
C
To Master Mode
MEGAWIN
MA82G5Cxx 数据手册
225
23.4. TWSI 寄存器
SIADR: 双线串行接口地址寄存器
SFR 页 = 0 only
SFR 地址
= 0xD1
7
6
5
A6
A5
A4
R/W
R/W
R/W
4
A3
R/W
RESET= 0000-0000
3
2
A2
A1
R/W
R/W
1
A0
0
GC
R/W
R/W
CPU 可以直接对此寄存器进行读写。SIADR 不受 TWSI 硬件的影响。当 TWSI 处于主机模式时此寄存器的值会被
忽略。当处于从机模式时,寄存的高七位必须被用于本机的从机地址,并且当最低位(GC)置位时,广播地址
(00H)会被识别,否则忽略。在 START 状态后,最高位与从 TWSI 总线上收到的首位相对应。
SIDAT: 双线串行接口数据寄存器
SFR 页 = 0 only
SFR 地址
= 0xD2
7
6
5
D7
D6
D5
R/W
R/W
R/W
4
D4
R/W
RESET= 0000-0000
3
2
D3
D2
R/W
R/W
1
D1
0
D0
R/W
R/W
此寄存器保存着一字节将要发送或者刚接收到的数据。在没有进行移位工作时,CPU 可以直接对此寄存器进行读
写。这种情况发生在 TWSI 正处于一个被定义的状态并且串行中断标志位(SI)置位。只要 SI 被置位,SIDAT 中
的数据总是保持稳定的。在数据被移出时,总线上的数据同时移入,SIDAT 总保存着总线上出现的最后一个字节数
据。因此在仲裁失败时,主机切换为从机的过程会在 SIDAT 中产生一个正确的数据。
SIDAT 与 ACK 标志位组成一个 9 位的移位寄存器,可以在移入或移出一个 8 位的数据后,跟随一个应答位。ACK
标志由 TWSI 硬件控制,CPU 访问不到。串行数据在 TWI_SCL 的上升沿移入 SIDAT 寄存器。当一字节的数据完
全移入 SIDAT 后,SIDAT 中的数据将是可以用的,并且控制逻辑会在第 9 个时钟周期返回一个应答位。串行数据
在 TWI_SCL 的下降沿从 SIDAT 寄存器移出。
CPU 向 SIDAT 写入数据后,SD7 位将首先出现在 TWI_SDA 线上。9 个时钟周期后,SIDAT 中的 8 位数据将被发
送完成,并且通过应答位返回 ACK 标志。注意发送出去的 8 位数据会移回 SIDAT。
SICON: 双线串行接口控制寄存器
SFR 页 = 0 only
SFR 地址
= 0xD4
7
6
5
CR2
ENSI
STA
R/W
R/W
R/W
4
STO
R/W
RESET= 0000-0000
3
2
SI
AA
R/W
R/W
1
CR1
0
CR0
R/W
R/W
CPU 可以直接读写此寄存器。其中两个位会受 TWSI 硬件的影响:SI 位会在串行中断请求时置位,STO 位会在总
线出现 STOP 状态时清零。STO 位也会在 ENS1=0 时清零。
Bit 7: CR2, TWSI 时钟速率选择位 2 (与 CR1 和 CR0 一起使用)
Bit 6: ENSI, TWSI 硬件使能位
ENSI 为 "0"时,TWI_SDA 与 TWI_SCL 输出为高阻态,TWI_SDA 与 TWI_SCL 输入信号被忽略,TWSI 处于被寻
址(not-addressed)从机状态,SICON 的 STO 位被强制置为‖0‖,但不影响其它位。TWI_SDA 与 TWI_SCL 可用
作通用 I/O 引脚。ENSI 为 "1"时,TWSI 使能,TWI_SDA 和 TWI_SCL 端口锁存器(比如 P4.1 和 P4.0)必须设置为
逻辑 1 并且 I/O 模式必须配置成开漏模式以用于接下来的串行通讯。
Bit 5: STA, 开始(START)标志
当 STA 位被置位进入主机模式时,TWSI 硬件将检查串行总线的状态,若总线空闲将产生一个开始信号。若总线
忙,TWSI 将等待 STOP 信号出现并且在一个延迟后产生 START 信号。如果 STA 在 TWSI 已经是处于主机模式并
226
MA82G5Cxx 数据手册
MEGAWIN
且一个或多个字节已被发送或接收的情况下置位,TWSI 会发送一个 REPEATED START 信号。STA 可以在任何
时候置位,也可以在 TWSI 是一个被寻址的从机时置位。当 STA 位复位时,无 START 或 REPEATED START 信
号产生。
Bit 4: STO, 停止(STOP)标志
当 TWSI 处于主机模式时,置位 STO 会向串行总线发送一个 STOP 信号。当在总线上检测到 STOP 信号时,
TWSI 硬件清除 STO 标志。在从机模式时,置位 STO 标志可从总线错误状态恢复。在这种情况下不会向总线发送
STOP 信号,但是 TWSI 硬件表现就像已经接收到一个 STOP 信号,并且转换到未被寻址的从机接收模式。STOP
标志自动被硬件清零。如果 STA 与 STO 位同时置位,若 TWSI 处于主机模式将产生一个 STOP 信号(当处于从机
模式时将产生一个内部的 STOP 信号,但不发送),接着发送一个 START 信号。
Bit 3: SI, 串行中断标志
当一个新的 TWSI 状态出现在 SISTA 寄存器时,SI 标志会被硬件置位。如果 TWSI 中断允许,中断服务程序将会
运行。唯一不会使 SI 置位的状态是指出没有相关状态信息可以获得的 F8H。当 SI 置位时,TWI_SCL 线上的低电
平会延长,并且串行传输暂停。TWI_SCL 线上的高电平不受 SI 标志影响。SI 必须由软件清零。SI 标志复位时不
会产生中断请求,TWI_SCL 线上的时钟也不会延长。
Bit 2: AA, 确认应答标志
如果 AA 标志设为 ―1‖,一个 ACK(TWI_SDA 低电平)将在 SCL 的应答时钟周期内回复,当:
1)接收到本机的从机地址
2) TWSI 处于主机/接收模式时,接收到一字节的数据
3) TWSI 处于已被寻址的从机/接收模式时,接收到一字节的数据
如果 AA 标志设为―0‖,一个 NACK( TWI_SDA)高电平)将在 TWI_SCL 的应答时钟周期内回复,当:
1) TWSI 处于主机/接收模式时,接收到一字节的数据
2) TWSI 处于已被寻址的从机/接收模式时,接收到一字节的数据
Bit 7, 1~0: CR2, CR1 和 CR0 时钟速率选择位
TWSI 处于主机模式时,这三个位决定串行时钟频率。当 TWSI 处于从机模式时,时钟频率并不重要,因为 TWSI
会自动同步任何主机的时钟频率,高达 100 KHz。表 23–1 给出不同的时钟速率设置:
表 23–1. TWSI 串行时钟速率
CR2
CR1
CR0
TWSI 时钟选择
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
SYSCLK/8
SYSCLK/16
SYSCLK/32
SYSCLK/64
SYSCLK/128
SYSCLK/256
S1TOF/6
T0OF/6
TWSI 时钟速率 @
SYSCLK=12MHz
1.5 MHz
750 KHz
375 KHz
187.5 KHz
93.75 KHz
46.875 KHz
Variable
Variable
注意:
1. SYSCLK 是系统时钟
2. S1TOF 是 UART1 波特率定时器溢出
3. T0OF 定时器 0 溢出
MEGAWIN
MA82G5Cxx 数据手册
227
SISTA: 双线串行接口状态寄存器
SFR 页 = 0 only
SFR 地址
= 0xD3
7
6
5
SIS7
SIS6
SIS5
R
R
R
4
SIS4
RESET= 1111-1000
3
2
SIS3
SIS2
R
R
R
1
SIS1
0
SIS0
R
R
SISTA 是一个 8 位的只读寄存器。低三位总是为 0,高五位保存状态编码,可以组成多个可能的状态编码。当
SISTA 为 F8H 时,没有串行中断请求。SISTA 的其它值用于定义相应的 TWSI 状态。当进入这些状态的一种时,
会请求串行中断(SI=1)。在 SI 硬件置位时,一个有效的状态编码会存于 SISTA 中。
另外,状态 00H 表示总线错误。当一个 START 或 STOP 信号在不符合规定的位置发送时会产生总线错误,如一
个地址/数据的内部或者刚好在应答位上。
AUXR3: 辅助控制寄存器 3
SFR 页 = 0 only
SFR 地址
= 0xA4
7
6
5
STAF
STOF
BPOC1
R/W
R/W
R/W
4
BPOC0
复位值 = 0000-0000
3
2
ALEPS0
TWIPS1
R/W
R/W
R/W
1
TWIPS0
0
T2PS0
R/W
R/W
Bit 2~1: TWIPS1~0, TWSI 端口选择 [1:0].
TWIPS1~0
TWI_SCL
TWI_SDA
00
P4.0
P4.1
01
P6.0
P6.1
10
P3.0
P3.1
11
P3.4
P3.5
228
MA82G5Cxx 数据手册
MEGAWIN
23.5. TWI1 寄存器
SI1ADR: 双线串行接口 1 地址寄存器
SFR 页 = 1 only
SFR 地址
= 0xD1
7
6
5
A61
A51
A41
R/W
R/W
R/W
4
A31
R/W
RESET= 0000-0000
3
2
A21
A11
R/W
R/W
1
A01
0
GC1
R/W
R/W
CPU 可以直接对此寄存器进行读写。SI1ADR 不受 TWI1 硬件的影响。当 TWI1 处于主机模式时此寄存器的值会被
忽略。当处于从机模式时,寄存的高七位必须被用于本机的从机地址,并且当最低位(GC1)置位时,广播地址
(00H)会被识别,否则忽略。在 START 状态后,最高位与从 TWI1 总线上收到的首位相对应。
SI1DAT: 双线串行接口 1 数据寄存器
SFR 页 = 1 only
SFR 地址
= 0xD2
7
6
5
D71
D61
D51
R/W
R/W
R/W
4
D41
R/W
RESET= 0000-0000
3
2
D31
D21
R/W
R/W
1
D11
0
D01
R/W
R/W
此寄存器保存着一字节将要发送或者刚接收到的数据。在没有进行移位工作时,CPU 可以直接对此寄存器进行读
写。这种情况发生在 TWI1 正处于一个被定义的状态并且串行中断标志位(SI1)置位。只要 SI 被置位,SI1DAT
中的数据总是保持稳定的。在数据被移出时,总线上的数据同时移入,SI1DAT 总保存着总线上出现的最后一个字
节数据。因此在仲裁失败时,主机切换为从机的过程会在 SI1DAT 中产生一个正确的数据。
SI1DAT 与 ACK 标志位组成一个 9 位的移位寄存器,可以在移入或移出一个 8 位的数据后,跟随一个应答位。
ACK 标志由 TWSI 硬件控制,CPU 访问不到。串行数据在 TWI1_SCL 的上升沿移入 SI1DAT 寄存器。当一字节的
数据完全移入 SI1DAT 后,SI1DAT 中的数据将是可以用的,并且控制逻辑会在第 9 个时钟周期返回一个应答位。
串行数据在 TWI1_SCL 的下降沿从 SI1DAT 寄存器移出。
CPU 向 SI1DAT 写入数据后,D71 位将首先出现在 TWI1_SDA 线上。9 个时钟周期后,SI1DAT 中的 8 位数据将
被发送完成,并且通过应答位返回 ACK 标志。注意发送出去的 8 位数据会移回 SI1DAT。
SI1CON: 双线串行接口 1 控制寄存器
SFR 页 = 1 only
SFR 地址
= 0xD4
7
6
5
CR21
ENSI1
STA1
R/W
R/W
R/W
RESET= 0000-0000
4
3
2
STO1
SI1
AA1
R/W
R/W
R/W
1
CR11
0
CR01
R/W
R/W
CPU 可以直接读写此寄存器。其中两个位会受 TWI1 硬件的影响:SI1 位会在串行中断请求时置位,STO1 位会在
总线出现 STOP 状态时清零。STO1 位也会在 ENS1=0 时清零。
Bit 7: CR21, TWI1 时钟速率选择位 2 (与 CR11 和 CR01 一起使用)
Bit 6: ENSI1, TWI1 硬件使能位
ENSI 为 "0"时,TWI1_SDA 与 SCL 输出为高阻态,TWI1_SDA 与 TWI1_SCL 输入信号被忽略,TWI1 处于被寻址
(not-addressed)从机状态,SI1CON 的 STO1 位被强制置为‖0‖,但不影响其它位。TWI1_SDA 与 TWI1_SCL
可用作通用 I/O 引脚。ENSI 为 "1"时,TWI1 使能,TWI1_SDA 和 TWI1_SCL 端口锁存器(比如 P1.1 和 P1.0)必须
设置为逻辑 1 并且 I/O 模式必须配置成开漏模式以用于接下来的串行通讯。
Bit 5: STA1, 开始(START)标志
当 STA1 位被置位进入主机模式时,TWI1 硬件将检查串行总线的状态,若总线空闲将产生一个开始信号。若总线
忙,TWI1 将等待 STOP 信号出现并且在一个延迟后产生 START 信号。如果 STA1 在 TWI1 已经是处于主机模式
MEGAWIN
MA82G5Cxx 数据手册
229
并且一个或多个字节已被发送或接收的情况下置位,TWI1 会发送一个 REPEATED START 信号。STA1 可以在任
何时候置位,也可以在 TWSI 是一个被寻址的从机时置位。当 STA1 位复位时,无 START 或 REPEATED START
信号产生。
Bit 4: STO1, 停止(STOP)标志
当 TWI1 处于主机模式时,置位 STO1 会向串行总线发送一个 STOP 信号。当在总线上检测到 STOP 信号时,
TWI1 硬件清除 STO1 标志。在从机模式时,置位 STO1 标志可从总线错误状态恢复。在这种情况下不会向总线发
送 STOP 信号,但是 TWI1 硬件表现就像已经接收到一个 STOP 信号,并且转换到未被寻址的从机接收模式。
STOP 标志自动被硬件清零。如果 STA1 与 STO1 位同时置位,若 TWI1 处于主机模式将产生一个 STOP 信号(当
处于从机模式时将产生一个内部的 STOP 信号,但不发送),接着发送一个 START 信号。
Bit 3: SI1,串行接口 1 中断标志
当一个新的 TWI1 状态出现在 SI1STA 寄存器时,SI1 标志会被硬件置位。如果 TWI1 中断允许,中断服务程序将
会运行。唯一不会使 SI1 置位的状态是指出没有相关状态信息可以获得的 F8H。当 SI1 置位时,TWI1_SCL 线上
的低电平会延长,并且串行传输暂停。TWI1_SCL 线上的高电平不受 SI1 标志影响。SI1 必须由软件清零。SI1 标
志复位时不会产生中断请求,TWI1_SCL 线上的时钟也不会延长。
Bit 2: AA1, 确实应答标志
如果 AA1 标志设为 ―1‖,一个 ACK(TWI1_SDA 低电平)将在 TWI1_SCL 的应答时钟周期内回复,当:
1) 接收到本机的从机地址
2) TWI1 处于主机/接收模式时,接收到一字节的数据
3) TWI1 处于已被寻址的从机/接收模式时,接收到一字节的数据
如果 AA1 标志设为―0‖,一个 NACK( TWI1_SDA 高电平)将在 TWI1_SCL 的应答时钟周期内回复,当:
1) TWI1 处于主机/接收模式时,接收到一字节的数据
2) TWI1 处于已被寻址的从机/接收模式时,接收到一字节的数据
Bit 7, 1~0: CR21, CR11 和 CR01 时钟速率选择位
TWI1 处于主机模式时,这三个位决定串行时钟频率。当 TWI1 处于从机模式时,时钟频率并不重要,因为 TWI1
会自动同步任何主机的时钟频率,高达 100 KHz。表 23–12 给出不同的时钟速率设置:
表 23–2. TWI1 串行时钟速率
CR21
CR11
CR01
TWSI 时钟选择
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
SYSCLK/8
SYSCLK/16
SYSCLK/32
SYSCLK/64
SYSCLK/128
SYSCLK/256
S1TOF/6
T0OF/6
TWI1 时钟速率@
SYSCLK=12MHz
1.5 MHz
750 KHz
375 KHz
187.5 KHz
93.75 KHz
46.875 KHz
Variable
Variable
注意:
1. SYSCLK 是系统时钟
2. S1TOF 是 UART1 波特率定时器溢出
3. T0OF 定时器 0 溢出
230
MA82G5Cxx 数据手册
MEGAWIN
SI1STA: 双线串行接口 1 状态寄存器
SFR 页 = 1 only
SFR 地址
= 0xD3
7
6
5
SIS71
SIS61
SIS51
R
R
R
4
SIS41
RESET= 1111-1000
3
2
SIS31
SIS21
R
R
R
1
SIS11
0
SIS01
R
R
SI1STA 是一个 8 位的只读寄存器。低三位总是为 0,高五位保存状态编码,可以组成多个可能的状态编码。当
SI1STA 为 F8H 时,没有串行中断请求。SI1STA 的其它值用于定义相应的 TWI1 状态。当进入这些状态的一种
时,会请求串行中断(SI1=1)。在 SI1 硬件置位时,一个有效的状态编码会存于 SI1STA 中。
另外,状态 00H 表示总线错误。当一个 START 或 STOP 信号在不符合规定的位置发送时会产生总线错误,如一
个地址/数据的内部或者刚好在应答位上。
AUXR6: 辅助寄存器 6
SFR 页 = 3 only
SFR 地址
= 0xA4
7
6
--R/W
R/W
5
TWI1PS1
4
TWI1PS0
R/W
R/W
复位值 = 0000-0000
3
2
C1IC4S0
C1PS0
R/W
R/W
1
PCAPS0
0
S1PS2
R/W
R/W
Bit 5~4: TWI1PS1~0, TWI1 端口选择 [1:0].
TWI1PS1~0
TWI1_SCL
TWI1_SDA
00
P4.2
P4.3
01
P6.2
P6.3
10
P3.2
P3.3
11
P0.3
P0.4
MEGAWIN
MA82G5Cxx 数据手册
231
24. 串行接口侦测(SID/STWI)
串行接口侦测模块总是监控双线串行接口(TWI)的―Start‖和―Stop‖状态。TWI2_SCL 是串行时钟信号和 TWI2_SDA
是串行数据信号。如果任何匹配条件被侦测到,硬件设置 STAF 和 STOF 标志位。软件可以决定这两个标志或设置
SIDFIE (SFIE.7) 与系统标志共享中断向量。并且 TWI2_SCL 位于 nINT1 将帮助 MCU 通过 nINT1 中断来判断串行
数据。软件可以说使用这些资源来实施一个可变的 TWI 从机设备。
24.1. SID (STWI) 结构
图 24–1 展示了 STAF 和 STOF 侦测的结构,中断结构和事件侦测波形
图 24–1. 串行接口侦测结构
ESF
(EIE1.3)
AUXR3.7
STAF
STWI_SDA input
(S0MI)
Transition
Detection
SIDFIE
(SFIE.7)
SID Flags
Interrupt
STOF
AUXR3.6
SYSCLK
STWI_SCL input
(nINT1)
enable
STWI_SDA
STWI_SCL
Set STAF
232
MA82G5Cxx 数据手册
Set STOF
MEGAWIN
24.2. SID 寄存器
AUXR3: 辅助寄存器 3
SFR 页 = 0 only
SFR 地址
= 0xA4
7
6
STAF
STOF
R/W
R/W
5
BPOC1
4
BPOC0
R/W
R/W
复位值 = 0000-0000
3
2
ALEPS0
TWIPS1
R/W
R/W
1
TWIPS0
0
T2PS0
R/W
R/W
1
BOF0IE
0
WDTFIE
R/W
R/W
Bit 7: STAF, TWI2 启动(Start)标志侦测
0:写―0‖软件清零
1:硬件置位表明启动(START)条件出现在 TWI2 总线上
Bit 6: STOF, TWI2 停止(Stop) 标志侦测
0: 写―0‖软件清零
1: 硬件置位表明启动(STOP)条件出现在 TWI2 总线上
SFIE: System Flag Interrupt Enable Register
SFR 页 = 0~F
SFR 地址
= 0x8E
复位值 = 0110-X000
7
6
5
4
3
2
SIDFIE
MCDRE
MCDFIE
RTCFIE
-BOF1IE
R/W
R/W
R/W
R/W
W
R/W
Bit 7: SIDFIE,串行接口侦测标志中断使能
0:禁止 SID 标志(STAF 或 STOF)中断
1:使能 SID 标志(STAF 或 STOF)中断
MEGAWIN
MA82G5Cxx 数据手册
233
24.3. SID 示例代码
234
MA82G5Cxx 数据手册
MEGAWIN
25. 蜂鸣器
蜂鸣器功能输出信号产生声音在 BEEP 引脚。信号来自 ILRCO 的分频,频率范围大约在 1, 2 或 4 kHz 。图 25–1
所示蜂鸣器发生器电路。但是 ILRCO 不是精确的时钟源。更详细的 ILRCO 频率偏差范围请参考章节―34.5 ILRCO
特性‖ 。
图 25–1. 蜂鸣器发生器
SFR P4.4
0
¸32
1
BEEP
2
¸16
ILRCO(32KHz)
3
¸8
00: P4.4
01: ILRCO/32 (~= 1K)
10: ILRCO/16 (~= 2K)
11: ILRCO/8 (~= 4K)
BPOC[1:0]
(AUXR3.5~4)
25.1. 蜂鸣器寄存器
AUXR3: 辅助寄存器 3
SFR 页 = 0 only
SFR 地址
= 0xA4
7
6
STAF
STOF
R/W
R/W
5
BPOC1
4
BPOC0
R/W
R/W
复位值 = 0000-0000
3
2
ALEPS0
TWIPS1
R/W
R/W
1
TWIPS0
0
T2PS0
R/W
R/W
Bit 5~4: BPOC1~0, 蜂鸣器输出控制位.
BPOC[1:0]
P4.4 功能
I/O 模式
00
P4.4
By P4M0.4
01
ILRCO/64
By P4M0.4
10
ILRCO/32
By P4M0.4
11
ILRCO/16
By P4M0.4
蜂鸣器功能在 P4.4,推荐设置 P4M0.4 为―1‖使 P4.4 工作在推挽输出模式。
MEGAWIN
MA82G5Cxx 数据手册
235
25.2. 蜂鸣器示例代码
236
MA82G5Cxx 数据手册
MEGAWIN
26. 键盘中断 (KBI)
键盘中断功能主要用于当 KBI.7~0 等于或不等于某个值时产生一个中断,这个功能可以用作总线地址识别或键盘键
码识别。
有 3 个特殊功能寄存器与此功能相关。键盘中断掩码寄存器(KBMASK) 用来定义 P2 口哪些引脚可以产生中断;键
盘样式寄存器(KBPATN)用来定义与 P2 口值进行比较的值,比较匹配时硬件置键盘中断控制寄存器(KBCON)中的
键盘中断标志(KBIF) ,若 EIE1 中的 EKBI 中断允许且 EA=1,则还会产生一个中断。键盘中断控制寄存器(KBCON)
中的 PATN_SEL 位用来定义比较是―相等‖还是―不等‖匹配。键盘输入可以通过 AUXR1.7~6 的 P1KBIH 和 P3KBIL
选择 P0,P2,P5 和{P4.3~4.0, P3.7~P3.4}。默认下 P0 是键盘输入。
为了使用键盘中断作为―键盘‖中断,用户需要设置 KBPATN=0xFF 和 PATN_SEL=0 (不相等),然后将任意按键连
接到 KBMASK 寄存器定义的相应端口,按下时硬件就会置位中断标志 KBIF,并当中断使能时产生中断。这个中断
可以将 CPU 从空闲模式或掉电模式下唤醒。这个功能在手持设备,电池供电系统等要求低功耗而且易用的设备上
特别有用。
MEGAWIN
MA82G5Cxx 数据手册
237
26.1. KBI 结构
图 26–1. 键盘中断(KBI) 结构
KBI0
KBPATN.0
equal.0
Comparator
0
not-equal.0
KBMASK.0
KBI1
KBPATN.1
not-equal.0
not-equal.1
not-equal.2
not-equal.3
KBPATN Register
not-equal.4
not-equal.5
not-equal.6
not-equal.7
KBMASK Register
KBPATN[7:0]
KBMASK[7:0]
equal.1
Comparator
1
Sampling Type
Selection
not-equal.6
Pattern Not Equal
0
SYSCLK
1
0
SYSCLK x 3
1
SYSCLK/6 x 3
2
T3OF x 3
3
KBMASK.1
KBI2
Pattern Equal
KBI3
3
clock
Filter
KBMASK.x = 1,
to enable compare output
KBI4
KBI5
equal.0
equal.1
equal.2
equal.3
KBI6
KBI7
KBPATN.7
equal.4
equal.5
equal.6
equal.7
equal.7
Comparator
7
not-equal.7
(KBCON.7~6)
T3OF
or TL3OF if T3SPL=1
KBCON Register
KBMASK.7
KBCS1
238
KBCS[1:0]
SYSCLK
KBCS0
--
--
--
MA82G5Cxx 数据手册
--
PATN_
SEL
KBIF
KBI
Interrupt
MEGAWIN
26.2. KBI 寄存器
下面是键盘中断(KBI)操作相关的特殊功能寄存器:
KBPATN: 键盘样式寄存器
SFR 页 = 0~F
SFR 地址
= 0xD5
RESET= 1111-1111
7
6
5
4
3
2
1
0
KBPATN.7 KBPATN.6 KBPATN.5 KBPATN.4 KBPATN.3 KBPATN.2 KBPATN.1 KBPATN.0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
1
PATN_SEL
0
KBIF
R/W
R/W
Bit 7~0: KBPATN.7~0: 键盘样式。复位值是 0xFF
KBCON: 键盘控制寄存器
SFR 页 = 0~F
SFR 地址
= 0xD6
7
6
KBCS1
KBCS0
R/W
R/W
5
--
4
--
W
W
RESET= XXXX-XX01
3
2
--W
W
Bit 7~6: KBCS1~0, KBI 滤波模式控制
KBCS1~0
KBI 输入滤波模式
00
禁止
01
SYSCLK x 3
10
SYSCLK/6 x 3
11
T3OF x 3
Bit 5~2: 保留。当 KBCON 写入时,这些位软件必须写‖0‖
Bit 1: PATN_SEL, 样式匹配极性选择
0:键盘输入不等于 KBPATN 中用户定义的样式时产生中断
1:键盘输入等于 KBPATN 中用户定义样式时产生中断
Bit 0: KBIF, 键盘中断标志。KBIF 缺省值是―1‖
0:必须由软件写入‗0‘来清零
1:键盘端口值匹配用户定义的 KBPATN、KBMASK 和 PATN_SEL 设置条件时置位
KBMASK: 键盘中断掩码寄存器
SFR 页 = 0~F
SFR 地址
= 0xD7
RESET= 0000-0000
7
6
5
4
3
2
1
0
KBMASK.7 KBMASK.6 KBMASK.5 KBMASK.4 KBMASK.3 KBMASK.2 KBMASK.1 KBMASK.0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
KBMASK.7: 置位时,使能 Px.7 作为键盘中断源 (KBI7)
KBMASK.6: 置位时,使能 Px.6 作为键盘中断源 (KBI6)
KBMASK.5: 置位时,使能 Px.5 作为键盘中断源 (KBI5)
KBMASK.4: 置位时,使能 Px.4 作为键盘中断源 (KBI4)
KBMASK.3: 置位时,使能 Px.3 作为键盘中断源 (KBI3)
KBMASK.2: 置位时,使能 Px.2 作为键盘中断源 (KBI2)
KBMASK.1: 置位时,使能 Px.1 作为键盘中断源 (KBI1)
KBMASK.0: 置位时,使能 Px.0 作为键盘中断源 (KBI0)
x = 0, 2, 5 or 4/3.
MEGAWIN
MA82G5Cxx 数据手册
239
AUXR1: 辅助控制寄存器 1
SFR 页 = 0~F
SFR 地址
= 0xA2
7
6
5
KBIPS1
KBIPS0
SPIPS0
R/W
R/W
R/W
4
S1PS1
POR+复位值 = 0000-0000
3
2
1
S1PS0
T01PS0
EXTRAM
R/W
R/W
R/W
R/W
0
DPS
R/W
Bit 7~6: KBIPS1~0, KBI 端口选择 [1:0].
KBIPS1~0
KBI.7~0
00
P0.7 ~ P0.0
01
P2.7 ~ P2.0
10
P5.7 ~ P5.0
11
P4.3~P4.0, P3.7~P3.4
240
MA82G5Cxx 数据手册
MEGAWIN
27. 10 位 ADC
MA82G5C64 的 ADC 子系统由一个模拟多路器(AMUX)和一个 500 k sps、10 位逐次逼近型模数转换器组成。
多路器(AMUX)可以通过特殊功能寄存器进行配置通道,如 图 27–1.。 ADC 运行在单一节点模式,并且可以配置
测量 16 个 ADC 输入引脚的任何一个口。仅当 ADC 控制寄存器(ADCON0) 的 ADCEN 位被置逻辑 1 的时候 ADC
子系统被使能,ADCEN 设置为逻辑 0 的话 ADC 子系统低电关闭。
27.1. ADC 结构
图 27–1. ADC 方框图
(P1.0) AIN0
AMUX
(P1.1) AIN1
(P1.2) AIN2
(P1.3) AIN3
(P1.4) AIN4
B9
B8
B7
B6
B5
B4
B3
B2
ADCDH
B1
B0
--
--
--
--
--
--
ADCDL
(P1.5) AIN5
(P1.6) AIN6
(P1.7) AIN7
(P5.0) AIN8
10
10-Bit
ADC
AIN
(P5.1) AIN9
AD0CFG1
Offset Cancellation
(P5.2) AIN10
(P5.3) AIN11
Load
(P5.4) AIN12
(P5.5) AIN13
(P5.6) AIN14
(P2.0) AIN15
SYSCLK
S3TOF
T4OF
/1
/2
/4
/8
/16
/32
ADC Clock
12MHz
(Max.)
ADCEN
--
CHS3
ADCI
ADCS
CH2
CH1
CH0
ADCON0
ADRJ
--
--
ADTM1
ADTM0
ADCFG0
S3TOF/2
T4OF/2
ADCKS2 ADCKS1 ADCKS0
or TL4OF
if T4SPL=1
MEGAWIN
MA82G5Cxx 数据手册
241
27.2. ADC 操作
ADC 最大转换速度可以达到 500 k sps。 ADC 转换时钟由 ADCFG0 寄存器的 ADCKS2~0 位决定是系统时钟分
频,还是 S1BRG 溢出或者定时器 0 的计时器溢出。 ADC 转换时钟不能超过 24 MHz.
转换完成后(ADCI 为 1), 转换结果从 ADC 结果寄存(ADCH,ADCL)中得到。作为单节点 ADC,转换结果
是:
ADC Result =
VIN x 1024
VDD Voltage
27.2.1. ADC 输入通道
模拟多路器(AMUX)选择输入口给 ADC, 允许任何一个 ADC 输入引脚成为被测量的单节点模式。通过 ADCON0 寄
存器的 CHS3~0 位选择进入 ADC 测量的通道(见图 27–1)。对被选择的引脚测量的是对地(GND)电压。
27.2.2. ADC 参考电压
27.2.3. 开始一个转换
在使用 ACD 功能之前,用户应:
1)
2)
3)
4)
5)
6)
7)
置 ADCEN 位启动 ADC 硬件
通过 ADCMS 来配置 ADC 的模式是单节点模式或全微分模式
通过 ADCKS2, ADCKS1 和 ADCKS0 位配置 ADC 输入时钟
通过 CHS3, CHS2,CHS1 和 CHS0 选择模拟输入通道
配置 ADC 参考电压源
将所选引脚配置成仅模拟输入模式
通过 ADRJ 位配置 ADC 转换结果输出形式
现在,用户就可以置位 ADCS 来启动 AD 转换了。转换时间取决于 ADCKS2, ADCKS1 和 ADCKS0 位的设置。一
旦转换结束,硬件自动清除 ADCS 位,设置中断标志 ADCI,并将 10 位的转换结果按照 ADRJ 的设置存入 ADCH
和 ADCL。如果用户设置 ADCS 并且选择 ADC 的触发模式是 S1BRG/定时器 0 溢出或全速运行,这样 ADC 保持
不断转换直到 ADCEN 清零或 ADC 配置成手动模式。
如上所述,中断标志 ADCI,由硬件设置以表明一次转换完成。因此,有两种方法检测 AD 转换是否完成: (1) 软
件检测 ADCI 中断标志: (2) 设置 EIE1 寄存器 EADC 位和 IE 寄存器 EA 位使能 ADC 中断。这样,转换结束就会
跳入中断服务进程。 无论(1) 或 (2), ADCI 标志都必须在下次转换前用软件清零。
27.2.4. ADC 转换时间
用户可以根据输入的模拟信号频率选择合适的转换速度。ADC 的最大输入时钟是 6MHz 并且操作在固定的 30 个
ADC 转换时钟。 用户可以通过 ADCFG0 寄存器的 ADCKS2~0 来配置转换速率。例如,若 Fosc =12MHz 并且
ADCKS = SYSCLK/2,则输入的模拟信号频率应该不超过 200K Hz,这样可以保证转换精度。(转换速率=
12MHz/2/30 = 200KHz) 。
242
MA82G5Cxx 数据手册
MEGAWIN
27.2.5. I/O 引脚用于 ADC 功能
用作 A/D 转换的模拟输入引脚也可以保持其数字 I/O 输入输出功能。为了获得恰当的模拟性能,用作 ADC 的引脚
应当禁止其数字输出,可以按照引脚配置一节中的描述将引脚设为仅输入模式。当 ADCI7~0 引脚作为模拟信号输
入时并且数字信号输入不需要时,软件可以在 P1AIO 寄存器设置相应的引脚仅为模拟输入以便降低数字输入缓冲
器的功耗。模拟输入功能的端口配置描述参考章节―13.2.2 端口 1 寄存器‖
27.2.6. 空闲和掉电模式
在空闲和掉电模式下,若 ADC 功能打开,它将消耗一部分的电流。因此,为了降低待机和掉电模式下的功耗,可
以在进入掉电和空闲模式前关闭 ADC 硬件 (ADCEN =0)。
在掉电模式下,ADC 不工作。如果软件触发 ADC 操作在空闲模式下,ADC 将完成转换,并设置 ADC 中断标志,
ADCI。当设置 ADC 中断启用 (EIE1.1 EADC)时,ADC 中断将把 CPU 从空闲模式唤醒。
MEGAWIN
MA82G5Cxx 数据手册
243
27.3. ADC 寄存器
ADCON0: ADC 控制寄存器 0
SFR
Page = 0~F
SFR 地址
= 0xC4
7
6
5
ADCEN
-CHS3
R/W
R/W
R/W
4
ADCI
复位值 = 0000-0000
3
2
ADCS
CHS2
R/W
R/W
R/W
1
CHS1
0
CHS0
R/W
R/W
Bit 7: ADCEN, ADC 使能
0: 关闭 ADC 模块.
1: 开启 ADC 模块。在 ADCS 置位之前至少需要 5us 的 ADC 使能时间
Bit 6: 保留。当写 ADCON0 时,此位软件必须写―0‖
Bit 5: CHS3. 结合 CH2~0 选择 ADC 输入通道
Bit 4: ADCI, ADC 中断标志.
0: 此标志必须软件清零.
1: 一次 A/D 转换完成时此标志置位,若中断允许则还会产生一个中断.
Bit 3: ADCS. ADC 转换启动.
0: 转换启动.
1: 软件置此位启动 A/D 转换。转换完成,ADC 硬件会自动清除 ADCS 并且 ADCI 置位。ADCS 或 ADCI 为‖1‖时将
不会开始新的 A/D 转换。
Bit 2~0: CHS2 ~ CHS1, ADC 模拟多路器输入通道选择位
单节点模式:
CHS4~0
0 0 0 0 0
0 0 0 0 1
0 0 0 1 0
0 0 0 1 1
0 0 1 0 0
0 0 1 0 1
0 0 1 1 0
0 0 1 1 1
0 1 0 0 0
0 1 0 0 1
0 1 0 1 0
0 1 0 1 1
0 1 1 0 0
0 1 1 0 1
0 1 1 1 0
0 1 1 1 1
通道选择
AIN0 (P1.0)
AIN1 (P1.1)
AIN2 (P1.2)
AIN3 (P1.3)
AIN4 (P1.4)
AIN5 (P1.5)
AIN6 (P1.6)
AIN7 (P1.7)
AIN8 (P5.0)
AIN9 (P5.1)
AIN10 (P5.2)
AIN11 (P5.3)
AIN12 (P5.4)
AIN13 (P5.5)
AIN14 (P5.6)
AIN15 (P2.0)
ADCFG0: ADC 配置寄存器 0
SFR
Page = 0~F
SFR 地址
= 0xC3
7
6
5
ADCKS2
ADCKS1
ADCKS0
R/W
244
R/W
R/W
4
ADRJ
R/W
复位值 = 0000-0000
3
2
--W
MA82G5Cxx 数据手册
W
1
ADTM1
0
ADTM0
R/W
R/W
MEGAWIN
Bit 7~5: ADC 转换时钟选择位.
ADCKS[1:0]
ADC 时钟选项
0 0 0
SYSCLK
0 0 1
SYSCLK/2
0 1 0
SYSCLK/4
0 1 1
SYSCLK/8
1 0 0
SYSCLK/16
1 0 1
SYSCLK/32
1 1 0
S3TOF/2
1 1 1
T4OF/2
注:
1. SYSCLK 是系统时钟
2. S3TOF 是 UART3 波特率定时器溢出
3. T4OF 是定时器 4 溢出
Bit 4: ADRJ, ADC 结果向右对齐选择
0: 高 8 位转换结果存在 ADCH[7:0],低 2 位转换结果存在 ADCL[7:6]
1: 高 2 位转换结果存在 ADCH[1:0],低 8 位转换结果存在 ADCL[7:0]
如果 ADRJ = 0
ADCDH: ADC 数据高字节寄存器
SFR 页
= 0~F
SFR 地址
= 0xC6
7
6
5
(B9)
(B8)
(B7)
R
R
4
(B6)
R
R
ADCL: ADC 数据低字节寄存器
SFR 页
= 0~F
SFR 地址
= 0xC5
7
6
5
(B1)
(B0)
--
4
--
R
如果 ADRJ = 1
ADCDH
7
-R
ADCDL
7
(B7)
R
复位值 = xxxx-xxxx
3
2
(B5)
(B4)
1
(B3)
0
(B2)
R
R
R
复位值 = xxxx-xxxx
3
2
---
1
--
0
--
R
R
R
R
R
R
R
R
6
--
5
--
4
--
3
--
2
--
1
(B9)
0
(B8)
R
R
R
R
R
R
R
6
(B6)
5
(B5)
4
(B4)
3
(B3)
2
(B2)
1
(B1)
0
(B0)
R
R
R
R
R
R
R
在单节点模式下,转换结果是 10 位的无符号整数。输入的测量值从‖0‖到 VREF x 1023/1024。下表列举了向右对
齐和向左对齐数据。ADCDH 和 ADCDL 寄存器没有用到的位都是‖0‖。
输入电压
(单节点模式)
VREF+ x 1023/1024
VREF+ x 512/1024
VREF+ x 256/1024
VREF+ x 128/1024
0
ADCDH:ADCDL
(ADRJ = 0)
ADCDH:ADCDL
(ADRJ = 1)
0xFFC0
0x8000
0x4000
0x2000
0x0000
0x03FF
0x0200
0x0100
0x0080
0x0000
Bit 3~2: 保留。当写 ADCFG0 时,这些位软件必须写―0‖
MEGAWIN
MA82G5Cxx 数据手册
245
Bit 1~0: ADC 触发模式选择.
ADTM[1:0]
0 0
0 1
1 0
1 1
ADC 转换启动选择
ADCS 置位
定时器 0 溢出
全速模式
S3 BRG 溢出
ADCFG1: ADC 配置寄存器 1
SFR 页 = 0~F
SFR 地址
= 0xBB
7
6
5
---W
W
W
4
SIGN
R/W
复位值 = xxx0-0000
3
2
AOS.3
AOS.2
R/W
R/W
1
AOS.1
0
AOS.0
R/W
R/W
Bit 7~5:保留。当 ADCFG1 写入时,这些位软件必须写‖0‖
Bit 4~0: SIGN 和 AOS.3~0. 这个寄存器的值将校正保存在{ADCH, ADCL}上的 ADC 转换结果,用来消除偏移量。
软件通过设置 ADCON0.AZEN 可以动态收集 ADC 的偏移值,并且用这个值更新 AD0ROC,用于 ADC 转换结果的
自动修正。软件也可以将这个值存入到 MA82G5C64 的 IAP 区域,用它作为一个 ADC 偏移量校正的常规参数。下
表列举了 ADC 转换结果的 AD0ROC 校正值。
{Sign, AOS.[3:0]}
{ADCDH, ADCDL}的值
0_1111
ADC 转换结果 + 15
0_1110
ADC 转换结果 + 14
……
……
0_0010
ADC 转换结果 + 2
0_0001
ADC 转换结果 + 1
0_0000
ADC 转换结果 + 0
1_1111
ADC 转换结果 – 1
1_1110
ADC 转换结果 – 2
……
……
1_0001
ADC 转换结果 – 15
1_0000
ADC 转换结果 – 16
P1AIO: 端口 1 模拟仅输入
SFR 页 = 0 only
SFR 地址
= 0x92
7
6
5
P17AIO
P16AIO
P15AIO
R/W
R/W
R/W
4
P14AIO
R/W
复位值 = 0000-0000
3
2
P13AIO
P12AIO
R/W
R/W
1
P11AIO
0
P10AIO
R/W
R/W
1
P51AIO
0
P50AIO
R/W
R/W
0: 端口引脚有数字和模拟输入能力
1: 端口引脚仅是模拟输入。这位置位后,读对应的引脚寄存器位将会总是‖0‖
PxAIO2: 端口 x 模拟仅输入
SFR 页 = 1 only
SFR 地址
= 0x92
7
6
5
P20AIO
P56AIO
P55AIO
R/W
R/W
R/W
4
P54AIO
R/W
复位值 = 0000-0000
3
2
P53AIO
P52AIO
R/W
R/W
0: 端口引脚有数字和模拟输入能力
1: 端口引脚仅是模拟输入。这位置位后,读对应的引脚寄存器位将会总是‖0‖
246
MA82G5Cxx 数据手册
MEGAWIN
28. 模拟比较器 0/1/2 (AC0/AC1/AC2)
28.1. AC0/AC1/AC2 结构
图 28–1. 模拟比较器 0 方框图
Sampling Type
Selection
AC0PI0 (P0.2)
0
AC0PI1 (P0.3)
1
ACPI0
AC0PI2 (P0.4)
2
ACNI0
AC0PI3 (P0.5)
3
Analog Comparator 0 Structure
+
3
clock
Filter
AC0PIS[1:0]
SYSCLK
0
SYSCLK x 3
1
SYSCLK/6 x 3
2
T3OF x 3
3
AC0NI (P0.1)
AC0OUT to Port pin
or internal logic
AC0OUT
AC0M0
VDD
EAC0
SYSCLK
8R
(EIE1.7)
T3OF
0
AC0
Interrupt
AC0F
{AC0FLT1,AC0FLT}
(AUXR4.0, AC0MOD.2)
1
2
R X 16
AC0M1
14
15
AC0LP
AC0PDX AC0OUT
AC0F
AC0EN
NVRS0
NVRL
AC0INV
AC0M1
AC0ES to Timer 2/4
AC0M0
AC0CON
8R
NVRL
NVRS3
NVRS2
NVRS1
AC0FLT AC0PIS1 AC0PIS0
AC0MOD
NVRS[3:0]
C1IC2S1 C1IC2S0 C1IC0S1 C1IC0S0
AC1OE AC1FLT1 AC0OE AC0FLT1
AUXR4
Analog Comparator 0 behavior when AC0INV=1 & AC0FLT=0
Analog Comparator 0 behavior when AC0INV=0 & AC0FLT=1
AC0 Result
AC0 Result
Sampling
Timing
Sampling
Timing
AC0OUT
AC0OUT
(AC0INV=1)
(AC0INV=0)
AC0F
AC0F
If AC0M0=1 Clear by CPU If AC0M1=1
If AC0M0=1
If AC0M1=1
If AC0M1=1 Clear by CPU If AC0M0=1
图 28–2. 模拟比较器 1 方框图
Sampling Type
Selection
ACPI1
AC1PI (P0.7)
ACNI1
AC1NI (P0.6)
0
ACNI0
1
Analog Comparator 1 Structure
+
3
clock
Filter
SYSCLK
0
SYSCLK x 3
1
SYSCLK/6 x 3
2
T3OF x 3
3
AC1NIS
AC1OUT to Port pin
or internal logic
AC1OUT
AC1M0
EAC1
SYSCLK
(EIE2.1)
T3OF
AC1
Interrupt
ACF1
{AC1FLT1,AC1FLT}
(AUXR4.2, AC1MOD.2)
AC1M1
AC1LP
AC1PDX AC1OUT
AC1F
AC1EN
AC1INV
AC1M1
AC1M0
AC1NIS
--
AC1FLT
--
--
AC1ES to Timer 3
AC1CON
--
--
--
C1IC2S1 C1IC2S0 C1IC0S1 C1IC0S0
AC1MOD
MEGAWIN
AC1OE AC1FLT1 AC0OE AC0FLT1
AUXR4
MA82G5Cxx 数据手册
247
图 28–3. 模拟比较器 2 方框图
Sampling Type
Selection
ACPI2
AC2PI (P6.3)
ACNI2
AC2NI (P6.2)
0
ACNI0
1
Analog Comparator 2 Structure
+
3
clock
Filter
SYSCLK
0
SYSCLK x 3
1
SYSCLK/6 x 3
2
T3OF x 3
3
AC2NIS
AC2OUT to Port pin
or internal logic
AC2OUT
AC2M0
EAC2
SYSCLK
(EIE2.7)
T3OF
AC2
Interrupt
ACF2
{AC2FLT1,AC2FLT}
(AUXR7.0, AC2MOD.2)
AC2M1
AC2LP
AC2PDX AC2OUT
AC2F
AC2EN
AC2INV
AC2M1
AC2M0
AC2NIS
--
AC2FLT
--
--
AC2ES to Timer 4
AC2CON
--
--
--
--
AC2MOD
248
PBKS5
PBKS4
PBKS3
--
--
AC2OE AC2FLT1
AUXR7
MA82G5Cxx 数据手册
MEGAWIN
28.2. AC0/AC1/AC2 寄存器
AC0CON: 模拟比较器 0 控制&状态寄存器
SFR
Page = 0 only
SFR 地址
= 0x9E
复位值 = 00X0-0000
7
6
5
4
3
2
AC0LP
AC0PDX
AC0OUT
AC0F
AC0EN
AC0INV
R/W
R/W
R
R/W
R/W
R/W
1
AC0M1
0
AC0M0
R/W
R/W
Bit 7: AC0LP, 模拟比较器 0 低功耗使能
0: 禁止 AC0 低功耗模式
1: 使能 AC0 低功耗模式
Bit 6: AC0PDX, 掉电模式下模拟比较器 0 控制
0: 模拟比较器 0 在掉电模式下关闭
1: 模拟比较器 0 在掉电模式下继续运行
如果 AC0EN, AC0PDX 和 EAC0 已经置位, 比较器仅能在低电平或高电平模式把 CPU 从掉电模式中唤醒。
Bit 5: AC0OUT, 这是一个从比较器输出的只读位
AC0INV = 0
AC0 输入
ACPI0(+) > ACNI0(-)
AC0OUT = 1
ACPI0(+) < ACNI0(-)
AC0OUT = 0
AC0INV = 1
AC0OUT = 0
AC0OUT = 1
Bit 4: ACF0. 模拟比较器 0 中断标志位
0: 此位只能由软件清零
1: 当比较器输出满足 AC0M[1:0]指定的条件并且 AC0EN 为 1,此位置位。通过 EIE1.7 的置位/清零可以使能/禁止
这个中断。
Bit 3: AC0EN. 模拟比较器 0 使能
0: 清零这位将强制比较器输出低,并且从设置 ACF0 阻止进一步的事件
1: 置位使能比较器
Bit 2: AC0INV, 模拟比较器 0 输出反相
0: AC0 输出不反相
1: AC0 输出反相
Bit 1~0: AC0M[1:0], 模拟比较器 0 中断模式.
AC0M[1:0]
AC0 中断模式
0 0
保留
0 1
比较器 0 检测到输出下降沿
1 0
比较器 0 检测到输出上升沿
1 1
比较器 0 检测到输出跳变
AC0MOD: 模拟比较器 0 模式寄存器
SFR 页 = 0 only
SFR 地址
= 0x9F
7
6
5
NVRS3
NVRS2
NVRS1
R/W
R/W
R/W
4
NVRS0
R/W
复位值 = 0000-0000
3
2
NVRL
AC0FLT
R/W
R/W
1
AC0PIS1
0
AC0PIS0
R/W
R/W
Bit 7~5: NVRS[3:0], 模拟比较器 0 负端参考电压输入选择。如下所示,这 4 个位决定了模拟比较器负端(V-)的输
入源。
NVRL = 0, 选择高区
MEGAWIN
MA82G5Cxx 数据手册
249
NVRS[3:0]
0000
0001
0010
0011
0100
0101
0110
0111
NVRL = 1, 选择低区
NVRS[3:0]
0000
0001
0010
0011
0100
0101
0110
0111
(V-) Input
AC0NI(P0.1)
9/32 VDD
10/32 VDD
11/32 VDD
12/32 VDD
13/32 VDD
14/32 VDD
15/32 VDD
NVRS[3:0]
1000
1001
1010
1011
1100
1101
1110
1111
(V-) Input
16/32 VDD
17/32 VDD
18/32 VDD
19/32 VDD
20/32 VDD
21/32 VDD
22/32 VDD
23/32 VDD
(V-) Input
AC0NI(P0.1)
1/24 VDD
2/24 VDD
3/24 VDD
4/24 VDD
5/24 VDD
6/24 VDD
7/24 VDD
NVRS[3:0]
1000
1001
1010
1011
1100
1101
1110
1111
(V-) Input
8/24 VDD
9/24 VDD
10/24 VDD
11/24 VDD
12/24 VDD
13/24 VDD
14/24 VDD
15/24 VDD
Bit 3: NVRL, 负端参考电压低区选择
0: 选择 NVRS 在高区
1: 选择 NVRS 在低区
Bit 2: AC0FLT, 模拟比较器 0 输出滤波控制。和 AC0FLT1 (AUXR4.0)一起选择 AC0OUT 的滤波模式
AC0FLT1, AC0FLT
AC0OUT 滤波模式
0 0
禁止
0 1
SYSCLK x 3
1 0
SYSCLK/6 x 3
1 1
T3OF x 3
Bit 1~0: AC0PIS[1:0], 模拟比较器 0 正端输入 I/O 口通道选择。如下所示,这 2 个位决定了模拟比较器正端(V+)
的输入源:
AC0PIS[1:0]
(V+) 输入选择 t
0 0
AC0PI0(P0.2)
0 1
AC0PI1(P0.3)
1 0
AC0PI2(P0.4)
1 1
AC0PI3(P0.5)
AC1CON: 模拟比较器 1 控制&状态寄存器
SFR
Page = 1 Only
SFR 地址
= 0x9E
复位值 = 00X0-0000
7
6
5
4
3
2
AC1LP
AC1PDX
AC1OUT
AC1F
AC1EN
AC1INV
R/W
R/W
R
R/W
R/W
R/W
1
AC1M1
0
AC1M0
R/W
R/W
Bit 7: AC1LP, 模拟比较器 1 低功耗使能
0: 禁止 AC1 低功耗模式
1: 使能 AC1 低功耗模式
Bit 6: AC1PDX, 掉电模式下模拟比较器 1 控制.
0: 模拟比较器 1 在掉电模式下关闭
1: 模拟比较器 1 在掉电模式下继续运行
如果 AC1EN, AC1PDX 和 EAC1 已经置位, 比较器仅能在低电平或高电平模式把 CPU 从掉电模式中唤醒。
250
MA82G5Cxx 数据手册
MEGAWIN
Bit 5: AC1OUT, 这是一个从比较器输出的只读位
AC1INV = 0
AC1 输入
ACPI1(+) > ACNI1(-)
AC1OUT = 1
ACPI1(+) < ACNI1(-)
AC1OUT = 0
AC1INV = 1
AC1OUT = 0
AC1OUT = 1
Bit 4: ACF1. 模拟比较器 1 中断标志位
0: 此位只能由软件清零
1: 当比较器输出满足 AC1M[1:0]指定的条件并且 AC1EN 为 1,此位置位。通过 EIE2.2 的置位/清零可以使能/禁止
这个中断。
Bit 3: AC1EN. 模拟比较器 1 使能
0: 清零这位将强制比较器输出低,并且从设置 ACF1 阻止进一步的事件
1: 置位使能比较器
Bit 2: AC1INV, 模拟比较器 1 输出反相
0: AC1 输出不反相
1: AC1 输出反相
Bit 1~0: AC1M[1:0], 模拟比较器 1 中断模式.
AC1M[1:0]
AC1 中断模式
0 0
保留
0 1
比较器 1 检测到输出下降沿
1 0
比较器 1 检测到输出上升沿
1 1
比较器 1 检测到输出跳变
AC1MOD: 模拟比较器 1 模式寄存器
SFR 页 = 1 Only
SFR 地址
= 0x9F
7
6
5
---W
W
W
4
AC1NIS
R/W
复位值 = xxx0-x0xx
3
2
-AC1FLT
W
R/W
1
--
0
--
W
W
Bit 4: AC1NIS. 模拟比较器 1 负端输入选择
0: 选择端口引脚 AC1NI(P0.6)作为模拟比较器 1 的负端输入
1: 选择解码模拟比较器 0 负端输入 ACNI0 作为模拟比较器 1 的负端输入
Bit 2: AC1FLT, 模拟比较器 1 输出滤波控制。和 AC1FLT1 (AUXR4.2)一起选择 AC1OUT 的滤波模式
AC1FLT1, AC1FLT
AC1OUT 滤波模式
0 0
禁止
0 1
SYSCLK x 3
1 0
SYSCLK/6 x 3
1 1
T3OF x 3
AC2CON: 模拟比较器 2 控制&状态寄存器
SFR
Page = 2 Only
SFR 地址
= 0x9E
复位值 = 00X0-0000
7
6
5
4
3
2
AC2LP
AC2PDX
AC2OUT
AC2F
AC2EN
AC2INV
R/W
R/W
R
R/W
R/W
R/W
1
AC2M1
0
AC2M0
R/W
R/W
Bit 7: AC2LP, 模拟比较器 2 低功耗使能
0: 禁止 AC2 低功耗模式
1: 使能 AC2 低功耗模式
Bit 6: AC2PDX, 掉电模式下模拟比较器 2 控制.
MEGAWIN
MA82G5Cxx 数据手册
251
0: 模拟比较器 2 在掉电模式下关闭
1: 模拟比较器 2 在掉电模式下继续运行
如果 AC2EN, AC2PDX 和 EAC2 已经置位, 比较器仅能在低电平或高电平模式把 CPU 从掉电模式中唤醒。
Bit 5: AC2OUT, 这是一个从比较器输出的只读位 t.
AC2INV = 0
AC2 输入
ACPI2(+) > ACNI2(-)
AC2OUT = 1
ACPI2(+) < ACNI2(-)
AC2OUT = 0
AC2INV = 1
AC2OUT = 0
AC2OUT = 1
Bit 4: ACF2. 模拟比较器 2 中断标志位
0: 此位只能由软件清零
1: 当比较器输出满足 AC2M[1:0]指定的条件并且 AC2EN 为 1,此位置位。通过 EIE2.7 的置位/清零可以使能/禁止
这个中断。
Bit 3: AC2EN. 模拟比较器 2 使能
0: 清零这位将强制比较器输出低,并且从设置 ACF2 阻止进一步的事件
1: 置位使能比较器
Bit 2: AC2INV, 模拟比较器 2 输出反相
0: AC2 输出不反相
1: AC2 输出反相
Bit 1~0: AC2M[1:0], 模拟比较器 2 中断模式.
AC2M[1:0]
AC2 中断模式
0 0
保留
0 1
比较器 2 检测到输出下降沿
1 0
比较器 2 检测到输出上升沿
1 1
比较器 2 检测到输出跳变
AC2MOD: 模拟比较器 2 模式寄存器
SFR 页 = 1 Only
SFR 地址
= 0x9F
7
6
5
---W
W
W
4
AC2NIS
R/W
复位值 = xxx0-x0xx
3
2
-AC2FLT
W
R/W
1
--
0
--
W
W
Bit 4: AC2NIS. 模拟比较器 2 负端输入选择
0: 选择端口引脚 AC2NI(P6.2)作为模拟比较器 2 的负端输入
1: 选择解码模拟比较器 0 负端输入 ACNI0 作为模拟比较器 2 的负端输入
Bit 2: AC2FLT, 模拟比较器 2 输出滤波控制。和 AC2FLT1 (AUXR7.0)一起选择 AC2OUT 的滤波模式
AC1FLT1, AC1FLT
AC1OUT 滤波模式
0 0
禁止
0 1
SYSCLK x 3
1 0
SYSCLK/6 x 3
1 1
T3OF x 3
252
MA82G5Cxx 数据手册
MEGAWIN
PxAIO1: 端口 x 仅模拟输入 1
SFR 页 = 0 only
SFR 地址
= 0x92
7
6
5
P07AIO
P06AIO
P05AIO
R/W
R/W
W
4
P04AIO
R/W
POR+复位值 = 0000-000x
3
2
P03AIO
P02AIO
R/W
R/W
1
P01AIO
0
AC2AIO
R/W
R/W
Bit 7~6: P07AIO ~ P06AIO, P0.7~P0.6 仅模拟输入配置寄存器.
0: 端口引脚有数字和模拟输入能力.
1: 端口引脚仅是应用于 AC1(模拟比较器 1)的模拟输入。这位置位后,读对应的引脚寄存器位将会总是‖0‖
Bit 5~1: P05AIO ~ P01AIO, P0.5~P0.1 仅模拟输入配置寄存器.
0: 端口引脚有数字和模拟输入能力.
1: 端口引脚仅是应用于 AC0(模拟比较器 0)的模拟输入。这位置位后,读对应的引脚寄存器位将会总是‖0‖
Bit 0: AC2AIO, AC2 (模拟比较器 2) 端口引脚模拟输入配置寄存器
AC2NIS
P6.3
AC2AIO
(AC2MOD.4)
(AC2PI)
0
x
P6M0.3
0
1
仅模拟输入
1
1
仅模拟输入
AUXR4: 辅助寄存器 4
SFR 页 = 1 only
SFR 地址
= 0xA4
7
6
C1IC2S1
C1IC2S0
R/W
R/W
5
C1IC0S1
R/W
P6.2
(AC2NI)
P6M0.2
仅模拟输入
P6M0.2
POR+复位值 = 0000-0000
4
3
2
1
AC1OE
AC1FLT1
AC0OE
C1IC0S0
R/W
R/W
R/W
0
AC0FLT1
R/W
R/W
1
AC2OE
0
AC2FLT1
R/W
R/W
Bit 3: AC1OE, AC1OUT 在端口引脚输出使能.
0: 禁止 AC1OUT 在引脚上输出
1: 使能 AC1OUT 在 P7.2 上输出
Bit 1: AC0OE, AC0OUT 在端口引脚输出使能
0: 禁止 AC0OUT 在引脚上输出
1: 使能 AC0OUT 在 P0.0 上输出
AUXR7: 辅助寄存器 7
SFR 页 = 4 only
SFR 地址
= 0xA4
7
6
-PBKS5
R/W
R/W
5
PBKS4
4
PBKS3
R/W
R/W
复位值 = x000-xx00
3
2
--R/W
R/W
Bit 1: AC2OE, AC2OUT 在端口引脚输出使能
0: 禁止 AC2OUT 在引脚上输出
1: 使能 AC2OUT 在 P6.4 上输出
MEGAWIN
MA82G5Cxx 数据手册
253
29. ISP 和 IAP
MA82G5C64 的 Flash 存储器分区位 AP-存储器,IAP-存储器和 ISP-存储器。AP-存储器用于存放用户的应用程
序。IAP 用于存放非易失性应用数据,ISP-存储器用于储存在系统编程的引导程序。当 MCU 运行在 ISP 区域时,
MCU 可以修改 AP 和 IAP 存储器用于程序更新。如果 MCU 运行在 AP 区域,软件仅能修改 IAP 存储器用于更新应
用数据。
29.1. MA82G5C64 Flash 存储器配置
MA82G5C64 总共有 64K 字节的 Flash,图 29–1 显示了 MA82G5C64 的 Flash 配置。ISP 存储空间可以被禁止或
由硬件选项配置最大 4K 字节。IAP 存储空间大小由 IAP 低边界和高边界决定。IAP 低边界由 IAPLB 寄存器的值决
定。IAP 高边界与 ISP 的起始地址相关,ISP 存储空间由硬件选项决定。IAPLB 寄存器值由硬件选项配置或 AP 软
件编程设定。所有 AP, IAP 和 ISP 存储空间共享总 64K 字节的存储空间。
图 29–1. MA82G5C64 Flash 存储空间配置
注意:
笙泉公司 MA82G5C64 的默认设置是:1.5K ISP, 2.5K IAP 和加密。1.5K ISP 区域是锲入有笙泉专利的
COMBO ISP 代码通过一条线就能在线下载的 1-线 ISP 协议及串口(COM)ISP 协议。2.5K IAP 大小可以通过应
用程序软件来重新配置。
254
MA82G5Cxx 数据手册
MEGAWIN
29.2. MA82G5C64 Flash 在 ISP/IAP 上的访问
MA82G5C64 给 ISP 和 IAP 应用提供三种 flash 访问模式:页擦除模式,编程模式及读取模式。MCU 软件使用这
三种模式去更新 Flash 的数据和获取 Flash 的数据。本章展示了不同 Flash 模式的流程图和范例代码。
在执行 ISP/IAP 操作之前,用户需要在 CKCON1 寄存器的 XCKS5~XCKS0 填入正确值。(参考章节―8.2 时钟寄存器‖)
页擦除 (512 字节每页)
步骤1: 在IFMT 寄存器上设置选择页擦除模式
步骤2: 填入页地址到IFADRH和IFADRL寄存器
步骤3: 顺序地在SCMD 寄存器写入0x46h 然后0xB9h 触发一个ISP处理
字节编程
步骤1:在IFMT 寄存器上设置选择字节编程模式
步骤2: 填入字节地址到IFADRH和IFADRL寄存器
步骤3: 填入被编程数据到IFD寄存器
步骤4: 顺序地在SCMD 寄存器写入0x46h 然后0xB9h 触发一个ISP处理
字节读取
步骤1: 在IFMT 寄存器上设置选择字节读取模式
步骤2: 填入字节地址到IFADRH和IFADRL寄存器
步骤3: 顺序地在SCMD 寄存器写入0x46h 然后0xB9h 触发一个ISP处理
步骤4: 现在,Flash 数据在IFD 寄存器
MA82G5C64的页擦除,字节编程和读取的详细描述见下面章节:
MEGAWIN
MA82G5Cxx 数据手册
255
29.2.1. ISP/IAP Flash 页擦除模式
MA82G5C64 的 flash 数据任何一位只能编程为―0‖。如果用户需要写―1‖到 flash 数据,flash 需要擦除。但是在
MA82G5C64 的 ISP/IAP 操作中的 flash 擦除只支持‖页擦除‖模式,一页擦除将写―1‖到一页的所有数据位。
MA82G5C64 的一页有 512 个字节并且页的起始地址排列到 A8~A0 = 0x000。目标 flash 地址由 IFADRH 和
IFADRL 决定。这样,在 flash 页擦除模式, IFADRH.0(A8)和 IFADRL.7~0(A7~A0)必须写 ―0‖选择正确的页地址。
图 29–2 展示了在 ISP/IAP 操作的 flash 页擦除流程。
图 29–2. ISP/IAP 页擦除流程
Start
Define ISP/IAP
time base
==> Configure CKCON1.XCKS4~0
Enable ISP/IAP
engine
==> Set ISPCR.ISPEN = "1"
Set "Page Erase"
Mode
NO
==> Write IFMT.MS4~0 = "00011"
Define targeted
flash page address
==> Define IFADRH & IFADRL
Trigger engine for
"Erase"
==> Write SCMD = 0x46, then
==> Write SCMD = 0xB9
end of page
YES
Set Standby and
disable engine
==> Write IFMT.MS4~0 = "00000"
==> Set ISPCR.ISPEN = "1"
End
256
MA82G5Cxx 数据手册
MEGAWIN
图 29–3 所示 ISP/IAP 页擦除操作的示例代码
图 29–3. ISP/IAP 页擦除操作的示例代码
MOV
CKCON1,#00010111b ; XCKS4~0 = 23(十进制) 当 OSCin = 24MHz 时
MOV
ISPCR,#10000000b ; ISPCR.7 = 1, 使能 ISP
MOV
IFMT,#03h
; 选择页擦除模式
MOV
MOV
IFADRH,??
IFADRL,??
; 页地址填到[IFADRH,IFADRL]
;
MOV
MOV
SCMD,#46h
SCMD,#0B9h
; 触发 ISP/IAP 处理
;
;现在, MCU 将停在这直 ISP/IAP 处理完成
MOV
MOV
IFMT,#00h
; 选择 待命 模式
ISPCR,#00000000b ; ISPCR.7 = 0, 禁止 ISP
MEGAWIN
MA82G5Cxx 数据手册
257
29.2.2. ISP/IAP Flash 字节编程模式
MA82G5C64 编程模式提供 Flash 存储空间的字节写操作来更新数据。IFADRH 和 IFADRL 指向 Flash 的物理字节
地址。IFD 存储编程到 Flash 的内容。图 29–4 展示了 ISP/IAP 操作的 Flash 字节编程流程。
图 29–4. ISP/IAP 字节编程流程
Start
NO
Define ISP/IAP
time base
==> Configure CKCON1.XCKS4~0
Enable ISP/IAP
engine
==> Set ISPCR.ISPEN = "1"
Set byte "Program"
mode
==> Write IFMT.MS4~0 = "00010"
Define targeted
flash byte address
==> Define IFADRH & IFADRL
Ready for
new stored data
==> Write updated data to IFD
Trigger engine for
"Program"
==> Write SCMD = 0x46, then
==> Write SCMD = 0xB9
end of address
YES
Set Standby and
disable engine
==> Write IFMT.MS4~0 = "00000"
==> Set ISPCR.ISPEN = "1"
End
258
MA82G5Cxx 数据手册
MEGAWIN
图 29–5 所示 ISP/IAP 字节编程操作的示例代码
图 29–5. ISP/IAP 字节编程的示例代码
MOV
CKCON1,#00010111b ; XCKS4~0 = 23(十进制) 当 OSCin = 24MHz 时
MOV
ISPCR,#10000011b ; ISPCR.7=1, 使能 ISP
MOV
IFMT,#02h
; 选择字节编程模式
MOV
MOV
IFADRH,??
IFADRL,??
; 字节地址填到[IFADRH,IFADRL]
;
MOV
IFD,??
MOV
MOV
SCMD,#46h
SCMD,#0B9h
; 编程数据填到 IFD
; 触发 ISP/IAP 处理
;
; 现在, MCU 将停在这直 ISP/IAP 处理完成
MOV
MOV
IFMT,#00h
; 选择 待命 模式
ISPCR,#00000000b ; ISPCR.7 = 0, 禁止 ISP
MEGAWIN
MA82G5Cxx 数据手册
259
29.2.3. ISP/IAP Flash 读模式
MA82G5C64 读取模式提供从 Flash 存储空间获取已存储数据的字节读取操作。IFADRH 和 IFADRL 指向 Flash 的
物理字节地址。IFD 存储从 Flash 读取到的内容。建议在数据编程或页擦除之后通过读取模式核对 Flash 数据。
图 29–6 所示 ISP/IAP 操作下的 Flash 字节读取流程。
图 29–6. ISP/IAP 字节读流程
Start
NO
Define ISP/IAP
time base
==> Configure CKCON1.XCKS4~0
Enable ISP/IAP
engine
==> Set ISPCR.ISPEN = "1"
Set byte "Read"
mode
==> Write IFMT.MS4~0 = "00001"
Define targeted
flash byte address
==> Define IFADRH & IFADRL
Trigger engine for
"Read"
==> Write SCMD = 0x46, then
==> Write SCMD = 0xB9
Get data
==> Read stored data from IFD
end of address
YES
Set Standby and
disable engine
==> Write IFMT.MS4~0 = "00000"
==> Set ISPCR.ISPEN = "1"
End
260
MA82G5Cxx 数据手册
MEGAWIN
图 29–7 所示 ISP/IAP 字节读取操作的范例代码
图 29–7. ISP/IAP 字节读取的范例代码
MOV
CKCON1,#00010111b ; XCKS4~0 = 23(十进制) 当 OSCin = 24MHz 时
MOV
ISPCR,#10000011b ; ISPCR.7=1, 使能 ISP
MOV
IFMT,#01h
; 选择字节读模式
MOV
MOV
IFADRH,??
IFADRL,??
; 字节地址填写到[IFADRH,IFADRL]
;
MOV
MOV
SCMD,#46h
SCMD,#0B9h
; 触发 ISP/IAP 处理
;
; 现在, MCU 将停在这直 ISP/IAP 处理完成
; 现在,数据已经存在 IFD 里
MOV
A,IFD
MOV
MOV
IFMT,#00h
; 选择 待命 模式
ISPCR,#00000000b ; ISPCR.7 = 0, 禁止 ISP
MEGAWIN
MA82G5Cxx 数据手册
261
29.3. ISP 操作
ISP 意指在系统可编程,不需要在实际的终端产品上移除 MCU 芯片就可以更新用户的应用程序(AP 存储空间)和非
易失性应用数据(IAP 存储空间)。这个可使用性就有一个宽的现场应用范围。ISP 模式使用引导程序来编程 AP 存储
空间和 IAP 存储空间。
注意:
(1) 在用 ISP 功能之前,使用者必须先配置 ISP-存储器空间并用通用烧写器或笙泉的烧写器插入 ISP 文件到
ISP-存储器中。
(2) ISP-存储器中的 ISP 文件 code 只能下载 AP-存储器和非易失的 IAP-存储器
在 ISP 操作完成之后,软件写 ―001‖到 ISPCR.7 ~ ISPCR.5 这样会触发一个软件复位(RESET)并且使 CPU 再启动到
应用程序存储空间(AP)的 0x0000 地址。
如我们所知,ISP 代码的作用就是编程 AP 存储空间和 IAP 存储空间。因此,MCU 为了执行 ISP 代码必须从 ISP 存
储空间启动。根据 MCU 如何从 ISP 存储空间启动,有两种方法执行在系统可编程。
29.3.1. 硬件方法启动 ISP
在上电复位时为了使 MCU 直接从 ISP 存储空间启动,MCU 的硬件选项 HWBS 和 ISP 存储空间必须使能。硬件选
项的 ISP 进入方法叫做硬件访问。一旦 HWBS 和 ISP 存储空间使能,当上电复位时 MCU 总是从 ISP 存储空间启动
去执行 ISP 代码(引导程序)。ISP 代码做的第一件事是核对是否有 ISP 请求。如果没有 ISP 请求,ISP 代码触发软件
复位(设置 ISPCR.7~5 为―101‖)使 MCU 在启动到 AP 存储空间去运行用户应用程序。
如果额外的硬件选项 HWBS2 与 HWBS 及 ISP 存储空间一起使能, MCU 在上电复位或外部复位结束之后总从 ISP
存储空间启动 。通过外部复位信号提供另外一个硬件访问进入 ISP 模式。第一上电复位之后,MA82G5C64 通过
外部复位触发而执行 ISP 操作并且不用等待下一次的上电复位,这适合不断电系统去应用硬件方法启动 ISP 功能。
29.3.2. 软件方法启动 ISP
当 MCU 运行在 AP 存储空间时,软件访问 ISP 通过触发软件复位使 MCU 从 ISP 存储空间启动。这种情况,
HWBS 或 HWBS2 不用使能。仅有的方法是当 MCU 运行在 AP 存储空间时同时设置 ISPCR.7~5 为―111‖触发软件
复位 MCU 从 ISP 存储空间启动。注意: ISP 存储空间必须通过硬件选项配置一个有效空间来保留 ISP 模式给软件
方法启动 ISP 应用。
262
MA82G5Cxx 数据手册
MEGAWIN
29.3.3. ISP 注意事项
ISP 代码开发
尽管 ISP 存储空间的 ISP 代码是可编程的,ISP 存储空间在 MCU 的 Flash 中有一个 ISP 起始地址(MA82G5C64
见图 29–1), 但是并不意味着你需要在你的源代码中加入这个偏移量 ( ISP 起始地址)。代码偏移量硬件自动处理。
用户只需像在 AP 存储空间开发应用程序一样开发。
ISP 期间中断
在触发 ISP/IAP flash 处理之后,内部 ISP 处理时 MCU 将停止一会儿直到处理完成。此时,如果中断已使能则中
断事件将排队等待服务。一旦 ISP/IAP flash 处理完成,MCU 继续运行并且如果中断标志仍然有效则排队中的中断
将立即服务。不过用户需要意识到下列事项:
(1) 当 MCU 停止在 ISP 处理时,中断不能实时服务
(2) 低/高电平触发外部中断 nINTx,必须保持到 ISP 处理完成,否则将被忽略
ISP 和空闲模式
MA82G5C64 不使用空闲模式执行 ISP 功能。反而 ISP/IAP 引擎操作 Flash 存储空间将冻结 CPU 的运行。一旦
ISP/IAP 运行结束,CPU 将继续并且推进紧跟着 ISP/AP 激活的指令。
ISP 的访问目标
如前所述, ISP 用来编程 AP 存储空间和 IAP 存储空间。一旦访问目标地址超出 IAP 存储空间的最后一个字节之外,
硬件将自动忽略 ISP 处理的触发。这样 ISP 触发是无效的并且硬件不做任何事情。
ISP 的 Flash 持久期
内置 Flash 的持久期是 20,000 写周期,换句话说写周期不能超过 20,000 次。这样用户必须注意应用中需要频繁更
新 AP 存储空间和 IAP 存储空间这一点。
MEGAWIN
MA82G5Cxx 数据手册
263
29.4. 在应用编程 (IAP)
MA82G5C64 内建一个在应用可编程(IAP)功能, 当应用程序运行时在 Flash 存储空间里允许一些区域被应用成非易
失性数据存储区。这个有用特点能使用在断电后还需要保存数据的应用中。这样不需要使用外部的串行 EEPROM
(比如 93C46, 24C01, .., 等等)来保存非易失性的数据。
事实上,IAP的操作除了Flash存储空间被划分在不同的区域之外与ISP一样。ISP操作的可编程Flash范围在AP存储
空间和IAP存储空间,而IAP操作的范围只在IAP存储空间。
注意:
(1) MA82G5C64的IAP 特点,软件通过写SFR P页的IAPLB寄存器声明IAP 存储空间。IAP 存储空间也可以通
过通用的烧入器/编程器或笙泉专利的烧入器/编程器来配置IAPLB 的初始值。
(2)执行IAP 的程序代码是在AP存储空间并且仅能编程IAP存储空间而不能编程ISP存储空间
29.4.1. IAP-存储空间边界/范围
如果ISP 存储空间被声明,IAP存储空间范围由IAP和ISP起始地址决定如下列表:
IAP高边界= ISP起始地址 –1
IAP低边界 = ISP起始地址 – IAP空间
如果ISP 存储空间没有被声明,IAP存储空间范围由下列公式决定:
IAP高边界 = 0xFFFF.
IAP低边界 = 0xFFFF – IAP空间 + 1.
例如,如果ISP 存储空间是1.5K字节,这样ISP 的起始地址是0xFA00,并且IAP 存储空间是2.5K字节,此时IAP
存储空间的范围就在0xF000 ~ 0xF9FF 。MA82G5C64的IAP 低边界由IAPLB 寄存器决定,IAPLB 寄存器可以在用
户AP程序里用软件修改来调整IAP大小。
29.4.2. IAP-存储空间更新数据
ISP/IAP 相关的特殊功能寄存器见章节―29.5 ISP/IAP 寄存器 ―
由于 IAP 存储空间是 Flash 存储空间的一部分,Flash 擦除仅提供页擦除,没有字节擦除。为了在 IAP 存储空间更
新‖一个字节‖, 用户不能直接编程一个新数据到那个字节。正确的步骤如下:
步骤 1: 保存整页 flash 数据(512 字节)到包含被更新数据的 XRAM 缓冲区
步骤 2:擦除此页 (使用 ISP/IAP Flash 页擦除模式)
步骤 3:在 XRAM 缓冲区修改新数据字节
步骤 4: 编程 XRAM 缓冲区的被更新数据到此页(使用 ISP/IAP Flash 编程模式)
为了读取 IAP 存储空间数据,用户可以使用 ISP/IAP Flash 读取模式获取目标数据。
264
MA82G5Cxx 数据手册
MEGAWIN
29.4.3. IAP 注意事项
IAP 期间中断
在触发 ISP/IAP flash 处理之后,内部 IAP 处理时 MCU 将停止一会儿直到处理完成。此时,如果中断已使能则中
断事件将排队等待服务。一旦 ISP/IAP flash 处理完成,MCU 继续运行并且如果中断标志仍然有效则排队中的中断
将立即服务。不过用户需要意识到下列事项:
(1) 当 MCU 停止在 IAP 处理时,中断不能实时服务
(2) 低/高电平触发外部中断 nINTx,必须保持到 IAP 处理完成,否则将被忽略
IAP 和空闲模式
MA82G5C64 不使用空闲模式执行 IAP 功能。反而 ISP/IAP 引擎操作 Flash 存储空间将冻结 CPU 的运行。一旦
ISP/IAP 运行结束,CPU 将继续并且推进紧跟着 ISP/AP 激活的指令。
IAP 访问目标
如前所述, IAP 用来编程 IAP 存储空间。一旦访问目标地址不在 IAP 存储空间之内, 硬件将自动忽略 ISP 处理的触
发。这样 IAP 触发是无效的并且硬件不做任何事情。
读取 IAP 数据的另一种方式
IAP 存储空间读取 Flash 数据,除了使用 Flash 的读取模式之外,另一个方法是使用―MOVC A,@A+DPTR‖指令。
这里,DPTR 和 ACC 各自填入想要的地址和偏移量。并且访问目标必须在 IAP 存储空间内,否则读取的数据将不
确定。注意使用‗MOVC‘指令比使用 Flash 的读取模式更快。
IAP 的 Flash 持久期
内置 Flash 的持久期是 20,000 擦除/写周期,换句话说擦除再写周期不能超过 20,000 次。这样用户必须注意应用
中需要频繁更新 IAP 存储空间这一点。
MEGAWIN
MA82G5Cxx 数据手册
265
29.5. ISP/IAP 寄存器
下面专门描述ISP,IAP和P页相关的特殊功能寄存器:
IFD: ISP/IAP Flash 数据寄存器
SFR 页 = 0~F
SFR 地址
= 0xE2
7
6
5
R/W
R/W
R/W
4
R/W
复位值 = 1111-1111
3
2
R/W
R/W
1
0
R/W
R/W
IFD 是 ISP/IAP/P 页操作的数据端口寄存器。 在 ISP/IAP/P 页写操作时 IFD 的数据将被写入到期望的地址,在
ISP/IAP/P 页读操作时 IFD 的值是读到期望地址的数据。
IFADRH: ISP/IAP 高 8 位地址
SFR 页 = 0~F
SFR 地址
= 0xE3
7
6
5
R/W
R/W
R/W
4
R/W
复位值 = 0000-0000
3
2
R/W
R/W
1
0
R/W
R/W
1
0
R/W
R/W
IFADRH 是所有 ISP/IAP 模式下的高 8 位地址。在 P 页模式下没有定义
IFADRL: ISP/IAP 低 8 位地址
SFR 页 = 0~F
SFR 地址
= 0xE4
7
6
5
R/W
R/W
R/W
4
R/W
复位值 = 0000-0000
3
2
R/W
R/W
IFADRH 是所有 ISP/IAP/P 页模式下的低 8 位地址。在闪存页擦除时,IFADRL 可以不用理会。
IFMT: ISP/IAP Flash 模式表
SFR 页 = 0~F
SFR 地址
= 0xE5
7
6
5
MS.7
MS.6
MS.5
R/W
R/W
R/W
4
MS.4
R/W
复位值 = xxxx-x000
3
2
MS.3
MS.2
R/W
R/W
1
MS.1
0
MS.0
R/W
R/W
Bit 7~4: 保留。当 IFMT 改写时这些位必须写入‖ 0000_0‖
Bit 3~0: ISP/IAP/ P 页 工作模式选择
MS[7:0]
0 0 0 0-0 0 0 0
0 0 0 0-0 0 0 1
0 0 0 0-0 0 1 0
0 0 0 0-0 0 1 1
0 0 0 0-0 1 0 0
0 0 0 0-0 1 0 1
其它
模式
备用
AP/IAP-存储器读
AP/IAP-存储器编程
AP/IAP-存储器页擦除
P 页 SFR 写
P 页 SFR 读
保留
IFMT 是用来选择闪存是用执行众多的 ISP/IAP 功能还是选择 P 页寄存器的访问。
266
MA82G5Cxx 数据手册
MEGAWIN
SCMD: 连续命令数据寄存器
SFR 页 = 0~F
SFR 地址
= 0xE6
7
6
5
R/W
R/W
R/W
4
复位值 = xxxx-xxxx
3
2
SCMD
R/W
R/W
R/W
1
0
R/W
R/W
SCMD 是激活 ISP/IAP/P 页 的命令口。如果 SCMD 连续填入 0x46h, 0xB9h 并且 ISPCR.7 = 1,ISP/IAP/P 页被
激活。
ISPCR: ISP 控制寄存器
SFR 页 = 0~F
SFR 地址
= 0xE7
7
6
ISPEN
SWBS
R/W
R/W
5
SWRST
R/W
复位值 = 0000-0xxx
4
3
2
CFAIL
MISPF
-R/W
R/W
R/W
1
--
0
--
R/W
R/W
Bit 7: ISPEN, ISP/IAP/P 页操作使能
0:所有的 ISP/IAP/P 页编程/擦除/读都是被禁止的
1:使能 ISP/IAP/P 页编程/擦除/读功能
Bit 6: SWBS, 软件执行起始选择控制
0:复位软件从主存储区开始执行
1:复位软件从 ISP 存储区开始执行
Bit 5: SWRST, 软件复位触发控制.
0: 没有操作
1: 产生软件系统复位,硬件自动清零
Bit 4: CFAIL, ISP/IAP 操作命令失败指示
0:最后一次 ISP/IAP 命令成功
1:最后一次 ISP/IAP 命令失败。失败的原因是闪存访问被阻止
Bit 3: MISPF, 笙泉独有 ISP 标志.
如果用户想执行笙泉独有 ISP 功能 (USB DFU), 用户在触发软件复位之前不仅要置位 SWBS 选择从 ISP-空间启
动,也要置位这个位去触发笙泉独有 ISP 操作。如果用户只是触发一个软件复位,或是执行 IAP 流程,那么必须在
这个位上写‖0‖。
MEGAWIN
MA82G5Cxx 数据手册
267
CKCON1: 时钟控制寄存器 1
SFR 页 = 0~F & P
SFR 地址
= 0xBF
7
6
5
XTOR
-XCKS5
R
W
R/W
4
XCKS4
R/W
复位值 = 0x00-0000
3
2
XCKS3
XCKS2
R/W
R/W
1
XCKS1
0
XCKS0
R/W
R/W
Bit 5~0: 这是设置 OSCin 频率值决定 ISP/IAP 编程的时间基准。根据 OSCin 填入正确的值,如下所示。
[XCKS5~XCKS0] = OSCin – 1, 当 OSCin=1~40 (MHz).
例如,
(1) 如果 OSCin=12MHz, 然后 11 填入 [XCKS5~XCKS0], 即 00-1011B.
(2) 如果 OSCin=6MHz, 然后 5 填入[XCKS5~XCKS0], 即 00-0101B.
OSCin
XCKS[5:0]
1MHz
00-0000
2MHz
00-0001
3MHz
00-0010
4MHz
00-0011
……
……
……
……
38MHz
10-0101
39MHz
10-0110
40MHz
10-0111
默认值 XCKS= 00-1011 用于 OSCin= 12MHz.
IAPLB: IAP 低边界
SFR 页 = Page P Only
SFR 地址
= 0x03
7
6
W
W
5
4
IAPLB
W
W
复位值 = 0111-000x
3
2
W
W
1
0
0
W
W
Bit 7~0: IAPLB 决定 IAP 存储区的最低边界。因为一个闪存页是 512 字节,所以 IAPLB 必须是偶数。
为了读取 IAPLB,MCU 需要在 P 页里定义 IFADRL 地址,IMFT 模式选择 P 页读及 ISPCR.ISPEN 置位。并且 在
SCMD 依次写入 0x46h 和 0xB9h,这样 IAPLB 的值就会出现在 IFD。写 IAPLB ,首先 MCU 把新的 IAPLB 设定值
写入 IFD ;其次索引 IFADRL ,选择 IMFT ,使能 ISPCR.ISPEN ;然后设置 SCMD 。这样 IAPLB 就会更新到最
新的顺序。
由 IAPLB 及 ISP 起始地址决定的 IAP 存储区见下列表。
IAP 低边界 = IAPLB[7:0] x 256, 和
IAP 高边界 = ISP 起始地址 – 1.
另外要注意一点,IAP 的低边界地址不能大于 ISP 的起始地址。
268
MA82G5Cxx 数据手册
MEGAWIN
29.5.1. ISP/IAP 示例代码
图 29–8 所示 ISP 操作的示例代码
图 29–8. ISP 示例代码
;******************************************************************************************
; ISP 范例程序
;******************************************************************************************
IFD
DATA 0E2h
IFADRH DATA 0E3h
IFADRL DATA 0E4h
IFMT DATA 0E5h
SCMD DATA 0E6h
ISPCR DATA 0E7h
;
MOV ISPCR,#10000000b ;ISPCR.7=1, 使能 ISP
;=============================================================================
; 1. 页擦除模式 (512 字节每页
;=============================================================================
ORL IFMT,#03h ;MS[2:0]=[0,1,1], 选择页擦除模式
MOV IFADRH,?? ; 页地址填写到 IFADRH 及 IFADRL
MOV IFADRL,?? ;
MOV SCMD,#46h ; 触发 ISP 处理
MOV SCMD,#0B9h ;
;Now in processing.. CPU 等待处理完成)
;=============================================================================
; 2. 字节编程模式
;=============================================================================
ORL IFMT,#02h ;MS[2:0]=[0,1,0], 选择字节编程模式
ANL ISPCR,#0FAh ;
MOV IFADRH,?? ; 字节地址填写到 IFADRH 及 IFADRL
MOV IFADRL,?? ;
MOV IFD,??
; 被编程数据填写到 IFD
MOV SCMD,#46h ; 触发 ISP 处理
MOV SCMD,#0B9h ;
;Now in processing...( CPU 等待处理完成)
;=============================================================================
; 3. 使用读取模式校验
;=============================================================================
ANL IFMT,#0F9h ;MS1[2:0]=[0,0,1], 选择字节读取模式
ORL IFMT,#01h ;
MOV IFADRH,?? ; 字节地址填写到 IFADRH 及 IFADRL
MOV IFADRL,?? ;
MOV SCMD,#46h ; 触发 ISP 处理
MOV SCMD,#0B9h ;
;Now in processing...( CPU 等待处理完成)
MOV A,IFD
; 数据存在 IFD
CJNE A,wanted,ISP_error ; 比较想要的数值
...
ISP_error:
...
;
MEGAWIN
MA82G5Cxx 数据手册
269
30. P 页 SFR 访问
MA82G5C64 内建一个特别的 P 页寄存器 (P 页) 用来存储 MCU 操作的控制寄存器。这些特殊功能寄存器在不同
IFMT 下通过 ISP/IAP 操作来访问。在 P 页访问时,IFADRH 必须设置为‖00‖及 IFADRL 索引 P 页内特殊功能寄存
器地址。如果 IFMT= 04H 则 P 页写操作,在 SCMD 激活之后 IFD 的数据会被载入到 IFADRL 索引的特殊功能寄
存器。如果 IFMT= 05H 则 P 页读操作,在 SCMD 激活之后 IFD 的数据将是 IFADRL 索引的特殊功能寄存器(SFR)
的值。
下面描述的是 P 页里的特殊功能寄存器(SFR):
IAPLB: IAP 低边界地址
SFR 页 = P
SFR 地址
= 0x03
7
6
R/W
R/W
5
4
IAPLB
R/W
R/W
复位值 = 1111-111x
3
2
R/W
R/W
1
0
0
R/W
R/W
Bit 7~0: IAPLB 决定 IAP 存储区的最低边界。因为一个闪存页是 512 字节,所以 IAPLB 必须是偶数
为了读取 IAPLB,MCU 需要在 P 页里定义 IFADRL 地址,IMFT 模式选择 P 页读及 ISPCR.ISPEN 置位。并且 在
SCMD 依次写入 0x46h 和 0xB9h,这样 IAPLB 的值就会出现在 IFD。写 IAPLB ,首先 MCU 把新的 IAPLB 设定值
写入 IFD ;其次索引 IFADRL ,选择 IMFT ,使能 ISPCR.ISPEN ;然后设置 SCMD 。这样 IAPLB 就会更新到最
新的顺序。
由 IAPLB 及 ISP 起始地址决定的 IAP 存储区见下列表。
IAP 低边界= IAPLBx256,和
IAP 高边界 = ISP 起始地址 – 1.
例如, IAPLB=0xE0 及 ISP 起始地址是 0xF000, 那么 IAP 存储区就是 0xE000 ~ 0xEFFF。
另外要注意一点,IAP 的低边界地址不能大于 ISP 的起始地址。
CKCON2: 时钟控制寄存器 2
SFR 页 = P
SFR 地址
= 0x40
7
6
5
XTGS1
XTGS0
XTALE
R/W
R/W
R/W
复位值 = 0101-0000
4
3
2
IHRCOE
MCKS1
MCKS0
R/W
R/W
R/W
1
OSCS1
0
OSCS0
R/W
R/W
Bit 7~6: XTGS1~XTGS0, XTAL 振荡器增益控制寄存器。默认值是从 OR5 里的 OSCDN1~0 加载。
XTGS1, XTGS0
0, 0
0, 1
1, 0
1, 1
增益定义 e
最低增益
中低
中高
最高增益
Bit 5: XTALE, 外部晶振(XTAL)使能
0:禁止(XTAL)振荡电路。 此时 XTAL2 及 XTAL1 当做 P6.0 及 P6.1
1:使能(XTAL)振荡电路。如果此位是通过 CPU 软件来设置的话,硬件置 XTOR (CKCON1.7)为‖1‖时表明作为
OSCin 时钟选择的晶振振荡器准备好
Bit 4: IHRCOE, 内部高频 RC 振荡使能
0:禁止内部高频 RC 振荡
270
MA82G5Cxx 数据手册
MEGAWIN
1:使能内部高频 RC 振荡。如果此位是通过 CPU 软件来设置的话,则在 IHRCOE 使能之后需要 32 微秒才能稳定
输出
Bit 3~2: MCKS[1:0], MCK 时钟源选择
MCK 时钟源选择
MCKS[1:0]
0
0
1
1
0
1
0
1
OSCin
CKMI x 4 (ENCKM =1)
CKMI x 5.33 (ENCKM =1)
CKMI x 8 (ENCKM =1)
OSCin =12MHz
CKMIS = [01]
12MHz
24MHz
32MHz
48MHz
OSCin =11.059MHz
CKMIS = [01]
11.059MHz
22.118MHz
29.491MHz
44.236MHz
Bit 1~0: OSCS[1:0], OSCin 时钟源选择.
OSCS[1:0]
OSCin 时钟源选择
0 0
IHRCO
0 1
XTAL
1 0
ILRCO
1 1
ECKI, 外部时钟输入(P6.0)作为 OSCin
CKCON3: 时钟控制寄存器 3
SFR 页 = P
SFR 地址
= 0x41
7
6
5
--FWKP
R/W
R/W
R/W
PCON2: 电源控制寄存器 2
SFR 页 = P
SFR 地址
= 0x44
7
6
5
0
AWBOD1
BO1S1
R/W
R/W
4
--
复位值 = 0000-0010
3
2
MCKD1
MCKD0
R/W
4
BO1S0
R/W
R/W
R/W
POR = 0011-0101
3
2
BO1RE
EBOD1
R/W
R/W
R/W
1
MCDS1
0
MCDS0
R/W
R/W
1
BO0RE
0
1
R/W
R/W
Bit 7: AWBOD1, 在掉电模式下 BOD1 唤醒
0:在掉电模式下禁止 BOD1 唤醒
1:在掉电模式下 BOD1 保持运行
Bit 6: 保留。当 PCON2 写时,这位软件必须写‖0‖
Bit 5~4: BO1S[1:0]. 低电压检测 1 侦测电压选择。这两位的初始值由 OR1.BO1S1O 和 OR1.BO1S0O 决定
BO1S[1:0]
BOD1 侦测电压
0 0
2.0V
0 1
2.4V
1 0
3.7V
1 1
4.2V
Bit 3: BO1RE, BOD1 复位使能
0:当 BOF1 置位禁止 BOD1 触发系统复位
1:当 BOF1 置位使能 BOD1 触发系统复位
Bit 2: EBOD1,使能 BOD1 监测 VDD 电压下降,监测电压由 BO1S1~0 指定
0:禁止 BOD1 降低芯片的功耗
1:使能 BOD1 监测 VDD 电压下降
Bit 1: BO0RE, BOD0 复位使能
0: 当 BOF0 置位禁止 BOD0 触发系统复位
MEGAWIN
MA82G5Cxx 数据手册
271
1: 当 BOF0 置位使能 BOD0 触发系统复位(VDD 遇到 2.2V).
Bit 0: 保留。当 PCON2 写入时,此位软件必须写‖1‖
SPCON0: SFR 页 控制 0
SFR 页 = P
SFR 地址
= 0x48
7
6
RTCCTL
P6CTL
R/W
R/W
5
P4CTL
R/W
POR = 0000-0000
4
3
2
WRCTL
CKCTL1
CKCTL0
R/W
R/W
R/W
1
PWCTL1
0
PWCTL0
R/W
R/W
Bit 7: RTCCTL. RTCCR SFR 访问控制
如果 RTCCTL 置位,将禁止在普通页修改 RTCCR SFR。RTCCR 在普通页仅保持 SFR 读取功能。但是在 SFR P
页软件拥有改写权利。
Bit 6: P6CTL. P6 SFR 访问控制
如果 P6CTL 置位,则 P6 禁止在 0~F 页改写。P6 在 0~F 页保持读取。但是在 SFR P 页软件拥有改写权利。
Bit 5: P4CTL. P4 SFR 访问控制
如果 P4CTL 置位,则 P4 禁止在 0~F 页改写。P4 在 0~F 页保持读取。但是在 SFR P 页软件拥有改写权利。
Bit 4: WRCTL. WDTCR SFR 访问控制
如果 WRCTL 置位,则 WRCTL 禁止在 0~F 页改写。WRCTL 在 0~F 页保持读取。但是在 SFR P 页软件拥有改写
权利。
Bit 3: CKCTL1. CKCON1 SFR 访问控制
如果 CKCTL1 置位,则 CKCON1 禁止在 0~F 页改写。CKCON1 在 0~F 页保持读取。但是在 SFR P 页软件拥有
改写权利。
Bit 2: CKCTL0. CKCON0 SFR 访问控制
如果 CKCTL0 置位,则 CKCON0 禁止在 0~F 页改写。CKCON0 在 0~F 页保持读取。但是在 SFR P 页软件拥有
改写权利。
Bit 1: PWCTL1. PCON1 SFR 访问控制
如果 PWCTL1 置位,则 PCON1 禁止在 0~F 页改写。PCON1 在 0~F 页保持读取。但是在 SFR P 页软件拥有改写
权利。
Bit 0: PWCTL0. PCON0 SFR 访问控制
如果 PWCTL0 置位,则 PCON0 禁止在 0~F 页改写。PCON0 在 0~F 页保持读取。但是在 SFR P 页软件拥有改写
权利。
DCON0: 设备控制 0
SFR 页 = P
SFR 地址
= 0x4C
7
6
HSE
IAPO
R/W
R/W
5
--
4
--
W
W
复位值 = 00xx-x011
3
2
-IORCTL
W
W
1
RSTIO
0
OCDE
R/W
W
Bit 7: HSE, 高速运行使能
0: 禁止 MCU 高速运行
1: 使能 MCU 高速运行(SYSCLK > 24MHz). 在 SYSCLK 选择高频时钟(>24MHz)之前,软件必须置位 HSE 切换到用
于高速运行的内部电路。这可能导致芯片运行功耗更大。
Bit 6: IAPO, 仅 IAP 功能.
0:保留 IAP 区服务于 IAP 功能和程序代码执行。
272
MA82G5Cxx 数据手册
MEGAWIN
1: IAP 区禁止程序代码执行并且仅服务于 IAP 功能
Bit 5~3: 保留。当 DCON0 写入时,这些位软件必须写―0‖
Bit 2: IORCTL, GPIO 复位控制
0:端口 6(Port 6)所有复位事件下保持复位
1:如果此位置位,端口 6(Port 6)仅通过 POR/Ext-Reset/BOR0/BOR1 (如果 BO0RE 或 BO1RE 是使能的)复位
Bit 1: RSTIO, RST 功能为 I/O
0:选择 I/O 引脚功能为 P47
1:选择 I/O 引脚功能为外部复位输入(RST)
Bit 0: OCDE, OCD 使能
0:在 P4.4 和 P4.5 禁止 OCD 接口
1:在 P4.4 和 P4.5 使能 OCD 接口
MEGAWIN
MA82G5Cxx 数据手册
273
31. 辅助特殊功能寄存器
AUXR0: 辅助寄存器 0
SFR 页
= 0~F
SFR 地址
= 0xA1
7
6
P60OC1
P60OC0
R/W
R/W
5
P60FD
4
T0XL
R/W
R/W
复位值 = 0000-0000
3
2
P4FS1
P4FS0
R/W
R/W
1
INT1H
0
INT0H
R/W
R/W
Bit 7~6: P6.0 输出设定控制位 1 和 0。当选择内部 RC 震荡(IHRCO or ILRCO)作为系统时钟时这两个位才起作用。
在此晶振模式下,P6.0 和 P6.1 可以设定为 XTAL2 和 XTAL1。在外部时钟输入模式下,P6.0 仅是时钟输入引脚。
在内部震荡模式下,P6.0 提供下表设定选择作为通用输入输出口或时钟源产生器。当 P60OC[1:0] 设定为非 P6.0
时,P6.0 将驱动片内 RC 振荡器(IHRCO 或 ILRCO)输出作为其它设备的时钟源。
P60OC[1:0]
P60 功能
I/O 模式
00
P60
By P6M0.0
01
MCK
By P6M0.0
10
MCK/2
By P6M0.0
11
MCK/4
By P6M0.0
详细的时钟信息请参考章节―8 系统时钟‖。P6.0 用于时钟输出时,建议置位 P6M0 为 1,设置 P6.0 为推挽输出模
式。
Bit 5: P60FD, P6.0 高速驱动.
0: P6.0 作为缺省驱动输出
1: P6.0 高速驱动输出使能。如果 P6.0 定义为时钟输出,使能此位 P6.0 的输出频率会大于 12MHz 在 Vdd=5V 或
大于 6MHz 在 Vdd=3V
Bit 4: T0XL 定时器 0 预分配控制位。请参考 T0X12 (AUXR2.2) 的 T0XL 功能定义
Bit 3~2: P4.4 和 P4.5 复用功能选择
P4FS[1:0]
P4.4
P4.5
00
P4.4
P4.5
01
RXD0
TXD0
10
T0/T0CKO
T1/T1CKO
11
T2EX
T2/T2CKO
Bit 1: INT1H, INT1 高电平/上升沿触发使能
0:保留 nINT1 端口引脚的低电平或下降沿作为 INT1 触发
1:设置 nINT1 端口引脚的高电平或上升沿作为 INT1 触发
Bit 0: INT0H, INT0 高电平/上升沿触发使能
0: 保留 nINT0 端口引脚的低电平或下降沿作为 INT0 触发
1: 设置 nINT0 端口引脚的高电平或上升沿作为 INT0 触发.
AUXR1: 辅助控制寄存器 1
SFR 页
= 0~F
SFR 地址
= 0xA2
7
6
5
KBIPS1
KBIPS0
SPIPS0
R/W
R/W
R/W
4
S1PS1
复位值 = 0000-0000
3
2
S1PS0
T01PS0
R/W
R/W
R/W
1
EXTRAM
0
DPS
R/W
R/W
Bit 7~6: KBIPS1~0, KBI 端口选择 [1:0].
KBIPS1~0
KBI.7~0
00
P0.7 ~ P0.0
01
P2.7 ~ P2.0
10
P5.7 ~ P5.0
11
P4.3~P4.0, P3.7~P3.4
274
MA82G5Cxx 数据手册
MEGAWIN
Bit 5: SPIPS0, SPI 端口选择 0.
SPIPS0
nSS
0
P1.4
1
P4.3
MOSI
P1.5
P4.2
MISO
P1.6
P4.1
Bit 4~3: S1PS1~0, 串口 1 (UART1) 端口选择 [1:0]
S1PS2
S1PS1~0
RXD1
0
00
P1.2
0
01
P3.2
0
10
P0.6
0
11
P0.0
1
xx
P7.0
Bit 2: T01PS0, 定时器 0/1 端口选择 0.
T01PS0
T0/T0CKO
0
P3.4
1
P5.5
SPICLK
P1.7
P4.0
SPID2
P5.3
P3.6
SPID3
P5.4
P3.7
TXD1
P1.3
P3.3
P0.7
P0.5
P7.1
T1/T1CKO
P3.5
P5.6
Bit 1: EXTRAM,外部数据 RAM 使能.
0: 使能 XRAM 访问片内扩展数据 RAM (XRAM 3840 字节) on XRAM access.
1: 禁止 XRAM 访问片内扩展数据 RAM
Bit 0: DPS, DPTR 选择位. 用来在 DPTR0 和 DPTR1 之间切换
0: 选择 DPTR0.
1: 选择 DPTR1.
DPS
选择 DPTR
0
DPTR0
1
DPTR1
AUXR2: 辅助寄存器 2
SFR 页 = 0~F
SFR 地址
= 0xA3
7
6
ALEINV
ADDRO
R/W
R/W
5
--
4
--
W
W
复位值 = 0000-0000
3
2
T1X12
T0X12
R/W
R/W
1
T1CKOE
0
T0CKOE
R/W
R/W
Bit 7: ALEINV, ALE 反向输出
0: 保持 ALE 高脉冲有效
1: ALE 改为低脉冲有效
Bit 6: ADDRO, 在外部存储访问周期时地址输出
0: 禁止在外部存储访问周期时地址输出
1:仅当 EMAI.1~0 等于‖11‖时,使能在外部存储访问周期时地址输出
ADDRO
P5.7~0
P6.7~2
P7.1~0
0
P5.7~0
P6.7~2
P7.1~0
1
ADD[7:0]
ADD[15:10]
ADD[9:8]
Bit 5~4: 保留。当 AUXR2 写时,这些位软件必须写―0‖.
Bit 3: T1X12, 当 C/T=0 时,定时器 1 时钟源选择
0: 清零选择 SYSCLK/12.
1: 置位选择 SYSCLK 作为时钟源
Bit 2: T0X12, 当 C/T=0 时,定时器 0 时钟源选择
0: 清零选择 SYSCLK/12.
MEGAWIN
MA82G5Cxx 数据手册
275
1: 置位选择 SYSCLK 作为时钟源
Bit 1: T1CKOE, 定时器 1 时钟输出使能
0:禁止定时器 1 时钟输出
1:使能定时器 1 时钟在 P3.5 输出
Bit 0: T0CKOE, 定时器 0 时钟输出使能
0:禁止定时器 0 时钟输出
1:使能定时器 0 时钟在 P3.4 输出
AUXR3: 辅助寄存器 3
SFR 页 = 0 only
SFR 地址
= 0xA4
7
6
STAF
STOF
R/W
R/W
5
BPOC1
R/W
复位值 = 0000-0000
4
3
2
BPOC0
ALEPS0
TWIPS1
R/W
R/W
R/W
1
TWIPS0
0
T2PS0
R/W
R/W
Bit 7: STAF, TWI2 的开始侦测标志
0: 此位软件写“0”清零
1: 硬件置位表明 TWI2 总线出现 START
Bit 6: STOF, TWI2 的停止侦测标志
0: 此位软件写“0”清零
1: 硬件置位表明 TWI2 总线出现 STOP
Bit 5~4: BPOC1~0, 蜂鸣器输出控制位
BPOC[1:0]
P4.4 功能
I/O 模式
00
P4.4
By P4M0.4
01
ILRCO/64
By P4M0.4
10
ILRCO/32
By P4M0.4
11
ILRCO/16
By P4M0.4
蜂鸣器功能在 P4.4,推荐设置 P4M0.4 为―1‖使 P4.4 工作在推挽输出模式。
Bit 3: ALEPS0, ALE 端口选择 0.
ALEPS0
ALE
0
P4.6
1
P4.7
Bit 2~1: TWIPS1~0, TWSI 端口选择 [1:0].
TWIPS1~0
TWI_SCL
TWI_SDA
00
P4.0
P4.1
01
P6.0
P6.1
10
P3.0
P3.1
11
P3.4
P3.5
Bit 0: T2PS0, 定时器 2 端口选择 0.
T2PS0
T2/T2CKO
0
P1.0
1
P3.6
276
T2EX
P1.1
P3.7
MA82G5Cxx 数据手册
MEGAWIN
AUXR4: 辅助寄存器 4
SFR 页 = 1 only
SFR 地址
= 0xA4
7
6
C1IC2S1
C1IC2S0
R/W
R/W
5
C1IC0S1
4
C1IC0S0
R/W
R/W
复位值 = 0000-0000
3
2
AC1OE
AC1FLT1
R/W
R/W
1
AC0OE
0
AC0FLT1
R/W
R/W
1
T3PS1
0
T3PS0
R/W
R/W
Bit 7~6: C1IC2S1~0, PCA1 输入通道 2 输入选择.
C1IC2S1~0
C1EX2 输入
00
C1EX2 引脚
01
AC1OUT
10
-11
AC0OUT
Bit 5~4: C1IC0S1~0, PCA1 输入通道 0 输入选择.
C1IC0S1~0
C1EX0 输入
00
C1EX0 引脚
01
AC0OUT
10
-11
ILRCO
Bit 3: AC1OE, AC1OUT 在引脚上输出使能
0: 禁止 AC1OUT 在引脚上输出
1: 使能 AC1OUT 在 P7.2 上输出.
Bit 1: AC0OE, AC0OUT 在引脚上输出使能.
0: 禁止 AC1OUT 在引脚上输出
1: 使能 AC1OUT 在 P0.0 上输出.
AUXR5: 辅助寄存器 5
SFR 页 = 2 only
SFR 地址
= 0xA4
7
6
SnMIPS
S3PS0
R/W
R/W
5
S2PS0
R/W
复位值 = 0000-0000
4
3
2
C1PPS0
T0OPS0
T4PS0
R/W
Bit 7: SnMIPS, {S0MI, S1MI, S2MI, S3MI} 端口选择.
SnMIPS
S0MI
S1MI
0
P4.0
P4.1
1
P5.3
P5.4
R/W
R/W
S2MI
P4.2
P5.5
S3MI
P4.3
P5.6
Bit 6: S3PS0, Serial Port 3 (UART3) 端口选择 0.
S3PS0
RXD3
TXD3
0
P3.6
P3.7
1
P6.5
P6.6
Bit 5: S2PS0, Serial Port 2 (UART2) 端口选择 0.
S2PS0
RXD2
TXD2
0
P3.2
P3.3
1
P5.7
P6.7
Bit 4: C1PPS0, {C1PWM0A, C1PWM0B, C1PWM2A, C1PWM2B}端口选择 0.
C1PPS0
C1PWM0A
C1PWM0B
C1PWM2A
C1PWM2B
0
P3.4
P3.5
P3.6
P3.7
1
P6.0
P6.1
P6.2
P6.3
MEGAWIN
MA82G5Cxx 数据手册
277
Bit 3: T0OPS0, 定时器 0 时钟输出端口选择 0.
T0OPS0
T0CKOA
T0CKOB
0
P4.2
P4.3
1
P5.0
P5.1
Bit 2: T4PS0, 定时器 4 端口选择 0.
T4PS0
T4/T4CKO
0
P7.0
1
P4.2
T4EX
P7.1
P4.3
Bit 1~0: T3PS1~0, 定时器 3 端口选择[1:0].
T3PS1~0
T3/T3CKO
00
P4.6
01
P4.0
10
P2.1
11
P6.7
T3EX
P7.2
P4.1
P2.0
P5.7
AUXR6: 辅助寄存器 6
SFR 页 = 3 only
SFR 地址
= 0xA4
7
6
--W
W
5
TWI1PS1
R/W
复位值 = 0000-0000
4
3
2
TWI1PS0 C1IC4S0
C1PS0
R/W
R/W
R/W
1
PCAPS0
0
S1PS2
R/W
R/W
Bit 7~6:保留位。当改写 AUXR6 时,这些位必须软件写―0‖
Bit 5~4: TWI1PS1~0, TWI1 端口选择 [1:0].
TWI1PS1~0
TWI1_SCL
TWI1_SDA
00
P4.2
P4.3
01
P6.2
P6.3
10
P3.2
P3.3
11
P0.3
P0.4
Bit 7~6: C1IC4S0, PCA1 输入通道 4 输入选择
C1IC4S0
C1EX4 输入
0
C1EX4 引脚
1
AC2OUT
Bit 2: C1PS0, PCA1 端口选择 0.
C1PS0
C1EX0
0
P6.2
1
P3.6
Bit 1: PCAPS0, PCA 端口选择 0.
PCAPS0
ECI
0
P2.1
1
P0.0
C1EX1
P6.5
P4.1
CEX0
P2.2
P3.4
Bit 0: S1PS2, 串口 1 (UART1) 端口选择[2]
S1PS2
S1PS1~0
0
00
0
01
0
10
0
11
1
xx
278
C1EX2
P6.3
P3.7
CEX1
P2.3
P3.5
RXD1
P1.2
P3.2
P0.6
P0.0
P7.0
C1EX3
P6.6
P4.2
CEX2
P2.4
P4.0
C1EX4
P6.4
P4.0
CEX3
P2.5
P4.1
C1EX5
P6.7
P4.3
CEX4
P2.6
P4.2
CEX5
P2.7
P4.3
TXD1
P1.3
P3.3
P0.7
P0.5
P7.1
MA82G5Cxx 数据手册
MEGAWIN
AUXR7: 辅助寄存器 7
SFR 页 = 4 only
SFR 地址
= 0xA4
7
6
GF
PBKS5
R/W
R/W
5
PBKS4
4
PBKS3
R/W
R/W
复位值 = 0000-0000
3
2
GF
GF
R/W
R/W
1
AC2OE
0
AC2FLT1
R/W
R/W
1
X1FLT
0
X0FLT
R/W
R/W
1
X1FLT1
0
X0FLT1
R/W
R/W
Bit 1: AC2OE, AC2OUT 在端口引脚上输出使能.
0: 禁止 AC2OUT 在端口引脚上输出
1: 使能 AC2OUT 在 P6.4 上输出
XICFG: 扩展中断配置寄存器
SFR 页 = 0 only
SFR 地址
= 0xC1
7
6
5
INT1IS.1
INT1IS.0
INT0IS.1
R/W
R/W
R/W
4
INT0IS.0
R/W
复位值 = 0000-0000
3
2
X3FLT
X2FLT
R/W
R/W
Bit 7~6: INT1IS.1~0, nINT3 输入选择位功能定义如下表
INT1IS.1~0
选择 nINT1 的端口引脚
00
P3.3
01
P3.1
10
P1.7
11
P4.1
Bit 5~4: INT0IS.1~0, nINT0 输入选择位功能定义如下表
INT0IS.1~0
选择 nINT0 的端口引脚
00
P3.2
01
P3.0
10
P1.6
11
P4.0
XICFG1: 扩展中断配置寄存器 1
SFR 页 = 1 only
SFR 地址
= 0xC1
7
6
5
INT3IS.1
INT3IS.0
INT2IS.1
R/W
R/W
R/W
4
INT2IS.0
R/W
复位值 = 0000-0000
3
2
X3FLT1
X2FLT1
R/W
R/W
Bit 7~6: INT3IS1~0, nINT3 输入选择位功能定义如下表.
INT3IS.1~0
选择 nINT3 的端口引脚
00
P4.2
01
P6.3
10
P1.5
11
P6.0
Bit 5~4: INT2IS1~0, nINT2 输入选择位功能定义如下表.
INT2IS.1~0
选择 nINT2 的端口引脚
00
P4.3
01
P6.2
10
P1.4
11
P6.1
MEGAWIN
MA82G5Cxx 数据手册
279
SFRPI: SFR 页 索引寄存器
SFR 页
= 0~F & P
SFR 地址
= 0xAC
7
6
--W
W
5
--
4
--
W
W
复位值 = xxxx-0000
3
2
PIDX3
PIDX2
R/W
R/W
1
PIDX1
0
PIDX0
R/W
R/W
Bit 7~4:保留位。当改写 SFRPI 时,这些位必须软件写―0‖
Bit 3~0: SFR 页索引.
PIDX[3:0]
0000
0001
0010
0011
……
……
……
1111
280
选择页面
Page 0
Page 1
Page 2
Page 3
……
……
……
Page F
MA82G5Cxx 数据手册
MEGAWIN
32. 硬件选项
MCU 的硬件选项定义了器件的性能,它不能由软件编程和控制。硬件选项仅能由通用编程器,―Megawin 8051
Writer U1‖ 或 ―Megawin 8051 ICE Adapter‖(这个 ICE 也支持 ICP 编程功能。参考章节―33.5 在芯片编程功能‖)来编
程。整片擦除后,所有的硬件选项被设置成―禁止‖状态,没有配置 ISP 空间和 IAP 空间 。 MA82G5C64 有下列的
硬件选项
LOCK:
:使能. 加密上锁,使得用通用编程器读取代码锁定为 0xFF
:禁止. 没有上锁
ISP-存储空间:
由其指定 ISP 空间的起始地址。它的高边界由 Flash 的结束地址限定,例如:0x7FFF。下表列举了 ISP 空间选
项。默认设定, MA82G5C64 ISP 空间被配置为 2.5K, 并嵌入了 Megawin COMBO ISP 引导码,通过 Megawin
1-线 ISP 协议 和 串口 ISP 协议,进行在线设备 FW 更新。
ISP-空间大小
ISP 起始地址
4K 字节
3.5K 字节
3K 字节
2.5K 字节
2K 字节
1.5K 字节
1K 字节
无 ISP 空间
--
HWBS:
:使能. 上电时,如果 ISP 空间有配置,则 MCU 从 ISP 空间启动
:禁止. MCU 总是从 AP 空间启动
HWBS2:
:使能. 如果 ISP 空间有配置,不仅上电,而且所有复位都是从 ISP 空间启动
:禁止. 由 HWBS 决定 MCU 从哪里启动
IAP-memory Space:
IAP 存储空间指定用户定义的 IAP 空间。IAP 存储空间可以由硬件选项或者 MCU 软件修改 IAPLB 来配置。默
认,它被配置为 2.5KB
BO1S1O, BO1S0O:
,:选择 BOD1 检测电压 2.0V.
,:选择 BOD1 检测电压 2.4V.
,:选择 BOD1 检测电压 3.7V.
,:选择 BOD1 检测电压 4.2V.
BO0REO:
:使能. BOD0 将触发复位事件使得 CPU 从 AP 程序起始地址允许(2.2V)
:禁止. BOD0 不能触发 CPU 复位
BO1REO:
:使能. BOD1 (4.2V, 3.7V, 2.4V 或 2.0V)将触发复位事件使得 CPU 从 AP 程序起始地址允许
:禁止. BOD1 不能触发 CPU 复位
WRENO:
MEGAWIN
MA82G5Cxx 数据手册
281
:使能. 置位 WDTCR.WREN 使能 WDTF 产生一个系统复位
:禁止. 清零 WDTCR.WREN 禁止 WDTF 产生一个系统复位
NSWDT: 不停止 WDT
:使能. 置位 WDTCR.NSW 在掉电模式下使能 WDT 运行(watch 模式)
:禁止. 清零 WDTCR.NSW 在掉电模式下禁止 WDT 允许(禁止 Watch 模式)
HWENW: 硬件加载―ENW‖到 WDTC.
: 使能。上电后使能 WDT 并且加载 WRENO, NSWDT, HWWIDL 和 HWPS2~0 的内容到 WDTCR
: 禁止。上电后 WDT 不会自动使能
HWWIDL, HWPS2, HWPS1, HWPS0:
当 HWENW 使能,上电后这 4 个熔丝位的内容将被加载到 WDTCR
WDSFWP:
:使能. WDT 特殊寄存器,WDTCR 的 WREN, NSW, WIDL, PS2, PS1 和 PS0 位,将被写保护
:禁止. WDT 特殊寄存器,WDTCR 的 WREN, NSW, WIDL, PS2, PS1 和 PS0 位,由软件自由写
282
MA82G5Cxx 数据手册
MEGAWIN
33. 应用说明
33.1. 电源电路
MA82G5C64 的工作电源变化可以从 2.0V 到 5.5V 但是增加一些外部去耦和滤波电容是必须的,如图 33–1 所示。
图 33–1. 电源电路
Power Supply
MCU
VDD
0.1uF
10uF
VR0
0.1uF
VSS
4.7uF
33.2. 复位电路
通常,上电可以成功产生上电复位,然而,为了上电时 MCU 产生一个可靠的复位,有必要加外部复位。外部复位
电路如图 33–2 所示,它由一个连接到 VDD(电源)的电容 CEXT 和一个连接到 VSS(地)的电阻组成。
一般的, REXT 是可选的,因为 RST 引脚有一个内部下拉电阻(RRST). 这个对 VSS 的内部扩散电阻在仅使用一个外部
对 VDD 的电容 CEXT 时也可产生一个上电复位
RRST 的值见章节― 34.2 直流特性 ‖。
图 33–2. 复位电路
Power Supply
MCU
VDD
4.7uF
CEXT
RST
47KΩ
REXT
RRST
(Optional)
VSS
MEGAWIN
MA82G5Cxx 数据手册
283
33.3. 外部晶振 XTAL 振荡电路
为了能成功起振 (最大到 24MHz), 电容 C1 和 C2 是必须的,如图 33–3 所示。 通常, C1 和 C2 使用相同的值。表
33–1 列举了 C1 & C2 在不同晶振下的值。
图 33–3. XTAL 振荡电路
MCU
XTAL2
Crystal
XTAL1
C1
C2
表 33–1. 振荡电路的电容 C1 及 C2 参照表
284
晶振 l
C1, C2 电容
16MHz ~ 25MHz
6MHz ~ 16MHz
10pF
15pF
2MHz ~ 6MHz
33pF
MA82G5Cxx 数据手册
MEGAWIN
33.4. ICP 和 OCD 接口电路
MA82G5C64 包含一个笙泉专有的在芯片调试接口,它允许在元器件已经安装在产品上在芯片编程(ICP)和在线调
试(OCD)。ICP 和 OCD 共享同样的接口使用一个时钟线(ICP_SCL/OCD_SCL)和一个个双向数据线
(ICP_SDA/OCD_SDA)完成主机与设备之间的数据传送。
ICP 接口允许的 ICP_SCL/ICP_SDA 引脚与用户应用共享,使得可以实现在芯片 FLASH 编程。这是可行的,因为
当芯片在 Halt 状态时执行 ICP 通信,此时芯片上的外围设备和用户软件都是失效的。在 halt 状态,ICP 接口能够
安全的―借用‖ICP_SCL (P4.4)和 ICP_SDA (P4.5) 引脚。 在大多应用中,必须用外部电阻来隔开 ICP 电路和用户应
用电路。图 33–4 展示了一种典型的隔离方法。
强烈建议在目标系统建立 ICP 接口电路。它保留了整个软件编程和硬件选项配置的能力。
上电后,MA82G5C64 的 P4.4 和 P4.5 被配置成 OCD_SCL/OCD_SDA 用于在线调试功能。 这是可行的,因为
OCD 通信是在 CPU Halt 状态下执行,此时用户软件是无效的。 在 halt 状态,OCD 接口可以安全的使用
OCD_SCL(P4.4)和 OSC_SDA(P4.5)引脚。就像上面提到的隔离 ICP 接口,如图 33–4,用外部电阻来隔开 ICP 电
路和用户应用电路。
如果用户放弃 OCD 功能,软件可以通过清零 PCON3 的位 0 (OCDE) 来配置 OCD_SCL 和 OCD_SDA 引脚作为
P4.4 口和 P4.5 口。当用户想重新使用 OCD 功能, 用户可以置 OCDE 为 1 来切换 P4.4 和 P4.5 到 OCD_SCL 和
OCD_SDA。或者用 ICP―擦除‖在芯片 FLASH 清除用户软件来停止端口的却换。
图 33–4. ICP 和 OCD 接口电路
Target System
RESET
Input
MCU
4.7KΩ
RST
4.7KΩ
Input 1
OCD_SCL
Output 1
4.7KΩ
Input 2
OCD_SDA
Output 2
OCD ICE Adaptor or
Megawin Writer
MEGAWIN
MA82G5Cxx 数据手册
285
33.5. 在芯片编程功能
ICP,就像传统的并行编程方式,可以编程 MCU 的任何区域,包括 FLASH 和 MCU 的硬件选项。并且,得益于它
专用的串行接口(经由在线调试通道),使得 ICP 可以更新 MCU 而不用从用户的产品上卸下 MCU,就像 ISP 做
的那样。
专用的 6 脚 ―Megawin 8051 ICE Adapter‖ 可以支持 MA82G5C64 在线路编程。 ―Megawin 8051 ICE Adapter‖ 有
在系统的存储器来存储用户的程序和器件选项。因此,该工具可以完成一个便携的,独立的编程,而不用连线主
机,如连接该工具到 PC。下面列举了 ICP 功能的特点:
特点
不必在目标芯片上预编程一个引导程序
专用串行接口;不占用 IO 口
目标芯片不必在运行状态;仅需电源
便携,独立的工作,而无需主机的干预
以上特点使得 ICP 非常有利于用户。特别的,在编程数据下载后的便携独立工作,尤其有利于没有 PC 的地方使
用。图 33–5 显示了 ICP 独立编程的系统框图。ICP 接口仅需 5 个引脚: SDA 线和 SCL 线是串行数据和串行时
钟,用来从 6 脚 ―Megawin 8051 ICE Adapter‖传送编程数据到目标 MCU; RST 线用来暂停 MCU; VCC & GND
是 6 脚 ―Megawin 8051 ICE Adapter‖ 用于便携编程应用的电源输入。 USB 连接器可以直接的插入 PC 的 USB 端
口,用来从 PC 下载编程数据到 6-pin ―Megawin 8051 ICE Adapter‖。
图 33–5. 经由 ICP 的独立编程
Target System
MCU
ICP & OCD
Interface
START button: for code programming
N.C.
OCD_SCL
VDD
OCD_SDA
VSS
RST
SCL
VCC
SDA
GND
RST
(less than 20cm)
P3.0
SCL
VCC
SDA
GND
RST
USB
MEGAWIN
MAKE YOU WIN
8051 ICE Adapter
Program code
download path
"Megawin 8051 OCD ICE"
286
MA82G5Cxx 数据手册
MEGAWIN
33.6. 在线调试功能
MA82G5C64 预备了一个用于在线仿真(ICE)的 Megawin 专用的在线调试(OCD)接口。这个 OCD 接口提供在芯
片和系统不干扰的调试,且不占用任何的目标系统资源。支持 ICE 的几种必要操作,如复位,运行,停止,单步运
行,运行到光标和断点设置。
使用 OCD 技术,Megawin 提供 ―Megawin 8051 OCD ICE‖ 给用户,如图 33–6 所示. 用户在开发过程中不必准备
任何的开发板,或者用在传统 ICE 探头的转换座。所有这些,用户仅需在系统上保留一个 6-脚的连接器用于专用
的 OCD 接口 : P3.0, RST, VCC, OCD_SDA, OCD_SCL 和 GND ,如图 33–6 所示
另外,最有力的功能是,它可以直接让用户的系统连接到 Keil 8051 IDE 软件进行仿真,它直接利用 Keil IDE‘s
dScope-Debugger 功能。当然,所有的特点都基于你使用的 Keil 8051 IDE 软件。
注: “Keil” 是 “Keil Elektronik GmbH and Keil Software, Inc.”的注册商标.
特点
笙泉科技专用的 OCD (在芯片调试) 技术
在芯片和在系统实时调试
用于 OCD 的 5-引脚专用串行接口, 不占用目标资源
直接连接 Keil IDE 软件的调试功能
USB 连接目标板与主机(PC)
有用的调试动作:复位,运行,停止,单步运行和运行到光标
可编程断点,可在仿真中插入 4 个断点
数个帮助调试串口:寄存器/反汇编/监视/存储区窗口
源代码级(汇编或 C 语言)调试能力
图 33–6. ICE 系统框图
Target System
MCU
ICP & OCD
Interface
OCD_SCL
VDD
OCD_SDA
VSS
RST
SCL
VCC
SDA
GND
RST
PC
"Megawin 8051 OCD ICE"
N.C.
(less than 20cm)
P3.0
SCL
VCC
SDA
GND
RST
MEGAWIN
USB
Keil 8051
IDE
MAKE YOU WIN
8051 ICE Adapter
注: 更多有关 OCD ICE 的详细信息,请联系笙泉。
MEGAWIN
MA82G5Cxx 数据手册
287
34. 电气特性
34.1. 最大绝对额定值
参数
范围
单位
环境温度
-40 ~ +85
°C
存储温度
-65 ~ + 150
°C
任意 GPIO 口或 RST 对地电压
-0.5 ~ VDD + 0.5
V
VDD 对地电压
-0.5 ~ +6.0
V
VDD 到地的最大电流
200
mA
任意引脚最大灌电流
40
mA
*注意:实际参数超过上述各项―绝对最大额定值‖可能会对设备造成永久性损坏。这些参数是一个设备进行正常功能
操作的应力额定值,任何超过上述各项的条件都不被建议,否则可能会影响设备运行的稳定性。
288
MA82G5Cxx 数据手册
MEGAWIN
34.2. 直流特性
VDD = 5.0V±10%, VSS = 0V, TA = 25 ℃并且 CPU 空运行,除非另外说明
标号
VIH1
VIH2
VIL1
VIL2
IIH
IIL1
IIL2
IH2L
IOH0
IOH1
IOL1
IOH2
IOL2
RRST
IOP1
IOP2
IOP3
IOP4
IOP5
IOP6
IOP7
IOP8
IOPS1
IOPS2
IIDLE1
IIDLE2
参数
测试环境
输入/输出特性
Except P6.0, P6.1,
输入高电平(所有 I/O 口)
RST(P4.7)
P6.0, P6.1, RST(P4.7)
输入高电平
Except P6.0, P6.1,
输入低电平(所有 I/O 口)
RST(P4.7)
P6.0, P6.1, RST(P4.7)
输入低电平
VPIN = VDD
输入高漏电流 (所有 I/O 口)
逻辑 0 输入电流(P3 在准双向口模
VPIN = 0.4V
式或片内上拉电阻的输入端口)
逻辑 0 输入电流(所有仅输入或开漏
VPIN = 0.4V
输出口)
逻辑 1 到 0 输入转变电流 (P3 在准
双向口模式或片内上拉电阻的输入 VPIN =1.8V
端口)
输出高电流(P3 在准双向口模式或
VPIN =2.4V
片内上拉电阻与其它开漏输出端口)
VPIN =2.4V
输出高电流(所有推挽输出口)
VPIN =0.4V
输出低电流(所有 I/O 口)
VPIN =2.4V, except
输出高电流(所有推挽输出口)
P6.0, P6.1, P4.7
VPIN =0.4V, except
输出低电流(所有 I/O 口)
P6.0, P6.1, P4.7
内部复位下拉电阻
功耗
SYSCLK = 32MHz @
一般模式工作电流 t
IHRCO with PLL
SYSCLK = 24MHz @
IHRCO with PLL
SYSCLK = 12MHz @
IHRCO
SYSCLK = 12MHz @
IHRCO with ADC
SYSCLK = 24MHz @
XTAL
SYSCLK = 12MHz @
XTAL
SYSCLK = 6MHz @
XTAL
SYSCLK = 2MHz @
XTAL
SYSCLK = 12MHz/128
低速模式工作电流
@ IHRCO
SYSCLK = 12MHz/128
@ XTAL
SYSCLK = 12MHz @
空闲模式工作电流
IHRCO
SYSCLK = 12MHz @
XTAL
MEGAWIN
MA82G5Cxx 数据手册
最小
极限
典型
单位
最大
0.6
VDD
0.75
VDD
150
0.15
VDD
0
0.2
10
VDD
uA
20
50
uA
0
10
uA
320
500
uA
200
uA
12
12
mA
mA
2
mA
2
mA
110
Kohm
7
mA
5.6
mA
3
mA
mA
6.2
mA
4
mA
2.7
mA
1.7
mA
0.5
mA
1.4
mA
1.4
mA
2.3
mA
289
IIDLE3
IIDLE4
IIDLE5
ISUB1 副频模式工作电流
SYSCLK = 32KHz/128 @
ILRCO, BOD1 禁止
ISUB2
IWAT Watch 模式工作电流
IMON1 Monitor 模式工作电流
IRTC1 RTC 模式工作电流
IPD1
VBOD0
VBOD10
VBOD10
VBOD11
VBOD11
WDT = 32KHz @
ILRCO 在 PD 模式
在 PD 模式 BOD1 使能
RTC 在 PD 模式,
VDD=5.0V
RTC 在 PD 模式,
VDD=3.0V
BOD0 检测电平
BOD1 检测电平在 2.0V
BOD1 检测电平在 2.4V
BOD1 检测电平在 3.7V
BOD1 检测电平在 4.2V
VPSR 上电边沿速率
VPOR1 上电复位有效电压
VOP1 XTAL 工作速度 0–24MHz
VOP2 XTAL 工作速度 0-12MHz
VOP3 CPU 工作速度 0-24MHz
VOP4 CPU 工作速度 0-12MHz
(1)
数据基于特性所得, 非量产测试.
BOD0/BOD1 特性
TA = -40°C to +85°C
TA = -40°C to +85°C
TA = -40°C to +85°C
TA = -40°C to +85°C
TA = -40°C to +85°C
TA = +25°C, VDD=5.0V
TA = +25°C, VDD=3.3V
工作环境
TA = -40°C to +85°C
TA = -40°C to +85°C
TA = -40°C to +85°C
TA = -40°C to +85°C
TA = -40°C to +85°C
TA = -40°C to +85°C
MA82G5Cxx 数据手册
0.47
mA
1.37
mA
110
uA
115
uA
105
uA
4
uA
14
uA
12
uA
4
掉电模式电流
IBOD1 BOD1 功耗
290
SYSCLK = 12MHz/128
@ IHRCO
SYSCLK = 12MHz/128
@ XTAL
SYSCLK = 32KHz @
ILRCO
SYSCLK = 32KHz @
ILRCO, BOD1 禁止
2.5
uA
1.7
2.0
2.4
3.7
4.2
6
4.5
V
V
V
V
V
uA
uA
0.05
2.7
2.0
2.4
2.0
0.1
5.5
5.5
5.5
5.5
V/ms
V
V
V
V
V
MEGAWIN
34.3. 外部时钟特性
VDD = 2.0V ~ 5.5V, VSS = 0V, TA = -40℃ to +85℃, 除非其它说明
振荡
标号
参数
晶振模式
最小
最大
ECKI 模式
最小
最大
单位
tCLCL
振荡频率
(VDD = 2.7V ~ 5.5V)
振荡频率
(VDD = 2.0V ~ 5.5V)
时钟周期
tCHCX
高电平时间
0.4T
0.6T
0.4T
0.6T
tCLCL
tCLCX
低电平时间
0.4T
0.6T
0.4T
0.6T
tCLCL
tCLCH
上升时间
5
5
ns
tCHCL
下降时间
5
5
ns
1/tCLCL
1/tCLCL
0.032
25
0
25
MHz
0.032
12
0
12
MHz
41.6
41.6
ns
图 34–1. 外部时钟驱动波形
tCHCX
tCLCH
tCHCL
VDD - 0.5V
0.7VDD
0.2VDD - 0.1
0.45V
tCLCX
tCLCL
34.4. IHRCO 特性
参数
测试环境
电源电压
IHRCO 频率
IHRCO 频率误差
(工厂校对)
IHRCO 启动时间
IHRCO 功耗
(1)
数据基于特性所得, 非量产测试
最小
1.8
TA = +25°C, AFS = 0
TA = +25°C, AFS = 1
TA = +25°C
-1.0
(1)
TA = -40°C to +85°C
-2.5
TA = -40°C to +85°C
TA = +25°C, VDD=5.0V
极限
典型
单位
最大
5.5
12
11.059
+1.0
(1)
+2.5
(1)
32
1)
350
V
MHz
MHz
%
%
us
uA
34.5. ILRCO 特性
参数
电源电压
ILRCO 频率
ILRCO 频率误差
(1)
测试环境
TA = +25°C
TA = +25°C
TA = -40°C to +85°C
最小
1.8
极限
典型
单位
最大
5.5
32
(1)
-15
(1)
-40
(1)
+15
(1)
+40
V
KHz
%
%
数据基于特性所得, 非量产测试
MEGAWIN
MA82G5Cxx 数据手册
291
34.6. CKM 特性
参数
电源电压
时钟输入范围
CKM 启动时间
CKM 功耗
(1)
数据由设计保证,非量产测试
(2)
数据基于特性所得, 非量产测试
测试环境
TA = -40°C to +85°C
TA = -40°C to +85°C
TA = -40°C to +85°C
TA = +25°C, VDD=5.0V
最小
2.4
(1)
4.5
(2)
30
极限
典型
单位
最大
5.5
(1)
6.5
(2)
100
480
V
MHz
us
uA
34.7. Flash 特性
参数
测试环境
电源电压
Flash 写 (擦除/编程)电压
Flash 擦除/编程 周期
Flash 数据保留
TA = -40°C to +85°C
TA = -40°C to +85°C
TA = -40°C to +85°C
TA = +25°C
292
MA82G5Cxx 数据手册
最小
1.7
1.8
20,000
100
极限
典型
单位
最大
5.5
5.5
V
V
times
year
MEGAWIN
34.8. ADC 特性
VDD=5.0V, VREF+=3.0, TA= -40℃ ~ +85℃除非其他说明
参数
测试环境
最小
极限
典型
最大
单位
电源范围
电源电压
2.4
5.5
V
DC 精度
分辨率
整体非线性
差分非线性
偏移错误
bits
VDD= VREF+= 5.0V
LSB
VDD= VREF+= 2.4V~5.5V
VDD > VREF+ &
VREF+= 3.0V ~VDD
LSB
VDD= VREF+= 2.4V~5.5V
LSB
VDD > VREF+ &
VREF+= 3.0V ~VDD
VDD= VREF+= 2.4V~5.5V
VDD > VREF+ &
VREF+= 3.0V ~VDD
转换率
SAR 转换时钟
在 SAR 时钟里的转换时间
吞吐率
LSB
LSB
LSB
MHz
clocks
ksps
模拟输入
单端 (AIN+ – GND)
V
差分 (AIN+ – AIN–)
V
ADC 输入电压范围
输入电容
电源电流
MEGAWIN
pF
功耗
工作模式, 250 ksps
MA82G5Cxx 数据手册
mA
293
34.9. 串口时序特性
VDD = 5.0V±10%, VSS = 0V, TA = -40°C to +85°C, 除非其它说明
URM0X3 = 0
标号
参数
Min.
Max
tXLXL
12T
串口时钟周期
tQVXH
设置输出数据到时钟上升沿
tXHQX
URM0X3 = 1
Min.
Max
4T
单位
TSYSCLK
10T-20
T-20
ns
上升沿后保持输出数据
T-10
T-10
ns
tXHDX
上升沿后保持输入数据
0
0
ns
tXHDV
时钟上升沿到输入数据有效
10T-20
2T-20
ns
图 34–2. 移位寄存器模式时序波形
tXLXL
CLOCK
tQVXH
tXHQX
WRITE TO SBUF
0
1
2
3
4
5
6
7
tXHDX
OUTPUT DATA
CLEAR RI
SET TI
tXHDV
VALID
VALID
VALID
VALID
VALID
VALID
VALID
SET RI
INPUT DATA
294
VALID
MA82G5Cxx 数据手册
MEGAWIN
34.10. SPI 时序特性
VDD = 5.0V±10%, VSS = 0V, TA = -40°C to +85°C, 除非其它说明
标号
参数
最小
最大
单位
10
TSYSCLK
TSYSCLK
ns
ns
ns
4T
TSYSCLK
TSYSCLK
TSYSCLK
主模式时序
SPICLK 高时间
SPICLK 低时间
MISO 有效到 SPICLK 转变边沿
SPICLK 转变边沿到 MISO 变化
SPICLK 转变边沿到 MOSI 变化
tMCKH
tMCKL
tMIS
tMIH
tMOH
2T
2T
2T+20
0
从模式时序
tSE
tSD
tSEZ
nSS 下降沿到第一个 SPICLK 边沿
最后一个 SPICLK 边沿到 nSS 上升沿
nSS 下降沿到 MISO 有效
tSDZ
tCKH
tCKL
tSIS
tSIH
nSS 上升沿到 MISO 高阻
SPICLK 高时间
SPICLK 低时间
MOSI 有效到 SPICLK 采样边沿
SPICLK 采样边沿到 MOSI 变化
tSOH
SPICLK 移位边沿到 MISO 变化
tSLH
最后的 SPICLK 边沿到 MISO 变化
(仅 CPHA = 1)
2T
2T
4T
TSYSCLK
TSYSCLK
TSYSCLK
TSYSCLK
TSYSCLK
4T
TSYSCLK
2T
TSYSCLK
4T
4T
2T
2T
1T
图 34–3. SPI 主机传送波形 CPHA=0
Clock Cycle
1
2
3
4
5
6
7
8
SPICLK(CPOL=0)
tCKH
tCKL
SPICLK(CPOL=1)
tMIS
tMIH
MISO
tMOH
MOSI
图 34–4. SPI 主机传送波形 CPHA=1
1
Clock Cycle
2
3
4
5
6
7
8
SPICLK(CPOL=0)
tCKH
tCKL
SPICLK(CPOL=1)
tMIS
tMIH
MISO
tMOH
MOSI
MEGAWIN
MA82G5Cxx 数据手册
295
图 34–5. SPI 从机传送波形 CPHA=0
1
Clock Cycle
2
3
4
5
6
7
8
tSE
SPICLK(CPOL=0)
tCKH
tCKL
tSD
SPICLK(CPOL=1)
tSIS
tSIH
MOSI
MISO
tSEZ
tSOH
tSDZ
nSS
图 34–6. SPI 从机传送波形 CPHA=1
1
Clock Cycle
2
3
4
5
6
7
8
tSE
SPICLK(CPOL=0)
tCKL
tCKH
tSD
SPICLK(CPOL=1)
tSIS
tSIH
MOSI
tSOH
tSLH
MISO
tSEZ
tSDZ
nSS
296
MA82G5Cxx 数据手册
MEGAWIN
34.11. 外部存储周期时序特性
在下面工作环境下,端口 0, ALE, 和 PSEN的负载电容 = 100 pF; 其它输出的负载电容= 80pF. TA = -40°C to +85°C,
VDD=5.0V±10%, VSS=0V
T: 时钟周期
M: ALE 扩展时钟数, M = 0T~3T
N: 读/写脉冲宽度扩展时钟数, N = 0T ~ 7T
L: 读/写脉冲设置/保持扩展时钟数, L = 0T ~ 1T
振荡
36MHz 不扩展
36MHz 扩展 MOVX
标号
参数
单位
MOVX
最小.
最大
最小.
最大
1/tCLCL
32
32
MHz
振荡频率
tLHLL
T-10
T+M-10
ns
ALE 脉冲宽度
tAVLL
T-12
T+M-12
ns
地址有效到ALE变低电平
tLLAX
T-12
T+M-12
ns
ALE变低后地址保持时间
tRLRH
T-10
T+N-10
ns
nRD脉冲宽度
tWLWH
T-10
T+N-10
ns
nWR脉冲宽度
tRLDV
T-20
T+N-20
ns
nRD 变低到有效数据输入
tRHDX
0
0
ns
nRD之后数据保持时间
tRHDZ
10
10
ns
nRD之后数据变浮空时间
tLLDV
3T-20
3T+M+L+N
ns
ALE变低到有效数据输入
-20
tAVDV
4T-20
4T+2M+L+N
ns
地址到有效数据输入
-20
tLLWL
2T-10
2T+10 2T+2M+L
2T+2M+L
ns
ALE变低到nRD或nWR变低
-10
+10
tAVWL
3T-10
3T+2M+L
ns
地址到nRD或nWR变低
-10
tWHQX
T-10
T+L-10
ns
nWR之后数据保持时间
tQVWH
2T-10
2T+L+N
ns
Data有效到nWR变高时间
-10
tQVWX
T-10
T+L-10
ns
Data有效到nWR有高到低变化
tRLAZ
0
0
ns
nRD低到地址悬空
tWHLH
T-10
T+L-10
ns
nRD或nWR高到ALE高
标号解释 每个标号有5个字符。第一个字符总是―t‖(代表时间)。其它字符,取决于它所在的位置,表示信号的名称
或者信号的逻辑状态。下面列举了所有字符,以及它们所代表的意思。
A: 地址
Q: 输出数据
C: 时钟
R: RD信号
D: 输入数据
t: 时间
H: 逻辑高电平
V: 有效
L: 逻辑低电平或ALE
W: WR信号
X: 不再是一个有效电平l
Z: 高阻(浮空)
例如:
tAVLL = 从地址有效到ALE低时间
tRLRH = nRD 脉冲宽度
MEGAWIN
MA82G5Cxx 数据手册
297
图 34–7. 外部数据读周期
Port 2
P2.0 – P2.7
P2.0 – P2.7 OR A8 - A15 FROM DPH
P2.0 – P2.7
tAVDV
tLLDV
Port 0
P0.0 – P0.7
A0 – A7 FROM Ri OR DPL
tLHLL
tRHDX
tRLAZ
tLLAX
tRLDV
ALE
tRHDZ
P4.6
P4.6
tAVLL
nRD
P0.0 – P0.7
DATA IN
tLLWL
tRLRH
tWHLH
P3.7
P3.7
tAVWL
图 34–8. 外部数据写周期
Port 2
P2.0 – P2.7
Port 0
P0.0 – P0.7
P2.0 – P2.7 OR A8 - A15 FROM DPH
A0 – A7 FROM Ri OR DPL
tQVWH
tLLAX
tWHQX
tQVWX
P4.6
P4.6
tAVLL
nWR
P0.0 – P0.7
DATA OUT
tLHLL
ALE
P2.0 – P2.7
tLLWL
tWLWH
P3.6
tWHLH
P3.6
tAVWL
298
MA82G5Cxx 数据手册
MEGAWIN
35. 封装尺寸
LQFP-48
MEGAWIN
MA82G5Cxx 数据手册
299
LQFP-64 ( 10mm x 10mm )
300
MA82G5Cxx 数据手册
MEGAWIN
36. 指令集
表 36–1. 指令集
助记符
描述
字
执行周期
节
数据传送
MOV A,Rn
寄存器 Rn 中的内容送到累加器中
MOV A,direct
直接地址单元中的内容送到累加器中
MOV A,@Ri
工作寄存器 Ri 指向的地址单元中的内容送到累加器中
MOV A,#data
立即数送到累加器中
MOV Rn,A
累加器中内容送到寄存器Rn中
MOV Rn,direct
直接寻址单元中的内容送到寄存器Rn中
MOV Rn,#data
立即数直接送到寄存器Rn中
MOV direct,A
累加器送到直接地址单元
MOV direct,Rn
寄存器Rn中的内容送到直接地址单元
MOV direct,direct
直接地址单元中的内容送到另一个直接地址单元
MOV direct,@Ri
工作寄存器Ri指向的地址单元中的内容送到直接地址单元
MOV direct,#data
立即数送到直接地址单元
MOV @Ri,A
累加器送到以工作寄存器Ri指向的地址单元中
MOV @Ri,direct
直接地址单元中内容送到以工作寄存器Ri指向的地址单元中
MOV @Ri,#data
立即数送到以工作寄存器Ri指向的地址单元中
MOV
DPTR,#data16
16位常数的高8位送到DPH,低8位送到DPL
MOVC
A,@A+DPTR
以DPTR为基地址变址寻址单元中的内容送到累加器中
MOVC A,@A+PC
以PC为基地址变址寻址单元中的内容送到累加器中
MOVX A,@Ri
内置RAM(8位地址)的数据送入累加器中
MOVX A,@DPTR
寄存器Ri指向扩展RAM地址(8位地址)中的内容送到ACC中
MOVX @Ri,A
数据指针指向扩展RAM地址(16位地址)中的内容送到ACC中
MOVX @DPTR,A
累加器中的内容送到寄存器Ri指向的扩展RAM地址(8位地址)中
MOVX A,@Ri
累加器中的内容送到寄存器Ri指向的扩展RAM地址(16位地址)中
MOVX A,@DPTR
外部RAM(16位地址)的数据送入累加器中
MOVX @Ri,A
寄存器Ri指向片外RAM地址中的内容送到ACC中
MOVX @DPTR,A
数据指针指向片外RAM地址(16位地址)中内容送到ACC中
PUSH direct
直接地址单元中的数据压入堆栈中
POP direct
出栈数据送到直接地址单元中
XCH A,Rn
累加器与寄存器Rn中的内容互换
XCH A,direct
累加器与直接地址单元中的内容互换
XCH A,@Ri
累加器与工作寄存器Ri指向的地址单元中内容互换
XCHD A,@Ri
累加器与工作寄存器Ri指向的地址单元中内容低半字节互换
1
2
1
2
1
2
2
2
2
3
2
3
1
2
2
1
2
2
2
2
4
2
3
3
4
4
3
3
3
3
3
3
1
4
1
1
1
1
1
1
1
1
1
2
2
1
2
1
1
4
3
3
3
3
3~
203*Note1
~
203*Note1
~
203*Note1
~
20*Note1
4
1
2
1
2
1
2
1
2
1
2
3
3
2
2
3
3
2
2
3
3
4
4
4
算术运算
ADD A,Rn
ADD A,direct
将寄存器Rn中的内容加到累加器中
直接地址单元中的内容加到累加器中
ADD A,@Ri
寄存器工作寄存器Ri指向的地址单元中的内容加到累加器中
ADD A,#data
立即数加到累加器中
ADDC A,Rn
累加器与工作寄存器Rn中的内容、连同进位位相加,结果存在累加器中
ADDC A,direct
累加器与直接地址单元的内容、连同进位位相加,结果存在累加器中
ADDC A,@Ri
累加器与工作寄存器Ri指向的地址单元中的内容、连同进位位相加,结果存在累加器中
ADDC A,#data
累加器与立即数、连同进位位相加,结果存在累加器中
SUBB A,Rn
累加器与工作寄存器中的内容、连同借位位相减,结果存在累加器中
MEGAWIN
MA82G5Cxx 数据手册
301
SUBB A,direct
累加器与直接地址单元中的内容、连同借位位相减,结果存在累加器中
SUBB A,@Ri
累加器与工作寄存器Ri指向的地址单元中内容、连同借位位相减,结果存在累加器中
SUBB A,#data
累加器与立即数、连同借位位相减,结果存在累加器中
INC A
累加器中的内容加1
INC Rn
寄存器Rn的内容加1
INC direct
直接地址单元中的内容加1
INC @Ri
工作寄存器Ri指向的地址单元中的内容加1
DEC A
数据指针DPTR的内容加1
DEC Rn
累加器中的内容减1
DEC direct
寄存器Rn中的内容减1
DEC @Ri
直接地址单元中的内容减1
INC DPTR
工作寄存器Ri指向的地址单元中的内容减1
MUL AB
ACC中内容与寄存器B中内容相乘,其结果低位存在ACC中、高位存在寄存器B中
DIV AB
ACC中内容除以寄存器B中内容,商存在ACC,而余数存在寄存器B中
DA A
ACC十进制调整
2
1
2
1
1
2
1
1
1
2
1
1
1
1
1
3
3
2
2
3
4
4
2
3
4
4
1
4
5
4
1
2
1
2
2
3
1
2
1
2
2
3
1
2
1
2
2
3
1
1
1
1
1
1
1
2
3
3
2
4
4
2
3
3
2
4
4
2
3
3
2
4
4
1
2
1
1
1
1
1
1
2
1
2
1
2
2
2
1
4
1
4
1
4
3
3
逻辑运算
ANL A,Rn
ANL A,direct
累加器和寄存器Rn中的内容相―与‖
累加器和直接地址单元中的内容相―与‖
ANL A,@Ri
累加器和工作寄存器Ri指向的地址单元中的内容相―与‖
ANL A,#data
累加器和立即数相―与‖
ANL direct,A
直接地址单元中的内容和累加器相―与‖
ANL direct,#data
直接地址单元中的内容和立即数相―与‖
ORL A,Rn
累加器和寄存器Rn中的内容相―或‖
ORL A,direct
累加器和直接地址单元中的内容相―或‖
ORL A,@Ri
累加器和工作寄存器Ri指向的地址单元中的内容相―或‖
ORL A,#data
累加器和立即数相―或‖
ORL direct,A
直接地址单元中的内容和累加器相―或‖
ORL direct,#data
直接地址单元中的内容和立即数相―或‖
XRL A,Rn
累加器和寄存器Rn中的内容相―异或‖
XRL A,direct
累加器和直接地址单元中的内容相―异或‖
XRL A,@Ri
累加器和工作寄存器Ri指向的地址单元中的内容相―异或‖
XRL A,#data
累加器和立即数相―异或‖
XRL direct,A
直接地址单元中的内容和累加器相―异或‖
XRL direct,#data
直接地址单元中的内容和立即数相―异或‖
CLR A
累加器内容清―0‖
CPL A
累加器按位取反
RL A
累加器循环左移一位
RLC A
累加器连同进位位CY循环左移一位
RR A
累加器循环右移一位
RRC A
累加器连同进位位CY循环右移一位
SWAP A
累加器高低半字节互换
位逻辑运算
CLR bit
清―0‖进位位
清―0‖直接地址位
SETB C
置―1‖进位位
SETB bit
置―1‖直接地址位
CPL C
进位位求反
CPL bit
直接地址位求反
ANL C,bit
进位位和直接地址位相―与‖
ANL C,/bit
进位位和直接地址位的反码相―与‖
CLR C
302
MA82G5Cxx 数据手册
MEGAWIN
ORL C,bit
进位位和直接地址位相―或‖
ORL C,/bit
进位位和直接地址位的反码相―或‖
MOV C,bit
直接地址位数据送入进位位
MOV bit,C
进位位数据送入直接地址位
2
2
2
2
3
3
3
4
进位位为―1‖则转移
进位位为―0‖则转移
直接地址位为―1‖则转移
直接地址位为―0‖则转移
直接地址位为―1‖则转移,且清―0‖该位
2
2
3
3
3
3
3
4
4
5
2
3
1
子程序返回
1
中断子程序返回
2
绝对短转移,2K字节(页内)空间限制
3
绝对长转移,64K字节空间限制
2
相对转移
1
转移到DPTR加ACC所指间接地址
2
累加器为―0‖则转移
2
累加器不为―0‖则转移
累加器中的内容不等于直接地址单元的内容,则转移到偏移量所指向的地址,否则程序 3
往下执行
3
累加器中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行
6
6
4
4
3
4
3
3
3
3
5
4
位逻辑跳转
JC rel
JNC rel
JB bit,rel
JNB bit,rel
JBC bit,rel
程序跳转
ACALL addr11
LCALL addr16
RET
RETI
AJMP addr11
LJMP addr16
SJMP rel
JMP @A+DPTR
JZ rel
JNZ rel
CJNE A,direct,rel
CJNE A,#data,rel
绝对短调用子程序,2K字节(页内)空间限制
绝对长调用子程序,64K字节空间限制
CJNE Rn,#data,rel 寄存器Rn中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行
3
4
CJNE
@Ri,#data,rel
工作寄存器Ri指向的地址单元中的内容不等于立即数,则转移到偏移量所指向的地址,
3
否则程序往下执行
5
DJNZ Rn,rel
寄存器Rn中的内容减1,如不等于0,则转移到偏移量所指向的地址,否则程序往下执行
2
4
DJNZ direct,rel
直接地址单元中的内容减1,如不等于0,则转移到偏移量所指向的地址,否则程序往下
3
执行
5
NOP
空操作指令
1
1
注 1: 外部辅助 RAM 的访问周期如下:
EMAI1 = 00: 5 + 2 x ALE_Stretch + RW_Stretch + 2 x RWSH; (5~20)
EMAI1 = 10: 3 + RW_Stretch + 2 x RWSH; (3~12)
MEGAWIN
MA82G5Cxx 数据手册
303
37. 版本历史
表 37–1. 版本历史
版本
v0.22
v0.23
描述
1.
首次发布版本
2015/01/21
1.
更新电气特性内容
2015/07/10
v0.24 增加封装尺寸说明及修改 29.2 章节部份内容
304
日期
MA82G5Cxx 数据手册
2015/08/04
MEGAWIN
38. 免责声明
在此,笙泉(Megawin)代表“Megawin Technology Co., Ltd. ”
生命支援—此产品并不是为医疗、救生或维持生命而设计的,并且当设备系统出现故障时,并不能合理地预示是
否会对人身造成伤害。因此,当客户使用或出售用于上述应用的产品时,需要客户自己承担这样做的风险,笙泉公
司并不会对不当地使用或出售我公司的产品而造成的任何损害进行赔偿.
更改权—笙泉保留产品的如下更改权,其中包括电路、标准单元、与/或软件 – 在此为提高设计的与/或性能的
描述或内容。当产品在大批量生产时,有关变动将通过工程变更通知(ECN)进行通知.
MEGAWIN
MA82G5Cxx 数据手册
305