本书是集理论知识、视频教程、教学课件与技术支持于一体的单片机教学解决方案!先后被300多所高校选用、销售100000多册,并荣获第四届中国大学出版社优秀畅销书一等奖!
本书特色如下:
(1)本书旨在培养和提高读者的理论基础与实战水平,全书以技术实践为主线,帮助读者从一个个实践案例中逐步学习并掌握单片机程序开发与电路设计的方法与技巧。
(2)本书理论知识的讲解由浅入深,项目实例的设计从小到大,全面的理论与丰富的实例融会贯通,培养读者发现问题、分析问题与实际解决问题的能力。
(3)本书作者是拥有多年实际项目研发经验的资深工程师,书中蕴含了大量实际工程项目所采用的技术和经验,有利于读者从初学者快速晋级到工程师。
配书资源如下:
(1)视频教程:为本书量身打造、与教材同步的教学视频,共计2000多分钟。
(1)程序代码:提供全书80多个案例的程序代码,这些程序代码均已通过验证调试。
(1)教学课件:提供全书20章的教学课件,便于广大教师备课与教学。
附赠资源如下:
(1)开源工具:为读者提供单片机开发常用的软件开源工具及丰富的参考文档。
(2)PCB教程: 精心录制了介绍PCB设计的视频教程,帮助读者快速动手实践。
注:扫描书中二维码即可获取上述配书资源与附赠资源。
全书一共20章,从第1章到第18章以实验为载体,从单片机最小系统和C语言基本语法开始讲解,逐步深入,讲解单片机内部资源和C语言的各种用法,并穿插介绍实际项目开发常用的电路设计思路和编程技巧等。本书在知识讲解的过程中,有些地方没有按照传统思路先介绍后应用,而是先应用后讲解,这样的方式更有利于大家深入理解知识点,清楚地了解知识点的用法和原理。第19章是项目开发指导,带领大家逐一走过实际项目开发的全部流程,并最终完成它,让大家进行一次实际项目开发前的实战演习。第20章是一个扩展实例,采用HCSR04超声波模块完成一个实例(超声波模块可以从网上购买),尝试以小实例项目的方式带领读者完成现实生活中的应用。附录介绍了单片机开发中一些常用工具的用法,熟练运用它们,可以帮助大家高效率地定位并解决问题。
本书旨在培养和锻炼单片机系统实用开发技能,全书以实践为主线,让读者在一个个实践案例中逐步掌握单片机电路设计与程序代码编写能力。书中的内容从最初点亮一个小灯的简单实验,逐步扩展知识面,到最后多功能电子钟的实际项目开发指导,不仅讲解了大量原理性知识,更重要的是给读者提供了实际项目开发的思路和经验,可以让读者在实践过程中提高自己发现问题、分析问题、解决问题的能力。
本书作者拥有多年实际项目研发经验的资深工程师,因此书中的内容涵盖了大量的实际项目中所采用的技术和技巧,具有极强的实时性和先进性,为读者铺就一条从单片机初学者晋级为工程师的康庄大道。本书既适合刚刚接触单片机的初学者自学阅读,又可以作为各类院校电子技术相关专业的单片机教材,同时对电子行业的从业技术人员也有很高的参考价值。
第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.328BYJ48型步进电机详解与实例
9.3.1电机的分类
9.3.228BYJ48型步进电机原理详解
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.2RS232通信接口
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章RS485通信与Modbus协议
18.1RS485通信
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语言运算符及优先级
附录DKST51开发板原理图429
温馨提示:请使用泸西县图书馆的读者帐号和密码进行登录
自20世纪80年代诞生以来,8051就从未离开过嵌入式应用开发工程师的视线。在30多年的历程中,以8051为内核的单片机在结构、功能和开发语言等方面一直不断演进,至今仍被大量应用于各种电子设备,仍有大批的电子工程师采用8051单片机从事嵌入式系统的开发。作为微控制器的鼻祖,8051奠定了嵌入式芯片系统的经典体系结构; 掌握8051的开发应用,有利于从事更高层次的嵌入式开发系统的学习。该书的突出特点就是紧跟时代步伐,从实战角度论述,其设计思路、编程技巧和程序算法源于实践。作者能够灵活运用C语言的指针和结构体,可以将已呈现SoC特征的8051的性能发挥到极致。希望读者能够从8051开始,开启美妙的嵌入式开发之旅。
——于寅虎(《电子产品世界》总编)
在该书出版前夕,很荣幸有机会阅读了样章。整体感觉这本书具有突出的原创性和优秀的实践性。作者是真正在用“心”写书,为什么这么说呢?这本书其实就是作者在和读者分享自己学习单片机的历程。作为一个工程师,作者从系统的角度,告诉读者学习单片机的方法,而不是就事论事地单纯讲应用。本书始终围绕着一个主题,即告诉读者如何根据不同应用要求,构建相关硬件接口和设计软件程序。书中给出的实例,基本上涵盖了单片机最为典型的应用场合。该书为读者提供了完备的学习生态系统,包括视频、课件、开发板和论坛。这样,读者和作者之间就建立了一个很好的交流平台,有利于高效学习。
——何宾(博士,《STC单片机原理及应用》作者)
宋雪松是一个电子技术的追梦人,他在追逐单片机的道路上,摸过烧红的铁块,有过无数的坎坷。幸运的是,他坚持学习,勇于突破,终于成长为一名有理想、有本领的嵌入式工程师。该书是作者总结多年的学习经验和培训经历,凝练出的单片机学习的最佳实践途径。该书摒弃了传统的“先讲基本原理再举例”的学习套路,以一个个项目实例为载体,理论联系实践,手把手教会读者掌握单片机系统设计的方法和技巧,是一本极具变革思想的前沿教材,特推荐阅读。
——杨晖(《电子技术应用》副总编)
站在单片机初学者的角度,尤其是高职高专的广大师生的立足点,学习单片机的目标就是成长为单片机开发工程师。该书通过一个个独立的模块讲解,然后综合这些模块开发实际项目——这正是我们学习单片机的最有效的途径。甚至可以说,这本书是单片机学习的里程碑著作,值得学习,值得珍藏。
——刘继曾(罗定职业技术学院教师)
毫无疑问,宋雪松这本《手把手教你学51单片机——C语言版》(第2版)既有较高的专业技术含量又通俗易懂,还附赠大量超值服务。想当初,本人在单片机与嵌入式系统学习的过程中,是摸着石头过河,走过不少弯路。现在想想,如果一开始就遇到了这样一本书,“手把手”地学习下来,至少可以节省两三年的摸索时间。真心希望更多的电子初学者读到此书,提高学习效率。
——吴常玉(青岛东软载波科技股份有限公司高级工程师)
我很久没有看到过这么好的教材了,好像正好你想知道什么它就告诉你什么,你缺什么它就给你讲解什么。宋雪松老师一定是倾其全力,把宝贵的学习和教学经验奉献给了读者; 尤其是书中的实战项目,更是让人耳目一新。我目前只阅读到文字教程,还没有看视频教程,非常期待!也更期待宋老师后续出版更高级的教程,可以领单片机初学者走出迷茫,成长为成熟的单片机工程师。
——黄克亚(苏州大学机电工程学院硕士生导师)
《手把手教你学51单片机——C语言版》(第2版)有个鲜明的特点:“实践总结理论,理论指导实践”。该教程善于“手把手”地带领读者去做各种奇妙的实验,接着“手把手”地剖析与之紧密联系的数电、C语言等理论根基,而后又利用这些理论去把前面的实验做改善或演变。其中的乐趣会强烈地吸引你去“动手实践”,去“举一反三”。
——宋廷强(青岛科技大学信息科学技术学院副院长)
感谢各位专家对于本书的不吝赞美,也感谢数百位热心读者热情洋溢的“读后感”,由于篇幅所限,不再一一列出。——作者、编辑注