《AVR单片机C语言应用100例》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:严雨,廉洁编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2012
  • ISBN:9787121156083
  • 页数:364 页
图书介绍:本书基于Proteus仿真和C语言由浅入深地介绍了ATmega128单片机的应用。所提供100个实例覆盖了整个单片机系统开发全过程,包括单片机开发环境、单片机的内部结构、C语言基础,以及ATmega128单片机的内部资源应用。所涉及的ATmega128单片机的内部资源包括I/O引脚、外部中断、E2PROM、USART模块、定时/计数器、TWI接口、SPI接口、模拟比较器、ADC模块、看门狗等。

第1章 ATmega128单片机基础 1

1.1 ATmega128单片机介绍 1

1.2 ATmega128单片机的结构 3

1.2.1 ATmega128单片机的内核 4

1.2.2 ATmega128单片机的存储器体系 8

1.2.3 ATmega128单片机的系统时钟 9

1.2.4 ATmega128单片机的电源管理 14

1.2.5 ATmega128单片机的复位 16

1.2.6 ATmega128单片机的中断系统 20

1.3 ATmega128单片机的指令系统和寻址 22

第2章 ATmega128单片机的软件开发环境 26

2.1 ICCAVR软件开发环境 26

2.1.1 ICCAVR软件安装 26

2.1.2 ICCAVR菜单 29

2.1.3 ICCAVR的常用文件类型 32

2.1.4 ICCAVR的扩展关键字 33

2.1.5 ICCAVR的启动文件 33

2.1.6 ICCAVR的库函数 34

2.2 ICCAVR IDE的使用 39

应用实例1——使用ICCAVR IDE 39

第3章 ATmega128单片机的开发环境 43

3.1 ATmega128单片机开发常用的工具 43

3.1.1 ISP编程器 43

3.1.2 数字万用表 44

3.1.3 数字示波器 44

3.2 Proteus仿真软件的使用 44

应用实例2——使用Proteus仿真ATmega128单片机 44

3.3 Proteus仿真软件的应用说明 46

3.3.1 运行、单步运行、暂停和停止运行 46

3.3.2 打开对应的观察窗口 47

第4章 ATmega128单片机应用系统开发基础 48

4.1 ATmega128单片机应用系统的构成 48

4.2 ATmega128单片机应用系统开发流程 49

4.3 ATmega128单片机应用系统的硬件设计 50

4.4 3个微型ATmega128单片机应用系统 50

应用实例3——点亮8位LED 51

应用实例4——驱动7位数码管 52

应用实例5——串口数据发送和接收 55

第5章 ATmega128单片机C语言基础 59

5.1 ATmega128单片机C语言的数据类型、运算符和表达式 59

5.1.1 ATmega128单片机C语言的数据类型 60

5.1 2 ATmega128单片机C语言的常量和变量 60

应用实例6——使用常量 61

应用实例7——使用变量 61

5.1.3 ATmega128单片机C语言的算术运算、赋值运算、逻辑运算和关系运算 62

应用实例8——使用算术表达式 62

应用实例9——使用强制类型转换 63

应用实例10——逻辑运算应用 64

应用实例11——关系运算应用 65

5.1.4 ATmega128单片机C语言的位操作 65

应用实例12——位逻辑运算:位与和位或 66

应用实例13——位逻辑运算:位异或和位取反 66

应用实例14——移位运算应用 66

应用实例15——自增减运算应用 68

应用实例16——复合运算应用 69

应用实例17——逗号运算应用 69

5.1.5 运算符的优先级 69

5.2 ATmega128单片机C语言的结构语句 70

5.2.1 顺序结构 70

应用实例18——顺序结构语句应用 71

5.2.2 选择结构 71

应用实例19——if语句的基本结构应用 73

应用实例20——switch语句的应用 75

5.2.3 循环结构 75

应用实例21——while语句的应用 76

应用实例22——do while语句应用 77

应用实例23——for语句的应用 78

应用实例24——循环语句的进阶用法 79

5.2.4 break语句、continue语句和goto语句 79

应用实例25——break语句的应用 80

应用实例26——continue语句的应用 81

应用实例27——goto语句的应用 83

第6章 ATmega128单片机高阶C语言 84

6.1 ATmega128单片机C语言的函数 85

6.1.1 函数的分类 85

6.1.2 函数的定义 85

应用实例28——无参函数的应用 87

应用实例29——有参函数的应用 88

6.1.3 函数的调用 88

应用实例30——函数的预先定义 89

应用实例31——函数的后定义 89

应用实例32——函数的递归调用 91

应用实例33——函数的嵌套调用 92

6.1.4 内部函数和外部函数 92

6.1.5 变量类型 93

应用实例34——静态局部变量应用 94

应用实例35——全局变量应用 95

6.2 ATmega128单片机C语言的数组和指针 96

6.2.1 数组 96

应用实例36——一维数组的应用 97

应用实例37——二维数组的应用 98

应用实例38——字符数组的应用 99

6.2.2 指针 101

应用实例39——指针的应用 102

6.2.3 数组和指针 103

应用实例40——数组下标引用输出 103

应用实例41——数组名作为地址输出 104

应用实例42——指针引用数组输出 105

应用实例43——使用指针运算引用数组输出 105

应用实例44——数组下标引用二维数组的输出 106

应用实例45——指针引用二维数组的输出 107

6.2.4 字符串和指针 108

应用实例46——字符指针的字符数组输出 109

6.2.5 数组、指针和函数的联系 110

应用实例47——数组作为函数参数的应用 110

应用实例48——指针作为函数参数 111

应用实例49——返回指针的函数 112

6.2.6 指针数组和指向指针的指针 113

应用实例50——指向指针的指针应用 114

6.3 ATmega128单片机C语言中的自定义数据类型 115

6.3.1 结构体 115

应用实例51——结构体的应用 117

应用实例52——结构体数组应用 117

应用实例53——结构体变量指针 118

应用实例54——结构体指针变量作为函数参数 119

6.3.2 联合体(共用体) 120

应用实例55——结构体的应用 121

6.3.3 枚举 122

应用实例56——枚举变量的应用 122

6.4 ATmega128单片机C语言程序设计技巧 123

6.4.1 养成好的编程习惯 123

6.4.2 宏定义 125

应用实例57——宏定义的应用 125

应用实例58——参数宏定义的应用 126

6.4.3 条件编译 127

应用实例59——条件编译 128

6.4.4 一些关键字的使用 129

第7章 ATmega128单片机的I/O引脚应用实例 131

7.1 ATmega128单片机的I/O引脚基础 131

7.1.1 ATmega128单片机的I/O引脚配置 132

7.1.2 ATmega128单片机读取引脚电平 134

7.1.3 ATmega128单片机的I/O引脚低功耗处理 135

7.1.4 ATmega128单片机的I/O引脚的第二功能 135

7.2 ATmega128单片机扩展发光二极管(LED) 141

7.2.1 发光二极管(LED)基础 141

7.2.2 ATmega128单片机扩展发光二极管(LED)应用实例 142

应用实例60——使用I/O引脚驱动LED闪烁 142

应用实例61——使用I/O引脚驱动流水灯 144

7.3 ATmega128单片机扩展数码管 146

7.3.1 一位数码管基础 146

7.3.2 ATmega128扩展一位数码管应用实例 148

应用实例62——使用I/O引脚驱动数码管显示 148

7.3.3 多位数码管基础 150

7.3.4 ATmega128单片机扩展多位数码管应用实例 151

应用实例63——使用I/O引脚驱动多位数码管动态显示 151

7.4 ATmega128单片机扩展按键、键盘和拨码开关 154

7.4.1 独立按键基础 154

7.4.2 ATmega128单片机扩展独立按键应用实例 155

应用实例64——使用I/O引脚扩展独立按键 155

7.4.3 行列扫描键盘基础 158

7.4.4 ATmega128单片机扩展行列扫描键盘应用实例 159

应用实例65——使用I/O引脚扩展行列扫描键盘 159

7.4.5 拨码开关基础 161

7.4.6 ATmega128单片机扩展拨码开关应用实例 162

应用实例66——使用I/O引脚扩展拨码开关 162

7.5 ATmega128单片机扩展继电器 164

7.5.1 继电器基础 164

7.5.2 功率驱动器件基础 165

7.5.3 ATmega128单片机扩展继电器应用实例 168

应用实例67——使用I/O引脚扩展继电器 168

7.6 ATmega128单片机扩展蜂鸣器 170

7.6.1 蜂鸣器基础 170

7.6.2 ATmega128单片机扩展蜂鸣器应用实例 171

应用实例68——使用I/O引脚扩展蜂鸣器 171

7.7 ATmega128单片机扩展电动机 174

7.7.1 直流电动机基础 174

7.7.2 ATmega128单片机扩展直流电动机的应用实例 175

应用实例69——使用I/O引脚扩展直流电动机 175

7.7.3 步进电动机基础 177

7.7.4 ATmega128单片机扩展步进电动机的应用实例 178

应用实例70——使用I/O引脚扩展步进电动机 178

第8章 ATmega128单片机的外部中断应用实例 182

8.1 ATmega128单片机的外部中断基础 182

8.1.1 外部中断控制寄存器A(EICRA) 182

8.1.2 外部中断控制寄存器B(EICRB) 183

8.1.3 外部中断屏蔽寄存器(EIMSK) 183

8.1.4 外部中断标志寄存器(EIFR) 184

8.2 ATmega128单片机的外部中断应用实例 184

应用实例71——外部中断7脉冲计数 184

应用实例72——外部中断控制LED 186

应用实例73——多个外部中断联合计数 188

第9章 ATmega128单片机的内部E2PROM应用实例 192

9.1 E2PROM基础 192

9.1.1 地址寄存器EEARH和EEARL 192

9.1.2 数据寄存器EEDR 192

9.1.3 控制寄存器EECR 193

9.1.4 E2PROM的操作时间 193

9.1.5 E2PROM的写操作 194

9.1.6 E2PROM的读操作 195

9.1.7 E2PROM的掉电处理 195

9.2 ATmega128单片机的E2PROM应用实例 195

应用实例74——用E2PROM保存用户数据 195

应用实例75——E2PROM的数据写入和读出 198

第10章 ATmega128单片机的USART模块应用实例 203

10.1 USART模块应用基础 203

10.1.1 USART的相关寄存器 205

10.1.2 USART的时钟发生器 208

10.1.3 USART的数据帧格式 210

10.1.4 USART的使用方法 211

10.2 ATmega128单片机的USART应用实例 216

应用实例76——USART0的数据发送 216

应用实例77——USART1的数据发送 219

应用实例78——Proteus中的虚拟串口调试 222

应用实例79——使用USART0和计算机进行双向数据通信 224

应用实例80——综合使用USART0和USART1 228

应用实例81——使用单片机A控制单片机B 231

第11章 ATmega128单片机的定时/计数器模块应用实例 236

11.1 定时/计数器T/C0基础 236

11.1.1 定时/计数器T/C0的工作模式 236

11.1.2 T/C0的相关寄存器 240

11.2 定时/计数器T/C1和T/C3基础 243

11.2.1 T/C1和T/C3的工作模式 243

11.2.2 T/C1和T/C3的相关寄存器 247

11.3 定时/计数器T/C2基础 253

11.3.1 T/C2的工作模式 253

11.3.2 T/C2的相关寄存器 254

11.4 定时/计数器模块应用实例 256

应用实例82——T/C0控制LED闪烁 256

应用实例83——T/C1控制LED闪烁 259

应用实例84——T/C2脉冲计数 261

应用实例85——T/C1实现频率计 265

应用实例86——T/C1实现占空比可调PWM输出 268

应用实例87——T/C0的秒定时 271

应用实例88——频率可调的PWM信号输出 274

第12章 ATmega128单片机的TWI(I2C)接口总线模块应用实例 279

12.1 TWI(I2C)总线基础 279

12.1.1 TWI(I2C)接口总线的一些术语 280

12.1.2 TWI(I2C)接口总线的数据传输过程和帧格式 280

12.1.3 TWI(I2C)总线器件的地址 282

12.2 ATmega128单片机的TWI(I2C)接口总线模块应用基础 282

12.2.1 ATmega128单片机的TWI(I2C)接口总线模块构成 283

12.2.2 ATmega128单片机的TWI(I2C)接口总线模块寄存器 284

12.2.3 ATmega128单片机的TWI(I2C)接口总线模块的工作模式 287

12.2.4 ATmega128单片机的TWI(I2C)接口总线模块的使用 294

12.3 ATmega128单片机的TWI(I2C)接口总线模块应用实例 296

应用实例89——使用TWI(I2C)总线进行双机通信 296

第13章 ATmega128单片机的SPI接口总线模块应用实例 303

13.1 SPI总线基础 303

13.1.1 SPI总线的结构 303

13.1.2 SPI总线的时序 304

13.2 ATmega128单片机的SPI接口总线模块应用基础 305

13.2.1 ATmega128单片机的SPI接口总线模块的寄存器 305

13.2.2 ATmega128单片机的SPI接口总线模块的工作模式 307

13.3 ATmega128单片机的SPI接口总线模块应用实例 309

应用实例90——使用SPI总线接口进行双机通信 309

第14章 ATmega128单片机的模拟比较器模块应用实例 316

14.1 ATmega128单片机的模拟比较器模块应用基础 316

14.1.1 ATmega128单片机模拟比较器模块的寄存器 316

14.1.2 ATmega128单片机模拟比较器模块输入通道 318

14.2 ATmega128单片机的模拟比较器模块应用实例 318

应用实例91——使用比较器模块比较两个模拟信号 318

应用实例92——使用比较器模块将正弦波信号转换为方波信号 321

应用实例93——多通道模拟信号电压比较 324

第15章 ATmega128单片机的ADC模块应用实例 328

15.1 ADC基础知识 328

15.2 ATmega128单片机的ADC模块应用基础 330

15.2.1 ATmega128单片机的ADC模块的相关寄存器 330

15.2.2 ATmega128单片机的ADC模块的使用 334

15.3 ATmega128单片机的ADC模块应用实例 339

应用实例94——单通道A/D采样 339

应用实例95——多通道A/D采样 342

应用实例96——差分输入A/D采样 345

应用实例97——增益放大A/D采样 349

应用实例98——定时器控制A/D采样 352

应用实例99——多通道电压比较和A/D采样 356

第16章 ATmega128单片机的看门狗模块应用实例 360

16.1 ATmega128单片机看门狗模块应用基础 360

16.2 ATmega128单片机看门狗模块应用实例 361

应用实例100——ATmega128单片机看门狗模块工作状态测试 361