便携式体温检测仪的设计 - 图文 联系客服

发布时间 : 星期六 文章便携式体温检测仪的设计 - 图文更新完毕开始阅读9bd055b9fd0a79563c1e7210

安徽工程科技学院毕业设计(论文)

按键的基本结构由两个电极和金属弹簧片构成。当金属弹簧片上的按键KEY按下时,电极A和B导通。在实际应用中,单片机的运行速度相对于操作者键的速度来说是非常快的,这样就必须考虑按下按键前后的抖动问题。即在金属片和A、B刚刚接触和将要分开的时候,由于机械抖动,系统会认为产生了多次按键过程。抖动的消除方法一种是用硬件电路来实现抖动消除,另外一种是利用软件延时来实现抖动消除。本系统是采用软件延时来实现抖动消除的。利用软件来消除抖动就是当系统检测到有按键按下时,经过20ms再次检测是否该按键被按下。如果检测到该按键被按下,则表明该按键确实被按下,执行该按键对应的功能;如果检测到该按键没有被按下,则表明该按键没有被按下。

键盘部分电路图如图2-11所示

图2-11 键盘电路

高洁:便携式体温检测仪的设计

第3章便携式温度监测仪的软件设计

3.1 MSP430开发环境简介

本系统的功能主要是在程序的控制下完成的,软件编写是本系统的主要部分。单片机应用系统的软件编写可以使用汇编语言也可以使用C语言。汇编语言编译效率高,占用硬件资源少,实时性强,但也有一些缺点,比如可移植能力差,对于相对复杂的一些程序,应用汇编语言工作量大、调试困难。C语言功能丰富,表达能力强,使用灵活方便,目标程序效率高,可移植性好,并且对硬件的控制能力高。C语言既有高级语言的优点,又具有低级语言的许多特点[15],所以C语言在单片机的软件开发中有着广泛的应用。本系统的软件部分就是采用C语言来编写的。

本系统采用的开发环境为IAR公司的集成开发环境:IAREmbedded Workbench for MSP430(简称为EW430)嵌入式工作平台以及调试器C-SPY。为了发挥MSP430的优点,EW430在ISO/ANSI标准语言规范上进行了扩展,用户可以利用扩展部分编写出效率更高、功能更强的程序,并且可以大大减小开发的工作量。EW430功能非常强大,它有如下基本特性。 (1)支持ANSI C并包含对Embedded C++的支持; (2)内建MSP430特性扩展优化; (3)代码长度和速度有多级优化; (4)支持32位和64位浮点数; (5)支持硬件乘法器;

(6)内部函数支持低功耗模式; (7)支持C和汇编语言混合编程。

双击随仿真器附带的安装文件既可以在Windows系统下安装IAREmbedded Workbench,安装之后双击IAR Embedded Workbench图标可以进入IAR Embedded Workbench工作环境。要开发一个完整的软件,其源文件通常会有多个,而且文件类型也有多种。为了便于使用和管理,将这些文件的集合称为project。开发软件的时候,首先要创建一个project,设置工程参数(主要是选择和实际系统对应的单片机型号),然后才可以编译和链接。高版本的IAR Embedded Workbench除了创建project,还需要创建一个workspace。一个workspace包含若干个project,每个project又包含若干源文件。在IAR Embedded Workbench中完成源程序的编辑后,点击Make进行文件编译,如出现错误信息提示,用鼠标单击任意一个错误信息提示,系统会自动指示有错误的语句行,方便使用者修改[17]。源文件通过编译后,单击Debug按钮可以进入C-SPY调试环境。C-SPY调试器可以工作在软件模拟(Simulation)方式下,也可以通过JTAG接口与目标系统相连工作在仿真(Emulation)方式下。通过JTAG接口在线调试程序是MSP430系列单片机的一大优点,所以本课题采用仿真方式调试程序。在仿真方式下源文件通过编译后,单击Debug按钮就可以生成目标代码并下载程序到目标系统的单片机中,如果下载正常就可以进入程序调试界面。在C-SPY调试环境中,可以打开调试程序所需的若干窗口,如源程序窗口、寄存器窗口、 观察窗口、存储器窗口、特殊功能寄存器窗口等;也可以设置程序执行的不同模式,如单步模式、连续模式、断点模式、执行到光标处等运行模式。

本系统的软件设计采用模块化的设计思想。按照硬件设计的各个模块,将软件按照不同的功能分成多个程序模块。各个模块分别设计、编程、调试,再通过

安徽工程科技学院毕业设计(论文)

主程序和中断处理程序将各程序模块连接起来.

3.2主程序的设计

将系统初始化,然后按下按键,判断按键是否按下,判断按下的是哪个按键。

开始

初始化 按下按键 否 判断按键是 否被按下? 是

判断按下的是

哪个按键?

跳转到各个

子程序

图3-1主程序流程图

3.3A/D转换部分软件设计

A/D转换的模块,整个例程需要60个字节,功能包括:关闭看门狗,设置堆栈指针,系统复位以后vo的初始化,子程序LV}AS 549被调用驱动8位转换代码顺序进入ADCDATA寄存器,一个寄存器(R12)临时用来计算字节的位数。

3.4液晶显示部分软件设计

液晶显示程序的功能就是将要显示的内容转化成对应的字模后写入显存,从而在液晶屏上显示出需要的内容。程序的结构图如图3-2所示。

高洁:便携式体温检测仪的设计

开始

初始化定时器,

液晶驱动模块

将显存内容显存

3-2 液晶显示程序流程图

3.5串行通信部分软件设计

串行通信是将数据的各个位一位一位地通过单一位宽的传输线按顺序分时传送,即通信双方一次传输一个二进制位[39]。进行异步串行通信的双方必须使用相同的通信格式。点对点的异步串行通信格式通常为:起始位+数据位+奇偶校验位+停止位。起始为1位,数据位可以选择7位或8位,一般选择8位。奇偶校验位为1位可以省略。停止位可以为1位或者2位。 本系统采用的通信格式为:

位起始位+8位数据位+1位停止位。起始位为低电平,停止位为高电平在通信过程中,通信双方必须确定一定的通信速率。通信速率用波特率来表示。波特率是指单位时间内传送的二进制数据的位数,以位/秒(bit/s)表示。本系统的波特率是用定时器定时产生中断来实现的。根据定时器时钟源的频率和系统要求的波特率可以计算出每个数据位发送/接收所需要的时间间隔。计算公式如下:

BitTime为数据传输过程中每个数据位发送/接收所需的时间间隔;Tclk为定时器的计数时钟频率;Baud rate为系统所需的波特率。本系统定时器的计数时钟频率为32,768Hz,波特率为1200bit/s。本系统的BitTime为32768/1200=27.3发送/接收每个相邻数据位的时钟周期是27.3,发送/接收每个相邻数据位的时钟 周期是27.3,因为定时器只能计整数,所以BitTime取值为27。实际的波特率为1214bit/s如果想提高传输速率,为了减小传输误差,应采用更高的定时器计数时钟频率。

在串行通信中,按照数据流的传输方向可以分成三种基本的传送方式:单工、半双工和全双工。