内容简介 本书由浅至深系统地向读者介绍了单片机的软硬件结构、程序设计、仿真和调试方法,从“实用”的角度出发,着重介绍了诸如通道控制、显示、键盘、通信、A/D、D/A等多个模块的具体实现方法以及目前流行的SPI、I2C总线接口的基本用法,是作者多年来对单片机技术开发、教学工作的一次比较系统的总结。书中所有代码都经过作者上机验证,有的就是实际工程的范例,相信读者能从这些范例中得到启迪。根据本书,读者在系统的学习之后,应该可以独立设计出一个真正符合现场环境的应用系统,达到从“实验”到“实用”的目的。前言 近几年来,单片机技术的发展已达到了相当高的水平,一些新型单片机层出不穷,技术日新月异。越来越多的电子爱好者都想在这一新型领域有所作为,有关单片机的书籍和资料也很多。然而令众多初学者困惑的是:如何才能根据现场环境设计出一个具体的应用系统,而不是仅仅停留在会控制一组发光二极管,能编写一个简单的程序让单片机奏出一段音乐上。如何才能真正学好单片机?我从作为一个有着十几年嵌入式系统开发经验的单片机开发工程师的角度向读者提以下几点建议。 重在实践提出“重在实践”,是因为单片机开发是一门实践性很强的技术。一个成功的应用系统,包括软件和硬件的设计都是经过大量的试验完成的。试问,一个连电烙铁都不会使用的人如何能学好单片机呢?因此要想真正入门单片机,首先还是要建立一个“实时仿真”的应用环境,最好有一套可以随时动手的“在线实时仿真”系统,如“仿真机”、应用试验板、下载实验仪等。在“实时仿真”系统环境中进行在线试验,会使初学者有较为直观的感性认识。 贵在总结一个成熟可靠的单片机应用系统软件是由许多不同功能的子程序组合在一起的,而这些子程序往往是通用的,如键盘、显示、通信子程序等。将这些子程序通过不同的主程序灵活地组织起来,便可构成多个功能完全不同的应用系统。因此,不断在实践中总结和积累,是初学者成为一名单片机高手的必由之路。许多单片机爱好者几乎都有这样的观点:理论是基础,经验才是最为宝贵的财富。这些宝贵的经验正是他们在实践中不断总结的结晶。 掌握相关的基础知识要想学好单片机,仅仅掌握单片机的知识是远远不够的,因为一个成功的单片机应用系统并不是一个独立的、封闭的系统。举个例子,在实验室中,编写了一段程序,可以灵活自如地通过单片机的I/O口控制一组发光二极管,但要同样通过这几个端口去控制一组发动机或一个家用电器,也许会觉得无从下手。这时候数字和模拟电路的基础知识便显得尤为重要了。它们在一个单片机应用系统内不是分离的、独立的,而是相辅相成的关系。一个连模拟电路基础知识都不太懂的人是肯定学不好单片机的。另外,本书的内容并没有过多地涉及单片机的内部结构,而是偏重单片机技术的应用,在“实用”二字上下功夫。它通过利用SST89系列单片机强大的IAP和ISP功能,以SST89C58为核心设计的仿真下载实验仪为主导线,可使读者在不具备专业仿真器的情况下完成51系列的绝大多数单片机在线调试。首先从最基本的I/O接口、键盘、显示、通信讲起,之后是A/D转换并介绍一些近年来比较流行的新技术,如I2 C总线等,其中又重点介绍了目前流行的基于Windows环境下的单片机集成开发环境μVision。它的最大特点之一是对C语言的完美支持。考虑到读者的实际水平和接受能力,本书多数例程都给出了汇编和C语言两种源程序。当然,不可否认的是,在读者真正掌握了一种单片机之后,就会发现,采用C高级语言设计程序将是单片机技术今后发展的方向。本书是以2002.1至2003.10刊登在《电子世界》杂志上的“单片机应用技术讲座”为基础,并补充了部分内容编写完成的,是我多年来对单片机技术开发、教学工作的一次比较系统的总结。书中所有代码都经过我上机验证,有的就是实际工程的范例,相信读者能从这些范例中得到启迪。对于本书的出版,首先要感谢北京航空航天大学的何立民教授,他在百忙之中对该书的初稿进行了审校,并将具体修改意见通过编辑部予以转告,使得该书得以顺利出版;其次,还要特别致谢《电子世界》杂志社主编戴茗女士,她亲自为该书撰写序言以及不遗余力地在初学者特别是大学生读者中推广、普及单片机的知识;最后,还要感谢我的家人,妻子李冰承担了繁琐的书稿抄写、打印工作;还有我的父母,他们一直是我从事这项工作的坚强后盾和动力源泉。严天峰2005年5月于兰州交通大学《电子世界》杂志社网址:www.eleworld.com作者信箱:yantianfeng@163.com