基于单片机的多通道数据监测系统.docx

上传人:数据九部 文档编号:9586065 上传时间:2021-03-09 格式:DOCX 页数:30 大小:239.60KB
返回 下载 相关 举报
基于单片机的多通道数据监测系统.docx_第1页
第1页 / 共30页
基于单片机的多通道数据监测系统.docx_第2页
第2页 / 共30页
基于单片机的多通道数据监测系统.docx_第3页
第3页 / 共30页
基于单片机的多通道数据监测系统.docx_第4页
第4页 / 共30页
基于单片机的多通道数据监测系统.docx_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《基于单片机的多通道数据监测系统.docx》由会员分享,可在线阅读,更多相关《基于单片机的多通道数据监测系统.docx(30页珍藏版)》请在三一文库上搜索。

1、题目基于单片机的多通道数据监测系统1、本论文的目的、意义温度压力液位流量是工业自动化常见控制参量,实现其监测与控制是基础性工作,也是机械电子工程专业学生必须掌握的基础内容。本课题要求学生综合利用所学知识,培养动手能力,在前人工作基础上,改进完善,实现多通道模拟工业温度压力液位信号采集和处理显示,实现上下限报警和电磁继电器和开关通断控制。该课题对于 机电测控实验中心完善实验建设具备价值。2、学生应完成的任务(1) 查阅收集资料、熟悉设计原始资料、完成相关不少于 10000 个字符的外文资料 翻译。(2) 完成毕业实习调研以及实习报告的撰写 。(3) 现有温度压力液位流量监测与控制系统调研和资料搜

2、集。(4) 多路参量监测与控制系统方案设计。(5) 接口电路板制作和加工 。(6) 实验程序设计与调试。(7) 完整程序和实物一套。(8) 整理完成不少于 24000 字的毕业论文。3、论文各部分内容及时间分配:(共 12周)第一部分第二部分第三部分第四部分第五部分调研准备和资料搜集 (2 周) 方案设计和元器件采购 (2 周) 硬件制作 (3 周) 软件调试 (3 周) 系统集成,撰写毕业论文 (1 周)备评阅及答辩 评阅答辩 (1 周) 注指导教师:年月日审 批 人:年月日摘要随着电子计算机信息技术的不断发展和完善,采用单片机实现的数据采集系统的 应用越来越多。采用单片机实现的数据采集系统

3、具有自动化和无人值守的特点。在许多工业测控机械、医疗仪器以及消费电子产品中,都对数据采集系统的实时 性与功耗提出了更高的要求:即在满足微功耗、微型化的总体设计原则基础上,又要 能实时反映现场采集数据的变化。这就对系统的功耗、采样速度、数据存储和传输速 度等提出了更高的要求。然而,随着半导体与微控制器技术的飞速发展,各种微电子 器件的性能不断提高,功耗却不断降低。技术的进步使得高速度、低功耗的数据采集 系统得以实现。本文设计的数据采集与显示、处理系统采用 TI 公司研制的 MSP430 系列超低功耗 单片机作为核心控制元件,实现了 8 通道模拟量数据的采集、自动循环显示、用户查 询、限位设定及报

4、警、外围驱动能力、时间显示、以及和上位机组态软件的通信功能。 该系统功能齐全,且具有一定的通用性。主要研究内容如下:首先,分析了数据采集系统技术领域内国内外的研究现状,以及 MSP430 系列低 功耗单片机的特点和应用情况。其次,分析了研究数据采集系统的现实意义,在此基 础上给出了基于 MSP430 单片机的数据采集系统的总体设计方案。比较详细的介绍了 实现该系统的硬件电路设计,包括电源电路、按键电路、复位电路、点阵LCD 显示电 路、LED 指示灯和蜂鸣器报警电路、直流电机驱动电路和 USART 异步串行通信电路等 电路的原理图设计。最后详细的介绍了基于 C 语言的软件系统实现方案。其中,软

5、件系统的设计是本设计的工作重点。设计过程采用了模块化的软件设计 思想。文中第 4 章前 6 小节详细介绍了系统中各个模块软件设计过程。其中和组态王 的串口通信程序设计是最有创新性的内容;第 7 小节介绍了这些模块之间的输入、输 出等链接关系,并最终给出了主处理程序的结构框架。本设计的最终实验结果表明,下位机的数据采集及显示、查询、报警等功能均能 顺利实现;与组态王的串口通信程序设计取得了明显的成果。关键词:数据采集MSP430串行通信西南交通大学本科毕业设计(论文)Abstract第页With development of computer and information technology

6、, using of MCU in a data detection system is becoming more and more popular. Data detection system with MCU has character of automated and unattended.Real-time and lower power consumption is demanded in many industrial measurement and control machinery, medical equipment and consumer electronics pro

7、ducts: principle of overall design is not only meet micro-power consumption and miniaturization but also reflect real-time data changes when the scene changes. This make a higher demand of the system s power consumption, sampling speed, data storage speed and transmission speed. With the rapid devel

8、opment of semiconductor and microcontroller technology, performance of microelectronic devices is improved but the power consumption is reduced. Advances in technology make high-speed, lower-power data detection system can be realized.The data detection and processing system designed in this paper u

9、se TI s MSP430 as the core element, which achieves the functions such as: 8-channel analog data detection, automatic cycle display, user queries, set the limit and give alarm, to drive the external devices, show time and communicate with PC(through KingView 6.51). The system has enough functions and

10、 is commonality. Main contents are as follows:First, analyses the research status quo of the data detection system at home and abroad. Second, analyses the practical significance of data detection system, on basis of this, we give a data detection system design programme which based on MSP430.We det

11、ail the system s structural design and hardware circuit design, including power circuit, button circuit, reset circuit, dot-matrix LCD display circuit, LED and buzzer alarm circuit, motor-driven circuit and USART communication circuit, Finally, give a detail introduction to design a software system

12、based on C language to realize the whole function.The software design is the key work of this design. The whole design processing based on a concept called “modular design”. In Chapter 4 the first six sections detail every西南交通大学本科毕业设计(论文)第页modules designing process. Serial communication procedures d

13、esign between KingView and MSP430 is believed to be the most innovative content in this paper; in section 7, input and output relations among all the modules is analysed. And finally, I give the main programs structural framework.Final test results show that data detection and display, query and ala

14、rm function can runs smoothly; serial communication design between KingView and MSP430 have achieved remarkable results.key words :data detection MSP430 serial communication西南交通大学本科毕业设计(论文)第 IV 页目录第 1 章绪论 . 错误!未定义书签。1.1 数据采集系统概述 . 错误!未定义书签。1.1.1 嵌入式系统概述 . 错误!未定义书签。1.1.2 嵌入式数据采集系统简介 . 31.2 数据采集系统发展方向

15、 . 错误!未定义书签。1.3 本文研究的主要内容及组织结构 . 错误!未定义书签。第 2 章 基于 MSP430 的数据采集系统的系统设计 . 62.1 基于 MSP430 的数据采集系统的系统构建 . 62.1.1 系统功能分析 . 62.1.2 系统的硬件原理框图 . 72.1.3 系统的工作过程 . 82.2 系统主要功能器件的介绍及选择 . 82.2.1 单片机的选择 . 82.2.2 传感器简介 . 112.2.3 AD 转换模块结构介绍 . 112.2.4 LCD 显示模块的选择 . 142.2.5 上位机处理系统软件的选择 . 15第 3 章 基于 MSP430 的数据采集系统

16、的硬件设计 . 173.1 电源电路的设计 . 173.2 复位电路设计 . 183.3 模拟量采集电路的设计 . 183.4 图形点阵 LCD 显示电路 . 193.5 按键处理电路 . 203.6 串行通信电路设计 . 213.7 报警系统及外围驱动模块电路设计 . 233.7.1 报警电路设计 . 233.7.1 电机驱动电路设计 . 24西南交通大学本科毕业设计(论文)第 V 页3.8 单片机电路设计 . 24第 4 章 基于 MSP430 的数据采集系统的软件设计 . 264.1 系统时钟模块的初始化设置 . 284.2 模拟量采集模块软件设计 . 284.2.1 转换模块的初始化设

17、置 . 284.2.2 转换数据的读取 . 284.2.3 转换数据的格式化 . 304.2.4 ADC12 模块的启动 . 314.3 输入模块的软件设计 . 324.3.1 输入模块的初始化设置 . 324.3.2 中断处理程序 . 344.4 显示模块的软件设计 . 424.4.1 LCD 初始化设计 . 424.4.2 LCD 显示设计 . 434.5 串行通信模块的软件设计 . 454.5.1 组态王与单片机的通信协议 . 464.5.2 单片机通讯程序设计 . 494.6 报警系统及外围驱动电路模块的软件设计 . 564.6.1 报警系统的软件设计 . 574.6.2 外围驱动模块

18、的软件设计 . 584.7 主处理模块程序设计 . 60第 5 章 系统的调试及运行 . 635.1 系统实物电路的搭建 . 635.2 下位机设计功能调试 . 635.1 和组态王 6.51 串口通信的调试 . 63结 论 . 68致 谢 . 69参考文献 . 70西南交通大学本科毕业设计(论文)第 VI 页附录 1:电路原理图 . 71附录 2:程序 . 72附录 3:实习报告 . 72西南交通大学本科毕业设计(论文)result8 = ( int)(2.5 * result8 )/ 4096 - 0.986) /0.0000355); for(tmp=0;tmp4;tmp+)result

19、s1iq1=result1 % 10;/温度一iq1=iq1+1;iq1=iq1%4;result1 = result1 /10;results iq8=result8 % 10;/流量二iq8=iq8+1;iq8=iq8%4;result8 = result8 /10;第 1 页以上处理程序中,resultx 是实际要利用的数据格式(两位整数部分,两位小数部 分),数组 results 用来存储转换数据的各位数据。主要是为了在以后的 LCD 显示部 分能够方便的取出逐位显示。4.2.4 ADC12 模块的启动ADC12 模块的启动函数,用以在程序适当位置启动 AD 转换。程序如下:void

20、start_ADC12()ADC12CTL0 |= ADC12SC;/启动 AD 转换西南交通大学本科毕业设计(论文)adc_Flag = 0;/设置标志,表示正在转换中4.3 输入模块的软件设计第 2 页系统的输入模块主要是指行列矩阵扫描键盘。在第三章中介绍键盘电路设计时 候,已经较详细的说明了键盘的电路设计以及工作原理。这里再详细说明系统对键盘 的功能需求以及软件实现方法。这里采用定时器 B 以 0.125s 的循环速度使行线 P1.1 和 P1.3 循环置 0,来检查是 否有按键按下,若检查到有按键按下,则系统进入端口中断复位程序,根据按下的键 值进行对应的中断处理。程序流程图如下:图

21、4-3 输入模块流程图该模块主要包括对定时器 B 和端口中断的处理。下面具体分析该模块的程序设计。 4.3.1 输入模块的初始化设置该部分主要完成端口的初始化和定时器 B 的初始化。下面为初始化部分的代码程 序。1、端口初始化程序:void Init_INPUTPort(void)/将管脚在初始化的时候设置为输入方式P1DIR = 0;西南交通大学本科毕业设计(论文)P1SEL = 0;P1SEL|= BIT2/除 P1.2 外(另有所用),所有的管脚设置为一般 I/O 口 P1DIR &= (BIT4);P1DIR &= (BIT7); / 将 P1.4-P1.7 设置为输入方向,键盘的列线

22、 P1DIR |= BIT1;P1DIR |= BIT3; / 将 P1.1 和 P1.3 设置为输出方向P1IE |= BIT4; / 管脚 P1.4 使能中断P1IES |= BIT4; / 对应的管脚由高到低电平跳变使相应的标志置位 P1IE |= BIT7; / 管脚 P1.7 使能中断P1IES |= BIT7; / 对应的管脚由高到低电平跳变使相应的标志置位 return;第 3 页程序中,键盘列线被设置为输入方向,只能读该端口的数据;行线被设置成输出 方向,该端口可读可写,可用定时器 B 使其循环输出高低电平,以监测按键事件。2、定时器 B 的初始化程序:void Init_Ti

23、merB(void)TBCTL = TBSSEL0 + TBCLR; / 选择 ACLK=32768HZ,清除 TARTBCCTL0 = CCIE; / TBCCR0 中断允许TBCCR0 = 4096; / 时间间隔为 0.125 s西南交通大学本科毕业设计(论文)TBCTL |= MC0; /增记数模式第 4 页由以上程序可以看出,通过设置 TBCTL 可以设置定时器 B 的时钟源选择,设置 TBCCR0 来确定时间间隔,用户可以根据自己的需要调整相应寄存器的值以满足自己 的要求。在这里由于选择的时钟源频率为 32768KHz,并为增计数模式,所以定时时 间为 4096/32768=0.1

24、25s。4.3.2 中断处理程序该部分主要是定时器 B 中断和端口中断处理两个部分。定时器 B 中断主要负责 设置行线的电平,使系统处于按键输入状态。端口中断主要是负责判断哪个列线上有 按键输入,从而获得数据。下面给出部分的程序代码。1、定时器 B 中断服务程序。该部分代码主要完成循环将相应的行线设置为低电 平和高电平,使系统处于按键输入状态。#pragma vector = TIMERB0_VECTOR_interrupt void TimerB_ISR(void)switch(PORT_count)case 0:PORT_count = 1;P1OUT |= BIT3;/p1.3 设置为高

25、电平P1OUT &= (BIT1);/p1.1 设置为低电平break;西南交通大学本科毕业设计(论文)第 5 页case 1:PORT_count = 0;P1OUT |= BIT1;/p1.1 设置为高电平P1OUT &= (BIT3);/p1.3 设置为低电平break;default: break;上面程序中,PORT_count 用来标记按键所按下的行号,与下面的端口中断服务 程序配合使用就可以得到按下的键的位置。2、端口中断服务程序。该模块主要用来判断哪根列线出现了低电平,从而获得 输入值。下面为部分程序代码:#pragma vector = PORT1_VECTOR_interr

26、upt void PORT_ISR(void)Delay_ms(50);/消除延时抖动if(P1IFG & BIT4) / P1.4 列线上有按键输入P1IFG &= (BIT4); / 清除中断标志位西南交通大学本科毕业设计(论文)Delay_ms(1); /消除抖动switch(PORT_count) / 获得输入值case 0:PORT_INPUT = 10;/FUN_Key 键,功能键 /*所需要的处理动作*/break;case 1:PORT_INPUT = 11;/T_Key 键,用以显示时间 /*所需要的处理动作*/break;default:break;第 6 页else if

27、(P1IFG & BIT5)/ P1.5 列线上有按键输入else if(P1IFG & BIT6)/ P1.6 列线上有按键输入else/ P1.7 列线上有按键输入/端口中断服务程序结束由以上程序可以看出,键值判断的具体过程是这样的:进入端口中断服务程序之西南交通大学本科毕业设计(论文)第 7 页后,首先是用 ifelse 语句判断是哪个口产生了中断。判断出中断入口之后,清除相应的中断标志位P1IFG.x ,然后再结合在定时器B 中断服务程序中所记录的PORT_count 值来选择确定按键所处的位置。比如:如果当前的中断入口是 P1.4,同 时若 PORT_count=0,那么由定时器 B

28、 中断服务程序可以得知,当前 P1.3=0,P1.1=1, 那么用户按下的键是 FUN_Key(参照键盘电路图)。其它判断以此类推。限于文章篇幅,以上程序只简单给出了 P1.4 口产生中断时键值的判断过程。其 余各口 P1.5、P1.6、P1.7 都与 P1.4 口的判断方法相同。然而,对于本系统来说,我们的目的不是简单的判断是哪个键被按下了,然后获 取键值,而是要求当有键被按下时,系统要根据被按下的键做出相应的反应(主要是 指 LCD 的显示动作),编写控制这些反应的程序代码是编写端口服务程序的主要工 作。为了比较清楚的了解本系统输入中断服务程序和主程序之间的结构关系,请先参 看下图 4-4

29、:图 4-4 输入模块与主程序结构关系图如上图所示,主程序是一直处于循环状态的。当有按键按下,程序进入“有输入 分支”并进入中断接受按键输入信息,接收完毕之后,根据新信息更新循环输出内容; 若无输入,则程序依据原有信息不断循环。下面将分别说明各个按键的功能及其程序设计。1、FUN_Key 键:功能键。这个键主要是用来设置各个检测通道的上限和下限的。当按下 1 次时,LCD 进入限值设定页面;这时,再用 Up_Key 键和 Down_Key西南交通大学本科毕业设计(论文)第 8 页键选择所需要设置的通道号;选定完毕之后,按 FUN_Key 键确认,LCD 进入该通道 的上下限设置页面,再用 Up

30、_Key 键和 Down_Key 键选择所需设置的限位,FUN_Key 键确认;最后,用 Up_Key 键和 Down_Key 键设置限位数据。设置完毕后,进入主程 序循环。这个过程可以用下图 4-5 来描述:图 4-5 限值设置流程图由上图可以看出,FUN_Key 键的功能是通过 FUN_Key 的值来判别的,所以就 可以在 FUN_Key 键动作时,赋以变量 FUN_Key 不同的值,其它程序则可以根据变 量 FUN_Key 的值的不同来判别需要什么动作。如上分析,端口服务程序中,FUN_Key 键的代码如下:PORT_INPUT = 10;/#键,功能键FUN_key+;FUN_key=

31、FUN_key%4;/最大值为 3,在 0-3 之间循环以上 PORT_INPUT 为按下改键时的输入值,可以作为该键区别于别的键的标 志。2、Up_Key 键和 Down_Key 键:增减键。这两个键用来选择通道号、具体门限量和设置限值。但是,具体设置的是以上所述三者中的哪一个,取决于 FUN_Key 的 值。FUN_Key 的值和 Up_Key 键和 Down_Key 键的功能对应关系,可以由图 4-5 很 清楚的得到。由以上分析,Up_Key 键和 Down_Key 键的部分代码如下:西南交通大学本科毕业设计(论文)(1) Up_Key 键:switch(FUN_key)case 1:/

32、 /FUN_key=1 选择需要设置的量stairs=stairs%9;/一共 8 个通道,故通道号要在 18 之间循环 stairs+;break;case 2:/ /FUN_key=2 选择设置上限的门限line =22;break;case 3:/FUN_key=3 设置上限、下限值switch(stairs)case 1:if(line=22)T1up+;else T1down+;break;case 8:if(line=22)Q2up+;else Q2down+;default : break;第 9 页西南交通大学本科毕业设计(论文)第 10 页;break;default : b

33、reak;以上程序中,变量 stairs 代表选择的通道号,变量 line 代表选择标号在 LCD 上显 示的位置,T1up、T1down、Q2up、Q2down 表示所监测的 8 个量的上限和下 限值。(2) Down_Key 键:此键的功能和 Up_Key 键的功能是对应的关系,分别对应着通道号 stairs 的递减、选择标号位置 line 的下移,以及 T1up、T1down、Q2up、Q2down 表示所监测 的 8 个量的上限和下限值的递减。程序代码在这里省略。3、检测量 T、P、H、Q 查询键及时间查询键。这些键用来使用户查询各个检查 通道的测量值以及时间。每当这些键中的某个键按下

34、时, LCD 便跳转至查询页面, 显示查询内容。在程序实现上,只需要将实现相应功能的代码写入端口中断服务程序 的指定位置即可。这个部分的功能的实现比较简单,下面以 T1 的查询为例来说明。clear_Rect(22/8,0,7,64);clear_Rect(22/8,64,7,64); /清除 LCD 此前显示内容while(adc_Flag =0);/如果转换完毕、存储完毕则进入显示for(i=0;i5;i+)drawStr(22,0,wendu,32);/温度drawStr(22,32,showData001,16);/一drawStr(22,48,showData5,8);/:西南交通大学本科毕业设计(论文)http:/ 11 页

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1