程国钢编著的《案例解说单片机C语言开发——基于AVR+Proteus仿真》以Proteus硬件仿真环境和ICCAVR软件开发环境为依托,介绍了ATmega128单片机的应用方法,包括ATmega128单片机的体系结构、C语言、内部资源的应用、外部器件的扩展应用方法,以及ATmega128单片机综合应用系统的开发方法和实例。
本书对于各个内部资源和外围器件介绍组织结构如下:器件基础、Proteus中的器件库说明、Proteus应用电路、应用代码、仿真结果和总结;读者既可以了解该器件的基础知识和对应的驱动代码,也可以在Proteus中进行仿真并且观察仿真结果。为与Proteus软件中的电路图保持一致,本书电路图中电阻、电容单位的不规范不作更改,如10k不改为10kΩ,10uF不改为10μF,读者能够理解即可。
ICCAVR是ATmegal28单片机软件开发环境,Proteus是目前应用最广泛的硬件仿真环境。程国钢编著的《案例解说单片机C语言开发——基于AVR+Proteus仿真》基于ICCAVR和Proteus介绍了ATmega128单片机体系结构、C语言、内部资源,以及常用扩展器件的使用方法。全书分为3个部分:第1章和第2章是基础部分,介绍了ICCAVR和Proteus的基础用法。第3~9章是基础应用部分,各个章节基于ICCAVR和Proteus介绍了ATmcga128单片机的内部资源和典型外部扩展器件的使用方法,对于这些资源和器件进行了基础知识和Proteus库的介绍,还提供了详尽的实例。第10章是综合应用部分,介绍了ATmega128单片机应用系统的基础设计方法,提供了包括频率计、简易数字时钟、可控自校准数字电源、仓库自动通风控制系统在内的4个大型综合应用实例。
《案例解说单片机C语言开发——基于AVR+Proteus仿真》提供了大量实例,它们都有详细的设计思路、典型器件列表、Proteus应用电路、C语言应用代码和仿真运行结果。
本书包含丰富的单片机内部资源和外围模块的应用实例,并且都基于Proteus仿真,简单直观,适合具有初步单片机基础的单片机工程师进阶学习,以及高等院校电子类专业的学生和单片机爱好者阅读,也可以作为工程设计人员的参考手册。
第1章 ATmega128应用基础/1
1.1 ATmega128的体系结构/1
1.1.1 ATmega128的内核/3
1.1.2 ATmega128的存储器体系/6
1.1.3 ATmega128的系统时钟/7
1.1.4 ATmega128的电源管理/13
1.1.5 ATmega128的复位/15
1.1.6 ATmega128的外部引脚封装/19
1.1.7 ATmega128的中断系统/20
1.2 ATmega128的C语言/22
1.2.1 ATmega128 C语言的数据类型、运算符和表达式/22
1.2.2 ATmega128 C语言的结构/25
1.2.3 ATmega128 C语言的函数/26
1.2.4 ATmega128 C语言的数组和指针/27
1.2.5 ATmega128 C语言的自构造类型/29
1.3 ICCAVR软件开发环境应用基础/31
1.3.1 ICCAVR的工作界面/31
1.3.2 ICCAVR的菜单/32
1.3.3 ICCAVR的扩展关键字/37
1.3.4 ICCAVR的库函数/37
1.3.5 使用ICCAVR/38
第2章 Proteus硬件仿真环境/42
2.1 Proteus应用基础/42
2.1.1 Proteus的界面/42
2.1.1 Proteus的界面/43
2.1.2 Proteus支持的文件格式/43
2.1.2 Proteus的菜单/44
2.1.3 Proteus的快捷工具栏和工具箱/57
2.2 使用Proteus/59
2.3 Protues中的ATmega128/61
2.4 Proteus和ICCAVR的联合调试应用实例/62
第3章 Proteus中的ATmega128内部基础资源应用实例/68
3.1 ATmega128的I/O引脚应用实例/68
3.1.1 I/O引脚基础/68
3.1.2 I/O引脚输出高低脉冲电平应用实例/69
3.2 ATmega128的外部中断应用实例/73
3.2.1 外部中断基础/73
3.2.2 外部中断控制I/O引脚输出应用实例/76
3.3 ATmega128的定时/计数器应用实例/78
3.3.1 定时/计数器基础/78
3.3.2 定时器控制I/O引脚输出方波应用实例/79
3.3.3 定时器输出PWM波形应用实例/81
3.3.4 输出频率可调的PWM波形应用实例/84
3.3.5 定时/计数器秒定时输出高低电平应用实例/90
3.4 ATmega128的串行口应用实例/93
3.4.1 串行口基础/93
3.4.2 ATmega128串口0数据发送应用实例/98
3.4.3 ATmega128串口1数据发送应用实例/104
3.4.4 和PC进行串行通信应用实例/105
3.4.5 双串口联合使用应用实例/109
3.5 ATmega128的TWI(I2C)总线接口应用实例/112
3.5.1 TWI(I2C)总线接口基础/112
3.5.2 双机ATmega128使用TWI总线通信应用实例/117
3.6 ATmega128的SPI总线接口应用实例/128
3.6.1 SPI总线接口基础/128
3.6.2 双机ATmega128使用SPI总线通信应用实例/131
3.7 ATmega128的内置看门狗模块应用实例/139
3.7.1 内置看门狗模块基础/139
3.7.2 内置看门狗模块测试应用实例/140
3.8 建立并引用用户库函数应用实例/144
3.8.1 实例的设计思路/144
3.8.2 实例的Proteus电路图/144
3.8.3 应用实例代码/145
3.8.4 应用实例的仿真结果和说明/145
第4章 Proteus中的ATmega128人机交互通道应用实例/147
4.1 发光二极管应用实例/147
4.1.1 器件基础/147
4.1.2 应用实例设计分析/149
4.1.3 应用实例的代码/150
4.1.4 应用实例的仿真结果和说明/152
4.2 单位数码管应用实例/153
4.2.1 器件基础/153
4.2.2 应用实例设计分析/155
4.2.3 应用实例的代码/156
4.2.4 应用实例的仿真结果和说明/158
4.3 多位数码管应用实例/158
4.3.1 器件基础/158
4.3.2 应用实例设计分析/159
4.3.3 应用实例的代码/161
4.3.4 应用实例的仿真结果和说明/163
4.4 MAX7219应用实例/164
4.4.1 器件基础/164
4.4.2 应用实例设计分析/168
4.4.3 应用实例的代码/169
4.4.4 应用实例的仿真结果和说明/172
4.5 1602液晶应用实例/173
4.5.1 器件基础/173
4.5.2 应用实例设计分析/176
4.5.3 应用实例的代码/177
4.5.4 应用实例的仿真结果和说明/181
4.6 独立按键应用实例/181
4.6.1 器件基础/181
4.6.2 应用实例设计分析/182
4.6.3 应用实例的代码/184
4.6.4 应用实例的仿真结果和说明/187
4.7 行列扫描键盘应用实例/188
4.7.1 器件基础/188
4.7.2 应用实例设计分析/190
4.7.3 应用实例的代码/191
4.7.4 应用实例的仿真结果和说明/193
4.8 拨码开关应用实例/193
4.8.1 器件基础/194
4.8.2 应用实例设计分析/195
4.8.3 应用实例的代码/196
4.8.4 应用实例的仿真结果和说明/198
第5章 Proteus中的ATmega128信号采集通道应用实例/199
5.1 ATmega128的内置比较器模块应用实例/199
5.1.1 内置比较器模块基础/199
5.1.2 双通道模拟信号比较应用实例/201
5.1.3 多通道模拟信号比较应用实例/204
5.2 ATmega128的内置A/D模块应用实例/209
5.2.1 内置A/D模块基础/209
5.2.2 单通道模拟信号采集实例/216
5.2.3 多通道模拟信号采集实例/219
5.2.4 增益放大模拟信号采集实例/222
5.2.5 差分模拟信号比较采集实例/225
5.2.6 多通道模拟信号比较采集实例/228
5.3 DS1302应用实例/233
5.3.1 器件基础/233
5.3.2 应用实例设计分析/235
5.3.3 应用实例的代码/236
5.3.4 应用实例的仿真结果和说明/243
5.4 DS18B20应用实例/244
5.4.1 器件基础/244
5.4.2 应用实例设计分析/247
5.4.3 应用实例的代码/248
5.4.4 应用实例的仿真结果和说明/251
第6章 Proteus中的ATmega128信号输出通道应用实例/252
6.1 DAC0832应用实例/252
6.1.1 器件基础/252
6.1.2 应用实例设计分析/254
6.1.3 应用实例的代码/255
6.1.4 应用实例的仿真结果和说明/256
6.2 74HC165应用实例/257
6.2.1 器件基础/257
6.2.2 应用实例设计分析/258
6.3 74HC595应用实例/259
6.3.1 器件基础/259
6.3.2 应用实例设计分析/260
6.3.3 应用实例的代码/261
6.3.4 应用实例的仿真结果和说明/263
第7章 Proteus中的ATmega128 存储器应用实例/265
7.1 ATmega128的内部E2PROM应用实例/265
7.1.1 E2PROM基础/265
7.1.2 E2PROM读写应用实例/268
7.2 62256应用实例/272
7.2.1 器件基础/272
7.2.2 应用实例设计分析/274
7.2.3 应用实例的代码/275
7.2.4 应用实例的仿真结果和说明/279
第8章 Proteus中的ATmega128执行机构应用实例/280
8.1 三极管应用实例/280
8.1.1 器件基础/280
8.1.2 应用实例设计分析/281
8.1.3 应用实例的代码/282
8.1.4 应用实例的仿真结果和说明/284
8.2 ULN2803应用实例/285
8.2.1 器件基础/285
8.2.2 应用实例设计分析/286
8.2.3 应用实例的代码/287
8.2.4 应用实例的仿真结果和说明/290
8.3 光电隔离器应用实例/290
8.3.1 器件基础/290
8.3.2 应用实例设计分析/292
8.3.3 应用实例的代码/293
8.3.4 应用实例的仿真结果和说明/294
8.4 直流电动机应用实例/295
8.4.1 器件基础/295
8.4.2 应用实例设计分析/296
8.4.3 应用实例的代码/297
8.4.4 应用实例的仿真结果和说明/300
8.5 步进电动机应用实例/301
8.5.1 器件基础/301
8.5.2 应用实例设计分析/303
8.5.3 应用实例的代码/304
8.5.4 应用实例的仿真结果和说明/307
8.6 继电器应用实例/308
8.6.1 器件基础/308
8.6.2 应用实例设计分析/309
8.6.3 应用实例的代码/310
8.6.4 应用实例的仿真结果和说明/312
8.7 蜂鸣器应用实例/312
8.7.1 器件基础/313
8.7.2 应用实例设计分析/314
8.7.3 应用实例的代码/315
8.7.4 应用实例的仿真结果和说明/317
第9章 Proteus中的ATmega128通信应用实例/318
9.1 MAX232应用实例/318
9.1.1 器件基础/318
9.1.2 应用实例设计分析/320
9.1.3 应用实例的代码/321
9.1.4 实例的仿真结果和说明/321
9.2 SN75179应用实例/322
9.2.1 器件基础/322
9.2.2 应用实例设计分析/323
9.2.3 应用实例的代码/324
9.2.4 实例的仿真结果和说明/327
9.3 MAX487应用实例/328
9.3.1 器件基础/328
9.3.2 应用实例设计分析/329
9.3.3 应用实例的代码/330
9.3.4 实例的仿真结果和说明/330
第10章 在Proteus中设计ATmega128的应用系统/331
10.1 ATmega128综合应用实例设计基础/331
10.2 频率计应用实例/335
10.2.1 频率计的需求分析和系统设计/335
10.2.2 频率计的硬件设计/336
10.2.3 频率计的软件设计/337
10.2.4 Proteus中的虚拟信号发生器/343
10.2.5 实例的仿真结果和总结/344
10.3 简易数字时钟应用实例/345
10.3.1 简易数字时钟的需求分析和系统设计/345
10.3.2 简易数字时钟的硬件设计/345
10.3.3 简易数字时钟的软件设计/347
10.3.4 实例的仿真结果和总结/354
10.4 可控自校准数字电源应用实例/354
10.4.1 可控自校准数字电源的需求分析和系统设计/355
10.4.2 可控自校准数字电源的硬件设计/355
10.4.3 可控自校准数字电源的软件设计/358
10.4.4 实例的仿真结果和总结/364
10.5 仓库自动通风控制系统应用实例/365
10.5.1 仓库自动通风控制系统的需求分析和系统设计/365
10.5.2 仓库自动通风控制系统的硬件设计/366
10.5.3 仓库自动通风控制系统的软件设计/368
10.5.4 实例的仿真结果和总结/377