图书简介:
目 录
第1篇 入门篇
第1章 基础知识必备 2
1.1 单片机概述 2
1.1.1 什么是单片机 2
1.1.2 单片机标号信息及封装类型 2
1.1.3 单片机能做什么 5
1.1.4 如何开始学习单片机 6
1.2 51单片机外部引脚介绍 8
1.3 电平特性 11
1.4 二进制和十六进制 12
1.4.1 二进制 12
1.4.2 十六进制 13
1.5 二进制的逻辑运算 13
1.6 单片机的C51基础知识介绍 15
1.6.1 利用C语言开发单片机的优点 15
1.6.2 C51中的基本数据类型 15
1.6.3 C51数据类型扩充定义 16
1.6.4 C51中常用的头文件 17
1.6.5 C51中的运算符 17
1.6.6 C51中的基础语句 18
1.6.7 学习单片机应该掌握的主要内容 18
第2章 Keil软件使用及流水灯设计 19
2.1 Keil工程建立及常用按钮介绍 19
2.1.1 Keil工程的建立 19
2.1.2 常用按钮 23
2.2 点亮第一个发光二极管 24
2.3 while语句 35
2.4 for语句及简单延时语句 37
2.5 Keil仿真及延时语句的精确计算 38
2.6 不带参数函数的写法及调用 42
2.7 带参数函数的写法及调用 44
2.8 利用C51库函数实现流水灯 45
第2篇 内外部资源操作篇
第3章 数码管显示原理及应用实现 50
3.1 数码管显示原理 50
3.2 数码管静态显示 51
3.3 数码管动态显示 55
3.4 中断概念 57
3.5 单片机的定时器中断 61
第4章 键盘检测原理及应用实现 70
4.1 独立键盘检测 70
4.2 矩阵键盘检测 76
第5章 A/D和D/A工作原理 84
5.1 模拟量与数字量概述 84
5.2 A/D转换原理及参数指标 85
5.3 ADC0804工作原理及其实现方法 92
5.4 D/A转换原理及其参数指标 98
5.5 DAC0832工作原理及实现方法 104
5.6 DAC0832输出电流转换成电压的方法 109
第6章 串行口通信原理及操作流程 110
6.1 并行与串行基本通信方式 110
6.2 RS-232电平与TTL电平的转换 113
6.3 波特率与定时器初值的关系 115
6.4 51单片机串行口结构描述 118
6.5 串行口方式1编程与实现 120
6.6 串行口打印在调试程序中的应用 123
第7章 通用型1602、12232、12864液晶操作方法 131
7.1 液晶概述 131
7.2 常用1602液晶操作实例 132
7.3 常用12232液晶操作实例 139
7.4 常用12864液晶操作实例 148
第8章 I2C总线AT24C02芯片应用 157
8.1 I2C总线概述 157
8.2 单片机模拟I2C总线通信 159
8.3 E2PROM AT24C02与单片机的通信实例 162
第9章 基础运放电路专题 170
9.1 运放概述及参数介绍 170
9.2 反相放大器 171
9.3 同相放大器 172
9.4 电压跟随器 173
9.5 加法器 173
9.6 差分放大器 174
9.7 微分器 174
9.8 积分器 175
9.9 比较器 176
第3篇 提高篇
第10章 定时器/计数器应用提高 180
10.1 方式0应用 180
10.2 方式2应用 181
10.3 方式3应用 183
10.4 52单片机定时器2介绍 185
10.5 计数器应用 191
第11章 串行口应用提高 195
11.1 方式0应用 195
11.2 方式2和方式3应用 197
11.3 单片机双机通信 199
11.4 单片机多机通信 206
第12章 指针 215
12.1 指针和指针变量 215
12.1.1 内存单元、地址和指针 215
12.1.2 指针变量的定义、赋值与引用 217
12.2 指针变量的运算 218
12.3 指针与数组 219
12.3.1 指针与一维数组 219
12.3.2 指针与多维数组 221
12.4 指针与函数 223
12.4.1 指针作为函数的参数 223
12.4.2 指向函数的指针 224
12.4.3 指针型函数 226
12.5 指针与字符串 227
12.5.1 字符串的表达形式 227
12.5.2 字符指针作为函数参数 227
12.5.3 使用字符指针与字符数组的区别 228
12.6 指针数组与命令行参数 229
12.6.1 指针数组的定义和使用 229
12.6.2 指向指针的指针 231
12.6.3 指针数组作为main()函数的命令行参数 232
12.7 指针小结 233
12.7.1 指针概念综述 233
12.7.2 指针运算小结 234
12.7.3 等价表达式 235
12.8 C51中指针的使用 236
12.8.1 指针变量的定义 236
12.8.2 指针应用 237
第4篇 实战篇
第13章 利用51单片机的定时器设计一个时钟 240
13.1 如何从矩阵键盘中分解出独立按键 240
13.2 原理图分析 241
13.3 实例讲解 242
第14章 使用DS12C887时钟芯片设计高精度时钟 250
14.1 时钟芯片概述 250
14.2 DS12C887时钟芯片介绍 250
14.3 如何用TX-1C实验板扩展本实验 256
14.4 原理图分析 257
14.5 实例讲解 257
第15章 使用DS18B20温度传感器设计温控系统 268
15.1 温度传感器概述 268
15.2 DS18B20温度传感器介绍 269
15.3 实例讲解 275
第16章 太阳能充/放电控制器 280
16.1 控制器原理图分析 281
16.2 控制器板上元件介绍 284
16.3 实例讲解 286
第17章 VC、VB(MSCOMM控件)与单片机通信实现温度显示 303
17.1 VC MSCOMM控件与单片机通信实现温度显示 303
17.2 VB MSCOMM控件与单片机通信实现温度显示 309
第18章 应用单片机内部ADC做电容感应触摸按键 313
第5篇 拓展篇
第19章 使用Altium Designer 14绘制电路图 320
19.1 绘制电路板概述 320
19.2 建立工程 322
19.3 制作元件库 325
19.4 添加封装及制作PCB封装库 328
19.5 项目编译及生成PCB 331
19.6 布线电气特性设置 334
19.7 自动布线和手动布线 338
第20章 基于Wi-Fi的物联网应用 341
20.1 物联网系统架构 341
20.2 常用的物联网无线传输技术 342
20.3 IoT云平台 343
20.4 基于Wi-Fi的嵌入式设备入网方式 347
20.5 微软Azure系列IoT物联网开发板 352
第21章 电机专题 353
21.1 直流电机原理及应用 353
21.2 步进电机原理及应用 360
21.3 舵机原理及其应用 370
第22章 STC8系列单片机介绍 377
22.1 STC8单片机的优势 377
22.2 ADC数模转换 377
22.3 PCA/CCP/PWM应用 379
22.4 同步串行外设接口SPI 382
22.5 I2C总线 386
第23章 常用元器件介绍 391
23.1 二极管 391
23.2 电容 395
23.3 场效应管 399
23.4 光耦 403
23.5 蜂鸣器 405
23.6 继电器 405
23.7 自恢复保险 410
23.8 瞬态电压抑制器 411
23.9 晶闸管(可控硅) 414
23.10 电荷泵 416
第24章 直流稳压电源专题 417
23.1 整流电路 417
24.2 滤波电路 419
24.3 稳压电路 421
24.4 集成稳压模块的使用 423
24.5 串联开关型稳压电源 428
第25章 运放扩展专题 431
25.1 简单低通滤波器 431
25.2 “电流-电压”转换电路 431
25.3 光电放大器 432
25.4 精密电流源 432
25.5 可调参考电压源 433
25.6 复位稳定放大器 434
25.7 模拟乘法器 435
25.8 全波整流器和平均值滤波器 436
25.9 正弦波振荡器 437
25.10 三角波发生器 437
25.11 自动跟踪对称电源 438
25.12 可调实验电源 439
25.13 运放相关术语 441
附录A 天祥电子开发实验板简介 442
A.1 TX-1C 51单片机开发板 442
A.2 AVR单片机开发板 443
A.3 PIC单片机开发板 444
A.4 TX-3A ARM7入门级嵌入式系统开发板 445
A.5 TX-3C ARM7提高级嵌入式系统开发板 446
A.6 TX-2440A ARM9嵌入式系统开发板 447
A.7 TX-51STAR单片机综合实验箱 448
A.8 TX-2A CPLD开发板 449
参考文献 451
展开
序一
——STC(宏晶科技)创始人 姚永平
郭天祥老师的这本书是单片机界的第一奇书:因为厚,从未被看好;因为广,被称为单片机应用龙书;拥有者最多,配套学习板最疯狂时月销量超过1万套,连续8年各大网站排名单片机类书籍销量第一名。加上大量未经允许的盗版,数量应在正版5倍以上。配套视频更是全民皆盗(学单片机的学生),可谓功德无量。
郭靖行走江湖用了降龙十八掌,郭老师没有十八般武艺,但行走江湖只用了一掌。
一本STC89C52笑傲江湖,将STC领先全球的ISP程序在线下载技术发挥到极致,虽是学生时代开始创业,却立即有省长上门指导工作,成为黑龙江省自主创业标兵,产值迅速做到500万元/年以上,总部也迁到首都北京,成立北京海克智动,开拓新的领域!
学生写单片机教材,有部分老师反对,说太简单了,不够深度,大杂烩,虽然全,但不够专业,还厚,不适合当教材。中国单片机教育界的元老,哈工大教授(教育部单片机精品课程负责教师)说:我跟我的学生讲,如果身体不好,或没时间听我的课,或听不懂我的课,就去看郭老师的视频,看郭老师的书,他讲得通俗易懂,书也由浅入深,全面详实,最后只要通过我张老师的考试就可以了。
河南省一高校老师语:我们学校每年采购郭老师的书1000本以上,全校单片机教材都改用郭天祥的书了,学生说用他的书看他的视频,一看就透,其他很多书和视频把简单的讲复杂了,不容易懂,还是郭老师讲的简单到位。
河北省一高校老师语:我们学校每年大学生电子设计竞赛都是指定用郭老师的书来陪训,全面详实,一本书、一部视频中,不但有“STC89系列单片机从入门到提高”、“C语言从入门到提高”,还有“单片机外围基础电路知识介绍”甚至“较复杂的拓展电路知识”,是全国大学生电子设计竞赛的降龙十八掌啊!
民间最高业绩:连续8年各大网站排名单片机类书籍销量第一名,淘宝上连续8年配套学习板销量第一名。
很多企业,新入职单片机工程师培训,人手一本郭老师的书,统一集中强化。
广东省的一高校老师讲:我的机器人方向的研究生,入学后,发现他们都人手一本郭天祥的书,很厚,但也确实全面详实,真是单片机入门的龙书啊!
电子工业出版社对本书的肯定:多次请郭老师百忙之中将多年畅销第一的书再丰富一下,补充更多更实用的新知识点进来,让传奇成为经典。
STC对本书的肯定:创始人连夜通宵为第2版作序,指定本书为STC单片机全国大学计划教材,STC推荐的全国大学生电子设计竞赛指导用书,采用本书作为教材的高校,可优先建立STC高性能单片机联合实验室,优先获得免费的8051仿真器赞助,并指定本书为STC内部新员工培训教材。
序二
——上海庆科信息技术有限公司CEO 王永虹
目前,各种8位、16位、32位单片机型号众多,应用适应性各不相同,但51系列单片机从20世纪80年代流行的80C31 至今,从外置EPROM(80C31)、内置EPROM(87C51)、内置Flash(89C51),到如今众多厂商、上千种型号,始终保持着高速发展,体现出勃勃生机,堪称单片机领域的常青树、不倒翁。这充分说明了51单片机的经典性。
单片机技术和应用在物联网时代得到了前所未有的发展,对单片机开发应用人才的数量和要求也越来越高。有人觉得单片机技术难学,是因为其内部结构复杂、编程语言抽象,而且实际应用中与其他元器件知识、电子通信技术相互关联,而一个设计通常需要把很多软硬件技术结合起来,一开始往往难以下手。如何循序渐进学习单片机、从菜鸟变为高手,郭天祥编著的《新概念51单片机C语言教程——入门、提高、开发、拓展全攻略(第2版)》一书提供了一条很好的进阶学习之路。
学习单片机第一阶段只需要了解单片机的基本结构、简单的C语言编程和开发工具。本书第1篇介绍单片机引脚功能、数字逻辑和C51基础、Keil开发环境等,既是单片机学习的基础,也非常容易入门。特别是用软件点亮一个发光二极管,是学习单片机的第一个里程碑成就。
第二阶段要了解单片机的具体内部结构、外设接口、经常用到电子技术和元器件知识。本书第2篇介绍定时器、中断、串行接口、键盘和显示、ADC、DAC、运算放大器基础等,都是单片机应用系统的常用外设接口和组件,学习原理、编程使用这些外设何组件,可为后续应用开发做好准备。
单片机学习的第三阶段是学习单片机各种外设接口的多种工作模式、如何与其他设备进行有效对接和通信,还要学习掌握更多的数据结构和编程技巧,并进行实践锻炼。本书的第3篇(提高篇)和第4篇(实战篇)介绍了不同定时器和串口的多种工作模式,以及指针的用法,并进行了实时钟、温度传感器、PC机串口通信等应用系统常见模块的实战演练。
经过以上三个阶段的学习进阶,一般能进行一些单片机简单应用的开发。其他不同应用开发一般需要学习相关的专业知识,如电机控制类应用,需要学习各种电机的原理、控制算法;仪器仪表类应用,需要学习各种传感器原理和编程,数据处理以及人机界面GUI等。本书第5篇介绍了电源、常用元器件、PCB设计、物联网应用方面的知识,可作为具体项目设计开发参考。希望此书能帮助读者进行基于单片机的物联网应用系统开发。
感谢郭天祥编写了这本好书。相信此书的出版,不仅会给广大单片机学习者、开发者提供很好的帮助,也会进一步推动单片机技术的普及、应用和发展。
前 言
本书第1版在2009年1月出版,至今已印刷近40次,由于采用全新的教学理念和方法,本书深受广大读者尤其是在校大学生朋友的喜爱。随着科学工程技术日新月异的发展以及高校大学生科技创新活动的蓬勃兴起,本书读者的需求与时俱进,作者一些当年的思路和想法难免略显陈旧,因此有必要推出第2版,以飨广大读者。
第2版主要修订内容
① 虽然单片机应用日趋广泛和灵活,但51系列单片机内核硬件架构和基本开发方法变化不大,因此本书关于单片机C语言教学部分变化不大,仅对第1版中出现的文字错误进行修改,同时补充和细化了基础运放电路专题。
② 在实战篇中新增应用单片机做电容感应触摸按键的内容,以适应消费类电子产品开发的需要。
③ 为了适应单片机技术的发展潮流,拓展篇的内容修改较大:新增PCB设计软件Altium Designer 14、基于Wi-Fi的物联网应用、STC8系列单片机的内容;在运放扩展专题中加入运算放大器的高阶应用内容,如程控增益放大器、自动增益放大器等,供读者选用。
本书特色
① 本书从实际工程应用入手,以实验过程和实验现象为主导,由浅入深、循序渐进地讲述使用C语言进行51单片机编程的方法、51单片机的硬件结构和各种功能应用。
② 不同于传统的讲述单片机的书籍,本书中的大部分例程以实际硬件实验板实验现象为依据,通过C语言程序来分析单片机工作原理。读者既能知其然,又能知其所以然,从实际应用中彻底理解和掌握单片机。
③ 本书中的大部分内容来自作者及其团队的科研及教学工作实践,内容涵盖多年来项目经验总结的精华,并且贯穿一些学习方法的建议。
④ 本书内容丰富,实用性强,许多C语言代码可以直接应用到工程项目中。本书为读者提供近30小时的单片机教学视频(可以扫描下文列表中的二维码进行在线观看,也可以登录到http://www.hxedu.com.cn,注册后下载)。
同时,作者开发了与本书配套的TX-1C单片机实验板,可帮助读者边学边练,达到学以致用的目的。读者在学习过程中可以将视频和图书互为参考,配合学习,并用单片机实验板进行实践,这样有助于更快更好地掌握单片机应用知识和技能。
⑤ 本书适用范围广,可以作为高校电子信息类和机电类各专业的本科、专科相关课程的教材或者大学生创新基地培训教材,也可供51单片机的初学者和使用51单片机从事项目开发的技术人员学习和参考,还满足从事自动控制、智能仪器仪表、电力电子、机电一体化等专业的技术人员的选用需求。
本书内容组织
本书内容共分5篇,分别为入门篇、内外部资源操作篇、提高篇、实战篇和拓展篇。
第1篇主要讲解单片机相关基本知识及C语言编程基础,为初学者入门奠定基础。相关概念介绍简捷、易懂,避免长篇累牍的堆积专业术语,力求好学、好用。
第2篇讲解单片机基本操作及其应用。针对每个应用都设计一个具体的实验项目,通过实验项目的实现,教授单片机的C语言编程使用方法。内容组织上循序渐进,由浅入深;教学方法上从原理到实践,再由实验现象进一步分析原理;做到理论与实践互相交融,有助于读者上手学习。
在前2篇的基础上,通过实验,第3篇进一步扩展讲解了51单片机的高级功能应用,包括定时器/计数器以及串口应用,每个应用都设计针对性的实验项目和编程实例,使读者看得着,想得到,同时介绍C语言“精髓”——指针的相关应用。
第4篇是作者教学和实际工作中精选出的具有代表性的真实项目,知识涉及面广,内容丰富,是作者开发经验的精华总结,以期引导读者综合运用前面所学知识,搭建51单片机系统,建立系统概念。
第5篇为拓展部分,详细讲解了使用Altium Designer 14软件绘制原理图、PCB图、元件库和元件封装的过程;详细介绍了基于Wi-Fi的物联网应用;分别讲解了直流电机、步进电机和舵机的原理及驱动方法;介绍了STC8系列单片机以及运放的高级应用方法。本篇主要面向具有一定单片机开发经验的读者,主要目的拓宽读者思路,为学习者提供必要参考。
本书学习建议
随书提供的视频与本书前3篇基本对应,建议读者在学习本书之前,最好有一块与本书中相同的实验板。学习时先看视频,对单片机有一个初步的印象,视频中的互动部分,读者可亲自做实验;在学习过程中,读者要多动脑,多动手;边学边做,边做边学,在不断实践中领悟单片机工作原理。
在对实验原理理解的前提下,读者要尝试独立编写出书中每章的实例程序,有困惑时再查看书中代码,反思自己的失误在哪里,进而积累更多的经验。
在掌握基本单片机使用后,针对具体开发和应用,读者可选读本书其他章节,有目的地阅读和参考可提高学习和工作效率。
本书教学资源
本书提供的教学资源包括:本书所有教学课件、实例代码和视频教程。
以上教学资源提供两种方式浏览或下载。
① 二维码扫描,见相关二维码。
教学课件 实例代码 TX-1C原理图
② 网站,登录到http://www.hxedu.com.cn,注册之后进行下载。(下载过程中如有问题,请联系dyl@phei.com.cn。)
视频教程的介绍和二维码如下:
讲 次 内 容 细 节 二维码
第1讲 学习单片机预备知识
如何点亮一个发光管 单片机能做什么,基本电子知识,如何用TX-1C单片机学习板学习单片机,C51知识简介,如何申请免费芯片样品。点亮一个发光管
第2讲 流水灯设计
蜂鸣器发声
继电器控制 简单延时程序、子程序调用、带参数子程序设计、流水灯同时蜂鸣器响、如何驱动蜂鸣器,如何驱动继电器,集电极开路的概念及应用
第3讲 数码管显示的原理
数码管的静态显示 共阳、共阴数码管显示原理、定时器工作方式介绍、重点讲述工作方式2、中断概念及中断函数写法、外部中断试验、定时器中断应用
第4讲 数码管的动态显示原理及应用实现 动态扫描概念、定时器、中断加深
用单片机的定时器及中断设计一个60秒定时器
第5讲 独立键盘、矩阵键盘的检测原理及实现 键盘用来做什么、如何检测键盘、消抖、键盘编码、带返回值函数写法及应用
第6讲 A/D、D/A的工作原理及实现、运放电路 模拟电压与数字电压的关系、为什么要使用A/D及D/A、ADC0804的操作方法、DAC0832的操作方法
第7讲 串口通信原理及操作流程 串口通信工作方式、10位数据通信、波特率概念、如何根据波特率计算定时器初值
第8讲 1602液晶显示原理及实现 最简单液晶工作原理、如何开始对一个没有任何概念的芯片开始单片机的操作
第9讲 I2C总线AT24C02芯片工作原理 I2C总线工作原理、目前非常通用的一种通信机制
第10讲 利用51单片机的定时器设计一个时钟 综合运用51单片机知识设计一个可以随意调节时间、带整点闹铃的时钟(其中用到定时器、中断、按键、蜂鸣器、数码管或串口通信)
第11讲 用DS12C887时钟芯片设计一个高精度时钟 DS12C887内部带有锂电池,系统掉电情况下可自行精确走10年,并带有闹钟功能、年、月、日、时、分、秒等(本节由学生自己设计电路)
第12讲 使用Protel 99绘制电路图全过程 Protel 99软件使用、元件库、封装库设计、绘制原理图、错误检查、生成PCB、手动、自动布线、送去加工
第13讲 Altium designer 6.5绘制电路图全过程 最顶级电路板设计软件Altium Designer使用、元件库、封装库设计、绘制原理图、错误检查、生成PCB、手动、自动布线、送去加工
这里对配套视频中讲解三极管和场效应管部分的一点错误给予更正:
作者在讲课时说:三极管是压控流型器件,场效应管是压控压型器件。
正确结论应该是:三极管是流控流型器件,场效应管是压控流型器件。
在编写本书的过程中,作者得到了我的母校哈尔滨工程大学信息与通信工程学院刁鸣教授、王松武教授、刘文智老师和李海波老师的大力支持。本书的部分章节由我的同学叶大鹏、李健编写,另外我的老师兼好友王伞也十分关心本书的编写进度,为提高书稿的质量提出了许多宝贵的建议和修改意见。同时,电子工业出版社为本书的出版付出辛勤的劳动。在此,对他们表示衷心的感谢。
由于作者的水平有限,错误和疏漏之处在所难免,欢迎广大技术专家和读者指正。
作者的联系方式是txmcu@163.com,读者也可以登录天祥电子网站发表意见,或联系购买单片机实验板,网址是http://www.txmcu.com。
郭天祥
2017年11月 于北京
展开