- 学练一本通:51单片机应用技术
- 陈宏希主编
- 1357字
- 2020-08-28 03:39:26
1.3 单片机应用系统的硬件与软件开发特点
如图1-2所示,单片机应用系统包括硬件系统和软件系统,对应地,单片机应用系统的开发,也主要包括硬件部分开发和软件部分开发。实际工作中,当软件和硬件开发工作完成之后,还要将软件开发生成的.hex文件下载(俗称“烧片)到单片机的程序存储器ROM中。由于下载烧片工作一般使用专门的设备(如编程器)来完成,因此操作比较简单,使用者只要正确操作该设备及相关软件,一般都能成功下载烧片,所以在单片机应用系统的开发流程中,下载烧片这一开发环节往往被淡化或者忽略不提。本书沿袭惯例,对下载烧片环节不做过多说明,有兴趣的读者请参看本书附录B或其他资料。此处专门提出这一环节,只是希望能引起读者的注意,不要忘记最后这一环节。
再说单片机开发中的软件和硬件,可以说,硬件是整个应用系统的基础,而软件则依赖于系统的硬件。在硬件不再改变的条件下,软件程序的改变,可以部分改变系统的功能。但从整体而言,单片机应用系统的开发,本是一个“软硬兼施”的过程,软件和硬件需要互相弥补,密切配合。部分用硬件不能实现或者不便实现的功能,可以考虑用软件去补充或实现;同样道理,选择适当的硬件,也可以弥补软件功能上的缺憾或不足,二者相得益彰,互相配合,才能使任务最终实现。
就单片机应用系统的开发流程而言,硬件和软件在开发次序方面,原则上无先后之分,先开发哪一个都可以,有时二者还可以同步进行设计和开发。但考虑到硬件是基础,所以通常情况下是先开发硬件,再开发软件。
对于硬件部分的开发,简言之就是设计和加工电子线路板,或者手动焊接电子线路板。具体而言,硬件部分的开发绝非易事。首先是硬件电路所用元器件种类繁多,特性各异,全部掌握或了解实属不大可能;再次,硬件电路的设计开发需要很高的设计技巧,绝非一日之功可以成就。本书作为单片机初学者的入门教材,对后续各章节中列举的各个实例,针对不同的任务要求,直接给出了硬件电路图,并对部分主要和重要元器件的特性和功能,也做了详细介绍,方便初学者参考学习并逐渐积累硬件设计的经验,以便日后能自行设计较复杂的硬件电路。
相对于硬件部分的开发,软件部分的开发则较为灵活。正如前面所述,开发语言可以选择汇编语言,也可以选择C语言,还可以选择汇编语言和C语言混合编程。本书主要选用的是C语言,开发环境则选用Keil μVision3。需要特别说明的是,在软件开发部分,开发流程几乎是固定不变的,如图1-4所示,主要包括工程建立、源程序编写和编译调试三个步骤;软件开发的结果是生成扩展名为.hex的文件,该文件被用于下载或者烧片到单片机的程序存储器ROM中,供单片机上电后再读出来执行,从而驱动或者控制外部设备按照预定的要求正常工作。从软件开发的流程可见,针对不同的项目任务,编写的源程序不大相同,其余步骤则基本固定不变。与硬件开发的处理思路一样,本书对于后续各章节中列举的各个实例,针对不同的任务要求,直接给出源程序清单,对主要和重要的功能模块,给予解释和说明,供初学者参考学习,而软件开发过程中的其他步骤则一概简化或略去,重点放在功能实现和源程序的编写上,其他与Keil相关的软件操作则被淡化,只因这些操作和步骤基本上是固定不变的。
鉴于以上概述,以下仅就软件开发的具体流程做详细说明。图1-5 是在图1-4的基础上,细化其中的三个主要步骤所得单片机软件开发流程图。