基于msp430的温度采集报警系统的毕业论文基于单片机的智能温度测试控制仪的设计内容摘要:

判断该行是否有输入如果没有输入的话 P14P15 电平如果有输入的话P14P15 电平就会触发中断进入中断服务程序获得输入数据键盘的扫描时间很短仅仅几微妙的时间然而按键的时间一次至少需要几十毫秒所以只要有按键按下的话是都可以被扫描到的另外还要考虑键盘的抖动处理 [13]为了防止键盘的扫描而影响其他部分的处理这里采用了定时器 B来检 察是否有按键按下图 43为该部分的程序流程图 该模块主要包括对定时器 B 和端口中断的处理初始化部分该部分主要完成端口的初始化和定时器 B 的初始化 该部分端口的初始化程序 void Int_INPUTPort void 将管脚在初始化的时候设置为输入方式 PIDIR 0 将所以的管脚设置为一般 IO 口 PISEL 0 将 P14P15 输入方向 PIDIR BIT4 PIDIR BIT5 PIDIR BIT6 PIDIR BIT7 将 P10P11 输输出方向 PIDIR BIT0PIDIR BIT1 PIDIR BIT2PIDIR BIT3 将 P14P15 低电平中断触发方式 P1IE BIT4 管脚 P14 使能中断 P1IES BIT4 对应的管脚由高到低电平跳变使相应的标志置位 P1IE BIT5 管脚 P15 使能中断 P1IES BIT5 对应的管脚由高到低电平跳变使相应的标志置位 P1IE BIT6 管脚 P16 使能中断 P1IES BIT6 对应的管脚由高到低电平跳变 使相应的标志置位 P1IE BIT7 管脚 P17 使能中断 P1IES BIT7 对应的管脚由高到低电平跳变使相应的标志置位 Return 该部分代码为定时器 B 的初始化程序代码 [14] void Init_TimerB void TBCTL TBSSEL0 TBCLR 选择 ACLK 清除 TAR TBCCTL0 CCLE TBCCR0 中断允许 TBCCR0 32768 时间间 隔为 1s TBCLT MC0 增记数模式 167。 44 显示模块 该部分主要完成数据的显示功能在硬件设计中显示电路直接与单片机的数据 IO 口进行连接 P40~ P47 是有来显示数据 P22 控制数码管的选通状态显示模块相对比较简单只是简单的将数据显示在数码管脚上该模块主要包括端口初始化和数据显示两部分下面是对 LCD 正常运行时所需程序的编写 [1] LCD 液晶操作函数 LCD1602 液晶初始化 void LCD_init void LCD_DATA_DDR LCD_DATA 数据口方向为输出 LCD_EN_DDR LCD_EN 设置 EN 方向为输出 LCD_RS_DDR LCD_RS 设置 RS 方向为输出 LCD_write_mand 0x28 4 位数据接口 delay_nus 40 LCD_write_mand 0x28 4 位显示 LCD_write_mand 0x0c 显示开 LCD_write_mand 0x01 清屏 delay_nms 2 液晶使能 void LCD_en_write void LCD_EN_PORT LCD_EN delay_nus 1 LCD_EN_PORT LCD_EN 写指令 void LCD_write_mand unsigned char mand delay_nus 16 LCD_RS_PORT LCD_RS RS 0 LCD_DATA_PORT 0X0f 清高四位 LCD_DATA_PORT mand0xf0 写高四位 LCD_en_write mand mand 4 低四位移到高四位 LCD_DATA_PORT 0x0f 清高四位 LCD_DATA_PORT mand0xf0 写低四位 LCD_en_write 写数据 void LCD_write_data unsigned char data delay_nus 16 LCD_RS_PORT LCD_RS RS 1 LCD_DATA_PORT 0X0f 清高四位 LCD_DATA_PORT data0xf0 写高四位 LCD_en_write data data 4 低四位移到高四位 LCD_DATA_PORT 0X0f 清高四位 LCD_DATA_PORT data0xf0 写低四位 LCD_en_write 写地址函数 void LCD_set_xy unsigned char x unsigned char y unsigned char address if y 0 address 0x80 x else address 0xc0 x LCD_write_mand address LCD 在任意位置写字符串 列 x 015 行 y 01 void LCD_write_string unsigned char Xunsigned char Yunsigned char s LCD_set_xy X Y 写地址 while s 写显示字符 LCD_write_data s s LCD 在任意位置写字符 列 x 015 行 y 01 void LCD_write_char unsigned char Xunsigned char Yunsigned char data LCD_set_xy X Y 写地址 LCD_write_data data 延时函数 1us 延时函数 void delay_1us void asm nop N us 延时函数 void delay_nus unsigned int n unsigned int i for i 0i ni delay_1us 1ms 延时函数 void delay_1ms void unsigned int i for i 0i 1140i N ms 延时函数 void delay_nms unsigned int n unsigned int i 0 for i 0i ni delay_1ms 167。 45 报警模块 报警处理模块相当简单这里只是简单的在一个 IO 口上送出数据来驱动蜂鸣器该模块包括初始化端口和数据产生两个部分下面就各个部分给出具体的程序代码 [14] 初始化部分该部分将输出端口设置为 输出方向程序代码如下 Void Init_AlarmPort void 将 P25 设置为输出方向 P2DIR l BIT5 Retuen 数据产生部分该部分主要是在输出端口产生数据这里不是简单的一个高电平或者低电平而是有一定频率的数据因为只有是交流信号才可以让蜂鸣器发声至于不同的周期信号可以得到不同的频率可以根据信号处理的知识进行分析这里就不进行讨论下面给出代码 Void Ring void Int i P2OUT l BIT5 高电平 For i 0 i 200 i _NOP P2OUT BIT5 低电平 For i 0i 200i _NOP Return 在上面的程序中 _NOP 为 MSP430 提供内联函数上面程序中是一个单音频率的数据可以根据信号处理的知识修改上面的程序产生出具有丰富频率的数据[15] [16] 167。 51 系统硬件调试 系统的硬件调试很简单先调试电源电路和复位电路只要这两部分能正常工作就能确保整个系统的供电正常本设计电源部分采用 5v供电通过 TPS76033芯片转化为 33v 电压对系统 的单片机模块和外围模块以及各外围单元提供工作电压复位电路实现单片机的初始化本系统采用芯片复位调试简单方便 在电源电路和复位电路这两部分正常工作下其他模块也都正常无误这时再进行单片机 MSP430149 的调试如果单片机的晶振能起振的话则整个硬件的单片机部分没有问题关于硬件系统的其他部分则需要结合软件进行调试 [1] 167。 52 系统软件调试 167。 IAR 开发环境简介 本设计要在 IAR开发环境中对程序进行调试和仿真 Embedded Workbench for ARM 是 IAR Systems 公司为 ARM 微处理器开发的一个集成开发环境 简称 IAR EWARM 与其他的 ARM 开发环境相比 IAR EWARM 具有入门容易使用方便和代码紧凑等特点 EWARM 中包含一个全软件的模拟程序 simulator 用户不需要任何硬件支持就可以模拟各种 ARM 内部与外部设备甚至中断的软件运行环境 在运行开发环境中单击对话框中最上面的按钮 Create new project in current workspace 会出现创建新项目对话框可以看 到可选择的空项目汇编项目 C 项目 CLID 项目及 DLIB 项目库项目本设计选用 C 项目选中后单击 OK 按键出现项目保持对话框 将项目保存到 E\MSP430\Yuyin Lufang 然后在另存为对话框文件名中输入Yuyin Lufang 单击保存按键这时出现软件工作主界面 [12] 可以看到工作区窗口已经增加了一个项目该项目已经有了 mainc 的文件同时注意上面的下拉列表中出现 Debug 字样表示该项目为调试版本由于现在的工作区还没有存盘所以习惯上在这是选择 File→ Save workspace来保持工作区文件保存到 E\MSP430目录中当然即使不保存工作区文件将来在退出应用程序时软件也会提醒你保存工作区文件 [1] 在开始编译文件之前我们首先对项目的运行环境进行设置 选择 Project→ Option 或者在工作区窗口中选择项目后单击右键选择Option 选项就会弹出设置对话框 用鼠标选择左边标题为 Category 的方框内的每一个选项都会出现一个或多个属性页程序员必须根据硬件实际的情况进行正确的设置下面对常用属性页进行简要说明 General Option 选项中的属性页 target 属性页 标题为 Device的的组合框用来选择项目应用的 CPU芯片本设计应用 MSP430单片机所以通过下拉列表的小三角按钮找到 MSP430F149 单片机并选择为设置芯片在实际应用中可以根据需要进行选择 Output 属性页是用来指定输出文件的类型是可执行文件还是库文件同时还可以设置可执行文件目标文件及列表文件的输出目录 Library Configuration属性页是用来指定项目应用的那种实时库 [10]本设计主要运用 C 语言编程使用默认的 Normal DLIB 实时库就可以了 167。 软件的调试 前面分别介绍了各个软件部分以及 IAR 开发环境为了能够进行整个系统的联调需要硬件和软件调试结合起来对于不同的硬件部分在 IAR 开发环境中分别调用不同的软件模块进行仿真运行然后将程序写入单片机进行下一步调试 [17]经过联合调试整个系统的软件和硬件能够正常运行 167。 两部分间的联合调试 软件和硬件都调试后可对整个软硬件系统的联调根据显示的效果去检查硬件电路与显示连接部分的通路检查动态显示的延时控制经过这几步的调试后可以得到初步的实验效果再根据一些如精度要求的细节去细调系统使之完善 总 结 基于 MSP430 单片机的温度控制器的设计已基本完 成各部分功能都已实现MSP430F149 单片机片上资源比较丰富这使得课题外围电路相对简单还留有大部分 IO 口以便今后扩展温度采集模块用 DS18B20 来实现电路简单且价格便宜精度与稳定度都比较高液晶显示模块采用 LCD1602 显示终端的温度键盘模块电路用户可以通过键盘直接操纵温控仪工作并通过显示观察温控结果为用户提供了一个良好的人机接口 在设计过程中要考虑到各方面的因素不能仅从理论方面进行设计还要结合到实践考虑到具体应用只有这样才可以做出符合现实需要的产品尽管本文设计基本满足系统的要求但还存在诸多需要多改进之处例 如简化代码由于时间紧迫等原因没有制作样机由于作者水平有限行文仓促文中可能存在一些不足及疏忽之处。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。