本书的目的是帮助初学者学习使用单片机。那么学习单片机技术是否有好的方法?这里作者总结多年的工程实践和教学体会,先与读者分享一下学习经验。
1.分享经验
首先,需做好基础知识的准备。基础知识包括模拟电路、数字电路和C语言知识。在学习单片机之前,应先温习这些基础知识。
单片机的硬件电路大多数属于数字电路,如果数字电路基础扎实,对复杂的单片机硬件结构和原理就能容易理解,就能轻松地迈开学习的第一步。因此,如果你觉得单片机很难,那就应该先去重温数字电路,搞清楚触发器、寄存器、门电路、CMOS电路、时序逻辑和时序图、进制转换等基础知识。掌握了这些基础知识之后再去看单片机的结构和原理,你就会大彻大悟、信心倍增。模拟电路是电子技术的基础,主要内容是学习电阻、电容、电感、二极管、三极管、场效应管及放大器等模拟器件的工作原理和在电路中的作用。扎实的模拟电路基础可以让你容易看懂别人设计的电路,也能使你设计的电路更可靠。同时,单片机的学习离不开编程,在所有的程序设计中,C语言的运用最为广泛。C语言知识并不难,需要掌握的知识就那么几种数据类型和几个控制语句。但可别小看这几种数据类型和几个控制语句,用它们可以处理各种形式的数据和非常复杂的逻辑关系。
扎实的电子技术基础和C语言基础,会让你学习单片机时得心应手。当单片机依照你的想法和设计去执行指令,实现预期结果的时候,成就感会让你信心十足地投入到单片机的世界里,未来的单片机专家就是你。
其次,要通过实践积累经验。单片机的学习具有很强的实践性,是一门很注重实际动手操作的技术学科,不动手实践是学不会单片机的。因此,实践才是真正学习单片机的过程。
实践中要有一套完整的学习开发工具,即必须有一台计算机、一套单片机开发板、视频教程和单片机教材。计算机上要安装KeilC51集成开发软件,用来编写和编译程序,并将程序代码下载到单片机上;开发板用来运行单片机程序,验证实际效果;视频教程就是手把手地教你使用单片机开发环境、单片机编程和调试。对于单片机初学者来说,视频教程必须看,否则,即使把教材看了几遍,还是不知道如何下手;单片机教材是理论学习资料,备忘备查。初学者为了节约成本和时间,可以先用Proteus软件仿真调试,熟悉之后,再使用开发板调试程序。
◆单片机原理与应用系统设计前言软件编程要注重理论和实践相结合,效果会更好。看到案例题目先试着构思自己的编程思路,然后再看教材或视频教程里的代码,研究人家的编程思路以及与自己思路的差异;接下来是亲自动手编写程序,对有疑问的地方试着按照自己的思路修改程序,比较程序运行效果,领会其中的奥妙。还可以在原有程序的基础上进行改进和拓展,使其功能更强大。此外,自己应该找些项目来做,以巩固所学的知识和积累更多的经验。
在实践中要与同行交流。在单片机学习过程中,每个人都会遇到无数问题,如果向有经验的人虚心求教,就会少走许多弯路,节省很多时间。
最后,研究硬件设计,实现产品开发。学习单片机的最终目的是做产品开发,产品就是一个软硬件结合的控制系统。所以,硬件设计是学习单片机技术的必学内容。当你的单片机编程水平有提高后,就应该去研究单片机硬件系统设计。硬件设计包括电路原理设计和电路板(即PCB板)设计。
电路原理设计涉及各种芯片的应用,而芯片的典型应用在芯片数据手册(Datasheet)中都能找到答案。电子技术领域的第一手资料就是Datasheet,而且几乎都是全英文的,从Datasheet里所获得的知识,可能是在教科书、网络文档和课外读物中很少见到的。虽然有些资料也都是在Datasheet的基础上撰写的,但内容不全面,甚至存在翻译上的遗漏和错误。所以良好的英文阅读能力也是学习单片机技术不可缺少的。PCB板的设计相对简单,只要懂得使用PCB板设计软件Protel或AltiumDesigner就没问题了。但要想设计的板子布局美观、布线合理,还需要在实践中不断学习。
具备一定的KeilC51环境下的单片机编程经验、会使用Protel软件或AltiumDesigner软件设计硬件电路以及良好的英文阅读能力,你就是遇强则强的单片机高手了。
2.本书内容
多年来,MCS51系列单片机一直是学习单片机技术的主要教学平台,在嵌入式技术高速发展的大环境下,单片机技术课程已经不再是培养电子工程师课程体系的最终环节,单片机的教学要为后续学习嵌入式系统打下良好的基础。鉴于此,本书在编写过程中,除了论述MCS51单片机的基本原理、系统结构、内部资源、指令系统、常用接口及其外部扩展、应用系统设计等内容基础上,增加了丰富的能够实际演示的单片机应用实例、嵌入式操作系统在MCS51单片机系统中应用的方法和实例,以及自主设计的便携式单片机学习板的软硬件设计的内容,从而强化学习者的单片机软硬件系统的整体设计意识和设计能力,也为嵌入式技术的学习打下良好的基础。
3.本书特色
本书的特色体现在以下几个方面。
1)强调动手实践
实践是学好单片机技术的必经之路。本书详细介绍了KeilμVision集成开发环境下进行汇编语言程序和C51程序开发的过程;书中所有案例程序均在KeilμVision环境下调试通过,不是纸上谈兵,而是实战演习。
2)强调单片机应用系统的软硬件整体设计
案例的编写具有完整性、系统性和工程性。
所有案例均给出可实施的系统级设计资料,包括完整的可实现电路板布线的硬件电路原理图,而不是电路示意图;完整的KeilμVision环境下调试通过的软件源程序工程代码,而不是程序段或伪代码。
所有案例均给出仿真实现过程和结果,即基于Proteus环境的系统仿真实现结果。
给出若干完整的单片机应用系统实例。
设计有便携式单片机学习板,给出了该学习板的protel电路原理图设计和PCB板设计资料,便于读者进行工程实践。书中单片机应用系统案例均可在该学习板上实现。
3)为嵌入式系统学习打好基础
嵌入式系统是单片机技术发展的高级阶段,因此学习单片机要做好进一步学习嵌入式系统的知识准备。一方面是加强C语言程序设计能力;另一方面是加强嵌入式操作系统在MCS51单片机系统上应用的内容介绍。此外,本书还介绍了嵌入式操作系统在MCS51单片机系统中应用的方法和实例。
4)配套资源丰富
本书配有多媒体资料,其中包含电子课件、所有相关例程源代码、习题解答及编程题的程序源代码,并且在程序的关键部分加以注释,既适合作为教材供教师和学生使用,也适合自学。
4.致谢
本书由沈阳理工大学马秀丽、周越、王红共同编写。本书第1、2、3、4、5章由马秀丽编写,第6、7、8、9、10章由周越和王红编写,第11章由马秀丽和周越编写,王红霞、虞闯、扬雨彤参加了附录和部分正文的编写工作。最后由马秀丽审阅并统稿完成。感谢本书所列参考文献的作者,他们的工作给了我们很大的帮助和启发。感谢为本书出版付出辛勤劳动的清华大学出版社的工作人员。感谢读者选用本书。
尽管全体参编人员竭心尽力,但限于自身水平,难免书中出现遗漏或错误,恳请广大读者不吝指正,同时欢迎您对本书内容提出任何宝贵建议,我们将非常感谢。
编者