小电阻测量系统(4)

2019-04-09 16:48

第三章 系统软件设计 3.1软件开发平台简介

IAR的Embedded Workbench是一个适应各种不同CPU的目标系统开发的集成环境。它提供方便且功能丰富的窗口界面,使开发和调试的效率大大提高。

Embedded Workbench包含的实用工具有:具有语法表现能力的文本编辑器;编辑器;汇编器;连接器;函数库管理器;实现操作自动化的Make工具;内嵌C语言和汇编级的调试器C—SPY。

EW430是针对专门MSP430的开发平台,其功能非常强大,而且以很快的的速度更新版本,它的基本特性为:

◇代码长度和速度有多级优化; ◇支持32位和64位浮点数; ◇支持硬件乘法器;

◇内部函数支持低功耗模式; ◇支持C和汇编语言编程。 3.2程序流程图

本系统的软件设计采用模块化设计的方法,整个程序包括主程序、A/D转换程序、数据处理程序、串行通讯程序、键盘模块程序、LED显示程序。所有的程序均采用C语言编写,可以很方便地调试和下载程序代码。 3.2.1 系统主程序

系统的主程序主要完成MSP430F149单片机系统的初始化、设置系统时钟,调用键盘处理程序,根据不同的按键转入相应的服务程序,完成不同的功能,如数据的采集与处理、串行通信以及历史记录的查询。其中串行通讯子程序不仅可以将单片机存储的数据传送到PC机进行处理分析,用户也可以根据情况从PC机上设置待测数据多少以及测试时间的长短等。其基本流程图如下:

3.2.2 A/D转换模块

该模块主要是单片机通过A/D通道采集来自外部的电压信号,将信号进行处理。MSP430F149的A/D转换有四种模式:单通道单次转换,序列通道单次转换,单通道多次转换,序列通道多次转换。考虑到系统只有一路采集,故本系统采用单通道多次转换,关于转换模块的选择主要通过设置相应的A/D转换的寄存器来实现。信号采集的时间间隔通过定时器A来完成,就是在每次定时器中断到来时读取模数转换采集到的数据,在读数据前先停止转换,在读取数据完毕后启动模数转换,如果得到数据,则设置一个标志位来通知主程序,告诉主程序已经得到新的数据。整个程序采用中断服务程序的结构完成。下面为该模块的程序流程图。

3.2.3串口通信模块

串口通信模块主要完成单片机与上位机的通信,从而将采集到的数据送到上位机进行处理。由于MSP430F149单片机具有片内的UART,因此实现串口通信相当容易,只需要设置适当的寄存器就可以使串口工作起来。串口通信采用中断机制,发送数据和接收数据都采用中断

方式。当接收到数据时,设置一个标志来通知主程序有数据到来,当主程序有数据要发送时,设置一个中断标

志来进入中断发送数据。串口通信模块的程序流程图如下:

3.2.4键盘模块

独立式键盘是指使用按键与单片机的I/O口直接连接的方法构成的单个按键电路。当某一按键KEYn闭合时,该端口输入低电平,释放时输入高电平。由于机械按键的弹簧片存在着轻微的弹跳现象,故闭合或释放过程都将存在一个抖动期。为了确保CPU对按键的一次闭合仅作一次处理,必须去掉抖动。键盘扫描控制有定时查询和中断控制查询,因为该单片机的P0、P1、P2等3个8位端口都有中断能力,故在此采用中断方式。该模块的流程图和经典代码如下:

#include unsigned char keybuf; unsigned char p1keyj(void) // 判键子程序 {unsigned char x;

x=(P1IN&0Xf0); // P1.5—P1.7 接有按键 return(x);;// 有按键返回非全1 }

unsigned char keycode() // 找哪个按键被按下,查键值子程序 {

unsigned char x;

if((P1IN&0xf0)= = 0x40) // 是否第一个按键 then x=1; else

if((P1IN&0xf0)= = 0x20) // 是否第二个按键


小电阻测量系统(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:直流系统技术规范书

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: