AVR单片机C语言开发入门与典型实例的目录
第1篇AVR单片机基础
第1章AVR单片机概述 3
1.1 AVR单片机及其发展 3
1.1.1AVR单片机简介 3
1.1.2AVR单片机的特点 4
1.1.3AVR单片机的分类 5
1.2ATmega128(L)单片机 5
1.2.1ATmega128(L)结构和主要特点 5
1.2.2ATmega128(L)的主要性能 7
1.2.3ATmega128(L)的封装与引脚 8
1.3本章小结 12
第2章ATmega128(L)单片机硬件结构 13
2.1ATmega128(L)的内核 13
2.2ATmega128(L)的存储器 14
2.2.1ATmega128(L)的内部存储器 14
2.2.2ATmega128(L)的外部存储器 15
2.3ATmega128(L)的系统时钟及电源管理 15
2.3.1系统时钟 15
2.3.2电源管理与休眠模式 18
2.4ATmega128(L)的复位及中断 19
2.4.1ATmega128(L)的复位逻辑 19
2.4.2ATmega128(L)的中断及中断响应 20
2.5ATmega128(L)的定时器/计数器 22
2.5.18位定时器/计数器T/C0 22
2.5.28位定时器/计数器T/C2 26
2.5.316位定时器/计数器T/C1和T/C3 26
2.6ATmega128(L)的总线接口 31
2.6.1同步外设接口SPI 31
2.6.2通用同步/异步串行接口USART0和USART1 32
2.6.3两线串行TWI总线接口 35
2.7本章小结 37
第3章ATmega128(L)的指令系统 38
3.1 ATmega128(L)的指令系统概述 38
3.2ATmega128(L)的指令操作数的寻址方式 43
3.3算术和逻辑运算指令 45
3.3.1加法指令 45
3.3.2减法指令 46
3.3.3取反码和补码指令 48
3.3.4乘法指令 48
3.3.5逻辑与指令 50
3.3.6逻辑或指令 51
3.3.7逻辑异或指令 52
3.4比较和转移指令 53
3.4.1比较指令 53
3.4.2无条件转移指令 54
3.4.3条件转移指令 54
3.4.4子程序调用与返回指令 60
3.5数据传输指令 61
3.5.1直接数据传输指令 62
3.5.2间接数据传输指令 63
3.5.3与程序存储器有关的数据传输指令 65
3.5.4I/O口数据传输指令 67
3.5.5堆栈操作指令 68
3.6位操作指令 68
3.6.1带进位的位操作指令 68
3.6.2位变量传输指令 70
3.6.3位修改指令 70
3.7MCU控制指令 74
3.8ATmega128(L)的汇编语言 75
3.8.1汇编语言语句格式及伪指令 75
3.8.2表达式 76
3.9本章小结 77
第4章AVR单片机硬件电路设计工具 78
4.1Protel99SE中典型元器件的原理图符号和PCB封装绘制 78
4.1.1元器件封装的概念 78
4.1.2电阻的原理图符号和PCB封装 79
4.1.3电容的原理图符号和PCB封装 80
4.1.4二极管和三极管的原理图符号和PCB封装 81
4.1.5典型集成电路的原理图符号和PCB封装 83
4.2原理图和PCB图的绘制流程 84
4.2.1绘制原理图 84
4.2.2绘制PCB图 86
4.3地线 90
4.3.1地线的概念及分类 90
4.3.2PCB设计中地线的处理 91
4.4本章小结 91
第5章AVR单片机软件开发环境 92
5.1软件开发环境 92
5.2AVRStudio4.13SP2开发环境 94
5.2.1AVRStudio4.13SP2开发环境获取与安装 94
5.2.2AVRStudio4.13SP2的菜单 95
5.2.3使用AVRStudio4.13SP2 101
5.3本章小结 103
第6章AVR单片机C语言开发 104
6.1C语言基础知识 104
6.1.1标识符和关键字 104
6.1.2基本数据类型、常量和变量 104
6.1.3常见运算符 106
6.1.4程序中的语句种类 107
6.2C语言高级编程 110
6.2.1数组 110
6.2.2指针 112
6.2.3结构、共用体和枚举 115
6.2.4函数 119
6.2.5预处理 122
6.3AVRStudio4.13SP2对ANSIC的扩展 125
6.3.1I/O寄存器和端口操作 125
6.3.2AVR单片机存储器中数据的访问 126
6.3.3AVR单片机的中断服务程序 130
6.4本章小结 132
第2篇AVR单片机典型模块C语言应用实例
第7章I/O的应用 135
7.1I/O端口概述 135
7.2I/O口控制发光二极管 136
7.2.1实例功能 136
7.2.2典型器件介绍 136
7.2.3硬件设计 136
7.2.4程序设计及详解 137
7.2.5经验总结 138
7.3I/O口控制八段数码管 138
7.3.1实例功能 138
7.3.2典型器件介绍 138
7.3.3硬件设计 138
7.3.4程序设计及详解 139
7.3.5经验总结 140
7.4I/O模拟1-Wire总线控制DS18B20 140
7.4.1实例功能 140
7.4.2典型器件介绍 140
7.4.3硬件设计 141
7.4.4程序设计及详解 142
7.4.5经验总结 145
7.5本章小结 145
第8章定时器/计数器应用 146
8.1定时器/计数器概述 146
8.2利用定时器实现方波输出 146
8.2.1实例功能 146
8.2.2硬件设计 146
8.2.3程序设计及其详解 147
8.2.4经验总结 148
8.3利用定时器/计数器实现按键的复用 148
8.3.1实例功能 148
8.3.2硬件设计 148
8.3.3程序设计及详解 149
8.3.4经验总结 150
8.4本章小结 150
第9章中断的应用 151
9.1中断概述 151
9.2利用定时器中断报警 151
9.2.1实例功能 151
9.2.2典型器件介绍 151
9.2.3硬件设计 152
9.2.4程序设计及详解 152
9.2.5经验总结 153
9.3利用中断实现对按键的响应 153
9.3.1实例功能 153
9.3.2典型器件介绍 153
9.3.3硬件设计 154
9.3.4程序设计及详解 154
9.3.5经验总结 155
9.4本章小结 155
第10章串行口的应用 156
10.1串行通信概述 156
10.2RS-232总线接口 157
10.2.1实例功能 157
10.2.2典型器件介绍 157
10.2.3硬件设计 158
10.2.4程序设计及详解 159
10.2.5经验总结 160
10.3RS-485总线接口 160
10.3.1实例功能 160
10.3.2典型器件介绍 160
10.3.3硬件设计 161
10.3.4程序设计及详解 162
10.3.5经验总结 164
10.4单片机之间的通信 164
10.4.1实例功能 164
10.4.2典型器件介绍 164
10.4.3硬件设计 164
10.4.4程序设计及详解 164
10.4.5经验总结 167
10.5本章小结 167
第11章程序存储器扩展 168
11.1程序存储器概述 168
11.2扩展EPROM 169
11.2.1实例功能 169
11.2.2典型器件介绍 170
11.2.3硬件设计 171
11.2.4程序设计及详解 171
11.2.5经验总结 172
11.3扩展E2PROM 173
11.3.1实例功能 173
11.3.2典型器件介绍 173
11.3.3硬件设计 175
11.3.4程序设计及详解 175
11.3.5经验总结 177
11.4扩展Flash存储器 177
11.4.1实例功能 177
11.4.2典型器件介绍 177
11.4.3硬件设计 179
11.4.4程序设计及详解 179
11.4.5经验总结 181
11.5本章小结 181
第12章数据存储器扩展 182
12.1数据存储器概述 182
12.2扩展SRAM 182
12.2.1实例功能 182
12.2.2典型器件介绍 183
12.2.3硬件设计 184
12.2.4程序设计及详解 185
12.2.5经验总结 186
12.3扩展NVSRAM 186
12.3.1实例功能 186
12.3.2典型器件介绍 187
12.3.3硬件设计 188
12.3.4程序设计及详解 189
12.3.5经验总结 190
12.4本章小结 190
第3篇AVR单片机接口典型应用
第13章键盘接口 193
13.1键盘概述 193
13.2外接4个键盘 193
13.2.1实例功能 193
13.2.2硬件设计 193
13.2.3程序设计及详解 194
13.2.4经验总结 195
13.3与4×4键盘的接口设计 195
13.3.1实例功能 196
13.3.2硬件设计 196
13.3.3程序设计及详解 196
13.3.4经验总结 202
13.4本章小结 202
第14章LCD接口 203
14.1LCD概述 203
14.2外接字符点阵LCD 205
14.2.1实例功能 205
14.2.2典型器件介绍 205
14.2.3硬件设计 207
14.2.4程序设计及详解 208
14.2.5经验总结 211
14.3外接图像点阵LCD 211
14.3.1实例功能 211
14.3.2典型器件介绍 211
14.3.3硬件设计 216
14.3.4程序设计及详解 216
14.3.5经验总结 219
14.4本章小结 219
第15章打印机接口 220
15.1微型打印机概述 220
15.2外接串行打印机 221
15.2.1实例功能 221
15.2.2典型器件介绍 221
15.2.3硬件设计 223
15.2.4程序设计及详解 224
15.2.5经验总结 225
15.3外接并行打印机 225
15.3.1实例功能 225
15.3.2典型器件介绍 225
15.3.3硬件设计 226
15.3.4程序设计及详解 227
15.3.5经验总结 228
15.4本章小结 228
第16章A/D接口 229
16.1A/D转换器概述 229
16.2外接逐次比较型A/D 231
16.2.1实例功能 231
16.2.2典型器件介绍 231
16.2.3硬件设计 233
16.3.4程序设计及详解 233
16.2.5经验总结 235
16.3外接半闪烁型高速A/D 235
16.3.1实例功能 235
16.3.2典型器件介绍 236
16.3.3硬件设计 239
16.3.4程序设计及详解 239
16.3.5经验总结 242
16.4外接Σ→Δ型A/D 242
16.4.1实例功能 242
16.4.2典型器件介绍 242
16.4.3硬件设计 246
16.4.4程序设计及详解 246
16.4.5经验总结 249
16.5本章小结 249
第17章D/A接口实例 250
17.1D/A转换器概述 250
17.2外接倒T型D/A 251
17.2.1实例功能 251
17.2.2典型器件介绍 251
17.2.3硬件设计 254
17.2.4程序设计及详解 255
17.2.5经验总结 256
17.3外接权电流型D/A 256
17.3.1实例功能 256
17.3.2典型器件介绍 257
17.3.3硬件设计 259
17.3.4程序设计及详解 259
17.3.5经验总结 261
17.4本章小结 262
第18章可编程器件接口 263
18.1可编程器件概述 263
18.2可编程并行接口芯片接口 263
18.2.1实例功能 263
18.2.2典型器件介绍 264
18.2.3硬件设计 266
18.2.4程序设计及详解 267
18.2.5经验总结 269
18.3可编程中断控制器接口 270
18.3.1实例功能 270
18.3.2典型器件介绍 270
18.3.3硬件设计 273
18.3.4程序设计及详解 273
18.3.5经验总结 276
18.4可编程计数器/定时器接口 276
18.4.1实例功能 276
18.4.2典型器件介绍 276
18.4.3硬件设计 278
18.4.4程序设计及详解 279
18.4.5经验总结 281
18.5本章小结 281
第19章I2C总线接口 282
19.1I2C总线接口概述 282
19.2与AT24C64接口 283
19.2.1实例功能 283
19.2.2典型器件介绍 283
19.2.3硬件设计 286
19.2.4程序设计及详解 286
19.2.5经验总结 288
19.3与温湿度传感器SHT75接口 289
19.3.1实例功能 289
19.3.2典型器件介绍 289
19.3.3硬件设计 292
19.3.4程序设计及详解 292
19.3.5经验总结 297
19.4本章小结 297
第20章SPI总线接口 298
20.1SPI总线接口概述 298
20.2SPI接口的Flash的访问 299
20.2.1实例功能 299
20.2.2典型器件介绍 299
20.2.3硬件设计 301
20.2.4程序设计及详解 301
20.2.5经验总结 307
20.3利用SPI总线实现单片机之间的通信 307
20.3.1实例功能 307
20.3.2典型器件介绍 307
20.3.3硬件设计 307
20.3.4程序设计及详解 308
20.3.5经验总结 309
20.4本章小结 309
第21章CAN总线接口 310
21.1CAN总线接口概述 310
21.2利用SIA1000实现数据传输 311
21.2.1实例功能 311
21.2.2典型器件介绍 311
21.2.3硬件设计 315
21.2.4程序设计及详解 316
21.2.5经验总结 320
21.3利用CAN总线实现单片机间的通信 320
21.3.1实例功能 320
21.3.2典型器件介绍 320
21.3.3硬件设计 320
21.3.4程序设计及详解 320
21.3.5经验总结 325
21.4本章小结 325
第4篇综合系统实例
第22章MP3播放器设计 329
22.1硬件电路设计 329
22.1.1实例背景 329
22.1.2硬件设计流程 330
22.1.3典型器件选型及介绍 330
22.1.4硬件电路 333
22.2软件设计 337
22.2.1软件设计流程 337
22.2.2软件模块分析 337
22.2.3程序设计及详解 337
22.3经验总结 341
22.4本章小结 342
第23章小型打印机系统 343
23.1硬件电路设计 343
23.1.1实例背景 343
23.1.2硬件设计流程 344
23.1.3典型器件选型及介绍 347
23.1.4硬件电路 347
23.2软件设计 350
23.2.1 软件设计流程 350
23.2.2软件模块分析 351
23.2.3程序设计及详解 351
23.3经验总结 354
23.4本章小结 355
第24章智能充电器 356
24.1硬件电路设计 356
24.1.1实例背景 356
24.1.2硬件设计流程 357
24.1.3典型器件选型及介绍 357
24.1.4硬件电路 360
24.2软件设计 362
24.2.1软件设计流程 362
24.2.2软件模块分析 363
24.2.3程序设计及详解 363
24.3经验总结 368
24.4本章小结 368
第25章直流电机的控制 369
25.1硬件电路设计 369
25.1.1实例背景 369
25.1.2硬件设计流程 369
25.1.3典型器件选型及介绍 370
25.1.4硬件电路 373
25.2软件设计 376
25.2.1软件设计流程 376
25.2.2软件模块分析 377
25.2.3程序设计及详解 377
25.3经验总结 383
25.4本章小结 383
第26章温湿度传感器 384
26.1硬件电路设计 384
26.1.1实例背景 384
26.1.2硬件设计流程 385
26.1.3典型器件选型及介绍 385
26.1.4硬件电路 387
26.2软件设计 390
26.2.1软件设计流程 390
26.2.2软件模块分析 390
26.2.3程序设计及详解 390
26.3经验总结 399
26.4本章小结 399
第27章手持无线遥控器 400
27.1硬件电路设计 400
27.1.1实例背景 400
27.1.2硬件设计流程 401
27.1.3典型器件选型及介绍 402
27.1.4硬件电路 405
27.2软件设计 408
27.2.1软件设计流程 408
27.2.2软件模块分析 408
27.2.3程序设计及详解 408
27.3经验总结 418
27.4本章小结 418
……