前言
51系列单片机以价格低廉、功耗低、体积小、兼容性好等优势在一些对计算能力要求不高的嵌入式应用中得到了广泛应用,同时因其结构简单、易于学习掌握,常常作为嵌入式初学者的入门学习对象,利于初学者对嵌入式开发基本流程、硬件底层工作机制、常用外设接口等知识的理解和应用。
本书为学习51单片机应运而生,避免说教式的知识传授,将理论与应用紧密结合,力图让读者在学习51单片机基本知识的基础上掌握常规外设的使用,最终能够设计应用系统。为达到该目的,本书所有知识点的设置都是以应用为目的的。通过一系列的应用反刍基本理论,实时引入循环轮询多任务思想,让读者潜移默化地掌握系统集成的基本技能,避免出现只会做独立功能却无法实现功能集成的尴尬。
本书思路清晰、备注完整的示例代码降低了代码理解难度,为初学者反刍基本知识提供了直接驱动力;以修改示例代码实现功能提升或功能变更的练习设置降低了编码难度,提升了编码成就感,牢牢抓住读者的学习兴趣;一系列渐进式练习可以让读者一步步提升编码能力,在不知不觉中领悟多任务编程诀窍,为后期挥洒自如地编写代码提供前期准备。
本书力图做到语言简明易懂,对于一些专业性较强(特别是计算机组成原理和操作系统的相关知识)的词汇或概念,尽量加以注释降低理解难度。因此,对于非计算机专业的读者来说,使用本书学习51单片机不会因缺乏专业知识而感到困惑。对于计算机专业的读者来说,本书的一些理论知识或许已经掌握,所以阅读时会感到更加轻松。
本书假设读者已有C语言编程基础,同时还掌握了一定的电路相关常识。请读者在阅读本书前确保自身已掌握C语言程序结构、变量、数组、函数、指针、结构体等相关知识。要求的电路基本常识主要有电容、电阻、二极管、三极管等,即使没有学过电路相关课程也不会影响对本书内容的理解。但作为嵌入式开发人员来说,基本的电路常识是必需的。因此在遇到一些不太清楚的电路常识时,请读者自行查阅相关资料。
本书的目的在于51单片机基本知识的掌握及应用,但嵌入式开发本身涉及的知识非常庞杂,对于一些不影响课程本身理解的知识,本书都以简单介绍的方式讲述,并在适当位置提示读者自行查阅相关资料。
经过一年的嵌入式编码经历、数年的教学和潜心研究、数月的编撰修改,本书才得以成型,希望为还在黑暗中摸索的您带来简洁明了的指引,让您的嵌入式学习之路少一些坎坷。
由于编者水平有限,不妥之处在所难免,恳请各位专家、同行和读者批评指正,同时也欢迎感兴趣的读者来信交流。
编者2020年6月2日