1 绪论 1
1.1 单片机的发展概貌 1
目录 1
1.2 MCS-96系列单片机产品概貌 4
1.3 有关本书的一些说明 5
2 8096的体系结构和硬件描述 7
2.1 8096的芯片型号 7
2.2 8096的框图和主要性能特点 7
2.3 中央处理器CPU 10
2.3.1 CPU总线 11
2.3.2 RALU 11
2.3.3 CPU寄存器阵列 11
2.3.4 CPU的基本操作 11
2.4 时钟信号 12
2.5.1 内部RAM空间 13
2.5 存储器空间 13
2.5.2 保留的存储空间 16
2.5.3 内部ROM/EPROM 17
2.6 寄存器控制器 17
2.7 系统总线和存储器的扩展 17
2.7.1 外部存储器操作时序 18
2.7.2 读信号RD 19
2.7.3 写信号WR 19
2.7.4 就绪信号READY 20
2.7.5 总线工作方式和芯片配置寄存器 21
2.8 软件概述 28
2.8.1 操作数类型 29
2.8.2 寻址方式 30
2.8.3 程序状态字 32
2.8.4 指令系统概述 34
2.9.1 中断源 41
2.9 中断系统 41
2.9.2 中断控制 42
2.9.3 中断优先级控制 45
2.9.4 中断禁区 46
2.9.5 中断响应时间 47
2.10 定时器 48
2.10.1 定时器1 48
2.10.2 定时器2 48
2.10.3 定时器中断 49
2.11 高速输入器 49
2.11.1 HSI事件形式寄存器 50
2.11.3 HSI中断 51
2.11.4 HSI中数据的读取和状态寄存器 51
2.11.2 FIFO队列寄存器 51
2.11.5 HSI引脚功能控制 52
2.11.6 HSI原理回顾 53
2.11.7 HSI的软件设计 53
2.12 高速输出器 56
2.12.1 HSO CAM阵列 56
2.12.2 HSO状态 58
2.12.3 HSO的清除 58
2.12.4 HSO中采用定时器2 59
2.12.5 HSO中断 59
2.12.6 软件定时器 60
2.13 A/D转换器 61
2.13.1 A/D转换器框图 62
2.13.2 A/D命令寄存器 62
2.13.3 A/D结果寄存器 63
2.13.4 A/D转换过程 63
2.13.5 A/D转换程序举例 64
2.13.7 A/D转换器输入电路 65
2.13.6 A/D转换精度 65
2.13.8 提高A/D转换器的分辨率 67
2.14 模拟输出 70
2.14.1 脉宽调制器 70
2.14.2 利用HSO输出PWM脉冲 71
2.14.3 把PWM信号变为直流信号 71
2.15 串行口 72
2.15.1 串行口操作模式 73
2.15.2 多机通信 74
2.15.3 串行口的控制 75
2.15.4 波特率的确定 76
2.15.5 串行口程序举例 78
2.16 输入/输出口 79
2.16.2 准双向口——P1和P2.6、P2.7 80
2.16.1 输入口——P0和P2.1~P2.4 80
2.16.3 P3、P4口和系统总线 82
2.16.4 输出口和控制输出 83
2.17 输入/输出控制和状态寄存器 84
2.17.1 I/O控制寄存器0(IOC0) 84
2.17.2 I/O控制寄存器1(IOC1) 84
2.17.3 I/O状态寄存器0(IOS0) 85
2.17.4 I/O状态寄存器1(IOS1) 85
2.18 监视定时器 86
2.18.1 监视定时器的使用 86
2.18.2 软件保护 87
2.19 复位 88
2.19.1 复位信号和复位状态 88
2.19.2 复位电路 89
2.19.3 内部复位逻辑 91
2.20 879X的EPROM编程和保护 92
2.20.1 自动编程方式 94
2.20.2 自动编程方式下的成组编程 95
2.20.3 从机编程方式 96
2.20.4 自动芯片配置字节编程方式 98
2.20.5 运行编程方式 99
2.20.6 ROM/EPROM程序上锁 100
2.20.7 Intel编程算法 101
2.20.8 标记字 101
2.20.9 擦除879X EPROM 102
2.21 8096的封装和引脚 102
2.21.1 封装形式 102
2.21.2 引脚表 104
2.21.3 引脚描述 104
3.1 概述 107
3 80C196高性能16位单片机 107
3.2 80C196KB 110
3.2.1 中央处理器CPU和存储器控制器 110
3.2.2 时钟信号 110
3.2.3 存储器空间 111
3.2.4 软件概述 117
3.2.5 中断系统 118
3.2.6 定时器 123
3.2.7 高速输入器HSI 125
3.2.8 高速输出器HSO 126
3.2.9 A/D转换器 130
3.2.10 脉宽调制输出PWM 131
3.2.11 串行口 131
3.2.12 输入/输出口 133
3.2.13 输入/输出控制和状态寄存器 137
3.2.14 复位和复位状态 137
3.2.15 特殊工作方式 138
3.2.16 片内EPROM编程和保护 140
3.2.17 8XC198和8XC194 142
3.2.18 80C196KB的封装和引脚 143
3.3 80C196KC 152
3.3.1 概述 152
3.3.2 存储器空间 152
3.3.3 寄存器窗口 154
3.3.4 程序状态字 157
3.3.5 80C196KC的新增指令 158
3.3.6 外设事务服务器PTS 158
3.3.7 定时器 171
3.3.8 高速输入器HSI 171
3.3.9 高速输出器HSO 171
3.3.10 A/D转换器 172
3.3.13 复位和复位状态 175
3.3.11 脉冲调制输出PWM 175
3.3.12 串行口 175
3.3.14 特殊工作方式 176
3.3.15 片内EPROM编程和保护 177
3.3.16 封装和引脚 178
3.4 80C196MC 178
3.4.1 存储器空间 179
3.4.2 窗口 182
3.4.3 输入/输出口2 185
3.4.4 事件处理器阵列EPA 188
3.4.5 波形发生器 196
3.4.6 脉宽调制器 211
3.4.7 模拟/数字转换器A/D 213
3.4.8 存储器映射的输入/输出口P3、P4和P5 217
3.4.9 中断和外设事务服务器PTS 221
3.4.10 特殊工作方式 253
3.4.11 复位和复位状态 254
3.4.12 监视定时器 255
3.4.13 芯片配置寄存器 256
3.4.14 外部存储器接口 257
3.4.15 87C196MC的编程 257
3.4.16 80C196MC的封装和引脚 258
3.4.17 80C196MD中的频率发生器 262
4 MCS-96指令系统详述 272
5 应用实例 324
5.1 ASM-96中的伪指令 324
5.2 查表插值子程序 326
5.2.1 查表插值子程序之一 326
5.2.2 查表插值子程序之二 328
5.3 利用HSI测量脉冲 329
5.4 利用HSO产生PWM输出 332
5.5 串行口模式1的应用 335
5.6 A/D转换器的使用 338
5.7 模拟量/PWM转换 338
5.8 利用HSIO作软件串行口 343
5.9 利用80C196KB/KC作机器人的分布式伺服电机控制 353
5.9.1 伺服电机控制的硬件方案 354
5.9.2 伺服电机控制的软件设计 364
5.9.3 机器人分布式控制系统中的通信 370
5.9.4 一个六轴机器人的分布式控制 373
5.10 80C196MC用于三相交流感应电机的控制 377
5.10.1 引言 377
5.10.2 实验性硬件电路 379
5.10.3 三相交流感应电机控制软件设计中的几个问题 381
5.10.4 三相输出波形 385
5.10.6 源程序 386
5.10.5 程序流程图 386
5.11 80C196MC用于三相直流无刷电机的控制 395
5.11.1 驱动直流无刷电机的变频器类型 395
5.11.2 波形发生器的驱动波形 397
5.11.3 电流-频率控制特性 398
5.11.4 程序中某些数据(常数和变量)之间的关系 399
5.11.5 程序流程图 400
5.11.6 源程序 401
5.12 80C196MC用于四相步进电机的控制 408
5.12.1 控制原理 408
5.12.2 程序流程 410
5.12.3 源程序 410
5.13 P3和P4口的重构 416
5.14.1 扩展256 KB外部存储器的硬件方案 418
5.14 超过寻址范围的外部存储器的扩展法 418
5.14.2 扩展存储器超过寻址范围时的软件考虑 421
5.15 用可编程外围芯片PSD3XX扩展外围功能 425
5.15.1 接口方案之一 425
5.15.2 接口方案之二(外接等待周期发生器) 427
6 速查资料 430
6.1 8X9X速查资料 431
6.1.1 存储器和专用寄存器布局图 431
6.1.2 专用寄存器位定义 432
6.1.3 引脚描述 434
6.1.4 操作码表 436
6.1.5 中断表 438
6.1.6 公式 438
6.1.7 复位状态 438
6.2.1 存储器布局图 439
6.2.2 CPU专用寄存器布局图 439
6.2 8XC196KB速查资料 439
6.2.3 专用寄存器位定义 440
6.2.4 引脚描述 444
6.2.5 操作码表 446
6.2.6 指令系统一览表 448
6.2.7 指令长度/操作码 451
6.2.8 指令执行时间(状态周期) 453
6.2.9 中断表 456
6.2.10 公式 456
6.2.11 复位状态 457
6.3 8XC196KC速查资料 458
6.3.1 存储器布局图 458
6.3.2 专用寄存器布局图 458
6.3.3 专用寄存器位定义 459
6.3.4 操作码表 464
6.3.5 指令系统一览表 466
6.3.6 指令长度/操作码 469
6.3.7 指令执行时间(状态周期) 471
6.3.8 中断表 475
6.3.9 公式 476
6.3.10 复位状态 477
6.4 8XC196MC速查资料 478
6.4.1 存储器布局图 478
6.4.2 专用寄存器布局图 479
6.4.3 专用寄存器位定义 480
6.4.4 引脚定义表 489
6.4.5 引脚描述 490
6.4.6 中断表 492
6.4.7 公式 493
6.4.8 复位状态 493
参考文献 495