的余地,以便进行二次开发。 (3)硬件设计要结合应用软 考虑。硬件电路结构与软件方案会产生相互 影响,综合考虑的原则是;能用软件实现的功能尽可能由软件来实现,以便简化硬件电 路,但必须注意系统对速度与实时性的要求。 4)应用系统中相关的器件要尽可能做到性能匹配,例如选用晶振频率较髙时,存 储器的存取时间有限,应该选择允许存取速度较高的芯片;选择CMOS芯片单片机构 成低功耗系统时,系统中的所有芯片都应该选择低功耗的产品。 (5)在申路设计时,要充分考虑应用系统各部分的驱动能力。驱动能力不足时,系 统工作不可靠甚至无法工作,而这种不可靠很难通过一般的测试手段来确定。因此,要 重视这一问题 (6)可靠性与系统的抗干扰设计应贯穿在应用系统设计的全过程,它包括芯片、器 件的选择,去噪滤波、印刷电路板布线、通道隔离等。 (⑦)设计时要尽可能掌握最新器件与最新技术,并把它们用于设计中。因为电子技 术发展很快,各种新器件层出不穷,各种实用的新技术日新月异,只有时刻跟踪其发展 动态,才能使设计出的系统具有最先进的性能。 7.1.5应用系统的软件设计 在考虑应用系统的总体设计时,软件设计和硬件设计应统一考虑,同时进行。当系 统的硬件电路设计定型后,软件的任务也就明确了。 1.应用系统软件的功能 系统中的应用软件是根据系统功能要求设计的,软件设计得如何,将决定整个系统 的效率和系统性能的优劣。一般地讲,软件的功能可分为两大类 (1)执行软件,它能完成各种实质性的功能。如测量、计算、显示、打印、输出控 制等。 (2)监控软件,它是专门用来协调各执行模块和操作者的关系,起组织调度的作用。 2.应用系统软件设计原则 应用系统的功能相差很大,程序编制者风格各异,因此应用软件的设计因系统而异, 因人而不同。但优秀的系统软件还是有其共同的特点和规律的。在进行程序设计时应注 意以下原则: (1)根据软件功能要求,将软件分解为几个相对独立的任务,并根据这些任务的联 系和时间关系,设计一个合理的软件结构 点()培养结构化程序设计风格,各功能程序实行模块化、子程序化。这样较便于调 链接,也便于移植、修改 (3)建立正确的数学模型。根据功能要求,描述出各个输入变量和输出变量之间的 数学关系,这就是建立数学模型。在单片机应用系统中,数学模型的正确程度,是系统 性能好坏的决定因素。数学模型是随系统功能的不同而异的。例如,在测量系统中,从 模拟输入通道得到的温度、流量、压力等现场信息与该信号对应的实际值往往存在非线 性关系,则需要进行线性处理。为了削弱或消除干扰信号的影响,提髙系统精度,常采 用算术平均法、中值法等数字滤波方法 )应绘制出程序流程图。这不仅是程序设计的一个重要组成部分,而且是决定成 败的关键部分,设计者千万不可轻视这一步。 (5)要合理分配系统资源,包括ROM、RAM、定时器/计数器、中断源等,尤其 要注意片内RAM的分配。 (6)软件抗干扰设计,这是提高单片机应用系统可靠性的有力措施
- 6 - 的余地,以便进行二次开发。 (3) 硬件设计要结合应用软件方案一并考虑。硬件电路结构与软件方案会产生相互 影响,综合考虑的原则是;能用软件实现的功能尽可能由软件来实现,以便简化硬件电 路,但必须注意系统对速度与实时性的要求。 (4) 应用系统中相关的器件要尽可能做到性能匹配,例如选用晶振频率较高时,存 储器的存取时间有限,应该选择允许存取速度较高的芯片;选择 CMOS 芯片单片机构 成低功耗系统时,系统中的所有芯片都应该选择低功耗的产品。 (5) 在电路设计时,要充分考虑应用系统各部分的驱动能力。驱动能力不足时,系 统工作不可靠甚至无法工作,而这种不可靠很难通过一般的测试手段来确定。因此,要 重视这一问题。 (6) 可靠性与系统的抗干扰设计应贯穿在应用系统设计的全过程,它包括芯片、器 件的选择,去噪滤波、印刷电路板布线、通道隔离等。 (7) 设计时要尽可能掌握最新器件与最新技术,并把它们用于设计中。因为电子技 术发展很快,各种新器件层出不穷,各种实用的新技术日新月异,只有时刻跟踪其发展 动态,才能使设计出的系统具有最先进的性能。 7.1.5 应用系统的软件设计 在考虑应用系统的总体设计时,软件设计和硬件设计应统一考虑,同时进行。当系 统的硬件电路设计定型后,软件的任务也就明确了。 1.应用系统软件的功能 系统中的应用软件是根据系统功能要求设计的,软件设计得如何,将决定整个系统 的效率和系统性能的优劣。一般地讲,软件的功能可分为两大类: (1) 执行软件,它能完成各种实质性的功能。如测量、计算、显示、打印、输出控 制等。 (2) 监控软件,它是专门用来协调各执行模块和操作者的关系,起组织调度的作用。 2.应用系统软件设计原则 应用系统的功能相差很大,程序编制者风格各异,因此应用软件的设计因系统而异, 因人而不同。但优秀的系统软件还是有其共同的特点和规律的。在进行程序设计时应注 意以下原则: (1) 根据软件功能要求,将软件分解为几个相对独立的任务,并根据这些任务的联 系和时间关系,设计一个合理的软件结构。 (2) 培养结构化程序设计风格,各功能程序实行模块化、子程序化。这样较便于调 试、链接,也便于移植、修改。 (3) 建立正确的数学模型。根据功能要求,描述出各个输入变量和输出变量之间的 数学关系,这就是建立数学模型。在单片机应用系统中,数学模型的正确程度,是系统 性能好坏的决定因素。数学模型是随系统功能的不同而异的。例如,在测量系统中,从 模拟输入通道得到的温度、流量、压力等现场信息与该信号对应的实际值往往存在非线 性关系,则需要进行线性处理。为了削弱或消除干扰信号的影响,提高系统精度,常采 用算术平均法、中值法等数字滤波方法。 (4) 应绘制出程序流程图。这不仅是程序设计的一个重要组成部分,而且是决定成 败的关键部分,设计者千万不可轻视这一步。 (5) 要合理分配系统资源,包括 ROM、RAM、定时器/计数器、中断源等,尤其 要注意片内 RAM 的分配。 (6) 软件抗干扰设计,这是提高单片机应用系统可靠性的有力措施
(7)采取必须的软件加密措施。 7.251系列单片机高级语言c51程序设计基础 721C语言的特点 (1)语言简洁,使用方便灵活 C语言的规模较小,关键字只有32个,9种控制语句。书写形式比较自由,表示方 法简洁,使用一些简单的方法就可以构造出相当复杂的语句类型和程序结构。 (2)可移植性好 在不同的机器上80%得代码是相同的。 (3)表达能力强、方式灵活。 具有丰富的数据结构类型和运算符。利用C语言提供的运算符可以组成各种表达式, 还可以采用多种方法来获得表达式的值,从而使用户在程序设计时具有较大的灵活性 (4)可以进行结构化程序设计 C语言是一种结构化程序设计语言,即程序的逻辑结构可以顺序、选择、循环三种 基本结构组成。便于采用自顶向下的、逐步细化的结果化程序设计技术。用C语言编制 的程序具有容易理解、便于维护的优点。 (5)可以进行模块化程序设计。 C语言是以函数作为程序设计的基本单元的,编译器提供函数库供编程者调用,用 户可以自己编写特殊需要的函数,每一个函数即相当于一个程序模块,因此C语言可以 很容易地进行模块化设计。便于多人同时进行集体性开发。 (6)可以直接操作计算机硬件 C语言具有直接访问计算机物理地址的能力,C51编译器可以直接对51单片机的内 部特殊功能寄存器和IO口进行操作,可以直接访问片内片外存储器,还可以进行位操 作 7)生成的目标代码质量高。 汇编语言程序目标代码的效率是最髙的,对于同一个问题,C仅比汇编的低10%左 722C51对C语言的扩展 1标识符和关键字 C语言的标识符是用来表示源程序中某个对象名字的,这些对象可以是函数、变量、 常量、数据类型、存储方式等等。一个标识符由字符串、数字和下划线组成,开头必须 是字符或下划线。C51编译器规定的标示符长度为255个,但只有前32个有效。C语 言对于大小写敏感 关键字是一类固定名称和特定含义的特殊标识符,有时又称保留字。如int、for do等等。 C51编译器除了支持 ANSI C标准的关键字之外,还扩展了如下关键字
- 7 - (7) 采取必须的软件加密措施。 7.2 51 系列单片机高级语言 C51 程序设计基础 7.2.1 C 语言的特点 (1) 语言简洁,使用方便灵活 C 语言的规模较小,关键字只有 32 个,9 种控制语句。书写形式比较自由,表示方 法简洁,使用一些简单的方法就可以构造出相当复杂的语句类型和程序结构。 (2)可移植性好 在不同的机器上 80%得代码是相同的。 (3) 表达能力强、方式灵活。 具有丰富的数据结构类型和运算符。利用 C 语言提供的运算符可以组成各种表达式, 还可以采用多种方法来获得表达式的值,从而使用户在程序设计时具有较大的灵活性。 (4) 可以进行结构化程序设计。 C 语言是一种结构化程序设计语言,即程序的逻辑结构可以顺序、选择、循环三种 基本结构组成。便于采用自顶向下的、逐步细化的结果化程序设计技术。用 C 语言编制 的程序具有容易理解、便于维护的优点。 (5) 可以进行模块化程序设计。 C 语言是以函数作为程序设计的基本单元的,编译器提供函数库供编程者调用,用 户可以自己编写特殊需要的函数,每一个函数即相当于一个程序模块,因此 C 语言可以 很容易地进行模块化设计。便于多人同时进行集体性开发。 (6) 可以直接操作计算机硬件。 C 语言具有直接访问计算机物理地址的能力,C51 编译器可以直接对 51 单片机的内 部特殊功能寄存器和 I/O 口进行操作,可以直接访问片内片外存储器,还可以进行位操 作。 (7) 生成的目标代码质量高。 汇编语言程序目标代码的效率是最高的,对于同一个问题,C 仅比汇编的低 10%左 右。 7.2.2 C51 对 C 语言的扩展 1 标识符和关键字 C 语言的标识符是用来表示源程序中某个对象名字的,这些对象可以是函数、变量、 常量、数据类型、存储方式等等。一个标识符由字符串、数字和下划线组成,开头必须 是字符或下划线。C51 编译器规定的标示符长度为 255 个,但只有前 32 个有效。C 语 言对于大小写敏感。 关键字是一类固定名称和特定含义的特殊标识符,有时又称保留字。如 int、for 、 do 等等。 C51 编译器除了支持 ANSI C 标准的关键字之外,还扩展了如下关键字