标题：实例解读51单片机完全学习与应用（配教学视频）
内容简介
本书集单片机基础知识、单片机系统设计、电路知识及实验方法、工艺设计、电子元器件、Proteus/uVision软件介绍等诸多内容于一身，实用性强。这些内容不是简单的顺序堆砌，而是以单片机基础知识和系统应用为主线，在其中完美地穿插与之相关的模电、数电、电子元器件、软件知识，真正做到将单片机系统设计所需要的方方面面知识有机地融为一个整体，实现不需要过多电路基础就能深度学习单片机基础知识和上手单片机系统设计与开发的目的。
读者对象：适合单片机初学者作为学习用书，对于正在学习或学过单片机课程，却还不会编程、不会应用的读者，本书也将会是你“拨云见日”的有益参考书。
序
本书是杨欣和他的同事们所编写的精彩系列丛书中的一本，对8051单片机进行了淋漓尽致地介绍。
许多读者朋友都已经知道单片机是在一个集成电路上的小型计算机，它包含了处理器、核心存储器、可编程的输入和输出外设等。并且单片机常常在嵌入式系统中作为核心器件。8051单片机在20世纪80年代出现以来，目前已经成为当今数字电路时代的重要器件之一。
单片机作为各种设备和系统的核心控制器件，与个人计算机里或其他一般用途的微处理器有很大的不同。自动化设备、医疗仪器、摇控、办公设备、家用电器、电动工具、玩具等都使用了单片机。实际上，对于今天每一个设计、组建或维护各类数字电子设备的人来说，精通单片机的操作、熟悉与之相关的电路与系统都算是基础的技能。
本书专门为了这些必备知识进行组织编写。在一开始对单片机和系统设计师进行概述之后，各章都深度地剖析了系统技能、系统设计的软件、输入输出端口、七段数码管、扫描与显示、8051单片机、片内存储器、寻址、指令、信号的处理、模拟与数字信号的转换、信息的显示、定时器、串行口通信、中断、外设、数据存储等。
杨欣和他的同事们使用简洁和生动的语言，精妙地通过本书成功地向大家传授了实用的单片机内容。书中有大量翔实的8051单片机应用实例，它们都来自广阔的领域，包括医疗设备、信号处理、检测器与传感器、显示、时钟以及各类不同的仪器。
我怀着极其喜悦的心情，向每一个寻觅8051单片机最新设计资讯和实践指导的电子工程师推荐本书。它包含了“所有你需要知道的”，并且将必然成为未来几年带来巨大的价值。
英国最高级巴思爵士,英国皇家学会会员,英国皇家工程院院士,英国医学科学院院士
皮特维尔斯教授
前言
呈现在大家眼前的是一本通俗易懂的从单片机基础到系统应用的生动教程。本书的几位作者在近6年来出版的多部有关电路设计及单片机方面的畅销图书成为了本书的坚实基础。本书凝结了清华大学、北京大学、中国科学技术大学、北京交通大学多位一线教师、博士研究生的教学及实践体会。也得到了英国剑桥大学、牛津大学、帝国理工、爱丁堡大学、加的夫大学等世界著名大学中多位教授、博士生导师的指导意见。
经过多位学者的精心裁剪和沉淀，本书的脉络及内容非常符合单片机基础知识及系统应用的学习规律，能为广大读者朋友开辟一条事半功倍的单片机学习捷径。
特色
本书集单片机基础知识、单片机系统设计、电路知识及实验方法、工艺设计、电子元器件、Proteus/Vision软件介绍等诸多内容于一身，物超所值。
以单片机基础知识和系统应用为主线，其中完美地穿插了与之相关的模拟电路、数字电路、电子元器件、电子工艺等内容，把单片机系统设计所需要的方方面面知识有机地融为一个整体，真正实现不需要过多电路基础就能深度学习单片机基础知识和上手单片机系统设计制作的目的。
全书语言生动活泼、平实易懂，没有生涩的大理论，更没有读不懂的过程。无论在单片机部分还是元器件介绍中都紧紧围绕实用进行介绍，加上全书丰富、精彩的插图，形象地帮助大家理解知识及过程，加深印象。
特别注重知识的铺垫和循序渐进。单片机及其系统应用的知识内容多、难度大，没有基础的朋友一时可能不知道从哪里开始学习、如何开始学习。本书从第一章开始就用形象生动的单片机应用实例不断铺垫，让单片机知识流畅地被理解和吸收。
丰富的实例把单片机基础知识及其应用构成一个整体。每章中除在讲解过程中的实例外，还有“应用体验”和“实例解读”环节向大家展示单片机的应用和设计思路，既授人以鱼，也授人以渔。
本书涉及的特色系统、实例包括有：
数字温度计
装小球生产线
电子血压计
发光二极管多种控制
反应时间测试仪
声音处理器
系统电源设计
流水灯
晃晃灯
计时器
秒表
七段数码管显示控制
串行显示控制
信号发生器
心电放大器
光控开关
幅频变换电路
磁场检测器
电压指示器
数字温控系统
装药丸生产线
计数器
“叮咚”门铃
频率计
LED点阵屏幕
多种液晶屏显示
中文液晶屏显示
电子时钟
串行发送及接收
与计算机串口通信
排队呼叫机
网络密码锁
中断应用
拉幕式显示
电子琴
红外计数器
直流电动机控制
步进电动机控制
太阳跟随系统
片外存储器访问
I2C存储器接口
GPS定位系统
本书为扫清单片机基础知识和系统设计的障碍铺陈的电子工艺、电路知识、电子元器件知识包括有：
面包板实验方法
万用板实验方法
印刷电路板设计
焊接方法
发光二极管
变压器
二极管
整流桥
电容
三端稳压
直流稳压电源
晶振
电阻
开关
场效应管
逻辑门
锁存器
触发器
数字基础
七段数码管
蜂鸣器
三极管
三极管开关
运放放大器
同相放大器
反相放大器
跟随器
比较器
施密特触发器
加法放大器
差分放大器
仪表放大器
滤波器
压力传感器
光电传感器
温度传感器
霍尔传感器
模数转换器
电平移位器
增益控制器
峰值检测器
绝对值电路
微/积分器
采样保持器
系统接地
数模转换器
键盘
LED点阵
液晶屏
继电器
红外对管
直流电动机
PWM
步进电动机
RAM和ROM
EEPROM存储器
Flash存储
适用对象
不知从哪里开始学习单片机的人。有的朋友正准备开始学习单片机，但是陷于在市面上琳琅满目的单片机教程的选择中。本书的写作手法和内容叙述独特、新颖，是一本真正读起来不费劲、学起来不枯燥、用起来得心应手的参考书。这将极大提高学习的兴趣和吸收的效率。
广大的学生朋友。不管您的手里是否有了单片机的教程，都可以从本书一开始就找到学习单片机的崭新道路，这都归功于本书从头到尾丰富生动的、贴近生活的实例。如果您想真正高效地、深刻地、扎实地学习单片机基础知识和应用方法，不妨选择本书读一读。本书既可以单独作教程使用，也可作为一本参考书，讲述课堂内外与单片机有关的精彩案例。
老师们。如果能在课堂上使用本书中一些生动的单片机应用实例结合到知识介绍中，或者干脆把本书中知识描述、过程讲解、实例解析直接引入课堂，与学生们一起在单片机学习中互动。同时跟随本书深刻地对单片机原理、系统规划设计、软/硬件设计方法进行形象地学习，在活跃课堂气氛的同时，让学生真正掌握了单片机相关知识和学习的方法，岂不是事半功倍、皆大欢喜吗？
正想利用单片机设计系统的人。可能您在工作中、毕业设计中需要利用单片机结合外设设计一个应用系统来完成老板、老师布置的任务，但是原来掌握的单片机知识可能有些不够，不知道从何下手来设计单片机应用系统。本书将把单片机系统设计中包括电路知识、电子元器件知识、电子工艺、单片机系统组成方案等一粒粒“珍珠”串起来，实现为您带来设计的灵感和帮助您着手开始设计与制作。
内容结构
全书在整体上分成了序幕——揭密——解密——远航共4个部分。
序幕部分包括了第1～4章。首先从发现单片机开始，展示单片机广泛存在日常生活和工业生产中。接着介绍了单片机系统的概念、电子工艺、系统设计流程，并利用简单实例演示单片机的功能。与单片机及其系统设计相关的电路知识、元器件知识在这一部分渐渐展开，并服务于单片机知识的理解和设计的思考。最后就是单片机学习和系统开发涉及的多个软件如Proteus、Vision的介绍。通过序幕部分的学习，可以顺利、快速、准确地进入单片机学习的核心区。
揭密部分包括了第5～8章。电子元器件知识的讲解再次为理解I/O口等单片机内部结构扫清障碍，通过发光二极管的多种控制掌握单片机的I/O口控制。接着介绍的是单片机如何控制七段数码管实现秒表等应用的设计。当我们对单片机有了比较感性的认识后，第7章全面介绍了单片机的存储器结构等重要内容，此时理解起来已经因为前面的铺垫而自然、容易了许多。同时，对汇编指令以及单片机执行过程的学习也变得从容许多。
解密部分包括了第9～14章。通过前面的学习单片机一些基础知识已经理解完毕，接着将逐个解开实际的单片机系统的秘密，比如传感器信号采集及信号处理、ADC（模数转换）和DAC（数模转换）、键盘、点阵、液晶屏等。另外还在实例当中把单片机的定时/计数器、看门狗、中断、串行通信进行全面介绍。
远航部分包括了第15～16章。有了以上的基础和设计的积累，远航部分将最大化地展示单片机系统中常用外设如继电器、红外管、直流电动机、步进电动机、存储器等。最后一章还对常用的存储器原理以及扩展片外存储器进行了详细介绍。
特别感谢
本书是由杨欣统筹和主笔，由张延强、张铠麟、刘长焕、支瑞聪、刘杰、傅予嘉、赵东旭、赵兴东、何帅、陈伟、李哲谦、张浩翔、刘文、王正浩、陈新、昌文婷共同参与编写而完成的。本书还得到了胡文锦、赵兴东、赵东旭、傅予嘉、陈伟、何帅、AlqahtaniMahdi、HamidBidi的帮助，在此对他们的辛勤付出表示诚挚的谢意。此外，在编写过程中还得到了许多国内外专家的帮助和指导。
首先，我们感到莫大的荣幸邀请到PeterWells教授为本书作序，他是世界公认的人类医用超声之父。1964年他就与KenEvans和FrankRoss发明了第一台关节臂B超，连同后来他发明的世界第一台自动水浴超声乳腺扫描仪、导管内窥镜探头、多普勒超声传感器、灰阶图像超声等不胜枚举的开创性研究，为今天临床中普遍应用的B超、彩超、3D超声等的出现奠定了基础。他作为英国最高级巴思爵士获得者、英国皇家学会会员、英国皇家工程院院士、英国医学科学院院士、英国加的夫大学特聘教授，仍然工作在教学、科研的第一线，亲力亲为指导医学工程专业的本科生、研究生。笔者感到极大荣耀，能在博士、博士后期间与他一同工作在超声运动损伤及超声辅助癌症治疗等课题中。
其次，要感谢英国加的夫大学工程学院电子物理医学研究所首席科学家LenNokes教授的倾力帮助，他是国际足联（FIFA）以及欧洲足联（UEFA）的高级顾问医生、运动损伤研究员。作为本书的主审之一，他对本书的内容、框架进行了细心指导。他作为笔者的博士生导师，在运动损伤的诊断及治疗等医学工程研究中给予了大量的思路和精心的指导。
感谢本书的另外两位主审——北京交通大学的王玉凤和刘湘黔两位教授，他们10年来的倾力帮助与支持，都沉淀在笔者所出版的7本书中。他们事无巨细的指导还继续成为笔者出版电子类著作的动力。另外，希望用我们相继出版的图书，感谢他们在教书育人、科学研究中所倾注的精力以及过去和未来为社会创造的平凡而伟大的财富。
感谢北京交通大学生物医学工程系主任刘杰教授和北京军区总医院计量科主任刘文教授，他们近10年来在电子物理医学研究中给予的精心指导，成为了笔者多部图书的基石。笔者正是在他们所指导的诸多医学工程项目中迅速成长起来。
感谢英国帝国勋章获得者、英国皇家物理学家和科学家、英国加的夫大学特聘教授JohnWoodcock对本书诸多内容的精心指导以及对笔者科研、论文的帮助。同时，感谢英国加的夫大学临床医院的Dr.NeilPugh和Dr.DeclanColeman、英国帝国理工学院的Dr.RoyClement、伦敦大学玛丽女皇学院的Dr.DericJones和Dr.HazelScreen等的帮助。另外，对英国爱丁堡大学的Dr.PeterHoskins、英国布里斯托总医院的Dr.HaidongLiang对编纂工作的肯定与指导表示感谢。
感谢北京交通大学计算机学院院长韩臻教授、党委书记杨晓晖教授、党委副书记余亚光教授给予的支持与帮助。另外对物理系的成正维、牛原、杨甦、蔡天芳、滕永平等几位教授和“关工委”的岳兆宏教授表示最崇高的敬意。
感谢深圳职业技术学院副校长温希东教授对本书内容的指导和肯定。还要感谢宋荣、贾方亮老师在具体电路、设计思路上给予的大力帮助。
感谢英国剑桥大学的梁东方和王晓霖夫妇的帮助。并对《电子制作》、《电子测试》、《家庭影院技术》和《家电维修》杂志社的总编陈忠、社长陈晓筱、副主编杨来英、编务王雪珍等老师表示最大的感谢。此外还要感谢清华大学的韦思健教授和中国科学技术大学的赵文教授及夫人对内容的指导。感谢北京城市学院的汪仁里老师及夫人。同时对本书提供了许多宝贵建议的王淑兰老师表示感谢。
感谢梁丽丽、张晟、周萍、赵少云和雷丽明几位老师，他们对笔者的成长起了至关重要的作用。
最后，要感谢我的父母等家人；另外还要感谢挚友崔捷10多年来给予的莫大帮助。
杨欣
InstituteofMedicalEngineeringandMedicalPhysics
CardiffUniversity
UnitedKingdom
2011年2月
目录
第1篇序幕
单片机是什么？单片机有何用？如何系统学习单片机？单片机系统设计的流程是怎样的，需要掌握哪些辅助软件？本篇将针对这些问题一一阐述，为读者掀开单片机完全学习与应用的华丽序幕。
第1章单片机在哪里3
1.1■寻找单片机3
1.1.1电磁炉与单片机4
1.1.2MP3播放机与单片机5
1.1.3更多单片机5
1.2■学习单片机6
1.2.1掌握单片机基础知识6
1.2.2理解单片机系统6
1.2.3成为单片机系统设计师7
1.3■单片机之家7
1.3.1Intel8051单片机7
1.3.2PIC单片机8
1.3.3AVR单片机9
1.3.4其他单片机9
1.4■应用体验——数字温度计9
1.4.1数字温度计工作原理10
1.4.2体验数字温度计10
1.5■实例解读——装小球系统11
1.5.1需求分析11
1.5.2系统框架12
第2章如何成为单片机系统设计师13
2.1■需要准备哪些13
2.1.1综合素质13
2.1.2软件工具15
2.1.3硬件工具之一：面包板15
2.1.4硬件工具之二：万用板和印刷电路板18
2.1.5焊接工具19
2.1.6焊接方法21
2.2■单片机系统设计流程22
2.2.1需求分析22
2.2.2电路设计23
2.2.3程序设计24
2.2.4系统调试24
2.3■应用体验——单片机控制下的发光二极管25
2.3.1发光二极管工作原理25
2.3.2单片机的控制26
2.3.3体验单片机控制发光二极管26
2.4■实例解读——反应时间测试仪27
2.4.1需求分析27
2.4.2电路设计27
2.4.3程序设计28
第3章单片机系统登场30
3.1■单片机系统组成30
3.1.1单片机本身31
3.1.2系统的构成31
3.2■单片机系统抽丝剥茧32
3.2.1AT89S51单片机的“外衣”33
3.2.2AT89S51单片机的管脚34
3.2.3常见外设36
3.3■元器件插曲之一：变压器38
3.3.1变压器基础知识38
3.3.2电源变压器39
3.4■元器件插曲之二：二极管与整流40
3.4.1二极管基础知识40
3.4.2整流40
3.4.3整流全桥42
3.5■元器件插曲之三：电容43
3.5.1电容基础知识43
3.5.2电容的种类44
3.5.3电源滤波46
3.6■元器件插曲之四：三端稳压与单片机系统电源47
3.6.1三端稳压基础知识47
3.6.2单片机系统电源方案一：自制直流稳压电源48
3.6.3单片机系统电源方案二：电源适配器48
3.6.4单片机系统电源方案三：USB口供电49
3.7■元器件插曲之五：晶振与振荡器50
3.7.1晶振基础知识50
3.7.2振荡器51
3.8■诠释单片机最简系统52
3.8.1单片机最简系统52
3.8.2电源端（VCC、GND）52
3.8.3时钟信号端（XTAL1、XTAL2）53
3.8.4复位端（RST）54
3.8.5外部程序存储器访问控制端（）55
3.8.6从最简系统出发56
3.9■元器件插曲之六：电阻56
3.9.1电阻基础知识56
3.9.2电阻的参数和种类58
3.9.3电阻的分压、限流、上拉作用59
3.10■从单片机最简系统开始设计60
3.10.1发光二极管交替发光61
3.10.2程序设计61
3.10.3初见汇编语言63
3.10.4初识指令64
3.10.5立即数65
3.11■应用体验——发光二极管的交替发光66
3.11.1控制交替发光的原理66
3.11.2体验交替发光66
3.12■元器件插曲之七：开关66
3.12.1开关基础知识66
3.12.2常用开关67
3.13■实例解读——与发光二极管的交互68
3.13.1需求分析68
3.13.2电路设计69
3.13.3程序设计69
3.13.4延时子程序72
第4章单片机系统设计辅助软件74
4.1■Proteus单片机系统仿真软件74
4.1.1Proteus软件界面75
4.1.2用Proteus仿真76
4.2■&micro;Vision单片机程序开发82
4.2.1&micro;Vision软件界面83
4.2.2新建和保存项目83
4.2.3向项目中添加文件84
4.2.4汇编程序，生成执行代码87
4.2.5生成下载到单片机的执行代码HEX文件88
4.3■&micro;Vision的调试及仿真功能89
4.3.1调试界面89
4.3.2虚拟逻辑分析仪89
4.4■应用体验——把程序下载到单片机里92
4.4.1下载器与单片机92
4.4.2体验下载过程92
4.5■实例解读——流水灯93
4.5.1需求分析93
4.5.2电路设计94
4.5.3软件设计94
第2篇揭密
单片机的内部结构是怎样的？单片机开发经常会用到哪些电子技术和元器件知识？还有那困扰了很多人的单片机编程语言……本篇将生动地通过诸多实例带出单片机的基础知识，在遇到相关模电、数电、元器件知识时会有及时的补充说明，带领读者一点点揭开单片机的神秘面纱。
第5章单片机的触角——I/O口101
5.1■何谓I/O口101
5.1.1I/O口的功能101
5.1.2I/O口与单片机的关系102
5.1.3I/O口的操作103
5.2■元器件插曲之八：场效应管104
5.2.1JFET105
5.2.2MOSFET106
5.3■元器件插曲之九：逻辑门106
5.3.1非门106
5.3.2或门107
5.3.3或非门107
5.3.4与门107
5.3.5与非门107
5.3.6异或门108
5.3.7缓冲器108
5.4■元器件插曲之十：锁存器与触发器108
5.4.1门控D锁存器109
5.4.2边沿D触发器109
5.5■I/O口结构探密110
5.5.1P1口110
5.5.2P3口110
5.5.3P0口111
5.5.4P2口112
5.5.5I/O口小结112
5.6■应用体验——控制流水灯112
5.6.1功能与电路113
5.6.2体验控制流水灯113
5.7■实例解读——晃晃灯113
5.7.1原理分析114
5.7.2需求分析114
5.7.3电路设计114
5.7.4软件设计116
第6章七段数码管显示118
6.1■二进制与数据118
6.1.1二进制与数字118
6.1.2二进制与语音119
6.1.3二进制与图像120
6.2■元器件插曲之十一：七段数码管121
6.2.1七段数码管原理121
6.2.2七段数码管显示数字122
6.3■应用体验——计时器123
6.3.1功能与电路124
6.3.2体验计时器124
6.4■元器件插曲之十二：蜂鸣器125
6.4.1蜂鸣器125
6.4.2蜂鸣器如何工作125
6.5■元器件插曲之十三：三极管及三极管开关125
6.5.1三极管基础126
6.5.2三极管的直流放大特性128
6.5.3三极管的直流增益128
6.5.4三极管的电流关系式129
6.5.5三极管开关129
6.6■实例解读——带声音提示的秒表130
6.6.1需求分析130
6.6.2电路设计130
6.6.3开关抖动的处理130
6.6.4计时中数字的增加133
6.6.5软件设计134
第7章解剖单片机136
7.1■单片机的功耗136
7.1.1运行功耗137
7.1.2I/O口驱动功耗137
7.1.3空闲模式137
7.1.4待机模式138
7.2■单片机内部结构138
7.2.1从I/O口到内部结构138
7.2.2数据在内部交换139
7.2.3算术逻辑单元（ALU）140
7.2.4在&micro;Vision中观察寄存器141
7.3■单片机的程序存储器142
7.3.1整体结构143
7.3.2程序下载到哪里144
7.3.3片内程序存储器144
7.3.4程序计数器PC145
7.3.5是片内还是片外程序存储器145
7.3.6在&micro;Vision中观察程序存储器147
7.4■单片机的数据存储器149
7.4.1片内数据存储器149
7.4.2工作寄存器区（00H～1FH）150
7.4.3位寻址区（20H～2FH）151
7.4.4开放区（30H～7FH）153
7.4.5在&micro;Vision中观察数据存储器153
7.5■单片机的特殊功能寄存器155
7.5.1特殊功能寄存器分布图155
7.5.2特殊功能寄存器的功能156
7.5.3特殊功能寄存器的字节操作158
7.5.4特殊功能寄存器的位操作158
7.5.5在&micro;Vision中观察特殊功能寄存器159
7.6■应用体验——用取表方式实现流水灯162
7.6.1取表法162
7.6.2取表法小结164
7.6.3体验流水灯165
7.7■实例解读——直接驱动七段数码管165
7.7.1需求分析165
7.7.2电路设计165
7.7.3软件设计166
第8章单片机与汇编指令168
8.1■汇编语言真面目168
8.1.1汇编语言与高级语言169
8.1.2从汇编程序到执行代码169
8.1.3伪指令170
8.2■指令的执行173
8.2.1振荡周期、机器周期、指令周期173
8.2.2指令的执行174
8.3■寻址方式175
8.3.1直接寻址175
8.3.2间接寻址175
8.3.3寄存器寻址176
8.3.4寄存器特征寻址177
8.3.5立即寻址177
8.3.6变址寻址177
8.4■指令分类177
8.4.1指令概述178
8.4.2指令的长度178
8.5■算术运算指令179
8.5.1加法指令——ADDA,<src-byte>179
8.5.2带进位的加法指令——ADDCA,<src-byte>180
8.5.3带借位的减法指令——SUBBA,<src-byte>181
8.5.4自增/自减指令——INC<byte>/DEC<byte>181
8.5.5乘法指令——MULAB182
8.5.6除法指令——DIVAB183
8.5.7十进制调整指令——DAA183
8.6■逻辑运算指令184
8.6.1与操作——ANL<dest-byte>,<src-byte>184
8.6.2或操作——ORL<dest-byte>,<src-byte>185
8.6.3异或操作——XRL<dest-byte>,<src-byte>186
8.6.4累加器A清0操作——CLRA186
8.6.5累加器A取反操作——CPLA187
8.6.6累加器A位移动操作——RL、RLC、RR、RRC187
8.6.7累加器A高低位交换操作——SWAPA188
8.7■数据装载指令189
8.7.1片内数据装载指令——MOV<dest>,<src>189
8.7.2数据指针DPTR装载指令——MOVDPTR,#data16190
8.7.3堆栈指令——PUSH、POP191
8.7.4数据交换指令——XCH、XCHD194
8.7.5片外数据装载指令——MOVX<dest>,<src>195
8.7.6查表指令——MOVC<dest>,<src>197
8.8■布尔指令198
8.8.1清0、置1、取反操作——CLR、SETB、CPL198
8.8.2布尔逻辑运算指令——ANL、ORL199
8.8.3位数据装载指令——MOV<dest-bit>,<src-bit>200
8.8.4布尔跳转指令——JC、JNC、JB、JNB、JBC200
8.9■调用子程序指令201
8.9.1长调用指令——LCALL201
8.9.2绝对调用指令——ACALL202
8.9.3返回指令——RET、RETI203
8.10■跳转与循环指令203
8.10.1无条件跳转指令——LJMP、AJMP、SJMP、JMP203
8.10.2条件跳转指令——JZ、JNZ204
8.10.3比较跳转指令——CJNE<dest-byte>,<src-byte>,rel205
8.10.4循环指令——DJNZ<byte>,<rel-addr>207
8.10.5无操作指令——NOP208
8.11■应用体验——七段数码管的串行控制技术208
8.11.1串行与并行传输208
8.11.2串行控制七段数码管209
8.11.3程序设计210
8.12■实例解读——指令应用（程序）实例211
8.12.1数据求和211
8.12.2减法与二进制的二补数212
8.12.3异或操作指令XRL用于比较寄存器数值213
8.12.4利用布尔指令产生矩形波信号214
8.12.5布尔指令应用于控制215
第3篇解密
之所以单片机能成为控制核心，设计出包罗万象的应用系统来，是因为开发者利用了单片机提供的种种功能及各种外设。本篇将介绍单片机的各种功能，加上诸如传感器、模数转换、扫描显示、串行、中断的应用思维，结合更多的元器件、电子电路知识，为读者逐个解开实际的单片机系统的秘密。
第9章传感器及模拟信号的处理219
9.1■元器件插曲之十四：运算放大器219
9.1.1运算放大器基础220
9.1.2运算放大器的参数221
9.1.3运算放大器的黄金守则222
9.2■基础运放电路223
9.2.1同相放大器223
9.2.2反相放大器224
9.2.3跟随器225
9.2.4向运放进行单电源供电226
9.3■比较器226
9.3.1过零比较器227
9.3.2非过零比较器227
9.3.3迟滞比较器（施密特触发器）228
9.4■具有运算功能的运放电路229
9.4.1加法放大器229
9.4.2单运放差分放大器230
9.4.3仪表放大器232
9.5■滤波器234
9.5.1高通滤波器234
9.5.2低通滤波器235
9.5.3带通滤波器236
9.5.4带阻滤波器238
9.6■传感器238
9.6.1压力传感器239
9.6.2光电传感器242
9.6.3温度传感器243
9.7■应用体验——幅频变换245
9.7.1MPX4115A压力传感器245
9.7.2幅频变换器247
9.8■实例解读——磁场强度的测量248
9.8.1霍尔传感器与磁场的测量248
9.8.2线性霍尔传感器3503248
9.8.3检测电路250
第10章ADC和DAC251
10.1■模数转换251
10.1.1从模拟信号到数字信号251
10.1.2电平指示器中的ADC253
10.2■元器件插曲之十五：ADC0804255
10.2.1管脚名称及功能255
10.2.2使能控制端255
10.2.3转换控制端256
10.2.4时钟信号256
10.2.5模拟输入电压范围256
10.2.6转换时间256
10.2.7接地257
10.2.8参考电平与分辨率257
10.3■ADC与单片机258
10.3.1单片机控制ADC0804258
10.3.2程序设计259
10.4■模拟信号的调理260
10.4.1电平变换电路260
10.4.2峰值检测器261
10.4.3绝对值电路262
10.4.4微分器和积分器263
10.4.5采样保持电路264
10.4.6接地问题266
10.5■数模转换268
10.5.1数模转换基础269
10.5.2DAC0808269
10.5.3DAC的程序控制270
10.6■如何选择ADC271
10.6.1常用ADC简介271
10.6.2如何确定位数273
10.6.3如何确定转换速率273
10.6.4如何确定是否需要采样保持器273
10.6.5如何确定工作电压和参考电平274
10.7■如何选择DAC274
10.7.1如何确定分辨率274
10.7.2如何确定线性度274
10.7.3如何确定转换精度274
10.7.4如何理解建立时间275
10.7.5按参数条件选择275
10.8■应用体验——DAC正弦波
发生器276
10.8.1正弦信号公式276
10.8.2正弦波发生程序277
10.9■实例解读——数字温控系统278
10.9.1系统功能与硬件设计278
10.9.2程序设计278
第11章时间的计算283
11.1■定时与计数283
11.1.1什么是定时283
11.1.2什么是计数284
11.1.3单片机的Timer285
11.2■与Timer有关的寄存器285
11.2.1Timer实现的延时285
11.2.2Timer模式控制寄存器TMOD286
11.2.3Timer寄存器288
11.2.4Timer控制寄存器TCON288
11.2.5Timer用做定时/计数器小结288
11.3■Timer的工作模式1289
11.3.1模式1的特点289
11.3.2模式1的设置290
11.3.3模式1的计数初始值291
11.3.4设计模式1的计数初始值292
11.3.5利用Timer进行长时间定时294
11.4■Timer的工作模式0295
11.4.1模式0的特点295
11.4.2设计模式0的计数初始值296
11.5■Timer的工作模式2297
11.5.1模式2的特点297
11.5.2模式2的设置298
11.5.3设计模式2的计数初始值300
11.6■Timer的工作模式3300
11.6.1模式3的特点300
11.6.2模式3的设置301
11.6.3设计模式3的计数初始值303
11.6.4在Vision中观察Timer303
11.7■计数器305
11.7.1计数器的应用305
11.7.2计数器的设置306
11.7.3在Vision中操作计数器307
11.7.4计数器的计数初始值设定308
11.7.5各种模式下的计数器308
11.7.6计数脉冲的要求311
11.7.7TMOD寄存器的门控位312
11.8■看门狗313
11.8.1什么是看门狗313
11.8.2单片机的内置看门狗313
11.9■应用体验——“叮咚”门铃315
11.9.1功能及电路315
11.9.2“叮咚”声发生程序315
11.10■实例解读——频率计318
11.10.1利用计数器设计频率计318
11.10.2频率计的程序318
第12章扫描与显示322
12.1■扫描多位七段数码管322
12.1.1动态扫描的原理323
12.1.2动态扫描操作指南325
12.1.3动态扫描方式程序326
12.2■扫描键盘327
12.2.1什么是键盘327
12.2.2键盘的电路结构328
12.2.3键盘按键判断程序329
12.2.4键盘编码器芯片74C922332
12.3■扫描发光二极管点阵334
12.3.1显示原理334
12.3.2发光二极管点阵器件结构335
12.3.3发光二极管点阵与单片机电路336
12.3.4点阵显示程序336
12.3.5点阵屏幕的应用338
12.3.6点阵应用中的问题342
12.4■液晶屏344
12.4.1液晶屏的应用344
12.4.2字符液晶屏345
12.4.3字符液晶屏显示原理346
12.4.4单片机与字符液晶屏的接口347
12.4.5字符液晶屏的控制程序349
12.4.6图形点阵液晶屏显示原理352
12.4.7单片机与图形点阵液晶屏的接口353
12.4.8图形点阵液晶屏的控制程序355
12.5■应用体验——电子时钟369
12.5.1功能及电路369
12.5.2时钟程序370
12.6■实例解读——带汉字字库的液晶屏374
12.6.1带汉字字库的液晶屏375
12.6.2带汉字字库的液晶屏管脚376
12.6.3单片机与带汉字字库的液晶屏377
第13章串行沟通379
13.1■串行还是并行379
13.1.1串行与并行的比喻379
13.1.2串行与并行器件380
13.2■单片机串行数据交换381
13.2.1AT89S51的串行口382
13.2.2串行流水灯383
13.2.3串行接收数据385
13.3■与串行通信有关的寄存器387
13.3.1串行口缓冲寄存器SBUF387
13.3.2串行口控制寄存器SCON387
13.4■串行口工作模式389
13.4.1模式0389
13.4.2模式1390
13.4.3模式2392
13.4.4模式3392
13.5■应用体验——双机通信393
13.5.1双机通信的应用393
13.5.2双机通信的通信链路393
13.5.3排队呼叫系统395
13.6■普通计算机的串行通信口398
13.6.1计算机串行口398
13.6.2本机串口实验400
13.6.3用VisualBasic设计串口通信程序401
13.7■实例解读——网络密码锁406
13.7.1串行口电平转换芯片406
13.7.2单片机与计算机串行通信实验408
13.7.3网络密码锁410
第14章中断的魅力416
14.1■“打扰”单片机416
14.1.1外部中断一例417
14.1.2中断服务的指挥——中断向量表418
14.2■中断的控制及处理419
14.2.1中断的响应及处理419
14.2.2中断使能寄存器IE421
14.3■外部中断0和外部中断1422
14.3.1外部中断信号输入端和422
14.3.2外部中断的低电平触发423
14.3.3外部中断的下降沿触发424
14.3.4低电平与下降沿触发的区分426
14.4■Timer0中断和Timer1中断426
14.3.1Timer和Timer中断427
14.3.2利用Timer中断作信号发生器427
14.5■串行通信中断428
14.5.1串行通信中断应用429
14.5.2发送中断和接收中断的判断429
14.6■应用体验——解放了的CPU431
14.6.1轮询与中断432
14.6.2中断优先级433
14.6.3利用Timer中断实现拉幕式显示436
14.7■实例解读——电子琴438
14.7.1音符与频率438
14.7.2电子琴电路设计439
14.7.3电子琴程序设计440
第4篇远航
为帮助读者设计出更为丰富的单片机系统，解决复杂的实际问题，更多的外设（如电机、各类存储器、继电器、红外管等）都在本篇的一个个实例中展示出来。通过本篇，除了学到贴近实际的单片机综合系统开发本领外，还希望读者学会站在一个新的高度来思考未来的单片机系统设计，能够开始在单片机系统设计与开发中独自远航。
第15章单片机控制外设的本领447
15.1■元器件插曲之十六：继电器447
15.1.1继电器基础知识448
15.1.2单片机与继电器448
15.2■元器件插曲之十七：红外发光二极管449
15.2.1红外发光二极管基础知识450
15.2.2红外发光二极管的应用450
15.2.3红外计数器451
15.3■元器件插曲之十八：直流电动机453
15.3.1直流电动机基础知识453
15.3.2直流电动机的通断控制454
15.4■什么是PWM（脉宽调制）454
15.4.1平均电压概念455
15.4.2PWM与平均电压456
15.4.3产生PWM信号的方法457
15.5■直流电动机的运行控制459
15.5.1PWM信号与直流电动机459
15.5.2直流电动机的转速、转向控制460
15.5.3单片机控制直流电动机462
15.5.4直流电动机的全面控制463
15.6■元器件插曲之十九：步进电动机466
15.6.1步进电动机基础知识466
15.6.2步进电动机的种类467
15.7■步进电动机的运行控制468
15.7.1步进电动机的控制方法468
15.7.2步进电动机与单片机470
15.8■应用体验——用PWM信号控制直流电动机472
15.8.1L298驱动直流电动机473
15.8.2直流电动机控制程序473
15.9■实例解读——太阳跟随系统476
15.9.1为了获得最大的太阳光477
15.9.2系统电路477
15.9.3程序设计478
第16章数据的保存483
16.1■片内与片外存储器483
16.1.1为什么要有片内、片外之分484
16.1.2电子密码锁的片外存储器484
16.1.3判断片外数据存储器或片外程序存储器485
16.1.4存储器容量的描述486
16.1.5存储器组织487
16.1.6访问速度488
16.1.7存储器的地址488
16.2■存储器操作及家族成员489
16.2.1读存储器与写存储器489
16.2.2存储器两大家族：RAM和ROM490
16.3■RAMs491
16.3.1RAM家族491
16.3.2SRAM的存储单元491
16.3.3ASRAM（异步SRAM）492
16.3.4SBSRAM（同步爆发式SRAM）495
16.3.5Cache存储器（高速缓冲存储器）496
16.3.6DRAM的存储单元496
16.4■ROMs499
16.4.1ROM家族499
16.4.2MaskROM499
16.4.3PROM501
16.4.4UVEPROM502
16.4.5EEPROM（E2PROM）503
16.4.6Flash504
16.4.7Flash存储器与其他存储器的比较506
16.5■单片机与片外程序存储器507
16.5.1片外程序存储器507
16.5.2单片机的端508
16.5.3单片机的P0和P2508
16.5.4单片机的端509
16.5.5单片机的端510
16.6■单片机与片外数据存储器510
16.6.1片外数据存储器511
16.6.2EEPROM作片外数据存储器511
16.6.3SRAM作片外数据存储器514
16.7■应用体验——扩展串行片外数据存储器515
16.7.1串行EEPROM516
16.7.2单片机与串行EEPROM接口516
16.7.3串行EEPROM的启动、停止操作517
16.7.4串行EEPROM的写操作518
16.7.5串行EEPROM的读操作520
16.7.6串行EEPROM的读/写程序521
16.8■实例解读——GPS（全球卫星定位系统）527
16.8.1身边的GPS设备527
16.8.2GPS模块528
16.8.3NMEA协议529
16.8.4单片机与GPS模块530
附录A光盘内容介绍532
附录B51单片机指令集534
附录C指令的执行代码表538
附录DProteus软件图标命令545
附录EAT89S51单片机特殊功能寄存器一览表546
附录F51单片机汇编程序保留字555
附录GASCII码表558
附录H主流电子元器件生产商网址562
附录I如何使用Windows计算器进行数制转换564
附录J钢琴琴键的发音频率566
附录K常用低容量存储器器件表（RAM、ROM）568
附录LNMEA协议消息字段含义570
参考文献573