专注单片机教育20年,手把手教你学单片机。
《AVR单片机C语言高级编程设计(第三版)》以初学者为对象,从零开始,循序渐进地讲述AVR单片机C语言编程方法以及AVR单片机的硬件结构和功能应用。全书共27章,主要内容包括AVR单片机特性、AVR单片机开发语言及编译器、AVR单片机开发软件的安装及初步使用、自制JTAG仿真器及AVR单片机程序下载器、I/O端口、中断系统、定时计数器、模/数转换器、与PC机的串行通信、内部E2PROM、I2C串行接口、看门狗定时器、风机测试仪、红外线转速仪、红外线感应自动移门、PID温度控制器、液晶实时曲线显示监控系统、图文混排指针型电子钟设计、数显超声波测距仪、RS485远程网络控制系统设计等。
前言
第1章 概述 1
1.1 AVR单片机特性 1
1.2 学习AVR单片机用到的实验工具及器材 2
第2章 AVR单片机开发语言及编译器 8
2.1 采用C语言编程的意义 8
2.2 C语言具有的突出优点 9
2.3 AVR单片机的C编译器简介 10
第3章 ANSI C语言基础知识 11
3.1 C语言的标识符与关键字 11
3.2 数据类型 13
3.3 AVR单片机的存储空间 14
3.4 常量、变量及存储方式 14
3.5 数组 14
3.6 C语言的运算 17
3.7 流程控制 22
3.8 函数 26
3.9 指针 28
3.10 结构体 32
3.11 共用体 36
3.12 中断函数 37
第4章 AVR单片机开发软件的安装及初步使用 40
4.1 ICCAVR7.14C C语言编译器安装 40
4.2 AVR Studio集成开发环境安装 42
4.3 程序下载软件安装 42
4.4 创建AVR入门程序 46
第5章 AVR DEMO单片机综合试验板原理介绍及使用 62
5.1 AVR DEMO单片机综合试验板 62
5.2 ATmega16A单片机的主要特点与内部组成 64
5.3 使用JTAG ICE仿真器调试AVR DEMO单片机综合试验板 65
第6章 自制JTAG仿真器及AVR单片机程序下载器 70
6.1 JTAG的由来及简介 70
6.2 传统的在线仿真器与JTAG接口的片内调试系统的区别 70
6.3 AVR JTAG ICE仿真时注意事项 71
6.4 AVR JTAG ICE的特点 72
6.5 自制AVR JTAG ICE 72
6.6 自制AVR单片机并口程序下载器 82
6.7 自制AVR单片机USBASP程序下载器 83
第7章 ATmega16A的I/O端口及C语言编程 86
7.1 ATmega16A的I/O端口 86
7.2 ATmega16A的I/O端口使用注意事项 87
7.3 ATmega16A的I/O端口编程实践 88
第8章 ATmega16A驱动16×2点阵字符液晶模块 101
8.1 16×2点阵字符液晶显示器概述 101
8.2 液晶显示器的突出优点 102
8.3 16×2字符型液晶显示模块(LCM)特性 102
8.4 16×2字符型液晶显示模块(LCM)引脚及功能 102
8.5 16×2字符型液晶显示模块(LCM)的内部结构 103
8.6 HD44780特点 103
8.7 HD44780工作原理 104
8.8 LCD控制器的指令 108
8.9 LCM工作时序 110
8.10 ATmega16A驱动16×2点阵字符液晶模块的子程序 111
8.11 16×2LCM演示程序(一) 113
8.12 16×2LCM演示程序(二) 116
第9章 ATmega16A的中断系统及C编程 120
9.1 ATmega16A的中断系统 120
9.2 ATmega16A的外部中断编程实践 121
第10章 ATmega16A的定时计数器及C编程 129
10.1 ATmega16A的定时/计数器 129
10.2 ATmega16A定时/计数器的时钟选择 129
10.3 计数器的事件 130
10.4 定时/计数器事件的处理 131
10.5 ATmega16A的定时/计数器编程实践 131
第11章 ATmega16A的PWM功能使用——实现数/模输出 139
11.1 ATmega16A的定时/计数器的特性及数/模输出实现 139
11.2 ATmega16A的PWM编程实践 139
第12章 ATmega16A的模/数转换器及C编程 145
12.1 ATmega16A的模/数转换器 145
12.2 模/数转换器相关寄存器 145
12.3 模/数转换器的使用 147
12.4 ATmega16A的模/数转换器编程实践 147
第13章 ATmega16A串口及C编程——与PC机的串行通信 153
13.1 通用串行接口USART的主要特性 153
13.2 USART的主要寄存器及设置 153
13.3 ATmega16A与PC机的串行通信编程实践 157
第14章 AVR单片机内部资源的C编程——ATmega16A的内部E2PROM读/写 177
14.1 ATmega16A的内部E2PROM 177
14.2 与E2PROM相关的寄存器 177
14.3 ATmega16A内部E2PROM编程实践 178
第15章 ATmega16A驱动I2C串行接口器件24C01的编程 190
15.1 E2PROM AT24CXX的性能特点 190
15.2 AT24CXX引脚定义 190
15.3 AT24CXX系列存储器特点 191
15.4 AT24CXX系列E2PROM的内部结构 191
15.5 AT24CXX系列E2PROM芯片的寻址 192
15.6 写操作方式 193
15.7 读操作方式 194
15.8 读写AT24C01的相关功能子程序 195
15.9 在AVR单片机综合试验板上完成AT24C01A的读写实验 198
第16章 AVR单片机内部资源的C编程——实现两片ATmega16A以SPI方式通信 225
16.1 ATmega16A的SPI串行接口特点 225
16.2 主机和从机之间的SPI连接及原理 225
16.3 SPI的配置及使用 228
16.4 SPI的相关寄存器 228
16.5 两片ATmega16A的同步串口数据高速通信实验 230
第17章 ATmega16A驱动SPI串行接口器件93C46的编程 236
17.1 AT93CXX的性能特点 236
17.2 AT93CXX引脚定义 236
17.3 AT93CXX系列存储器特点 237
17.4 AT93CXX系列E2PROM的内部结构 237
17.5 AT93CXX系列E2PROM的指令集 238
17.6 器件操作 238
17.7 ATmega16A驱动AT93C46的子函数 242
17.8 ATmega16A对AT93C46的读/写实验 245
第18章 ATmega16A驱动128×64点阵图形液晶模块 251
18.1 128×64点阵图形液晶模块特性 251
18.2 128×64点阵图形液晶模块引脚及功能 252
18.3 128×64点阵图形液晶模块的内部结构 252
18.4 HD61203特点 254
18.5 HD61202特点 255
18.6 HD61202工作原理 255
18.7 HD61202的工作过程 259
18.8 点阵图形液晶模块的控制器指令 259
18.9 HD61202的操作时序图 261
18.10 ATmega16A驱动128×64点阵图形液晶模块的子程序 262
18.11 在AVR单片机综合试验板上实现128×64LCM演示程序 265
18.12 在128×64液晶屏上实现多级菜单的设计实验 271
第19章 ATmega16A的系统控制、复位和看门狗定时器使用 275
19.1 ATmega16A的系统控制和复位 275
19.2 ATmega16A的复位源 275
19.3 看门狗定时器的使用 277
19.4 在AVR DEMO单片机综合试验板上,进行看门狗实验(一) 278
19.5 在AVR DEMO单片机综合试验板上,进行看门狗实验(二) 280
第20章 ATmega16A应用实例1——风机测试仪 282
20.1 系统功能描述 282
20.2 系统方案及电路设计 282
20.3 测试类型、参数范围及测试过程 285
20.4 程序设计 286
20.5 调试及应用 297
第21章 ATmega16A应用实例2——红外线转速仪 298
21.1 转速仪表的分类 298
21.2 转速传感器 299
21.3 转速测量的方法 299
21.4 红外线转速仪系统功能描述 299
21.5 系统方案及电路设计 300
21.6 程序设计 302
21.7 调试及应用 308
第22章 ATmega16A应用实例3——红外线感应自动移门 309
22.1 红外线感应自动移门的组成及基本工作原理 309
22.2 系统方案设计 310
22.3 电路设计 311
22.4 程序设计详解 316
22.5 保养及维护 334
第23章 ATmega16A应用实例4——PID温度控制器 335
23.1 温度控制原理 335
23.2 PID控制原理 335
23.3 系统方案及电路设计 337
23.4 程序设计 340
23.5 调试及应用 348
第24章 ATmega16A应用实例5——液晶实时曲线显示监控系统 349
24.1 系统功能描述 349
24.2 系统方案及电路设计 349
24.3 数字温度传感器DS18B20简介 350
24.4 程序设计 355
24.5 调试及应用 377
第25章 ATmega16A应用实例6——图文混排指针型电子钟设计 378
25.1 系统方案设计 378
25.2 电路设计 378
25.3 程序设计详解 378
25.4 调试及应用 397
第26章 ATmega16A应用实例7——数显超声波测距仪 398
26.1 超声波测距原理 398
26.2 超声波测距专用模块HC-SR04介绍 398
26.3 系统方案设计 400
26.4 电路设计 400
26.5 程序详解 400
26.6 调试及应用 404
第27章 ATmega16A应用实例8——RS485远程网络控制系统设计 405
27.1 RS485分布式数据采集和控制网络原理 405
27.2 电路设计 405
27.3 程序详解 405
27.4 调试及应用 410
参考文献 411
进入21世纪后,由于电子技术及计算机技术的迅猛发展,促使电子产品的更新换代速度越来越快。以单片机为核心的智能化产品具有体积小、功能强、应用面广等优点,正不断取代传统电子线路构成的经典系统。
以前汇编语言是单片机工程师进行软件开发的唯一选择,但汇编语言程序的可读性和可移植性较差,采用汇编语言编写单片机应用系统程序的周期长,而且调试和排错也比较困难。并且不同类型的单片机,必须采用不同的汇编语言来编写,这是因为汇编语言完全依赖于单片机硬件。对开发者而言,如果由于项目的变化而经常变更单片机类型,其开发的难度是可想而知的。因为学习任何一种单片机汇编语言开发,都需要历经学习、探索、实践、提高这样一个过程,该过程少则半年,多则1~2年。随着市场竞争的日益激烈,开发效率已成为电子产品的最重要因素之一。为了提高编制单片机系统和应用程序的效率,改善程序的可读性和可移植性,最好的办法是采用高级语言编程。目前,C语言逐渐成为国内外开发单片机的主流语言。
C语言是一种通用的编译型结构化计算机程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。它支持当前程序设计中广泛采用的由顶向下的结构化程序设计技术。一般的高级语言难以实现汇编语言对于计算机硬件直接进行操作(如对内存地址的操作、移位操作等)的功能,而C语言既具有一般高级语言的特点,又能直接对计算机的硬件进行操作。C语言有功能丰富的库函数、运算速度快、编译效率高,并且采用C语言编写的程序能够很容易地在不同类型的单片机之间进行移植。因此,C语言的应用范围越来越广泛,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。对汇编语言掌握到只要可以读懂程序,在时间要求比较严格的模块中进行程序的优化即可。采用C语言不必对单片机和硬件接口的结构有很深入的了解,编译器可以自动完成变量的存储单元的分配,编程者就可以专注于应用软件部分的设计,大大加快了软件的开发速度。统计资料表明,不同单片机的C语言编译程序80%的代码是公共的,采用C语言可以很容易地进行单片机的程序移植工作,有利于产品中的单片机重新选型。C语言的编译效率也很高,对于同一个问题,用C语言编写的程序生成代码的效率仅比用汇编语言编写的程序低10%~20%,由于现在片上ROM(或Flash ROM)空间做到32/64KB(或更大)的单片机比比皆是,因此代码效率所差的10%~20%已经不是重要问题。至于对开发速度、软件质量、结构严谨、程序坚固等方面进行综合评述的话,那么C语言的完美绝非是汇编语言所能比拟的。
本书在第二版的基础上,又增添了大量实用应用程序及案例,读者可以拿这些实例直接用于产品设计与编程,也可进一步改良升级。
读者对象
本书以初学者为对象,从零开始,循序渐进地讲解当前最热门的AVR单片机的C语言高级程序设计知识,在介绍AVR单片机的各单元部分基本特性的同时,使用入门难度浅、程序长度短且又能马上实践的初级实例,详细介绍了如何使用ATmega16A的片上资源,帮助初学者快速掌握AVR单片机的高效设计。
光盘使用
随书所附的光盘中提供了本书的所有软件设计程序文件,读者可直接复制下来使用,并仿照这些程序进行快速开发。还包括了本书的教学课件(PPT),可作为读者自学本书的参考资料,也可供高校老师教学使用。
联系作者
学习AVR单片机需要一定的学习、实验器材,如读者需书中介绍的实验器材或想参加单片机/电子技术/FPGA/ARM等的设计培训班,可与作者联系,咨询购买事宜。联系方式如下:
地址:上海市闵行区莲花路2151弄57号201室
邮编:201103
联系人:周兴华
致谢
在本书的编写过程中,得到了吕超亚、周济华、沈惠莉、周渊、周国华、丁月妹、周晓琼、钱真、周桂华、刘君礼、邱华锋、胡颖静、吴辉东、冯骏、孔雪莲、方渝、付毛仙和吕丁才等的帮助和支持,编者参考了大量的文献资料,一些资料来自互联网和非正式出版物,参考文献无法一一列出,在此对原作者一并表示诚挚的感谢。
限于作者水平,书中难免存在不少错误或漏洞,诚挚欢迎广大读者提出意见,并不吝赐教。
老实说,我拿到《AVR单片机C语言高级编程设计(第三版)》这本书的时候,我其实是对其中很多基础的C语言语法和AVR单片机的基本原理并不是特别感兴趣。我个人在嵌入式领域摸爬滚打也有些年头了,基础部分的东西,包括最简单的GPIO控制、UART通信、ADC采样这些,对我来说已经烂熟于心了。我更看重的是这本书能否在“高级”这两个字上有所体现。我希望它能深入剖析AVR单片机的一些核心架构,比如如何利用更底层的指令集来优化性能,如何进行更精细化的功耗管理,以及如何设计出更鲁棒、更易于维护的复杂系统。我特别希望能看到一些关于实时操作系统(RTOS)在AVR平台上应用的讲解,或者一些多任务并行处理的策略,这对于开发一些功能繁多、交互复杂的嵌入式产品至关重要。另外,如果书中能够探讨一些嵌入式安全方面的话题,比如如何防止代码被轻易破解,如何保证数据传输的安全性,那将是极大的加分项。我需要的是能够让我眼前一亮、能够推动我技术瓶颈的东西,而不是重复那些我已经掌握了十遍的内容。
评分说实话,拿到《AVR单片机C语言高级编程设计(第三版)》这本书,我其实对它在“C语言”这一块的表述方式有自己的看法。虽然AVR单片机本身就是基于C语言进行编程的,但我更关心的是如何在C语言这个工具的框架下,去更好地发挥AVR单片机的潜力。我希望它能超越标准的C语言语法讲解,而是侧重于如何在AVR平台上编写出高效、简洁、易于理解的C语言代码。比如,如何巧妙地使用指针和位操作来直接访问硬件寄存器,如何运用嵌入式C语言的一些高级特性(例如 `volatile` 关键字的正确使用时机、`union` 的高级技巧)来解决实际问题,甚至是如何对C语言代码进行性能分析和优化。我不太想看到一本纯粹的C语言教材,我需要的是一本能够告诉我“如何在AVR单片机上玩转C语言”的书。如果书中能够包含一些经典的、经过时间检验的AVR C语言编程模式或者设计模式,并且给出详细的解析,那我会觉得这本书的价值得到了极大的提升。
评分这本书的名字是《AVR单片机C语言高级编程设计(第三版)》,我买这本书的初衷,其实是因为我之前在做一些嵌入式项目时,对AVR单片机的很多高级特性,比如中断的精细控制、定时器的灵活应用,以及一些复杂的通信协议(像SPI、I2C的高级用法),感觉自己的理解还不够深入,很多时候是停留在“能用”的层面,但总觉得离“精通”还有距离。网上查阅了一些资料,也看了不少别人的项目代码,但总感觉零散,不成体系。这本《AVR单片机C语言高级编程设计(第三版)》的题目非常吸引我,特别是“高级”这两个字,让我觉得它能填补我知识上的空白。我希望这本书能系统地讲解AVR单片机的一些进阶主题,比如如何更有效地利用其内部资源,如何优化代码性能,如何处理实时性要求更高的任务,甚至一些关于嵌入式系统设计哲学的探讨。我期待书中能够提供一些实用的技巧和方法,能够直接指导我完成更复杂的项目,提升我的开发效率和代码质量。同时,作为第三版,我也希望它能包含一些最新的AVR器件特性或者在C语言编程方面的一些新思路,能够让我跟上技术发展的步伐。
评分我对《AVR单片机C语言高级编程设计(第三版)》这本书的期望,很大程度上集中在它所能带来的“思维方式”上的提升。我不仅仅想从书中学习到具体的编程技巧和代码实现,更希望它能教会我如何从一个更高的层面去理解和设计AVR单片机相关的系统。我希望它能引导我去思考,在面对一个复杂的嵌入式问题时,应该如何进行需求分析,如何进行系统架构设计,如何进行模块划分,如何进行代码的复用和扩展。我特别期待书中能有关于软件工程方法论在单片机开发中的应用探讨,比如敏捷开发在嵌入式领域的实践,版本控制策略,代码审查流程等等。如果能有关于如何设计出易于调试、易于维护、并且具备一定可扩展性的AVR单片机软硬件一体化解决方案的指导,那将是对我职业发展非常有益的。我希望这本书能帮助我建立一套更完善、更科学的嵌入式开发流程和设计理念,从而提升我作为一名工程师的综合能力。
评分我选择《AVR单片机C语言高级编程设计(第三版)》这本书,主要是出于对它在实战应用层面的期待。我一直认为,学习单片机编程,最终还是要回归到实际的项目开发中去。光是理论讲得再好,如果脱离了实际应用场景,也难以发挥价值。所以,我非常希望这本书能够提供大量贴合实际的、具有代表性的项目案例。例如,如何设计一个智能家居控制系统,如何实现一个工业自动化监控设备,或者如何开发一个便携式医疗仪器。我期待书中能够详细讲解这些项目的硬件选型、电路设计、软件架构,以及关键的技术难点是如何攻克的。尤其是涉及到一些传感器数据融合、复杂的算法实现、用户界面设计、甚至与云端通信的集成,如果能有深入的解析,那就太棒了。我需要的是能够让我看了之后,能够直接套用到我正在进行的或者未来可能遇到的项目中去,让我的项目开发变得更加高效和顺利。这本书的“设计”二字,让我对其在工程实践层面的指导意义充满信心。
评分非常好,下次继续
评分京东图书节就是不错,价格优惠,明年继续为自己充电
评分好用。价有所得
评分想好好学学。。。。。
评分不错?,适合初学者,偏重软件
评分写的很详细,还没来得及看,看后再评价!!!
评分很有用的案例
评分好书,可以好好学习了
评分此用户未填写评价内容
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有