标题：嵌入式C编程与 Atmel AVR
基本信息
书名:嵌入式C编程与 Atmel AVR 
图书编号:820941 
出版社:清华大学出版社 
定价:54.0 
ISBN:730206955 
作者:（美）巴雷特 
出版日期:2003-09-01 
版次:1 
开本:大16开
简介
欢迎进入嵌入式编程和微控制器应用的世界！使用日益流行且价格适宜的Atmel AVR嵌入式控制器作为学习平台。本书是目前可以获得的最佳书籍之一。对于初学者，本书将会是极好的选择。随着对Atmel AVR RISC处理器的介绍，读者会立即进入嵌入式C语言教程之中。在本书中，读者将学习C语言的变量和常量、运算符和表达式、控制语句、指针和数组、存储器类型、预处理指令、实时方法等等。本书特点： 强调嵌入式系统编程，包括大量的示例，本书通过这些示例来引导读者入门，进而学习高级嵌入式C编程技术。 本书第4章完整地介绍了CodeVision AVR C Compiler,该章提供了关于IDE安装与操作以及Code Wizard Code Generator的使用的一个清晰的、循序渐进的指导。 本书还介绍了外设的使用，如键区、LCD显示器以及其他常用的嵌入式微控制器相关设备。作者简介： RICHARD H.BARNETT是PURDUE大学的电子工程技术专业的教授。在教学方面，BARNETT博士获得了很多奖项，包括作为PURDUE大学杰出的毕业生教师而获得了CHARLES B.MURPHY AWARD，同时因为教学出色而获得ELECTRICAL ENGINEERING TECHNOLOGY AWARD以及CTS ELECTRICAL ENGINEE-RING TECHNOLOGY AWARD。 SARAH A.COX获得了PURDUE大学的计算机和电子工程两个专业的学士学位。她目前担任PROG-RESSIVE RESOURCES LLC的软件开发主任，并开发了一些软件项目，包括消费品和工业品及测试设备。 LARRY D.O'CULL获得了PURDUE大学的电子工程技术专业的学士学位，目前是PROGRESSIVE RESOURCES LLC的高级操作员，他专攻于具有创新性的商业、工业和消费者产品开发。
目录
第1章 嵌入式C语言导论
1.1 本章目标
1.2 引言
1.3 基本概念
1.4 变量和常量
1.4.1 变量类型
1.4.2 变量的作用域
1.4.3 常量
1.4.4 枚举和定义
1.4.5 存储类型
1.4.6 类型转换
1.5 输入/输出操作
1.6 运算符和表达式
1.6.1 赋值运算符和算术运算符
1.6.2 逻辑运算符与关系运算符
1.6.3 自增运算符、自减运算符和复合赋值运算符
1.6.4 条件表达式
1.6.5 运算符优先级
1.7 控制语句
1.7.1 while循环
1.7.2 do/while循环
1.7.3 for循环
1.7.4 if/else语句
1.7.5 switch/case语句
1.7.6 break、continue和goto语句
1.8 函数
1.8.1 原型和函数组织
1.8.2 函数返回值
1.8.3 递归函数
1.9 指针和数组
1.9.1 指针
1.9.2 数组
1.9.3 多维数组
1.9.4 指向函数的指针
1.10 结构与共用体
1.10.1 结构
1.10.2 结构数组
1.10.3 指向结构的指针
1.10.4 共用体
1.10.5 typedef运算
1.10.6 位和位域
1.10.7 sizeof运算符
1.11 存储器类型
1.11.1 常量和变量
1.11.2 指针
1.11.3 寄存器变量
1.12 实时方法
1.12.1 使用中断
1.12.2 状态机
1.13 本章小结
1.14 练习
1.15 上机实习
第2章 Atmel Risc处理器
2.1 本章目标
2.2 引言
2.3 体系结构概述
2.4 存储器
2.4.1 FLASH代码存储器
2.4.2 数据存储器
2.4.3 EEPROM存储器
2.5 复位和中断功能
2.5.1 中断
2.5.2 复位
2.6 并行I/O端口
2.7 计时器/计数器
2.7.1 计时器/计数器预定标器输入选择器
2.7.2 Timer0
2.7.3 Timer1
2.7.4 Timer2
2.8 使用UART进行串行通信
2.9 模拟接口
2.9.1 模数转换背景知识
2.9.2 模数转换外设
2.9.3 模拟比较器
2.10 利用SPI进行串行通信
2.11 AVR RISC汇编语言指令集
2.12 本章小结
2.13 练习
2.14 上机实习
第3章 标准I/O和预处理函数
3.1 本章目标
3.2 引言
3.3 字符输入/输出函数getchar()和putchar()
3.4 标准输出函数
3.4.1 输出字符串函数puts()
3.4.2 从FLASH输出字符串函数PUTSF（）
3.4.3 格式打印函数Printf()
3.4.4 字符串格式打印函数sprintf()
3.5 标准输入函数
3.5.1 获得字符串函数gets()
3.5.2 格式扫描函数scanf()
3.5.3 字符串格式扫描函数sscanf()
3.6 预处理指令
3.6.1 #include指令
3.6.2 #define指令
3.6.3 #ifdef,#ifinef,#else和#endif指令
3.6.4 #pragma指令
3.6.5 其他宏和指令
3.7 本章小结
3.8 练习
3.9 上机实习
第4章 CodeVisionAVR C编译器和集成开发环境
4.1 本章目标
4.2 引言
4.3 集成开发（IDE）环境操作
4.3.1 项目
4.3.2 源文件
4.3.3 编辑文件
4.3.4 打印文件
4.3.5 文件导航器
4.4 C编译器选项
4.4.1 UART
4.4.2 存储器模式
4.4.3 优化
4.4.4 程序类型
4.4.5 SRAM
4.4.6 编译
4.5 编译和生成项目
4.5.1 编译项目
4.5.2 生成项目
4.6 对目标设备编程
4.6.1 芯片
4.6.2 FLASH和EEPROM
4.6.3 FLASH锁定位
4.6.4 保险位
4.6.5 Boot Lock Bit 0和Boot Lock Bit 1
4.6.6 签名
4.6.7 芯片擦除
4.6.8 编程速度
4.6.9 Program|All
4.6.10 其他编程器
4.7 CodeWizard AVR代码生成器
4.7.1 Chip选项卡
4.7.2 Ports选项卡
4.7.3 External IRQ选项卡
4.7.4 Timers选项卡
4.7.5 UART选项卡
4.7.6 ADC选项卡
4.7.7 Project Information选项卡
4.7.8 生成源代码
4.8 终端工具
4.9 Atmel AVR Studio调试器
4.9.1 为AVR Studio新建一个COFF文件
4.9.2 从Code Vision AVR启动AVR Studio
4.9.3 打开文件进行调试
4.9.4 开始、中断和跟踪
4.9.5 设置和清除断点
4.9.6 查看和修改寄存器和变量的值
4.9.7 查看和修改机器状态
4.10 本章小结
4.11 练习
4.12 上机实习
第5章 项目开发
5.1 本章目标
5.2 引言
5.3 概念开发阶段
5.4 项目开发过程的步骤
5.4.1 定义阶段
5.4.2 设计阶段
5.4.3 测试定义阶段
5.4.4 建立和测试硬件原型阶段
5.4.5 系统集成和开发阶段
5.4.6 系统测试阶段
5.4.7 庆祝阶段
5.5 项目开发过程总结
5.6 示例项目：一个气象监测器
5.6.1 构思阶段
5.6.2 定义阶段
5.6.3 测量方法在设计方面的考虑
5.6.4 室外装置的硬件设计
5.6.5 室外装置的软件设计
5.6.6 室内装置的硬件设计
5.6.7 室内装置的软件设计
5.6.8 测试定义阶段
5.6.9 建立和测试原型硬件阶段
5.6.10 系统集成和软件开发阶段——室外装置
5.6.11 系统集成和软件开发阶段——室内装置
5.6.12 系统测试阶段
5.7 挑战
5.8 本章小结
5.9 练习
5.10 上机实习
附录A 库函数参考
附录B CodeVisionAVR和STK500入门
附录C AVR微控制器编程
附录D 安装并使用TheCableAVR
附录E MegAVR-DEV开发板
附录F ASCII字符表
附录G AVR指令集汇总
附录H 部分练习答案