第一章 计算机的运算基础 1
1.1 无符号二进制整数的运算 1
1.1.1 两个n位无符号数的加法 1
1.1.2 两个n位无符号数的减法 1
1.1.3 计算机用加法器完成减法运算 2
1.2 二进制有符号数的表示和运算规则 4
1.2.1 机器数与真值 4
1.2.2 原码 5
1.2.3 补码 6
1.2.4 反码 10
1.3 带小数点的数——定点和浮点表示法 11
1.3.1 数的定点表示法 11
1.3.2 数的浮点表示法 12
1.4 BCD码及其运算规则 14
1.4.1 BCD码的引入 14
1.4.2 BCD码的加法 15
1.4.3 BCD码的减法 16
1.5 字符的编码 17
1.6 逻辑运算 18
1.6.1 逻辑或运算 18
1.6.2 逻辑与运算 18
1.6.3 逻辑非运算 19
1.6.4 逻辑异或运算 19
1.7 代码的校验 19
1.7.1 校验编码的基本概念 19
1.7.2 奇偶校验码 20
1.7.3 纵横奇偶冗余校验 21
习题一 21
第二章 计算机电路基础 24
2.1 运算器 24
2.1.1 算术逻辑运算部件 25
2.1.2 寄存器、累加器ACC、标志寄存器 29
2.1.3 多路开关 29
2.2 控制器 30
2.2.1 程序计数器PC 30
2.2.2 指令寄存器IR和指令译码器 31
2.2.3 微操作控制部件 31
2.2.4 定时部件 32
2.2.5 中断控制部件 32
2.2.6 RISC和CISC计算机 33
习题二 33
第三章 存贮器 35
3.1 存贮器的分类和指标 35
3.1.1 存贮器的分类 35
3.1.2 存贮器的主要技术指标 36
3.2 随机访问存贮器RAM 37
3.2.1 静态RAM(SRAM) 37
3.2.2 动态RAM(DRAM) 41
3.3 只读存贮器ROM 42
3.3.1 ROM的存贮原理 43
3.3.2 可编程ROM(PROM) 43
3.3.3 可擦除可编程ROM(EPROM) 44
3.3.4 电可擦除可编程ROM(EEPROM) 46
3.4 非易失性RAM 49
3.4.1 “闪存”的特点 49
3.4.2 通用闪存的结构和编程 49
3.4.3 闪存的应用 52
3.5 存贮器和CPU的连接 52
3.5.1 地址空间的分配 53
3.5.2 地址译码 54
习题三 60
第四章 8XC196KC/KD单片机硬件组成 61
4.1 8XC196KC/KD单片机内部的硬件组成 61
4.1.1 8XC196KC/KD内部结构 62
4.1.2 8XC196KC/KD引脚 63
4.2 CPU和MCR的结构和工作原理 66
4.2.1 寄存器算术逻辑单元(RALU) 66
4.2.2 寄存器文件 67
4.2.3 存贮控制器 67
4.3 时钟和供电管理 68
4.3.1 内部定时 68
4.3.2 供电管理 69
4.4 存贮区的管理 70
4.4.1 地址空间映象图 71
4.4.2 芯片配置寄存器 72
4.4.3 系统总线的时序 77
4.5 应用系统的基本组成 79
4.5.1 一个8位总线应用系统 79
4.5.2 系统的复位 81
习题四 84
第五章 指令系统 85
5.1 指令系统基础 85
5.1.1 寄存器编程模型 85
5.1.2 程序状态字PSW 87
5.1.3 指令格式 89
5.1.4 操作数的类型 93
5.1.5 操作数的寻址方式 95
5.2 指令的分类和传送指令 102
5.2.1 指令的分类 102
5.2.2 正向传送指令 105
5.2.3 反向传送指令 110
5.2.4 带扩展正向传送指令 111
5.2.5 堆栈及栈操作指令 111
5.3 算术运算指令 113
5.3.1 不带进位位的加法与不带借位位的减法指令 113
5.3.2 带进位位的加法和带借位位的减法指令 114
5.3.3 比较指令 114
5.3.4 乘法指令 114
5.3.5 除法指令 115
5.4 逻辑运算指令 116
5.4.1 “与”运算指令 116
5.4.2 “或”运算指令 116
5.4.3 “异或”运算指令 117
5.5 单操作数指令 117
5.5.1 增量与减量指令 117
5.5.2 求反与求补指令 118
5.5.3 清零和扩展指令 118
5.6 移位指令 119
5.6.1 向左移位指令 119
5.6.2 逻辑右移指令 120
5.6.3 算术右移指令 120
5.6.4 规格化指令 121
5.7 调用与转移指令 121
5.7.1 调用与返回指令 121
5.7.2 无条件转移指令 123
5.7.3 条件转移指令 123
5.7.4 位测试转移指令 125
5.7.5 循环控制指令 126
5.8 特殊控制指令 127
5.8.1 标志位操作指令 127
5.8.2 开/关中断指令 127
5.8.3 软件陷阱(或称软件中断)指令 127
5.8.4 空操作指令 127
5.8.5 复位指令 127
5.9 8XC196KC/KD扩展的指令 128
习题五 129
第六章 MCS-96汇编语言程序设计 132
6.1 MCS-96汇编语言简介 132
6.1.1 汇编语言语句格式 132
6.1.2 MCS-96汇编语言的伪指令 133
6.2 定点数运算程序 135
6.2.1 无符号定点数运算 135
6.2.2 有符号定点数运算 139
6.3 浮点数运算程序 140
6.4 数制转换程序 145
6.4.1 整数十翻二 146
6.4.2 整数二翻十 146
6.5 数据处理程序 147
6.5.1 排序 147
6.5.2 求平均值 148
6.5.3 代码转换和BCD码运算 149
6.5.4 表格处理 150
6.6 子程序设计 151
6.6.1 主-子程序的参数传送 151
6.6.2 子程序的现场保护 154
6.6.3 子程序嵌套 154
习题六 155
第七章 输入/输出(I/O)接口和中断方式 162
7.1 I/O接口的基础知识 162
7.1.1 I/O接口的主要功能 162
7.1.2 I/O接口的编址方式 165
7.1.3 I/O数据传送的控制方式 167
7.1.4 8XC196KC/KD单片机的I/O接口及扩展方法 170
7.2 中断的概念 177
7.2.1 引进中断的优点 177
7.2.2 中断源的种类、中断登记、中断屏蔽 177
7.2.3 中断处理过程 178
7.3 8XC196KC/KD单片机中断系统 180
7.3.1 中断系统的组成 180
7.3.2 中断处理过程 186
7.3.3 中断响应时间 188
7.3.4 中断系统编程实例 189
7.3.5 中断方式应用小结 194
7.3.6 垂直窗口技术用于中断的现场保护 196
7.3.7 采用PTS提高中断处理的速度 198
习题七 204
第八章 并行输入输出接口 206
8.1 简单通用的集成电路组成的并行接口 206
8.1.1 用触发器构成的并行输出接口 206
8.1.2 采用三态门电路的并行输入接口 207
8.2 可编程并行输入输出接口 208
8.2.1 概述 209
8.2.2 8255A控制字和状态字 210
8.2.3 并行传送模式0 212
8.2.4 模式1 216
8.3 8XC196KC/KD片内的并行接口 218
8.3.1 输入口 218
8.3.2 输出口 219
8.3.3 准双向口 220
8.3.4 总线口 221
8.4 并行接口的应用 222
8.4.1 并行接口在键盘显示中的应用 222
8.4.2 并行接口在液晶显示控制方面的应用 239
8.4.3 并行接口用于打印机控制 250
8.4.4 并行口对步进电机的控制 252
习题八 255
第九章 8XC196KC/KD定时器 263
9.1 定时器的工作原理 263
9.1.1 定时器T1 263
9.1.2 定时器T2 264
9.1.3 监视定时器WDT 265
9.2 定时器的应用 266
9.2.1 定时器T1的应用 266
9.2.2 定时器T2的应用 268
习题九 269
第十章 8XC196KC/KD高速输出HSO的原理及应用 271
10.1 HSO的硬件结构及CAM的工作原理 271
10.2 HSO的控制 273
10.2.1 CAM的预置 273
10.2.2 HSO命令寄存器 273
10.2.3 时间寄存器 274
10.2.4 状态寄存器 275
10.3 CPU对HSO的管理方法 276
10.3.1 HSO的查询工作方式 276
10.3.2 HSO的中断工作方式 277
10.3.3 HSO的PTS工作方式 277
10.4 HSO的应用 278
10.4.1 定时功能的应用 278
10.4.2 产生脉冲信号波形 279
10.4.3 用HSO模拟串行发送端口 282
10.4.4 HSO生成PWM波形 283
10.4.5 HSO的PTS工作方式的应用 284
10.4.6 HSO应用中要注意的几个问题 285
习题十 285
第十一章 8XC196KC/KD高速输入HSI的原理及应用 289
11.1 HSI的硬件结构及工作原理 289
11.1.1 输入的选择和功能 289
11.1.2 跳变检测器和方式选择逻辑 290
11.1.3 FIFO和保持寄存器 291
11.1.4 HSI_STATUS和HSI_TIME寄存器 291
11.2 HSI的管理 292
11.2.1 HSI初始化 292
11.2.2 HSI的程序查询管理方式 292
11.2.3 HSI的中断管理方式 293
11.2.4 HSI的PTS工作方式 293
11.3 HSI的应用 294
11.3.1 作一般输入端口用 294
11.3.2 测量脉冲参数 294
11.3.3 HSI模拟串行输入端口 296
11.3.4 HSI PTS工作方式的应用 297
习题十一 298
第十二章 A/D和D/A接口原理及应用 301
12.1 A/D接口的设计要点 301
12.1.1 A/D转换器的字长选择 301
12.1.2 A/D采样的速度 301
12.1.3 采样保持器 302
12.1.4 A/D的分类 303
12.1.5 数据采集系统的结构 303
12.2 A/D转换器和微机的接口 304
12.2.1 AD1674的内部结构和使用方法 304
12.2.2 AD1674总线扩展方式 307
12.2.3 AD1674并行接口扩展方式 309
12.3 8XC196KC/KD单片机内集成的A/D功能模块 311
12.3.1 片内A/D的结构 311
12.3.2 片内A/D的控制 313
12.3.3 片内A/D的管理方法——查询、中断、PTS 315
12.3.4 片内A/D转换器的应用 317
12.4 D/A转换器的基本原理 320
12.4.1 D/A转换原理 320
12.4.2 D/A转换器的主要指标 321
12.4.3 8位D/A转换器DAC0832的介绍 322
12.4.4 DAC0832与单片机的接口 322
12.5 8XC196KC/KD片内的D/A转换器 325
12.5.1 PWM波发生器及其工作原理 325
12.5.2 PWM(D/A)的输出 326
12.5.3 PWM有关的控制寄存器 327
12.5.4 PWM的应用程序 328
习题十二 330
第十三章 串行通信接口及应用 334
13.1 串行通信的基本知识 334
13.1.1 串行通信的分类 334
13.1.2 串行通信的物理连接 335
13.1.3 串行通信接口和有关标准 336
13.1.4 串行通信的三种工作方式 337
13.2 8XC196KC/KD的串行通信接口 339
13.2.1 四种工作方式 339
13.2.2 串行通信接口的寄存器 341
13.2.3 串行口的管理 344
13.3 串行通信接口的应用 348
13.3.1 扩展的显示和键盘接口 348
13.3.2 串行口的电平转换电路 350
13.3.3 串行口自检 351
13.3.4 双机通信 352
13.3.5 带掉电(PD)工作方式的采样终端 354
13.3.6 主从式多机通信 355
13.4 单片机和PC机的通信 359
13.4.1 单片机串行接口的扩展 359
13.4.2 用在单片机中的Xmodem协议 361
习题十三 363
第十四章 单片机应用系统的设计和安全措施 367
14.1 单片机应用系统的设计 368
14.1.1 总体设计 368
14.1.2 抗干扰措施 369
14.2 8XC196KC/KD编程方式和安全措施 375
14.2.1 编程的基本方式和控制方法 375
14.2.2 片内程序区的安全措施和编程方式 377
14.2.3 自动编程方式及编程算法 381
14.2.4 运行一定时编程方式 383
习题十四 384
附录 8XC196KC/KD速查表 385
参考文献 392