手把手教你学51单片机——C语言版(第2版)(计算机科学与技术丛书)pdf下载

手把手教你学51单片机——C语言版(第2版)(计算机科学与技术丛书)百度网盘pdf下载

作者:
简介:手把手教你学51单片机——C语言版(第2版)(计算机科学与技术丛书)
出版社:
出版时间:2020-05
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

产品特色


编辑推荐

本书是集理论知识、视频教程、教学课件与技术支持于一体的单片机教学解决方案!先后被300多所高校选用、销售100000多册,并荣获第四届中国大学出版社优秀畅销书一等奖!

本书特色如下:

(1)本书旨在培养和提高读者的理论基础与实战水平,全书以技术实践为主线,帮助读者从一个个实践案例中逐步学习并掌握单片机程序开发与电路设计的方法与技巧。

(2)本书理论知识的讲解由浅入深,项目实例的设计从小到大,全面的理论与丰富的实例融会贯通,培养读者发现问题、分析问题与实际解决问题的能力。

(3)本书作者是拥有多年实际项目研发经验的资深工程师,书中蕴含了大量实际工程项目所采用的技术和经验,有利于读者从初学者快速晋级到工程师。

配书资源如下:

(1)视频教程:为本书量身打造、与教材同步的教学视频,共计2000多分钟。

(1)程序代码:提供全书80多个案例的程序代码,这些程序代码均已通过验证调试。

(1)教学课件:提供全书20章的教学课件,便于广大教师备课与教学。

附赠资源如下:

(1)开源工具:为读者提供单片机开发常用的软件开源工具及丰富的参考文档。

(2)PCB教程: 精心录制了介绍PCB设计的视频教程,帮助读者快速动手实践。

注:扫描书中二维码即可获取上述配书资源与附赠资源。


内容简介

全书一共20章,从第1章到第18章以实验为载体,从单片机最小系统和C语言基本语法开始讲解,逐步深入,讲解单片机内部资源和C语言的各种用法,并穿插介绍实际项目开发常用的电路设计思路和编程技巧等。本书在知识讲解的过程中,有些地方没有按照传统思路先介绍后应用,而是先应用后讲解,这样的方式更有利于大家深入理解知识点,清楚地了解知识点的用法和原理。第19章是项目开发指导,带领大家逐一走过实际项目开发的全部流程,并最终完成它,让大家进行一次实际项目开发前的实战演习。第20章是一个扩展实例,采用HCSR04超声波模块完成一个实例(超声波模块可以从网上购买),尝试以小实例项目的方式带领读者完成现实生活中的应用。附录介绍了单片机开发中一些常用工具的用法,熟练运用它们,可以帮助大家高效率地定位并解决问题。

本书旨在培养和锻炼单片机系统实用开发技能,全书以实践为主线,让读者在一个个实践案例中逐步掌握单片机电路设计与程序代码编写能力。书中的内容从最初点亮一个小灯的简单实验,逐步扩展知识面,到最后多功能电子钟的实际项目开发指导,不仅讲解了大量原理性知识,更重要的是给读者提供了实际项目开发的思路和经验,可以让读者在实践过程中提高自己发现问题、分析问题、解决问题的能力。

本书作者拥有多年实际项目研发经验的资深工程师,因此书中的内容涵盖了大量的实际项目中所采用的技术和技巧,具有极强的实时性和先进性,为读者铺就一条从单片机初学者晋级为工程师的康庄大道。本书既适合刚刚接触单片机的初学者自学阅读,又可以作为各类院校电子技术相关专业的单片机教材,同时对电子行业的从业技术人员也有很高的参考价值。

作者简介

宋雪松:国内知名单片机培训专家,嵌入式产品技术顾问。拥有近十年产品研发经验,曾主持研发通信类、虚拟仪器等多款产品,在硬件电路设计和嵌入式软件设计方面有丰富的项目实战经验。2010年创立金沙滩工作室,致力于实用化的单片机技术教育。曾录制《手把手教你学51单片机》视频教程,该教程以通俗的语言、专业的思路和精湛的技术获得了广大读者一致好评,广为传播。

关于作者

相信很多学电子的同学和我接触单片机的经历一样: 大学里开了C语言和单片机相关的课程,但是上完课了却从未见过单片机长什么样子,也不知道C语言有何用处,考试的时候通过背一下书上的概念和程序就那么通过了,头脑中除了留下“单片机”和“C语言”这样两个概念外,其他的全都就着馒头下肚了,没在大脑中留下一片云彩。

一个偶然的机会,我进入了我的单片机启蒙恩师李冬明老师的实验室,从此真正的单片机进入了我的世界。李老师给了我一套学习板,让我从师兄编写的程序开始学习,不懂的可以问师兄师姐。刚开始学习很难,什么都不懂,甚至想问问题都不知道该问什么,但是我还是坚持从早上8点半到晚上9点半全天候在实验室里学习。大概两三个月的时间,随着老师布置的第一个任务的完成,我发现自己一下子理解单片机了,当然这顿悟离不开两三个月的积累。半年后正式开始参与老师项目开发的一些简单工作,算是入门单片机了。我找工作的那年,由于经济危机,就业形势很严峻,但是带着在实验室学习的技术和积累的经验,我在就业大潮中很容易地找到了工作,而且进入工作岗位后,我迅速进入状态,一个月后在公司就开始参与实际产品研发工作了,几乎没有什么过渡期。

回顾我的单片机之路,我发现我是个幸运儿。一个班级里几十个人,一个学校又有那么多电子专业的学生,最终能够真正跟着老师参与项目开发锻炼的就那么几个,而全国有很多很多高校,最终有机会得到特训参加电子比赛以及项目开发实践机会的人太少太少了,大多数同学只能在外围羡慕。更有很多同学发现自己没这种机会后就自甘堕落,整天逃课玩游戏,最终大学毕业两手空空,如果不靠拼爹,靠自己很难找到称心的工作。大多数同学能考上大学,脑子一点也不比别人笨,只是没有一个领路人,没有一个正确的学习方法,缺少参与学习的平台和参加实践的机会。

本书在编写过程中得到李冬明老师的大力指点和指导,在此由衷地表示感谢。李冬明老师是一位非常严谨和认真的老师,他的严谨不仅体现在教学上,在科研上对我们的要求也是无比严格。我跟着他学习的时候,他经常说的一句话就是: “做技术必须要认真,很多人做事的时候喜欢糊弄,但做技术绝对不可以。技术是逻辑性很强的东西,不应该有任何侥幸心理,你糊弄它它就糊弄你。”这一点我在做实验的时候已经体会到了,曾经由于自己的不认真,电容极性接反,导致电容爆掉,板子烧毁。



精彩书评

自20世纪80年代诞生以来,8051就从未离开过嵌入式应用开发工程师的视线。在30多年的历程中,以8051为内核的单片机在结构、功能和开发语言等方面一直不断演进,至今仍被大量应用于各种电子设备,仍有大批的电子工程师采用8051单片机从事嵌入式系统的开发。作为微控制器的鼻祖,8051奠定了嵌入式芯片系统的经典体系结构; 掌握8051的开发应用,有利于从事更高层次的嵌入式开发系统的学习。该书的突出特点就是紧跟时代步伐,从实战角度论述,其设计思路、编程技巧和程序算法源于实践。作者能够灵活运用C语言的指针和结构体,可以将已呈现SoC特征的8051的性能发挥到极致。希望读者能够从8051开始,开启美妙的嵌入式开发之旅。

——于寅虎(《电子产品世界》总编)

在该书出版前夕,很荣幸有机会阅读了样章。整体感觉这本书具有突出的原创性和优秀的实践性。作者是真正在用“心”写书,为什么这么说呢?这本书其实就是作者在和读者分享自己学习单片机的历程。作为一个工程师,作者从系统的角度,告诉读者学习单片机的方法,而不是就事论事地单纯讲应用。本书始终围绕着一个主题,即告诉读者如何根据不同应用要求,构建相关硬件接口和设计软件程序。书中给出的实例,基本上涵盖了单片机最为典型的应用场合。该书为读者提供了完备的学习生态系统,包括视频、课件、开发板和论坛。这样,读者和作者之间就建立了一个很好的交流平台,有利于高效学习。

——何宾(博士,《STC单片机原理及应用》作者)

宋雪松是一个电子技术的追梦人,他在追逐单片机的道路上,摸过烧红的铁块,有过无数的坎坷。幸运的是,他坚持学习,勇于突破,终于成长为一名有理想、有本领的嵌入式工程师。该书是作者总结多年的学习经验和培训经历,凝练出的单片机学习的最佳实践途径。该书摒弃了传统的“先讲基本原理再举例”的学习套路,以一个个项目实例为载体,理论联系实践,手把手教会读者掌握单片机系统设计的方法和技巧,是一本极具变革思想的前沿教材,特推荐阅读。

——杨晖(《电子技术应用》副总编)

站在单片机初学者的角度,尤其是高职高专的广大师生的立足点,学习单片机的目标就是成长为单片机开发工程师。该书通过一个个独立的模块讲解,然后综合这些模块开发实际项目——这正是我们学习单片机的最有效的途径。甚至可以说,这本书是单片机学习的里程碑著作,值得学习,值得珍藏。

——刘继曾(罗定职业技术学院教师)

毫无疑问,宋雪松这本《手把手教你学51单片机——C语言版》(第2版)既有较高的专业技术含量又通俗易懂,还附赠大量超值服务。想当初,本人在单片机与嵌入式系统学习的过程中,是摸着石头过河,走过不少弯路。现在想想,如果一开始就遇到了这样一本书,“手把手”地学习下来,至少可以节省两三年的摸索时间。真心希望更多的电子初学者读到此书,提高学习效率。

——吴常玉(青岛东软载波科技股份有限公司高级工程师)

我很久没有看到过这么好的教材了,好像正好你想知道什么它就告诉你什么,你缺什么它就给你讲解什么。宋雪松老师一定是倾其全力,把宝贵的学习和教学经验奉献给了读者; 尤其是书中的实战项目,更是让人耳目一新。我目前只阅读到文字教程,还没有看视频教程,非常期待!也更期待宋老师后续出版更高级的教程,可以领单片机初学者走出迷茫,成长为成熟的单片机工程师。

——黄克亚(苏州大学机电工程学院硕士生导师)

《手把手教你学51单片机——C语言版》(第2版)有个鲜明的特点:“实践总结理论,理论指导实践”。该教程善于“手把手”地带领读者去做各种奇妙的实验,接着“手把手”地剖析与之紧密联系的数电、C语言等理论根基,而后又利用这些理论去把前面的实验做改善或演变。其中的乐趣会强烈地吸引你去“动手实践”,去“举一反三”。

——宋廷强(青岛科技大学信息科学技术学院副院长)

感谢各位专家对于本书的不吝赞美,也感谢数百位热心读者热情洋溢的“读后感”,由于篇幅所限,不再一一列出。——作者、编辑注


目录

第1章如何学习单片机

1.1学什么类型的单片机

1.2学习单片机的最佳方法

1.3单片机学习的准备工作

1.4单片机开发软件环境搭建

1.5Keil基本概况介绍

1.6答读者问

第2章点亮你的LED

2.1单片机的内部资源

2.2单片机最小系统

2.2.1电源

2.2.2晶振

2.2.3复位电路

2.3LED小灯

2.4程序代码编写

2.4.1特殊功能寄存器和位定义

2.4.2新建一个工程

2.4.3编写点亮小灯的程序

2.5程序下载

2.6练习题

第3章硬件基础知识学习

3.1电磁干扰

3.2去耦电容的应用

3.3三极管在数字电路中的应用

3.3.1三极管的初步认识

3.3.2三极管的原理

3.3.3三极管的应用

3.474HC138三八译码器的应用

3.5LED闪烁程序

3.6练习题

第4章C语言基础以及流水灯的实现

4.1二进制、十进制和十六进制

4.2C语言变量类型和范围

4.3C语言基本运算符

4.4for循环语句

4.5while循环语句

4.6函数的简单介绍

4.7Keil软件延时

4.8流水灯程序

4.9练习题

第5章定时器与数码管基础

5.1逻辑电路与逻辑运算

5.2定时器的学习

5.2.1定时器的初步认识

5.2.2定时器的寄存器

5.2.3定时器的应用

5.3数码管的学习

5.3.1数码管的基本介绍

5.3.2数码管的真值表

5.3.3数码管的静态显示

5.4练习题

第6章中断与数码管动态显示

6.1C语言的数组

6.1.1数组的基本概念

6.1.2数组的声明

6.1.3数组的初始化

6.1.4数组的使用和赋值

6.2if语句

6.3switch语句

6.4数码管的动态显示

6.4.1动态显示的基本原理

6.4.2数码管显示消隐

6.5单片机中断系统

6.5.1中断的产生背景

6.5.2定时器中断的应用

6.5.3中断的优先级

6.6练习题

第7章变量进阶与点阵LED

7.1变量的作用域

7.1.1局部变量

7.1.2全局变量

7.2变量的存储类别

7.3点阵的初步认识

7.4点阵的图形显示

7.5点阵的动画显示

7.5.1点阵的纵向移动

7.5.2点阵的横向移动

7.6练习题

第8章函数进阶与按键

8.1单片机最小系统

8.1.1电源

8.1.2晶振

8.1.3复位电路

8.2函数的调用

8.3函数的形式参数和实际参数

8.4按键

8.4.1独立按键

8.4.2矩阵按键

8.4.3独立按键的扫描

8.4.4按键消抖

8.4.5矩阵按键的扫描

8.5简易加法计算器

8.6练习题

第9章步进电机与蜂鸣器

9.1单片机I/O口的结构

9.2上下拉电阻

9.328BYJ48型步进电机详解与实例

9.3.1电机的分类

9.3.228BYJ48型步进电机原理详解

9.3.3让电机转起来

9.3.4转动精度与深入分析

9.3.5编写实用程序的基础

9.3.6包含综合应用的实用程序

9.4蜂鸣器

9.5练习题

第10章实例练习与经验积累

10.1数字秒表实例

10.1.1不同数据类型间的相互转换

10.1.2定时时间精准性调整

10.1.3字节操作修改位的技巧

10.1.4数码管扫描函数算法改进

10.1.5秒表程序

10.2PWM知识与实例

10.3交通灯实例

10.451单片机RAM区域的划分

10.5长短按键的应用

10.6练习题

第11章UART串口通信

11.1串行通信的初步认识

11.2RS232通信接口

11.3USB转串口通信

11.4I/O口模拟UART串口通信

11.5UART串口通信的基本应用

11.5.1通信的三种基本类型

11.5.2UART模块介绍

11.5.3UART串口程序

11.6通信实例与ASCII码

11.7练习题

第12章指针基础与1602液晶的初步认识

12.1指针的概念与指针变量的声明

12.1.1变量的地址

12.1.2指针变量的声明

12.1.3指针的简单示例

12.2指向数组元素的指针

12.2.1指向数组元素的指针和运算法则

12.2.2指向数组元素指针的实例

12.3字符数组和字符指针

12.3.1常量和符号常量

12.3.2字符和字符串数组实例

12.41602液晶的认识

12.4.11602液晶的硬件接口介绍

12.4.21602液晶的读写时序介绍

12.4.31602液晶的指令介绍

12.4.41602液晶简单实例

12.5练习题

第13章1602液晶与串口的应用实例

13.1通信时序解析

13.21602整屏移动

13.3多.c文件的初步认识

13.4计算器实例

13.5串口通信机制和实用的串口例程

13.6练习题

第14章I2C总线与E2PROM

14.1I2C时序初步认识

14.2I2C寻址模式

14.3E2PROM的学习

14.3.1E2PROM单字节读写操作时序

14.3.2E2PROM多字节读写操作时序

14.3.3E2PROM的页写入

14.4I2C和E2PROM的综合实验学习

14.5练习题

第15章实时时钟DS1302

15.1BCD码的概念

15.2SPI时序初步认识

15.3实时时钟芯片DS1302

15.3.1DS1302的特点

15.3.2DS1302的硬件信息

15.3.3DS1302寄存器介绍

15.3.4DS1302通信时序介绍

15.3.5DS1302的BURST模式

15.4复合数据类型

15.4.1结构体数据类型

15.4.2共用体数据类型

15.4.3枚举数据类型

15.5电子钟实例

15.6练习题

第16章红外通信与DS18B20温度传感器

16.1红外线的基本原理

16.2红外遥控通信原理

16.3NEC协议红外遥控器

16.4温度传感器DS18B20

16.5练习题

第17章模数转换A/D与数模转换D/A

17.1A/D和D/A的基本概念

17.2A/D的主要指标

17.3PCF8591的硬件接口

17.4PCF8591的软件编程

17.5A/D差分输入信号

17.6D/A输出

17.7简易信号发生器实例

17.8练习题

第18章RS485通信与Modbus协议

18.1RS485通信

18.2Modbus通信协议介绍

18.2.1Modbus协议特点

18.2.2RTU协议帧数据

18.3Modbus多机通信例程

18.4练习题

第19章实践项目: 多功能电子钟

19.1类型说明

19.2头文件

19.3条件编译

19.4项目实战

19.4.1项目需求分析

19.4.2程序结构规划

19.4.3程序代码编写

19.5练习题

第20章扩展实例: 超声波测距*

20.1超声波测距原理

20.2超声波测距硬件准备

20.3超声波测距并在数码管上显示

20.4优化超声波测距的精度

附录A单片机开发常用工具

A.1万用表

A.1.1万用表的功能及类型

A.1.2万用表的使用方法

A.2示波器

A.2.1示波器的功能及类型

A.2.2示波器的使用

A.3逻辑分析仪

A.3.1什么是逻辑分析仪

A.3.2逻辑分析仪的参数

A.3.3逻辑分析仪的使用

A.3.4应用实例——分析UART、I2C、SPI

A.3.5数字电路应用中逻辑分析仪比之示波器的优势

A.4练习题

附录BASCII码字符表

附录CC语言运算符及优先级

附录DKST51开发板原理图429

前言/序言

单片机技术是现代工业自动化、电子电气、通信及物联网等领域的一门主流技术。随着人们生活及生产方式的自动化、智能化程度越来越高,单片机技术早已融入我们生活的每一个角落,几乎所有的家电内部都有单片机的身影,无数的自动化及智能公共设施也都有单片机在其背后兢兢业业地工作着。同时,单片机技术也是学习ARM嵌入式系统、FPGA设计等更高阶技术的一个基础。

很多同学都想学好单片机技术,可能看了不少书,也付出了很多的努力,但总感觉似懂非懂,遇上具体项目也很茫然而无从入手。目前市面上关于单片机开发的书有很多,但绝大多数,要么是过于理论化,全是架构讲述和汇编指令等,学了半天仍不知单片机为何物; 要么只是一些很简单的小实验,学完后也只能做到点亮个小灯、显示个数字等,C语言指针都没有用到过,综合实践的例子更是一个没有。在学完这类教材后无法深入下去,很难跟实际项目开发衔接起来,于是可能会怀疑自己的能力,适不适合搞单片机。

从作者多年从事单片机领域的工作经验来说,单片机这东西,要说难的话真不怎么难,外行人看起来可能挺神秘,其实主要是没人帮忙去点破各种缘由,学不会的主要原因是方法不对头,没有专业的人员带领大家入门。

基于这些原因,我们编写了这本《手把手教你学51单片机——C语言版》(第2版),并且配套了相关的视频教程、电子教案、源代码和实验开发板(详情浏览金沙滩工作室网站获取更多信息),手把手地带领大家来学习单片机技术,给单片机初学者带来福音,让大家一步一个脚印地掌握单片机技术。

《手把手教你学51单片机——C语言版》(第2版)这本书除了讲解简单的实验和编程语法、由浅入深地讲解单片机技术和C语言编程技巧外,更重要的是结合了多个模块,以实际工程项目的编程规则来逐步带领大家学习实际开发中的电路设计和编程思路。尤其是C语言的指针和结构体的灵活运用、单片机的多模块编程、实际项目开发流程指导等,更是当前单片机类教材中少见的瑰宝。通过对本教材的透彻掌握,可以使读者在进入公司后能够快速适应并能承担实际的项目开发,可以说这本教材为同学们搭建了从初学者步入工程师殿堂的桥梁。

本书特色:

1) 理论与实践相结合

现阶段,学习单片机不是为了应付考试,也不是为了去撰写论文,而是真正学会单片机开发技术。因此本书主要起到一个辅导实践的作用,通过每一章节的学习,目的不是让大家记住背过哪些理论,而是让大家知道如何去实际操作编程。了解方法后,大家就可以真正地去实践操作一下,从而达到学习和掌握单片机技术的目的。

2) 由浅入深、循序渐进

众多初学者不知道单片机该如何学习,不要紧,本书为你制定了一套科学的学习方法和思路,只要紧跟书中的方法和思路,按照书中的要求去实践,相信很快就可以学会单片机了。本书的学习套路和传统的方法大不相同,传统的是先讲基本原理,然后再举例,本书则是尽可能先举例子,建立起鲜活的形象,然后带领大家去探求其中的奥秘,逐一解释例程中的每个知识点的原理,这样会非常有利于大家对例程的理解。

3) 细致讲解,形象比喻

自然万物都是相通的,单片机也不例外。其实单片机技术的很多原理和道理都跟人们的实际生活类似。在课程讲解的过程中,会尽量把难以理解的技术问题和实际生活经验相联系,用形象的比喻来帮助大家透彻理解原理。

4) 实例丰富,设计规范

以前的教材大多是学校老师或者专业写书人的著作,相对来说和实际项目开发有所偏离。我们认为: 学习技术,无限接近实际项目才是正道。因此参与编写本书的人员都是有着多年的丰富的实际项目开发经验的工程师,所有的电路设计、编程的思路和规范,都是与实际项目开发相结合的,这样大家在入门后,能够很快地投入实际开发中去。

5) 关注实用技术

本书的内容偏重于单片机的应用而非详尽的理论阐述。传统的书籍一般会把和单片机、C语言相关的内容一一列举介绍出来,而本书的原则是常用的重点讲解分析,不常用的只做简单介绍,早已过时的或者极少用到的内容不予理会,以提高本书的精华度。用一位网友的描述就是: 都是干货,对实际开发相当有用。

6) 配套视频教程

除了纸质书本之外,出版社采用微视频的方式,将配套教材的视频教程,全部上传到云端服务器,读者只需通过扫描教材上的二维码,即可观看教学视频。

7) 完善的技术讨论平台

本书提供论坛技术讨论平台——金沙滩工作室。读者不仅可以在上边找到我们的联系方式,下载所有的学习视频和文档资料,也可以加入我们的技术讨论群和大家一起讨论学习,共同进步。

资源下载:

扫描下方二维码,可以获取相应的学习资源:

工具软件 开发板资料 PCB设计指南 程序代码 学习说明 教学课件

作者

2020年6月