微信扫一扫,移动浏览光盘
简介
本书以引导读者快速掌握对ATmega128/128L单片机的编程为目的,详
细介绍了涉及编程的ATmega128/128L单片机内部结构和外围接口的特点、
性能及其指令系统。在此基础上,又介绍了ICCAVR 6.31A、GCCAVR、
CodeVision AVR、IAR等集成开发环境编译器使用C语言的相关知识以及AVR
Studio调试环境。书中穿插大量的实用程序,并在最后一章给出了许多综
合实例;实例程序全部用C语言编写,且已全部在ICCAVR 6.31A开发环境上
编译通过。本书配光盘1张,包含书中全部实例程序的源代码以及一些相关
的学习资料。
本书适合于ATmega128单片机的初学者以及有一定单片机与嵌入式系统
应用基础的电子工程技术人员阅读,也可作为高等院校电子信息、自动控
制等专业教学和科研开发的参考书。
目录
第1章 单片机概述.
1.1 单片机发展概述1
1.2 嵌入式系统与单片机3
1.3 avr单片机概述4
1.4 avr单片机的主要特点8
1.5 avr单片机最小系统9
1.6 avr单片机实验系统概述10
第2章 atmega128硬件结构
2.1 概述13
2.1.1 结构和主要特点13
2.1.2 主要性能14
2.1.3 封装和引脚16
2.1.4 指令系统18
2.2 内核18
2.2.1 结构概述18
2.2.2 微控制器mcu19
2.2.3 指令执行时序22
2.2.4 复位和中断处理23
2.3 存储器结构24
2.3.1 系统内可编程的flash程序存储器24
.2.3.2 sram数据存储器24
2.3.3 i/o寄存器25
2.4 i/o端口描述26
2.4.1 作为通用数字i/o的端口26
2.4.2 数字输入使能和睡眠模式31
2.4.3 端口的第2功能32
2.5 时钟系统39
2.5.1 时钟系统和时钟分配39
2.5.2 时钟源40
2.5.3 外部晶振40
2.5.4 外部低频晶振41
2.5.5 外部rc振荡器42
2.5.6 可校准的片内rc振荡器42
2.5.7 外部时钟源44
2.5.8 定时器/计时器振荡器44
2.5.9 系统时钟分频控制寄存器xdiv44
2.6 定时器/计数器45
2.6.1 定时器/计数器预分频器 45
2.6.2 8位定时器/计数器t/c047
2.6.3 16位定时器/计数器59
2.6.4 8位定时器/计时器t/c280
2.6.5 输出比较调制器90
2.7 中断系统91
2.7.1 复位和中断向量表的移动92
2.7.2 在应用区和boot区之间移动中断95
2.8 同步串行通信spi96
2.8.1 spi接口控制与数据传输过程96
2.8.2 与spi接口相关的寄存器101
2.9 通用同步和异步串行接收器和转发器102
2.9.1 概述103
2.9.2 串行时钟发生104
2.9.3 数据帧格式106
2.9.4 usart的初始化107
2.9.5 发送数据108
2.9.6 数据接收110
2.9.7 异步串行数据的硬件扫描检测和接收时序112
2.9.8 多处理器通信模式115
2.9.9 usart寄存器116
2.9.10 设置波特率与偏差119
2.10 twi总线接口121
2.10.1 两线串行接口总线122
2.10.2 twi模块122
2.10.3 twi 寄存器124
2.10.4 使用twi总线126
2.10.5 多主机系统和仲裁129
2.11 模拟比较器130
2.12 模/数转换器adc接口133
2.12.1 特点133
2.12.2 操作过程133
2.12.3 启动adc转换135
2.12.4 预分频和转换时序135
2.12.5 差分增益通道137
2.12.6 输入通道和基准电源的选择137
2.12.7 adc噪声抑制器138
2.12.8 adc 转换结果140
2.12.9 有关的i/o寄存器142
2.13 电源管理和休眠模式145
2.13.1 mcu 控制寄存器——mcucr146
2.13.2 功耗最小化147
2.14 调试端口148
2.14.1 jtag接口149
2.14.2 jtag在线仿真调试152
2.14.3 jtag程序下载功能153
2.14.4 jtag边界扫描153
2.14.5 atmega128 边界扫描次序157
2.15 系统复位与看门狗161
2.15.1 复位源162
2.15.2 mcu控制和状态寄存器——mcucsr164
2.15.3 片内基准电压165
2.15.4 看门狗定时器165
2.16 m103模式168
2.16.1 atmega103与atmega128的兼容性168
2.16.2 atmega103兼容模式168
2.17 熔丝位168
2.18 引导加载及自编程169
2.18.1 引导加载的过程170
2.18.2 相关i/o寄存器173
2.18.3 flash的自编程176
2.18.4 一个简单的引导程序汇编代码179
2.19 数据存储器读/写访问181
2.19.1 eeprom读/写访问181
2.19.2 寄存器描述181
第3章 指令系统
3.1 概述185
3.1.1 指令表185
3.1.2 指令中使用的符号191
3.1.3 寻址方式和寻址空间191
3.2 算术和逻辑指令198
3.2.1 加法指令198
3.2.2 减法指令199
3.2.3 取反码指令201
3.2.4 取补指令201
3.2.5 比较指令202
3.2.6 逻辑“与”指令203
3.2.7 逻辑“或”指令204
3.2.8 逻辑“异或”指令205
3.2.9 乘法指令206
3.3 跳转指令209
3.3.1 无条件跳转指令209
3.3.2 条件跳转指令209
3.3.3 测试条件符合跳行跳转指令216
3.3.4 子程序调用和返回指令217
3.4 数据传送指令219
3.4.1 直接数据传送指令219
3.4.2 间接数据传送指令220
3.4.3 从程序存储器直接取数据指令225
3.4.4 写程序存储器指令226
3.4.5 i/o口数据传送227
3.4.6 堆栈操作指令227
3.5 位指令和位测试指令228
3.5.1 带进位逻辑操作指令228
3.5.2 位变量传送指令230
3.5.3 位变量修改指令230
3.6 mcu控制指令235
3.7 avr汇编语言系统236
3.7.1 汇编语言语句格式236
3.7.2 汇编器伪指令..237
3.7.3 表达式241
第4章 avr单片机开发工具
4.1 avr studio集成开发环境243
4.1.1 汇编程序编译器avr assembler244
4.1.2 仿真调试248
4.1.3 程序下载253
4.2 iccavr集成开发环境255
4.2.1 安装iccavr编译器256
4.2.2 iccavr介绍260
4.2.3 iccavr导游265
4.2.4 c库函数与启动文件268
4.2.5 访问avr硬件的编程270
4.3 其他主流avr单片机开发环境271
4.3.1 gccavr开发环境271
4.3.2 codevision avr集成开发环境276
4.3.3 iar集成开发环境281
第5章 iccavr的c语言基础
5.1 c语言概述290
5.1.1 发展过程290
5.1.2 特点290
5.1.3 c源程序的结构特点291
5.1.4 字符集294
5.1.5 c语言词汇295
5.2 c语言基础297
5.2.1 数据类型297
5.2.2 算术运算符和算术表达式309
5.2.3 关系运算符和表达式312
5.2.4 逻辑运算符和表达式313
5.3 控制语句314
5.3.1 if语句315
5.3.2 条件运算符和条件表达式318
5.3.3 switch语句318
5.3.4 goto语句和goto语句构成循环320
5.3.5 while语句321
5.3.6 dowhile语句322
5.3.7 for语句323
5.3.8 循环的嵌套和几种循环的比较325
5.3.9 break和continue语句326
5.4 数组328
5.4.1 一维数组的定义和引用328
5.4.2 二维数组的定义和引用330
5.4.3 字符数组332
5.5 函数334
5.5.1 概述334
5.5.2 函数定义的一般形式336
5.5.3 函数的参数和函数的值338
5.5.4 函数的调用340
5.5.5 函数的嵌套调用341
5.5.6 函数的递归调用342
5.5.7 数组作为函数参数342
5.5.8 局部变量和全局变量343
5.5.9 变量的存储类别345
5.5.10 中断服务函数346
5.6 指 针347
5.6.1 地址指针的基本概念347
5.6.2 变量的指针和指向变量的指针变量347
5.6.3 数组指针和指向数组的指针变量351
5.6.4 字符串的指针指向字符串的指针变量353
5.6.5 函数指针变量354
5.6.6 指针数组和指向指针的指针356
5.6.7 有关指针的数据类型和指针运算的小结356
5.7 结构体与共用体357
5.7.1 定义结构的一般形式357
5.7.2 结构类型变量的说明358
5.7.3 结构变量成员的表示方法360
5.7.4 结构变量的初始化360
5.7.5 结构数组的定义361
5.7.6 结构指针变量的说明和使用361
5.7.7 共用体363
5.7.8 枚举类型364
5.7.9 类型定义符typedef365
5.8 位运算366
5.8.1 位运算符366
5.8.2 位域368
5.9 编译预处理369
5.9.1 概述369
5.9.2 宏定义369
5.9.3 文件包含371
5.9.4 条件编译372
5.10 iccavr附注与扩充373
第6章 atmega128基础实例
6.1 发光二极管应用实验375
6.1.1 实例功能375
6.1.2 器件和原理375
6.1.3 硬件电路376
6.1.4 程序设计376
6.2 键盘电路应用实例382
6.2.1 实例功能383
6.2.2 器件和原理384
6.2.3 程序设计384
6.3 led数码管应用实例394
6.3.1 实例功能394
6.3.2 器件和原理394
6.3.3 硬件电路396
6.3.4 程序设计397
6.4 片内eeprom应用实例399
6.4.1 实例功能399
6.4.2 atmega128片内eeprom内部寄存器399
6.4.3 硬件原理图401
6.5 pwm应用实例405
6.5.1 脉冲宽度控制pwm的工作原理405
6.5.2 atmega128内部pwm模块405
6.5.3 利用t/c0的pwm模块产生锯齿波406
6.6 adc应用实例409
6.6.1 实例功能409
6.6.2 atmega128片内adc内部寄存器409
6.6.3 硬件原理图413
6.6.4 程序设计415
6.7 串行口应用实例417
6.7.1 实例功能417
6.7.2 硬件电路422
6.7.3 程序设计424
6.8 定时器应用实例426
6.8.1 实例功能426
6.8.2 硬件原理图428
6.8.3 程序设计428
第7章 atmega128高级应用实例
7.1 lcd显示屏应用实例431
7.1.1 液晶显示概述431
7.1.2 1602字符型lcd概述432
7.1.3 1602 lcd的软硬件设计437
7.1.4 128×64点阵型lcd应用实例442
7.2 单总线数字温度传感器ds18b20应用实例460
7.2.1 单总线技术概述460
7.2.2 单总线温度传感器ds18b20概述461
7.2.3 ds18b20的软/硬件设计466
7.3 i2c总线软/硬件设计实例472
7.3.1 i2c串行总线概述472
7.3.2 i2c总线器件工作原理及时序474
7.3.3 at24c系列存储器的软/硬件设计478
7.4 93cxx系列存储器应用实例491
7.4.1 spi总线概述491
7.4.2 93c46存储器的软/硬件设计494
7.5 ds1302时钟芯片应用实例502
7.5.1 实时时钟概述502
7.5.2 ds1302的软/硬件设计实例506
7.6 红外遥控软件解码应用实例514
7.6.1 红外遥控概述514
7.6.2 saa3010红外接收的软件解码应用实例520
7.7 步进电动机应用软/硬件设计实例530
7.7.1 步进电动机概述530
7.7.2 步进电动机的控制537
7.7.3 步进电动机的应用设计540
7.8 u盘存储器应用实例542
7.8.1 usb概述542
7.8.2 usb总线接口芯片ch375551
7.8.3 u盘存储器的应用设计557
7.9 gsm模块应用实例562
7.9.1 gsm概述562
7.9.2 西门子tc35模块概述562
7.10 d/a软硬件设计实例577
7.10.1 d/a转换原理及主要技术指标577
7.10.2 dac0832芯片及与单片机的接口实例579
7.11 gps模块应用实例587
7.11.1 gps概述587
7.11.2 u-blox lea-4s模块概述589
7.11.3 gps的应用设计596
7.12 led点阵显示屏的应用实例599
7.12.1 led点阵的种类及结构599
7.12.2 8×8单色点阵led的工作原理599
7.12.3 led点阵显示屏的系统设计601
参考文献...605
1.1 单片机发展概述1
1.2 嵌入式系统与单片机3
1.3 avr单片机概述4
1.4 avr单片机的主要特点8
1.5 avr单片机最小系统9
1.6 avr单片机实验系统概述10
第2章 atmega128硬件结构
2.1 概述13
2.1.1 结构和主要特点13
2.1.2 主要性能14
2.1.3 封装和引脚16
2.1.4 指令系统18
2.2 内核18
2.2.1 结构概述18
2.2.2 微控制器mcu19
2.2.3 指令执行时序22
2.2.4 复位和中断处理23
2.3 存储器结构24
2.3.1 系统内可编程的flash程序存储器24
.2.3.2 sram数据存储器24
2.3.3 i/o寄存器25
2.4 i/o端口描述26
2.4.1 作为通用数字i/o的端口26
2.4.2 数字输入使能和睡眠模式31
2.4.3 端口的第2功能32
2.5 时钟系统39
2.5.1 时钟系统和时钟分配39
2.5.2 时钟源40
2.5.3 外部晶振40
2.5.4 外部低频晶振41
2.5.5 外部rc振荡器42
2.5.6 可校准的片内rc振荡器42
2.5.7 外部时钟源44
2.5.8 定时器/计时器振荡器44
2.5.9 系统时钟分频控制寄存器xdiv44
2.6 定时器/计数器45
2.6.1 定时器/计数器预分频器 45
2.6.2 8位定时器/计数器t/c047
2.6.3 16位定时器/计数器59
2.6.4 8位定时器/计时器t/c280
2.6.5 输出比较调制器90
2.7 中断系统91
2.7.1 复位和中断向量表的移动92
2.7.2 在应用区和boot区之间移动中断95
2.8 同步串行通信spi96
2.8.1 spi接口控制与数据传输过程96
2.8.2 与spi接口相关的寄存器101
2.9 通用同步和异步串行接收器和转发器102
2.9.1 概述103
2.9.2 串行时钟发生104
2.9.3 数据帧格式106
2.9.4 usart的初始化107
2.9.5 发送数据108
2.9.6 数据接收110
2.9.7 异步串行数据的硬件扫描检测和接收时序112
2.9.8 多处理器通信模式115
2.9.9 usart寄存器116
2.9.10 设置波特率与偏差119
2.10 twi总线接口121
2.10.1 两线串行接口总线122
2.10.2 twi模块122
2.10.3 twi 寄存器124
2.10.4 使用twi总线126
2.10.5 多主机系统和仲裁129
2.11 模拟比较器130
2.12 模/数转换器adc接口133
2.12.1 特点133
2.12.2 操作过程133
2.12.3 启动adc转换135
2.12.4 预分频和转换时序135
2.12.5 差分增益通道137
2.12.6 输入通道和基准电源的选择137
2.12.7 adc噪声抑制器138
2.12.8 adc 转换结果140
2.12.9 有关的i/o寄存器142
2.13 电源管理和休眠模式145
2.13.1 mcu 控制寄存器——mcucr146
2.13.2 功耗最小化147
2.14 调试端口148
2.14.1 jtag接口149
2.14.2 jtag在线仿真调试152
2.14.3 jtag程序下载功能153
2.14.4 jtag边界扫描153
2.14.5 atmega128 边界扫描次序157
2.15 系统复位与看门狗161
2.15.1 复位源162
2.15.2 mcu控制和状态寄存器——mcucsr164
2.15.3 片内基准电压165
2.15.4 看门狗定时器165
2.16 m103模式168
2.16.1 atmega103与atmega128的兼容性168
2.16.2 atmega103兼容模式168
2.17 熔丝位168
2.18 引导加载及自编程169
2.18.1 引导加载的过程170
2.18.2 相关i/o寄存器173
2.18.3 flash的自编程176
2.18.4 一个简单的引导程序汇编代码179
2.19 数据存储器读/写访问181
2.19.1 eeprom读/写访问181
2.19.2 寄存器描述181
第3章 指令系统
3.1 概述185
3.1.1 指令表185
3.1.2 指令中使用的符号191
3.1.3 寻址方式和寻址空间191
3.2 算术和逻辑指令198
3.2.1 加法指令198
3.2.2 减法指令199
3.2.3 取反码指令201
3.2.4 取补指令201
3.2.5 比较指令202
3.2.6 逻辑“与”指令203
3.2.7 逻辑“或”指令204
3.2.8 逻辑“异或”指令205
3.2.9 乘法指令206
3.3 跳转指令209
3.3.1 无条件跳转指令209
3.3.2 条件跳转指令209
3.3.3 测试条件符合跳行跳转指令216
3.3.4 子程序调用和返回指令217
3.4 数据传送指令219
3.4.1 直接数据传送指令219
3.4.2 间接数据传送指令220
3.4.3 从程序存储器直接取数据指令225
3.4.4 写程序存储器指令226
3.4.5 i/o口数据传送227
3.4.6 堆栈操作指令227
3.5 位指令和位测试指令228
3.5.1 带进位逻辑操作指令228
3.5.2 位变量传送指令230
3.5.3 位变量修改指令230
3.6 mcu控制指令235
3.7 avr汇编语言系统236
3.7.1 汇编语言语句格式236
3.7.2 汇编器伪指令..237
3.7.3 表达式241
第4章 avr单片机开发工具
4.1 avr studio集成开发环境243
4.1.1 汇编程序编译器avr assembler244
4.1.2 仿真调试248
4.1.3 程序下载253
4.2 iccavr集成开发环境255
4.2.1 安装iccavr编译器256
4.2.2 iccavr介绍260
4.2.3 iccavr导游265
4.2.4 c库函数与启动文件268
4.2.5 访问avr硬件的编程270
4.3 其他主流avr单片机开发环境271
4.3.1 gccavr开发环境271
4.3.2 codevision avr集成开发环境276
4.3.3 iar集成开发环境281
第5章 iccavr的c语言基础
5.1 c语言概述290
5.1.1 发展过程290
5.1.2 特点290
5.1.3 c源程序的结构特点291
5.1.4 字符集294
5.1.5 c语言词汇295
5.2 c语言基础297
5.2.1 数据类型297
5.2.2 算术运算符和算术表达式309
5.2.3 关系运算符和表达式312
5.2.4 逻辑运算符和表达式313
5.3 控制语句314
5.3.1 if语句315
5.3.2 条件运算符和条件表达式318
5.3.3 switch语句318
5.3.4 goto语句和goto语句构成循环320
5.3.5 while语句321
5.3.6 dowhile语句322
5.3.7 for语句323
5.3.8 循环的嵌套和几种循环的比较325
5.3.9 break和continue语句326
5.4 数组328
5.4.1 一维数组的定义和引用328
5.4.2 二维数组的定义和引用330
5.4.3 字符数组332
5.5 函数334
5.5.1 概述334
5.5.2 函数定义的一般形式336
5.5.3 函数的参数和函数的值338
5.5.4 函数的调用340
5.5.5 函数的嵌套调用341
5.5.6 函数的递归调用342
5.5.7 数组作为函数参数342
5.5.8 局部变量和全局变量343
5.5.9 变量的存储类别345
5.5.10 中断服务函数346
5.6 指 针347
5.6.1 地址指针的基本概念347
5.6.2 变量的指针和指向变量的指针变量347
5.6.3 数组指针和指向数组的指针变量351
5.6.4 字符串的指针指向字符串的指针变量353
5.6.5 函数指针变量354
5.6.6 指针数组和指向指针的指针356
5.6.7 有关指针的数据类型和指针运算的小结356
5.7 结构体与共用体357
5.7.1 定义结构的一般形式357
5.7.2 结构类型变量的说明358
5.7.3 结构变量成员的表示方法360
5.7.4 结构变量的初始化360
5.7.5 结构数组的定义361
5.7.6 结构指针变量的说明和使用361
5.7.7 共用体363
5.7.8 枚举类型364
5.7.9 类型定义符typedef365
5.8 位运算366
5.8.1 位运算符366
5.8.2 位域368
5.9 编译预处理369
5.9.1 概述369
5.9.2 宏定义369
5.9.3 文件包含371
5.9.4 条件编译372
5.10 iccavr附注与扩充373
第6章 atmega128基础实例
6.1 发光二极管应用实验375
6.1.1 实例功能375
6.1.2 器件和原理375
6.1.3 硬件电路376
6.1.4 程序设计376
6.2 键盘电路应用实例382
6.2.1 实例功能383
6.2.2 器件和原理384
6.2.3 程序设计384
6.3 led数码管应用实例394
6.3.1 实例功能394
6.3.2 器件和原理394
6.3.3 硬件电路396
6.3.4 程序设计397
6.4 片内eeprom应用实例399
6.4.1 实例功能399
6.4.2 atmega128片内eeprom内部寄存器399
6.4.3 硬件原理图401
6.5 pwm应用实例405
6.5.1 脉冲宽度控制pwm的工作原理405
6.5.2 atmega128内部pwm模块405
6.5.3 利用t/c0的pwm模块产生锯齿波406
6.6 adc应用实例409
6.6.1 实例功能409
6.6.2 atmega128片内adc内部寄存器409
6.6.3 硬件原理图413
6.6.4 程序设计415
6.7 串行口应用实例417
6.7.1 实例功能417
6.7.2 硬件电路422
6.7.3 程序设计424
6.8 定时器应用实例426
6.8.1 实例功能426
6.8.2 硬件原理图428
6.8.3 程序设计428
第7章 atmega128高级应用实例
7.1 lcd显示屏应用实例431
7.1.1 液晶显示概述431
7.1.2 1602字符型lcd概述432
7.1.3 1602 lcd的软硬件设计437
7.1.4 128×64点阵型lcd应用实例442
7.2 单总线数字温度传感器ds18b20应用实例460
7.2.1 单总线技术概述460
7.2.2 单总线温度传感器ds18b20概述461
7.2.3 ds18b20的软/硬件设计466
7.3 i2c总线软/硬件设计实例472
7.3.1 i2c串行总线概述472
7.3.2 i2c总线器件工作原理及时序474
7.3.3 at24c系列存储器的软/硬件设计478
7.4 93cxx系列存储器应用实例491
7.4.1 spi总线概述491
7.4.2 93c46存储器的软/硬件设计494
7.5 ds1302时钟芯片应用实例502
7.5.1 实时时钟概述502
7.5.2 ds1302的软/硬件设计实例506
7.6 红外遥控软件解码应用实例514
7.6.1 红外遥控概述514
7.6.2 saa3010红外接收的软件解码应用实例520
7.7 步进电动机应用软/硬件设计实例530
7.7.1 步进电动机概述530
7.7.2 步进电动机的控制537
7.7.3 步进电动机的应用设计540
7.8 u盘存储器应用实例542
7.8.1 usb概述542
7.8.2 usb总线接口芯片ch375551
7.8.3 u盘存储器的应用设计557
7.9 gsm模块应用实例562
7.9.1 gsm概述562
7.9.2 西门子tc35模块概述562
7.10 d/a软硬件设计实例577
7.10.1 d/a转换原理及主要技术指标577
7.10.2 dac0832芯片及与单片机的接口实例579
7.11 gps模块应用实例587
7.11.1 gps概述587
7.11.2 u-blox lea-4s模块概述589
7.11.3 gps的应用设计596
7.12 led点阵显示屏的应用实例599
7.12.1 led点阵的种类及结构599
7.12.2 8×8单色点阵led的工作原理599
7.12.3 led点阵显示屏的系统设计601
参考文献...605
编著者还有:赵文宏、贾玉坤、王华东、胡克佳
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!