第1章 系统概述 1
1.1 引言 1
1.2 CIP-51 CPU 4
1.3 片内存储器 5
1.4 JTAG调试和边界扫描 6
1.5 可编程数字1/O和交叉开关 7
1.6 可编程计数器阵列 8
1.7 串行端口 9
1.8 模/数转换器 9
1.9 比较器和DAC 10
1.10 极限参数 11
1.11 直流电气特性 11
1.12 引脚和封装定义 12
第2章 12位模/数转换器 18
2.1 引言 18
2.2 模拟多路开关和PGA 20
2.3 ADC的工作方式 21
2.4 有关12位ADC系统的特殊寄存器 21
2.5 ADC可编程窗口检测器 26
第3章 10位模/数转换器 30
3.1 引言 30
3.2 模拟多路开关和PGA 32
3.3 ADC的工作方式 33
3.4 有关10位ADC系统的特殊寄存器 33
3.5 ADC可编程窗口检测器 38
第4章 12位电压输出DAC 42
4.1 12位电压输出DAC 42
4.2 12位电压输出DAC的电气性能 43
4.3 有关12位电压输出DAC的特殊寄存器 44
第5章 比较器与电压基准 47
5.1 比较器 47
5.2 电压基准 51
6.1 引言 53
第6章 CIP-51指令集 53
6.2 指令集 54
6.2.1 指令和CPU时序 55
6.2.2 MOVX指令和存储器 59
6.3 存储器组织 59
6.3.1 程序存储器 59
6.3.2 数据存储器 59
6.3.3 通用寄存器 60
6.3.4 位寻址空间 60
6.3.5 堆栈 60
6.4 特殊功能寄存器 60
6.5 与系统控制器操作有关的特殊寄存器 65
7.1 中断系统 67
7.1.1 单片机中断源和中断向量 67
第7章 中断系统与电源管理 67
7.1.2 外部中断 68
7.1.3 中断优先权 68
7.1.4 中断响应时间 69
7.1.5 中断寄存器 69
7.2 电源管理方式 74
7.2.1 等待方式 74
7.2.2 停机方式 74
8.1.1 FLASH存储器编程 76
第8章 FLASH存储器与外部RAM 76
8.1 FLASH存储器 76
8.1.2 非易失性数据存储 77
8.1.3 安全选项 77
8.2 外部RAM 80
第9章 复位源 82
9.1 复位源 82
9.1.3 掉电复位 83
9.1.2 软件强制复位 83
9.1.1 上电复位 83
9.1.4 外部/RST引脚复位 84
9.1.5 时钟丢失检测器复位 84
9.1.6 比较器0复位 84
9.1.7 外部CNVSTR引脚复位 84
9.1.8 看门狗定时器复位 84
9.2 复位源寄存器 86
9.3 复位源的电气特性 87
第10章 振荡器 89
10.1 与振荡器有关的特殊寄存器 89
10.2 外部晶体举例 91
10.3 外部RC举例 91
10.4 外部电容举例 91
第11章 输入/输出端口 94
11.1 优先权交叉开关译码器 94
11.2 1/O端口初始化 96
11.3 通用1/O端口 99
11.4 配置无对应引脚的端口 99
第12章 SMBus 104
12.1 支持文档 104
12.2 工作过程 104
12.2.1 主发送器方式 105
12.2.2 主接收器方式 105
12.2.3 从发送器方式 105
12.2.4 从接收器方式 105
12.3 竞争 105
12.4 时钟低电平扩展 106
12.5 超时 106
12.5.1 SCL低电平超时 106
12.5.2 SCL高电平(SMBus空闲)超时 106
12.6 SMBus特殊功能寄存器 106
13.2 操作 113
第13章 串行外设接口总线 113
13.1 信号说明 113
13.3 串行时钟时序 114
13.4 SPI特殊功能寄存器 115
第14章 DART 118
14.1 UART工作方式 118
14.1.1 方式0∶同步方式 119
14.1.2 方式1∶8位可变波特率DART 120
14.1.3 方式2∶9位固定波特率DART 120
14.1.4 方式3∶9位可变波特率UART 121
14.2 多机通信 122
14.3 与UART有关的特殊寄存器 123
第15章 定时器 126
15.1 定时器0和定时器1 126
15.1.1 方式0∶13位计数器/定时器 126
15.1.4 方式3∶2个8位计数器/定时器(只对定时器0) 128
15.1.3 方式2∶8位自动重装载的计数器/定时器 128
15.1.2 方式1∶16位计数器/定时器 128
15.2 定时器2 132
15.2.1 方式0∶带捕捉的16位计数器/定时器 133
15.2.2 方式1∶自动重装载的16位计数器/定时器 134
15.2.3 方式2∶波特率发生器 134
15.3 定时器3 137
第16章 可编程计数器阵列 140
16.1 捕捉/比较模块 140
16.1.1 边沿触发的捕捉方式 141
16.1.2 软件定时器比较方式 142
16.1.3 高速输出方式 142
16.1.4 脉宽调制器方式 143
16.2 PCA计数器/定时器 144
16.3 PCA特殊功能寄存器 145
17.1 边界扫描 149
第17章 JTAG 149
17.2 闪存编程命令 151
17.3 JTAG闪存特殊功能寄存器 152
17.4 调试支持 154
第18章 C8051F02x系列单片机 155
18.1 器件概况 155
18.2 C8051F02x系列的增强功能 158
18.3 1/O口与数字交叉开关 160
18.4 极限参数 160
18.5 直流电气特性 161
18.6 引脚和封装定义 162
18.7 特殊寄存器 169
第19章 C8051F2xx系列单片机 175
19.1 器件概况 175
19.2 其他特性 178
19.4 可配置的数字/模拟I/O口 179
19.3 片内存储器 179
19.5 极限参数 180
19.6 直流电气特性 181
19.7 引脚和封装定义 181
19.8 特殊寄存器 186
第20章 C8051F3xx系列单片机 189
20.1 器件概况 189
20.2 其他特性 191
20.3 片内存储器 192
20.4 可配置的数字/模拟I/O口 192
20.5 极限参数 193
20.6 直流电气特性 193
20.7 引脚和封装定义 194
20.8 特殊寄存器 195
21.1 I/O端口交叉开关译码器的配置与应用 198
21.1.1 设置要点 198
第21章 应用设计举例 198
21.1.2 确定器件引脚分配 199
21.1.3 软件示例 200
21.2 内部和外部振荡器配置 202
21.2.1 设置要点 202
21.2.2 配置说明 202
21.2.3 配置举例 203
21.2.4 软件示例 209
21.3 片内温度传感器的配置和使用 210
21.3.1 配置要点 210
21.3.2 配置说明 211
21.3.3 测量结果 212
21.3.4 实现时的考虑 212
21.3.5 软件示例 213
21.4 扩展外部RAM 220
21.4.1 设计关键 220
21.4.2 设计说明 221
21.4.3 性能 225
21.4.4 示例代码 225
21.5 用PCA实现16位PWM 228
21.5.1 背景知识 228
21.5.2 16位PWM波形输出的实现 229
21.5.3 用PCA实现8位PWM 229
21.5.4 用PCA产生16位PWM 230
21.5.5 用PCA实现n位PWM 231
21.5.6 程序示例 231
21.6 实现一个实时时钟 239
21.6.1 设计要点 239
21.6.2 概述 239
21.6.3 硬件说明 240
21.6.4 软件说明 242
21.6.5 软件举例 243
21.7.1 电源 247
21.7 在5V系统中使用C8051Fxxx系列单片机 247
21.7.2 用5V电平输出驱动3V输入 248
21.7.3 用3V电平输出驱动5V输入 248
21.8 用SMBus实现串行通信 250
21.8.1 SMBus规范 251
21.8.2 使用SMBus 254
21.8.3 示例说明 255
21.8.4 软件示例 258
21.9 软件DART示例 279
21.9.1 设计关键 280
21.9.2 实现选择 280
21.9.3 可编程计数器阵列实现 281
21.9.4 8位定时器实现 294
21.10 电源管理技术及计算 308
21.10.1 降低功耗的方法 309
21.10.2 功耗计算 312
21.11 FLASH安全指南 316
21.11.1 防止通过JTAG接口对FLASH访问 317
21.11.2 器件擦除 318
21.11.3 防止通过软件访问FLASH 318
21.11.4 设置软件读限制 319
21.11.5 FLASH写和擦除使能位 320
21.12 从应用程序写FLASH 320
21.12.1 应用关键 320
21.12.2 擦除/写入过程 320
21.12.3 软件示例 322
第22章 CYGNAL集成开发环境 324
22.1 引言 324
22.2 IDE的安装 324
22.3 从CYGNAL IDE开始 325
22.4.1 CYGNAL IDE窗口 326
22.4 CYGNAL IDE的界面 326
22.4.2 调试窗口 327
22.4.3 工具条与按钮 328
22.4.4 编辑器 331
22.4.5 工具链集成菜单 331
22.4.6 调试器 331
22.4.7 IDE操作指南 332
22.5 使用个性化工具菜单 337
22.6 集成Keil 8051工具到CYGNAL IDE中 338
22.6.1 在CYGNAL IDE中建立一个项目 338
22.6.2 配置工具链集成对话框 339
22.6.3 生成下载文件 341
22.6.4 附加选项 342
22.6.5 项目生成 342
22.7 CYGNAL设置向导 342
23.1 引言 344
第23章 通过JTAG接口对FLASH编程 344
23.2 JTAG接口 345
23.2.1 测试访问口(TAP)接口 345
23.2.2 TAP状态机 345
23.3 C8051器件的指令寄存器 348
23.4 间接寄存器与FLASH编程 348
23.4.1 间接寄存器 348
23.4.2 FLASH寄存器 350
23.4.3 FLASH访问流程 351
23.4.4 对JTAG链中的器件编程 356
23.5 通过JTAG口对FLASH进行读、写和擦除的软件示例 356
23.6 使用C8051Fxxx片内FLASH编程器DLL 363
23.6.1 文件及兼容性 364
23.6.2 从客户程序调用DLL的输出函数 364
23.6.3 链接 365
23.6.4 测试结果 365