第1章 ATmega 8内部结构综述 1
1.1 ATMEL公司的单片机 1
1.1.1 ATMEL公司的发展概况 1
1.1.2 ATMEL公司的FLASH单片机 4
1.1.3 ATMEL公司的AVR单片机 7
1.1.4 ATMEL公司的ARM核微控制器 12
1.2 ATmega 8内部结构综述 17
1.2.1 采用ATmega 8组织教学的理由 17
1.2.2 ATmega 8的内部结构 17
1.2.3 ATmega 8的主要性能 20
1.2.4 ATmega 8的引脚功能和封装 22
习题与思考题 27
第2章 ATmega 8 MCU内核 30
2.1 ATmega 8 MCU内核 30
2.1.1 MCU内核的结构和原理 30
2.1.2 MCU内核的组成部件 32
2.1.3 MCU内核的工作时序 38
2.1.4 MCU内核对复位和中断的处理 40
2.2 ATmega 8存储器组织 41
2.2.1 FLASH存储器 41
2.2.2 SRAM存储器 42
2.2.3 EEPROM存储器 44
2.2.4 I/O寄存器 44
2.2.5 熔丝位编程单元 47
2.3 ATmega 8时钟系统 49
2.3.1 ATmega 8时钟系统结构 49
2.3.2 ATmega 8时钟系统振荡源 52
2.4 ATmega 8电源管理和休眠模式 57
2.4.1 ATmega 8的电源管理 57
2.4.2 ATmega 8的休眠模式 58
2.4.3 如何将功耗降到最低 61
2.5 ATmega 8系统复位 62
2.5.1 ATmega 8的复位逻辑 62
2.5.2 ATmega 8的复位源 63
2.5.3 MCUCSR和内部参考电压源 66
习题与思考题 67
第3章 ATmega 8指令系统 71
3.1 指令系统概述 71
3.1.1 指令格式 71
3.1.2 指令分类 74
3.1.3 指令系统综述 75
3.2 寻址方式 77
3.2.1 寄存器寻址 77
3.2.2 直接寻址 79
3.2.3 立即数寻址 80
3.2.4 寄存器间址 81
3.2.5 SRAM空间的变址寻址 84
3.2.6 FLASH空间的相对寻址 84
3.2.7 位寻址 85
3.3 数据传送指令 86
3.3.1 SRAM空间的数据传送指令(27条) 86
3.3.2 FLASH空间的数据传送指令(4条) 89
3.3.3 I/O空间的数据传送指令(2条) 91
3.3.4 堆栈操作指令(2条) 91
3.3.5 数据传送指令小结 92
3.4 算逻运算和移位指令 93
3.4.1 算术运算指令(18条) 94
3.4.2 逻辑操作指令(13条) 99
3.4.3 移位指令(6条) 102
3.5 控制转移指令 103
3.5.1 无条件转移指令(3条) 104
3.5.2 条件转移指令(25条) 105
3.5.3 子程序调用/返回指令(5条) 109
3.6 位操作和MCU控制指令 112
3.6.1 位操作指令(22条) 112
3.6.2 MCU控制指令(3条) 113
习题与思考题 114
第4章 汇编语言程序设计 118
4.1 汇编语言程序设计基础 118
4.1.1 汇编语言的构成 118
4.1.2 汇编器伪指令及其包含文件 121
4.1.3 汇编语言源程序的汇编 129
4.1.4 汇编语言源程序的设计步骤 132
4.2 简单与分支程序设计 134
4.2.1 简单程序设计 134
4.2.2 分支程序设计 135
4.3 循环与查表程序设计 138
4.3.1 循环程序设计 139
4.3.2 查表程序设计 144
4.4 代码转换与子程序设计 146
4.4.1 子程序设计 146
4.4.2 代码转换程序设计 149
4.5 运算程序设计 151
4.5.1 加减运算程序设计 152
4.5.2 乘除运算程序设计 154
4.5.3 开平方运算程序设计 160
习题与思考题 161
第5章 I/O端口、中断系统和E2PROM 165
5.1 ATmega 8的I/O端口及应用 165
5.1.1 ATmega 8 I/O端口概述 165
5.1.2 ATmega 8端口的通用I/O功能 169
5.1.3 ATmega 8端口的第二功能 175
5.1.4 ATmega 8端口的应用 181
5.2 ATmega 8的中断系统 183
5.2.1 ATmega 8中断源和中断标志 184
5.2.2 ATmega 8对中断请求的控制 190
5.2.3 ATmega 8对中断的响应 194
5.2.4 ATmega 8中断矢量表位置的配置 195
5.2.5 ATmega 8对中断请求的撤除 198
5.2.6 ATmega 8的中断系统初始化 200
5.3 ATmega 8对LED/LCD/键盘的接口 200
5.3.1 ATmega 8对LED的接口 200
5.3.2 ATmega 8对LCD的接口 204
5.3.3 ATmega 8对键盘的接口 212
5.3.4 键盘/显示系统 220
5.4 ATmega 8对BCD码拨盘开关的接口 224
5.4.1 ATmega 8和BCD码拨盘直接接口 225
5.4.2 ATmega 8通过门电路和BCD拨盘的接口 226
习题与思考题 228
第6章 ATmega 8定时器/计数器 231
6.1 定时器/计数器0及应用 231
6.1.1 T/C0和T/C1的预定比例分频器 231
6.1.2 T/C0的结构和原理 233
6.1.3 T/C0的应用举例 236
6.2 定时器/计数器1及应用 239
6.2.1 T/C1的结构和原理 240
6.2.2 T/C1的I/O寄存器 245
6.2.3 T/C1的工作模式 254
6.2.4 T/C1的计数时序 261
6.2.5 T/C1的应用举例 262
6.3 定时器/计数器2及应用 273
6.3.1 T/C2的时钟源和预定比例分频器 273
6.3.2 T/C2的结构和原理 274
6.3.3 T/C2的I/O寄存器 278
6.3.4 T/C2的工作模式和时序 282
6.3.5 T/C2的异步操作方式 287
6.3.6 T/C2的应用举例 290
6.4 看门狗定时器及应用 294
6.4.1 WDT的结构和原理 294
6.4.2 WDT的I/O寄存器及其安全级别 295
6.4.3 WDT的应用编程 297
习题与思考题 300
第7章 ATmega 8的ADC、AC和E2PROM 303
7.1 ATmega 8的ADC转换器及应用 304
7.1.1 ADC转换器的结构和原理 304
7.1.2 ADC转换器的I/O寄存器 312
7.1.3 ADC的应用举例 316
7.2 ATmega 8的AC比较器及应用 319
7.2.1 AC比较器的结构和原理 319
7.2.2 AC比较器的I/O寄存器 320
7.2.3 AC比较器的应用举例 322
7.3 ATmega 8对E2PROM的读写 325
7.3.1 ATmega 8对E2PROM的读写 326
7.3.2 ATmega 8对E2PROM的读写举例 329
习题与思考题 332
第8章 ATmega 8的串行通信接口 334
8.1 串行同步接口SPI 334
8.1.1 SPI接口的结构和原理 334
8.1.2 SPI接口的I/O寄存器 339
8.1.3 SPI接口的应用举例 342
8.2 通用同步/异步串行接口USART 344
8.2.1 串行通信的分类 345
8.2.2 USART的结构和原理 347
8.2.3 串行时钟发生器 348
8.2.4 USART的字符帧格式及初始化 350
8.2.5 USART的数据发送和接收 352
8.2.6 USART字符帧接收时序和多机通信模式 356
8.2.7 USART的I/O寄存器 359
8.2.8 USART的应用举例 368
8.3 两线串行总线接口TWI 376
8.3.1 TWI总线的概念 377
8.3.2 TWI总线的基本知识 378
8.3.3 TWI总线接口的功能、结构和原理 385
8.3.4 TWI总线接口的I/O寄存器 390
8.3.5 TWI总线接口的工作方式 394
8.3.6 多主机系统及其总线仲裁 409
8.4 光纤通信简介 411
8.4.1 光纤通信系统的组成 412
8.4.2 光纤通信的原理 412
8.4.3 光纤通信实例 414
习题与思考题 414
第9章 ATmega 8的FLASH编程和自编程 419
9.1 FLASH存储器的自编程 419
9.1.1 引导加载技术的实现 419
9.1.2 FLASH的I/O寄存器 423
9.1.3 FLASH的自编程 426
9.1.4 FLASH的自编程举例 431
9.2 FLASH存储器的编程 434
9.2.1 FLASH存储器的编程概述 434
9.2.2 FLASH存储器的并行编程 438
9.2.3 FLASH存储器的串行编程 447
习题与思考题 451
第10章 单片机应用系统的设计 455
10.1 单片机的通信总线 455
10.1.1 单片机总线概述 455
10.1.2 通信总线 458
10.2 单片机前向通道的设计 464
10.2.1 传感器和模拟信号放大器 465
10.2.2 多路开关和采样保持器 468
10.2.3 LM331的原理和应用 470
10.3 单片机后向通道的设计 477
10.3.1 线路驱动器和接收器 477
10.3.2 外围驱动器 479
10.3.3 显示驱动器和电平转换器 482
10.3.4 电气隔离技术 484
10.4 单片机应用系统的抗干扰设计 486
10.4.1 单片机应用系统的硬件抗干扰设计 486
10.4.2 单片机应用系统的软件抗干扰设计 495
10.5 应用实例——单片机温度控制系统 502
10.5.1 硬件电路 502
10.5.2 温度监测程序和算法 504
习题与思考题 517
附录 520
附录Ⅰ ASCII码字符表 520
附录Ⅱ ATmega 8单片机指令表 521
参考文献 533