第一章 8096/8098单片机系统结构 1
1.1 概述 1
1.2 系统结构 3
1.2.1 基本功能 4
1.2.2 中央处理器(CPU) 5
1.2.3 存贮器及芯片组构字节 7
1.2.4 I/O功能部件概述 17
1.2.5 系统复位及振荡时序 21
1.2.6 引脚及封装 24
第二章 8096/8098指令系统 35
2.1 操作数类型 35
2.2 寻址方式 36
2.3 程序状态字 39
2.4 指令系统详解 40
2.4.1 数据传送指令 43
2.4.2 算术运算指令 53
2.4.3 逻辑运算指令 73
2.4.4 堆栈操作指令 78
2.4.5 无条件转移和调用指令 83
2.4.6 条件转移指令 89
2.4.7 单寄存器指令 92
2.4.8 移位指令 94
2.4.9 特殊控制指令 96
3.1.1 中断优先级 98
3.1 中断结构 98
第三章 8096/8098单片机的中断系统 98
3.1.2 中断登记寄存器与中断屏蔽寄存器 101
3.1.3 中断控制处理过程 102
3.2 外部中断的使用 103
3.2.1 EXTINT中断 103
3.2.2 ACH.7作外部中断 103
3.2.3 HSI.0作外部中断 105
3.3 软件产生中断 106
3.4 中断优先级的改变 107
3.4.1 中断优先级改变的过程 107
3.4.2 中断优先级改变实例 108
3.5 改变中断的返回地址 110
3.6 NMI和TRAP的使用 112
第四章 8096/8098单片机I/O功能部件 113
4.1 特殊功能寄存器SFR 113
4.2 A/D转换部件 113
4.2.1 A/D转换的结构特性 114
4.2.2 A/D转换的命令寄存器和结果寄存器 115
4.2.3 A/D转换应用方法 116
4.3 PWM脉宽调制输出 119
4.3.1 PWM的结构与原理 120
4.3.2 PWM的应用方法 121
4.4 定时器 125
4.4.1 定时器T1 125
4.4.2 定时器T2 127
4.4.3 定时器的中断 130
4.5 监视定时器WDT 132
4.6 高速输入HSI部件 133
4.6.1 HSI的结构与原理 133
4.6.2 HSI的中断方式 136
4.6.3 HSI的编程及应用 136
4.7 高速输出HSO部件 141
4.7.1 HSO的结构与原理 141
4.7.2 HSO的使用与中断 144
4.7.3 HSO的编程及应用 145
4.8 串行口 155
4.8.1 工作方式 155
4.8.2 与串行口有关的SFR 157
4.8.3 串行口编程及使用要点 159
4.8.4 串行口的应用 159
第五章 应用系统的扩展设计方法 173
5.1 存贮器地址译码与I/O口 173
5.1.1 存贮器读/写 173
5.1.2 P3、P4口重建 174
5.1.3 P1口的编程要求及硬件考虑 175
5.1.4 噪声防止措施 175
5.2 8096单片机系统设计 176
5.2.1 最基本的硬件逻辑 176
5.2.2 最小外接EPROM系统 176
5.2.4 外接RAM/EPROM系统 177
5.2.3 实用的EPROM系统 177
5.2.5 8096单片机外围扩展应用系统 181
5.3 8098单片机系统设计 187
5.3.1 最基本的8098硬件逻辑 187
5.3.2 EPROM/RAM扩展 188
5.3.3 外围扩展应用系统 189
5.4 809×BH单片机系统设计 191
5.4.1 8位数据总线扩展系统 191
5.4.2 16位数据总线扩展系统 192
5.4.3 8位外部数据总线串行口驱动 192
5.5 I/O扩展应用系统 192
5.5.1 PP40的应用 192
5.5.2 8279可编程键盘/显示接口应用 199
5.5.3 8250可编程串行接口应用 204
5.5.4 ICL7135四位半A/D转换器应用 211
5.5.5 8096/8098单片机与CRT显示器字形显示通信 220
第六章 8096/8098的应用 226
6.1 中断的应用方法 226
6.1.1 外部中断和HSI.0产生中断 226
6.1.2 软件产生EXTINT和HSI.0中断 230
6.1.3 HSI.0中断与HSI数据有效中断 232
6.2 A/D转换应用方法 233
6.2.1 多路A/D转换应用 234
6.2.2 50周快速实时采样程序 236
6.2.3 10路十位50周的A/D转换 236
6.2.4 11位A/D实现方法 242
6.3 高速输入HSI应用方法 243
6.3.1 高速输入HSI检测事件 243
6.3.2 脉冲宽度的测量 245
6.3.3 脉冲周期的计算 246
6.3.4 脉冲周期和频率测量 248
6.3.5 脉冲频率测量 250
6.3.6 转速测量 253
6.4 高速输出HSO应用方法 255
6.4.1 软件定时器作电子时钟 255
6.4.2 HSO进行PWM输出应用 257
6.4.3 高速可编程控制器 259
6.4.4 可变电压控制HSO脉冲发生器 262
6.4.5 实时时钟 263
6.4.6 D/A转换 268
6.5 串行口应用方法 269
6.5.1 串行口初始化程序 269
6.5.2 字符串输入程序 269
6.5.3 字符串输出程序 271
6.5.4 不用串行口的串行通信 272
6.5.5 多机通信的应用 277
6.5.6 串行口与IBM-PC机的通信 287
6.6 键盘和显示应用方法 292
6.6.1 通用七段显示器及键盘硬件结构 292
6.6.2 可编程键盘和显示 296
7.1 基本功能特性 300
第七章 80C196/80C198十六位单片机 300
7.2 80C196/80C198中央处理器(CPU) 301
7.2.1 CPU控制 301
7.2.2 RALU 301
7.2.3 内部时钟 302
7.3 80C196/80C198PSW和增加的指令 303
7.3.1 PSW状态位 303
7.3.2 增加的指令 303
7.4 80C196/80C198存贮器空间 306
7.4.1 寄存器文件 307
7.4.2 80C196KB/80C198的SFRS 307
7.4.3 80C196KC的SFRS 311
7.4.4 特殊功能寄存器SFRS说明 313
7.4.5 中断矢量单元及芯片组构字节 314
7.4.6 其他存贮空间 316
7.5 80C196/80C198中断 316
7.5.1 中断矢量及优先级 316
7.5.2 中断控制 317
7.5.3 中断时间 319
7.5.4 特殊中断 320
7.6 80C196/80C198定时器 320
7.6.1 定时器T1 320
7.6.2 定时器T2 320
7.6.3 定时器中断 322
7.7 80C196/80C198高速输入HSI 322
7.7.2 HSI的中断 323
7.7.1 HSI的方式和状态 323
7.7.3 HSI输入采样 324
7.7.4 HSI初始化 324
7.8 80C196/80C198高速输出HSO 324
7.8.1 HSO命令寄存器 324
7.8.2 HSO有关的状态寄存器 325
7.8.3 HSO锁定内容 326
7.8.4 HSO实现PWM输出 326
7.8.5 清除HSO和锁定输入内容 329
7.8.6 HSO使用中的注意情况 329
7.9 80C196/80C198PWM脉宽调制输出 329
7.10.1 串行口状态和控制 330
7.10 80C196/80C198串行口 330
7.10.2 波特率设置 331
7.10.3 串行口中断 332
7.11 80C196/80C198A/D转换 332
7.11.1 80C196KB/80C198A/D转换器 333
7.11.2 80C196KCA/D转换器 333
7.12 80C196/80C198省电方式 335
7.12.1 Idle方式 335
7.12.2 Powerdown方式 336
7.12.3 ONCE和测试方法 337
7.13 80C196/80C198芯片组构寄存器 337
7.14 HOLD/HLDA 339
7.15 80C196/80C198外围事务服务器 342
7.15.1 PTS控制 343
7.15.2 PTS方式 345
7.16 80C196/80C198I/O口 350
7.16.1 P1和P2口 351
7.16.2 输入口 351
7.16.3 输出口 351
7.16.4 准双向I/O口 351
7.16.5 P3和P4口 352
7.17 电源与复位 353
7.17.1 电源 353
7.17.2 振荡器与内部时钟 353
7.17.3 复位和复位状态 353
7.18 80C196/80C198基本硬件连接 356
7.19 其他一些说明 358
7.19.1 80C198 358
7.19.2 80C196KA 359
7.19.3 80C196KB对8096BH的兼容性 359
7.19.4 80C196KC对80C196KB的兼容性 359
7.20 80C196/80C198芯片封装及引脚 359
7.20.1 80C198封装 359
7.20.2 80C196KB/KC封装 361
附录A MCS-96/196指令系统 366
附录B 8096/8098特殊功能寄存器一览表 377
附录C 8096/8098电气性能指标 385
附录D 80C196/80C198电气性能指标 393