基于单片机的井径测量系统软件设计

基于单片机的井径测量系统软件设计

ID:33963984

大小:152.00 KB

页数:11页

时间:2019-03-02

基于单片机的井径测量系统软件设计_第1页
基于单片机的井径测量系统软件设计_第2页
基于单片机的井径测量系统软件设计_第3页
基于单片机的井径测量系统软件设计_第4页
基于单片机的井径测量系统软件设计_第5页
资源描述:

《基于单片机的井径测量系统软件设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、基于单片机的井径测量系统软件设计-电气论文基于单片机的井径测量系统软件设计杨晨娜(西安职业技术学院,陕西西安710032)摘要:针对传统油井测量仪器体积大、价格贵等问题,设计了一种新型高效的智能三臂测井仪器。该测井仪器将传统的仪器做成以SPCE061A单片机为核心的嵌入式系统,其集成度高,大部分功能用软件实现,包括测量、计算、结果校正、显示、仪器量程自动校正和存储、语音提示、报警等模块。实验证明,该系统能够稳定工作,可靠性高,测量精度可达2%,能够满足实际油井直径测试要求。关键词:SPCE061A;软件设计;测量精度;自动校正中图分类号:TN702?34文献标识码:A文章编号:100

2、4?373X(2015)18?0053?04目前,我国油井直径测量需求量大,井径测量仪作为采油设备工具之一,随着科学技术的快速发展不断的更新,但普遍存在着体积大、价格贵、灵活性低等缺点。基于这种现象,本文设计了一种基于凌阳单片机的智能井径测量系统,其集成度高、测量误差小、操作简单、便于携带,具有很高的实用价值。1系统总体方案设计系统功能的实现建立在硬件基础之上,但也离不开质量较好的软件设计,只有硬件和软件无缝连接,所设计出的系统性能稳定,具有较高的可靠性及使用性。在对仪器使用状况充分了解的基础上,设计了以单片机为核心的硬件电路。功能框图及硬件原理图如图1所示。但是在测量系统中,不能只

3、靠硬件来实现,功能强大的软件是驱动硬件不可或缺的。一个好的软件大大简化了硬件的设计,软硬件必须两者紧密结合起来。既要看到硬件的效率高、又要发挥软件功能强的特点。2井径测量仪软件实现本井经测量软件主要由6部分组成:测量、滤波、标度变换、存储、显示、报警、LED指示和校正。井径测量软件是一个包含键盘操作、LED显示和主板控制存储的小型操作系统。它用汇编语言和C语言联合编写而成。汇编和C语言相结合,既显现出了汇编语言的精炼,又不失C语言的简练。本程序合理安排汇编和C的比例,使程序精炼而高效。2.1主程序模块程序采用模块化设计。主程序模块是整个程序的核心,其流程如图2所示。进入系统后,首先对

4、仪器的标准点进行设置,然后对系统进行初始化。接着采用永为真的while语句进行不断循环扫描,进行数据采集以及标度变换工作。在循环中,先对键盘进行初始化操作,之后进行键盘扫描,直到有一个键按下,并读取键值,若再有一键按下,则进入系统矫正程序,当有第三键按下时进行FLASH擦除工作。接着进入A/D转换程序,对采样的4组数据进行A/D转换后,进行求平均值,所得结果作为最后采样数据。接着对采样数据进行判断,其值是否处于有效范围之内,若结果小于最小值,则显示LLL,当结果大于最大值时,则显示HHH并进行报警,之后才进行标度变换。具体程序如下:2.2A/D转换模块及其误差校正A/D转换模块是整个

5、程序数据的入口,如图3所示,其关系着测量的速度和精度。为了提高精度和减少函数数量便与传递参数,误差校正模块嵌入在主程序中,而A/D转换函数则用汇编语言编写,函数无入口参数,返回值为A/D转换的10位2进制结果。如图4所示,进入误差校正程序后,首先对标志变量清0,调用A/D转换函数,并将A/D转换的结果累加,判断4次转换是否结束,未结束则继续进行转换,结束后求出平均值存入全局变量AD_average中。在A/D转换函数中,首先选择模拟量输入通道为LINEINIOA0,允许A/D转换,延时后查询A/D转换标志,判断A/D转换是否结束,未结束继续转换,结束后将结果左移6位,然后返回给调用函

6、数。2.3标度变换模块量程校正模块是一个结构简单的模块,它主要完成复杂的4次牛顿插值计算,所以它用C语言编写,代码精炼简单,如图5所示。2.4系统初始化模块系统初始化模块是对系统运行前各个参数的设置,如图6所示,包括I/O口的初始化,系统时基的初始化,中断初始化等,其中时基选择为32Hz,中断为IRQ5?2Hz用于存储数据计时,IRQ6?32Hz用于LED动态显示中断。32Hz频率适中,使LED即能达到亮度,又不回闪烁,显示稳定。RAM校正表的缓存作为一个程序在这里被调用,这段程序首先从FLASHROM中读出参考的校正数据,然后根据计算生成4次牛顿插值表,并将表存入RAM等候被调用。

7、2.5LED显示模块LED显示是人机交互最直观的部分,要让他即能及时显示,又能不受其他程序的影响,所以LED显示被放在32Hz中断中被调用,当每次进入中断时首先就是进行压栈保护,然后取出入口参数,入口参数为4位要显示的数字如:23.87,入口参数就为2,3,8,7。然后初始化了位选标志位寄存器,接着进入相应位的显示程序,在那里查表,找到LED位选和段选的编码送IOB口显示,延时显示完1位后就给位标志位加1显示下1位,当位选标志为5时表示一轮显示完毕,即出栈

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。