系统方案分析
一个完整的系统至少应该包括数据的输入、数据的处理和数据的输出以及系统控制四个部分[2]。针对本次设计,要求设计制作一个数字海拔表,那么测量海拔最重要的因素就是测量出气压[3],因为我们知道随着海拔的升高,大气压强是减小的,而产生压强的原因是以为压力的存在,所以归根结底要测量海拔就必须测出大气压强。大气压强是非电压信号,测量的时候就需要用到传感器[3],通过使用一个压力传感器采集气压信号输出模拟的电压信号,经过放大、滤波、采样保持、A/D转换成可以被处理器识别的数字信号,达到数据输入的要求。
图2-1 海拔测量原理图
收集到的数字信号输入需要根据一个处理器的特殊算法处理后输出。处理器是系统的核心,它不但处理数据,还监控外围I/O接口工作状况[2],是设计的重中之重。
经过处理器处理的数字信号以数字形式输出给外部显示,具体显示的是海拔高度,这里显示器可以选择7段数码管或者液晶显示器,不同的是7段数码管需要连接状态转换电路,而液晶显示器可以直接和单片机接口,但是需要加一个驱动程序[9]。
图2-2是大气压力与海拔高度关系曲线,大气压力与海拔高度不是线形关系[10]。着海拔的升高,变化的不仅仅是大气压强,温度也随海拔的升高而降低,这样的话,只用传感器测量大气压强,不考虑温度因素,由此造成的误差是相当大的。所以在设计之前必须考虑温度对大气压强的影响,我们又知道,压强跟温度在一定情况下是存在函数关系的,能不能在设计的时候做设计一个温度的软件补偿子程序补偿温度对大气压强的影响,才能达到精确测量的目的[10]。
由硬件部分搭建的电路是不能测量出海拔高度的,因为计算机是一个需要程序控制的系统,需要程序告诉CPU下一步需要执行什么动作。就需要设计一个软件部分,这个部分解决的问题是编辑一个程序控制处理器,完成对外部设备的控制以及数据的处理。对于编程,编程的语言有很多种,比如熟悉的C语言,C++,JAVA,汇编语言等等。各种语言都有自己的特点,比如说C和C++都是面向计算机底层的,C++又是C语言的超级体现,相当于在C语言上添加了一个类概念和类库,编写程序比C更方便。JAVA是从系统中抽象出来的高级语言,它不面对计算机系统,一般只写应用,适合对网页方面的编程。对MCS-51系列的单片机来说,支持的语言有汇编语言、PL/M语言、C语言和BASIC语言。在对单片机编程方面C语言和汇编语言对我们来说编程是比较方便的。就这两种语言相比,C语言是一种通用的程序设计语言,优点是代码效率高,数据类型及运算符丰富良好的程序结构,不需要对硬件及其指令系统多做了解,缺点是在小应用程序中产生代码量大,执行速度慢,适合在比较大的应用系统中使用。而汇编语言是面向计算机的低级语言,在编程时需要了解计算机的详细工作过程以及每个引脚的控制情况。我们设计制作数字海拔表这样一个小的应用系统,用到的元器件不多,正是要根据每一个引脚的控制完成硬件设计,所以在使用汇编语言编程时有很大的好处[11]。
系统设计分为硬件部分设计和软件部分设计。硬件部分电路又可以分为三个部分,第一部分:气压信号的采集和模数转换处理;第二部分:CPU微处理器;第三部分:处理结果的送液晶显示器显示。下面就这三方面进行阐述