AVR单片机C语言开发入门与典型实例
分類: 图书,计算机与互联网,程序语言与软件开发,语言与开发工具,C语言及其相关,
品牌: 龙脉工作室
基本信息·出版社:人民邮电出版社
·页码:418 页
·出版日期:2009年
·ISBN:7115191638/9787115191632
·条形码:9787115191632
·包装版本:1版
·装帧:平装
·开本:16
·正文语种:中文
产品信息有问题吗?请帮我们更新产品信息。
内容简介《AVR单片机C语言开发入门与典型实例》首先详细讲解AVR单片机的基础知识,包括硬件基础、指令系统、开发环境以及AVR单片机C语言基础;然后讲解其I/O口打印机接口、定时器/计数器、中断、串行口、程序存储器扩展、数据存储器扩展等模块;接着讲解其键盘接口、LCD接口、打印机接口、A/D接口、D/A接口、可编程器件接口、I2C总线接口、SPI总线接口、CAN总线接口的硬件设计和程序设计;最后讲解了MP3播放器设计、小型打印机系统、智能充电器、直流电机的控制、温湿度传感器、手持无线遥控器等综合实例的软硬件开发全过程,使读者对前面的知识融会贯通。
编辑推荐《AVR单片机C语言开发入门与典型实例》适合想了解和进行AVR单片机实际系统开发的读者和工程技术人员使用,也适合大中专院校电子类专业的学生使用。从AVR单片机指令和单片机C语言讲起。引导读者快速入门
9大接口。详细讲解接口电路器件使用、硬件设计、软件设计
6个综合实例,可直接用于项目开发
目录
第1篇 AVR单片机基础
第1章 AVR单片机概述3
1.1AVR单片机及其发展3
1.1.1 AVR单片机简介3
1.1.2 AVR单片机的特点4
1.1.3 AVR单片机的分类5
1.2 ATmega128(L)单片机5
1.2.1 ATmega128(L)结构和主要特点5
1.2.2 ATmega128(L)的主要性能7
1.2.3 ATmega128(L)的封装与引脚8
1.3 本章小结12
第2章 ATmega128(L)单片机硬件结构13
2.1 ATmega128(L)的内核13
2.2 ATmega128(L)的存储器14
2.2.1 ATmega128(L)的内部存储器14
2.2.2 ATmega128(L)的外部存储器15
2.3 ATmega128(L)的系统时钟及电源管理15
2.3.1 系统时钟15
2.3.2 电源管理与休眠模式18
2.4 ATmega128(L)的复位及中断19
2.4.1 ATmega128(L)的复位逻辑19
2.4.2 ATmega128(L)的中断及中断响应20
2.5 ATmega128(L)的定时器/计数器22
2.5.1 8位定时器/计数器T/C022
2.5.2 8位定时器/计数器T/C226
2.5.3 16位定时器/计数器T/C1和T/C326
2.6 ATmega128(L)的总线接口31
2.6.1 同步外设接口SPI31
2.6.2 通用同步/异步串行接口USART0和USART132
2.6.3 两线串行TWI总线接口35
2.7 本章小结37
第3章 ATmega128(L)的指令系统38
3.1ATmega128(L)的指令系统概述38
3.2 ATmega128(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.4 I/O口数据传输指令67
3.5.5 堆栈操作指令68
3.6 位操作指令68
3.6.1 带进位的位操作指令68
3.6.2 位变量传输指令70
3.6.3 位修改指令70
3.7 MCU控制指令74
3.8 ATmega128(L)的汇编语言75
3.8.1 汇编语言语句格式及伪指令75
3.8.2 表达式76
3.9 本章小结77
第4章 AVR单片机硬件电路设计工具78
4.1 Protel 99 SE中典型元器件的原理图符号和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.2 PCB设计中地线的处理91
4.4 本章小结91
第5章 AVR单片机软件开发环境92
5.1 软件开发环境92
5.2 AVR Studio 4.13 SP2开发环境94
5.2.1 AVR Studio 4.13 SP2开发环境获取与安装94
5.2.2 AVR Studio 4.13 SP2的菜单95
5.2.3 使用AVR Studio 4.13SP2101
5.3 本章小结103
第6章 AVR单片机C语言开发104
6.1 C语言基础知识104
6.1.1 标识符和关键字104
6.1.2 基本数据类型、常量和变量104
6.1.3 常见运算符106
6.1.4 程序中的语句种类107
6.2 C语言高级编程110
6.2.1 数组110
6.2.2 指针112
6.2.3 结构、共用体和枚举115
6.2.4 函数119
6.2.5 预处理122
6.3 AVR Studio 4.13 SP2对ANSIC的扩展125
6.3.1 I/O寄存器和端口操作125
6.3.2 AVR单片机存储器中数据的访问126
6.3.3 AVR单片机的中断服务程序130
6.4 本章小结132
第2篇 AVR单片机典型模块C语言应用实例
第7章 I/O的应用135
7.1 I/O端口概述135
7.2 I/O口控制发光二极管136
7.2.1 实例功能136
7.2.2 典型器件介绍136
7.2.3 硬件设计136
7.2.4 程序设计及详解137
7.2.5 经验总结138
7.3 I/O口控制八段数码管138
7.3.1 实例功能138
7.3.2 典型器件介绍138
7.3.3 硬件设计138
7.3.4 程序设计及详解139
7.3.5 经验总结140
7.4 I/O模拟1-Wire总线控制DS18B20140
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.2 RS-232总线接口157
10.2.1 实例功能157
10.2.2 典型器件介绍157
10.2.3 硬件设计158
10.2.4 程序设计及详解159
10.2.5 经验总结160
10.3 RS-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 扩展EPROM169
11.2.1 实例功能169
11.2.2 典型器件介绍170
11.2.3 硬件设计171
11.2.4 程序设计及详解171
11.2.5 经验总结172
11.3 扩展E2PROM173
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 扩展SRAM182
12.2.1 实例功能182
12.2.2 典型器件介绍183
12.2.3 硬件设计184
12.2.4 程序设计及详解185
12.2.5 经验总结186
12.3 扩展NVSRAM186
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.1 LCD概述203
14.2 外接字符点阵LCD205
14.2.1 实例功能205
14.2.2 典型器件介绍205
14.2.3 硬件设计207
14.2.4 程序设计及详解208
14.2.5 经验总结211
14.3 外接图像点阵LCD211
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.1 A/D转换器概述229
16.2 外接逐次比较型A/D231
16.2.1 实例功能231
16.2.2 典型器件介绍231
16.2.3 硬件设计233
16.3.4 程序设计及详解233
16.2.5 经验总结235
16.3 外接半闪烁型高速A/D235
16.3.1 实例功能235
16.3.2 典型器件介绍236
16.3.3 硬件设计239
16.3.4 程序设计及详解239
16.3.5 经验总结242
16.4 外接Σ→Δ型A/D242
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.1 D/A转换器概述250
17.2 外接倒T型D/A251
17.2.1 实例功能251
17.2.2 典型器件介绍251
17.2.3 硬件设计254
17.2.4 程序设计及详解255
17.2.5 经验总结256
17.3 外接权电流型D/A256
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.1 I2C总线接口概述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.1 SPI总线接口概述298
20.2 SPI接口的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.1 CAN总线接口概述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
……[看更多目录]
序言写作背景
1997年,美国ATMEL公司挪威设计中心的A先生和V先生出于市场需求的考虑,将其先进的Flash技术与805l单片机结合起来,从而推出了8位全新配置的精简指令集(ReducedInstructionSet)的单片机,即AVR.单片机。与传统的8051单片机相比,AVR单片机在效率、速度及指令格式上具有明显优势,更适合在嵌入式系统中应用。
近十年来,随着AVR单片机的不断改进和新产品的持续推出,AVR单片机已形成系列产品,其中ATtiny、AT90和ATmega分别对应中高档产品,在
文摘插图: