选自《单片机语言C51应用实战集锦(修订版)》(范风强)
在学习新的开发软件时,一定要先看帮助手册,买书要全面。多实践、焊电路板、编写以及调试,如只用软件模拟,与真正的实践还是有距离的。
一、总的原则
从技术的角度来看,单片机开发分为软件、硬件两部分。许多厂商在仿真机、编程器之后力推开发板,其目的就是要让开发者在开发过程中尽量少做硬件的工作,甚至不需要做硬件开发工作。这些板通常力求全面,功能很多,设计者把所有的功能都做上,用户要用什么功能就有相应的电路板。在进行开发时,总的原则是:
<1> 定位准确。应用目标锁定在什么层次、什么类型,需要哪些功能,不需要做的就不必花钱去做。
<2> 经过实践检验。所采用的技术必须是经过实践检验的成熟技术,这一点很重要。
<3> 简单性原则。如果所做的就是开关量控制,不涉及模拟量,就不必采用模拟量技术。如果能够用单片机实现的技术,就不要用外围电路去实现。尽量做到小型、简单、可靠、廉价。
<4> 使用单片机C语言编程。C语言是简洁、高效、而又最贴近硬件的高级编程语言。20世纪90年代初单片机C语言就已成熟为专业水平的高级语言,不应再有顾虑。当前厂商在推出新的单片机产品时纷纷配套C语言编译器。
<5> 如有可能,使用中、高档的单片机仿真工具。
二、软件原则
<1> 提高C语言编程代码的效率
用C语言进行单片机程序设计是单片机开发与应用的必然趋势。如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。先试验一下每条C语言编译后对应的汇编语言的语句行数,这样就可以很明确地知道效率。在今后编程的时候,使用编译效率最高的语句。
各厂家的C编译器都会一定的差异,故编译效率也会有所不同,优秀的嵌入式系统C编译器代码长度和执行时间仅比以汇编语言写的同样功能的程序长5%~20%。要求对MCU系统的C语言和C编译器非常熟悉,特别要注意该C编译系统所能支持的数据类型和算法。不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。所以如果对这些特性不了解,那调试起来问题就会很多,反而导致执行效率低于汇编语言。
<2> 尽量减少程序中的bug
系统运行中应考虑的超范围管理参数有:
(1) 物理参数。这些参数主要是系统的输入参数,它包括激励参数、采集处理中的运行参数和处理结束的结果参数。合理设定这些边界,将超出边界的参数都视为非正常激励或非正常回应,同时进行出错处理。
(2) 资源参数。这些参数主要是系统中的电路、器件、功能单元的资源,如记忆体容量、存储单元长度、堆叠深度。在程序设计中,对资源参数不允许超范围使用。
(3) 应用参数。这些应用参数常表现为一些单片机、功能单元的应用条件。如EEPROM的擦写次数与资料存储时间等应用参数界限。
(4) 过程参数。指系统运行中的有序变化的参数。
三、硬件原则
一个单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统的配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、A/D、D/A转换器等,要设计合适的接口电路。
系统的扩展各配置应遵循以下原则:
<1> 尽可能选择典型电路,并符合单片机应用常规用法。为硬件系统的标准化、模块化打下良好的基础。
<2> 系统扩展与外围设备的配置水平应充分满足应用系统的功能要求,并留有适当余地,以3便 进行二次开发。
<3> 硬件结构应结合应用软件方案一并考虑。硬件结构与软件方案会产生相互影响,考虑的原则是:软件能实现的功能尽可能由软件实现,以简化硬件结构。但必须注意,由软件实现的硬件功能,一般响应时间比硬件实现长,且占用CPU时间。
<4> 系统中的相关器件要尽可能做到性能匹配。如选用CMOS芯片单片机构成低功耗系统时,系统中所有芯片都应尽可能选择抵功耗产品。
<5> 可靠性及抗干拢设计是硬件设计必不可少的一部分,它包括芯片、器件选择、去耦滤波、印刷电路板布线、通道隔离等。
<6> 单片机外围电路较多时,必须考虑其驱动能力。驱动能力不足时,系统工作不可靠,可通过增设线驱动器增强驱动能力或减少芯片功耗来降低总线负载。
<7> 尽量减少芯片数量。系统器件越多,器件之间相互干扰也越强,功耗也增大,也不可避免地降低了系统的稳定性。
评论