仪器设计论文_第1页
仪器设计论文_第2页
仪器设计论文_第3页
仪器设计论文_第4页
仪器设计论文_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 仪器设计实践作业题目 : 基于LCD的温度测量与显示装置设计 学院名称 : 专业班级 : 学生姓名 : 学 号 : 小组成员: 目录1、 概述11.1前言11.2研究背景及意义11.3 设计要求22、系统硬件模块介绍22.1 MSP430系列单片机22.2 LCD1602液晶显示屏32.3 蜂鸣器42.4ADC10内部传感器43、 系统方案设计53.1系统总体框图53.2MSP430G2553最小系统原理图63.3LCD显示部分63.4报警电路83.6系统总体电路原理图94、 程序设计与调试94.1 程序编写软件介绍94.2程序流程图104.3程序的调试114.4程序运行结果12总结12参考

2、文献14附录一:程序15附录二:总体电路原理图24附录三:实物图251、 概述1.1前言在各工业生产部门经常会遇到对温度进行监测和控制的需要,而用微机构成温度控制系统有很大的实用意义。微机测温、控温便于实现生产过程的自动化,具有操作简单、精度高、可靠性好、测量范围广等特点,可实现远距离巡回检测、安全报警、温度显示与打印、信息存储、数据通讯等功能。单片机在自动化产品制造和控制系统设计中得到了广泛的应用,以单片机为核心的智能仪表即是最典型的自动化产品。但是一般的自动化产品主要用8位单片机,这对于控制算法设计和数据运算来说是不方便的。MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场

3、的一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(Mixed Signal Processor)。称之为混合信号处理器,是由于其针对实际应用需求,将多个不同功能的模拟电路、数字电路模块和微处理器集成在一个芯片上,以提供“单片机”解决方案。该系列单片机多应用于需要电池供电的便携式仪器仪表中。用MSP430单片机进行智能仪表等自动化产品设计是一个较好的选择。1.2研究背景及意义在人们的日常生活、工业制造、制冷等领域,温度作为当前环境的重要因素之一,被人们广泛的作为参考因素来使用,从而保证各项工作的正常运行,如火灾报警、温室或粮仓中温度的实时监测、冷库温度的调节等

4、,因此以温度参数为基础而设计的温度控制系统被广泛开发和使用。使用传统意义上的温度计采集温度信息,不但采集精度低,实时性差,而且操作人员的劳动强度高,不利于广泛的推广。进入21世纪后,温度检测系统已逐步走向复合型和智能化,温度作为其中的重要参数,其测量的准确性对提高正确性是很重要的,研究和设计高性能的温度控制系统具有非常重要的意义,而其中最重要的器件就是温度传感器,它的性能也直接影响到了采集的温度数据的精度和时效性。市场决定技术,技术引导产品的开发,在这样的环境下,与温度控制相关的电子类产品的开发成为当今的研究热点。随着单片机技术的日益成熟,应用范围的逐渐扩大,以单片机为核心的控制系统,逐渐应用

5、到生活中的很多方面,这不仅克服了温度控制系统中存在的严重时延,节省了人力,提高了采样频率,而且在很大程度上提高了控制效果和控制精度。MSP430系列单片机支持采用汇编语言和C语言进行开发,该系列单片机集成了较丰富的片内外设备,方便高效的开发环境,适应工业级运行环境。与目前广泛使用的89C51单片机相比,具有指令少,超低功耗,运算速度快等优点,因而在许多领域特别是要求超低功耗的领域得到了广泛应用。1.3 设计要求基于MSP430G2553内部温度监控系统,实现以下功能:1、使用ADC10内部温度传感器检测温度2、使用LCD1602实现温度显示3、设定温度上下限,当温度超限后蜂鸣器报警2、系统硬件

6、模块介绍2.1 MSP430系列单片机图2.1 MSP430G2系列Launchpad开发板实物图MSP430单片机是TI公司1996年开始推向市场的超低功耗微处理器,另外他还集成了很多模块功能,从而使得用一片MSP430 芯片可以完成多片芯片才能完成的功能,大大缩小了产品的体积与成本。如今,MSP430单片机已经用于各个领域,尤其是仪器仪表、监测、医疗器械以及汽车电子等领域。下面来说一下它的主要特点:(1)低电源电压范围,1.83.6V。(2)超低功耗,拥有5种低功耗模式(以后会详细介绍)。(3)灵活的时钟使用模式。(4)高速的运算能力,16位RISC架构,125ns指令周期。(5

7、)丰富的功能模块,这些功能模块包括:A:多通道1014位AD转换器;B:双路12位DA转换器;C:比较器;D:液晶驱动器;E:电源电压检测;F:串行口USART(UART/SPI);G:硬件乘法器;H:看门狗定时器,多个16位、8位定时器(可进行捕获,比较,PWM输出);I:DMA控制器。(6)FLASH存储器,不需要额外的高电压就在运行种由程序控制写擦和段的擦除;(7)MSP430芯片上包括JTAG接口,仿真调试通过一个简单的JTAG接口转换器就可以方便的实现如设置断点、单步执行、读写寄存器等调试;(8)快速灵活的变成方式,可通过JTAG和BSL两种方式向CPU内装在程序。2.2 LCD16

8、02液晶显示屏图2.2 LCD1602液晶显示屏实物图1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块。本设计中显示部分采用字符型LCD1602液晶来显示我们所测距温度值。LCD1602显示的容量为2行16个字。液晶显示屏有体积小、显示内容丰富、超薄轻巧、微功耗、使用方便等诸多优点。其中,LCD1602第4脚RS为寄存器选

9、择,第5脚RW为读写信号线,第6脚E为使能端。第714脚:D0D7为8位双向数据线。这里要注意的是,为了布线方便,单片机端的D4D7是接到LCD1602的D7D4, 在编写软件时需要做处理,使读取正确。2.3 蜂鸣器图2.3.蜂鸣器实物图所谓的蜂鸣器是一种一体化结构的电子讯响器,在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。蜂鸣器采用直流电压供电,其能发出单调的或者某个固定频率的声音,如嘀嘀嘀,嘟嘟嘟等。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型,通常在计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件使用。2.4

10、ADC10内部传感器ADC10(Analog-to-Digital Converter 10)是MSP单片机的模数转换器,将连续变量的模拟信号转换为离散的数字信号的器件,转换位数为10比特,它拥有16位的转换结果存储寄存器。该模块内部有一个SAR型的AD内核,可以在其内部内产生参考电压,同时它具备数据传输控制器。数据传输控制器能够在CPU不参与的情况下,完成AD数据向内存任意位置的传输。ADC特性:(1) 最大转换速率大于200kHz。(2) 转换精度为10位。(3) 采样保持器的采样周期可编程进行设置。(4) 可利用软件或者TimerA设置转换初始化。(5) 可选择内部或者外部电压参考源。并

11、且内部电压参考源有2.5V、1.5V。(6) 拥有8个外部输入通道。(7) 具备对内部温度传感器、供电电压VCC和外部参考源的转换通道。(8) 转换时钟源可选择。(9) ADC的内核和参考源可分别单独关闭。(10) 具有用于自动控制数据传输的数据传输控制器。图2.4 温度传感器线性关系图3、 系统方案设计3.1系统总体框图图3.1 系统总体框图3.2MSP430G2553最小系统原理图图3.2 MSP430G2553最小系统原理图3.3LCD显示部分本设计中显示部分采用字符型LCD1602液晶来显示我们所测距温度值。LCD1602显示的容量为2行16个字。液晶显示屏有体积小、显示内容丰富、超薄

12、轻巧、微功耗、使用方便等诸多优点。使用时,可将P2与LCD的数据线相连,如图3.3所示。其中,LCD1602第4脚RS为寄存器选择,第5脚RW为读写信号线,第6脚E为使能端。第714脚:D0D7为8位双向数据线。这里要注意的是,为了布线方便,单片机端的D4D7是接到LCD1602的D7D4, 在编写软件时需要做处理,使读取正确。硬件设计如图3.3所示。图3.3 LCD1602液晶显示电路LCD1602的各个引脚的符号及功能一览表如下表3.1所示:表3.1 LCD1602的各个引脚的符号及功能一览表表引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比调整端,接正电源时对

13、比度最弱,接地电源时对比度最高。4RS寄存器选择位,高电平1时选择数据寄存器,低电平0时选择指令寄存器。5R/W读写信号线,高电平1时进行读操作,低电平0时进行写操作。6EN使能端,下降沿使能。7DB0低4位三态、双向数据总线 0位(最低位)8DB1低4位三态、双向数据总线 1位9DB2低4位三态、双向数据总线 2位10DB4低4位三态、双向数据总线 3位11DB4高4位三态、双向数据总线 4位12DB5高4位三态、双向数据总线 5位13DB6高4位三态、双向数据总线 6位14DB7高4位三态、双向数据总线 7位(最高位)15BLA背光电源正极16BLK背光电源负极3.2 LCD1602的读写

14、操作说明RSR/W操作说明00写入指令寄存器(清除屏等)01读busy flag(DS7),以及读取地址计数器(DB1DB6)值10写入数据寄存器(显示各字形等)11从数据寄存器读取数据1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H)。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如A。3.4报警电路采用一个蜂鸣器,由P1.1输出一定频

15、率的信号,在连接到蜂鸣器之前,经过一个三极管9013的放大。报警部分的连线,如图3.4所示。图3.4 报警电路3.6系统总体电路原理图电路的总体原理图如图3.5所示:图3.5电路的总体原理图4、 程序设计与调试4.1 程序编写软件介绍CCS(Code Composer Studio)是TI公司研发的一款具有环境配置、源文件编辑、程序调试、跟踪和分析等功能的集成开发环境,能够帮助用户在一个软件环境下完成编辑、编译、链接、调试和数据分析等工作。CCSv5.1为CCS软件的最新版本,功能更强大、性能更稳定、可用性更高,是MSP430软件开发的理想工具。程序用CCS编写,编译工作环

16、境。如图4.1所示图4.1 编译环境4.2程序流程图图4.2 系统程序流程图4.3程序的调试4.4程序运行结果程序运行结果的第一行为“yanyun&zhouhan”;第二行显示当前温度为“temp is XX”。总结本次设计最大的优点的是完全使用了单片机所自带的硬件资源,把单片机充分的利用,并实现了温度的测量、监控,是一个完整的监控系统。在系统设计过程中,曾遇到过液晶显示不了的现象,经过查资料得到需要接背景光调试部分的滑动变阻器,通过调试能够才能把温度显示。感觉很有收获。在调试中由于没有细心看datesheet导致通过温度检测的结果所写的if语句,没法执行,写的程序一直没有按照自己所设

17、想的现象显示,后来细心看了datesheet后,才发现自己的错误,有次我感觉到了在写程序前看datesheet的重要性。经过这次设计自己的收获很大。得到了知识和能力的提高。在此我也谢谢老师同学的帮助。 对整个设计工作过程进行归纳和综合,对设计中所存在的问题和不足进行分析和总结,提出解决的方法、措施、建议和对这次设计实践的认识、收获和提高。 在本次设计的过程中,我发现很多的问题,也学到了许多东西。虽然我以前也做过类似的课程设计,但这次设计真的让我长进了很多。本次仪器设计课程设计的重点就在于测温及编程软件算法的设计,其中有许多很巧妙的算法。我以前总是能看懂别人写的程序,但自己单

18、独写时就会出现很多问题,经过这次锻炼我基本掌握了C语言编程的方法并在以前的基础上有所提高。     从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。参考文献1 赵嘉蔚.单片机原理与接口技术,清华大学出版社 2 谭浩强. C 程序设计M. 清华大学出版社,2010年6 月第4 版3 张国雄.测控电路M.机械工业出版社,2011.1:1-200.4 单片机原理及应用.出版社:西安电子科

19、技大学出版社5 谢楷 赵建. MSP430系列单片机系统工程设计与实践,机械工业出版社6郭培源、付扬.光电检测技术与应用.北京:北京航空航天大学出版社.2011.87LY-51S V2.3开发板说明书8MSP430Launchpad9MSP430G2系列单片机原理与实践教程完整版10LCD1602中文数据手册11郝建国.MSP430单片微型计算机(第二版)M.北京:国防工业出版社.2009.附录一:程序/* MSP430与LCD连接信息* LCD1602,4位接口,即使用D4-D7数据口,D0-D3不接入MCU,RS接P2.1,EN接P2.2* PIN1 .1接报警蜂鸣器*/#inc

20、lude <msp430.h>#include <intrinsics.h>#include <msp430g2253.h>/*端口定义*/#define uchar unsigned char#define uint unsigned int#define LCD_EN_PORT P2OUT #define LCD_EN_DDR P2DIR#define LCD_RS_PORT P2OUT #define LCD_RS_DDR P2DIR#define LCD_DATA_PORT P2OUT#define LCD_DATA_DDR P2DIR #defin

21、e LCD_RS BIT1#define LCD_EN BIT2#define LCD_DATA BIT7|BIT6|BIT5|BIT4 /4位数据线连接模式int ADC10_Result, TEMP_Result,temp,i,a3;/*预定义函数*/void LCD_init(void);void ADC10(void);void LCD_init_first(void);void LCD_en_write1(void); /上升沿使能void LCD_en_write2(void); /下降沿使能void LCD_write_command(unsigned char command)

22、;void LCD_write_data(unsigned char data);void LCD_set_xy (unsigned char x, unsigned char y);void LCD_write_string(unsigned char X,unsigned char Y, unsigned char *s);void LCD_write_char(unsigned char X,unsigned char Y, unsigned char data);void delay_1ms(void);void delay_nus(unsigned int n);void delay

23、_nms(unsigned int n);unsigned char LCDBuf1="yanyun&zhouhan" /第一行要显示的内容unsigned char LCDBuf2="temp is " /第二行要显示的内容void LED_init();/*ADC温度采集子函*/void ADC10(void)ADC10CTL1|=CONSEQ_2; /ADC工作模式选择位单通道重复采样ADC10CTL0|=REFON+SREF_1;ADC10CTL0|=ADC10SHT_3+MSC;ADC10CTL1|=ADC10SSEL_3+SHS_0;

24、/ADC10时钟源选择MCLK,采样保持原选择ADC10SCADC10CTL1|=INCH_10;/采样通道选择内部温度采样通道A10ADC10CTL0|=ADC10ON;/打开ADC10模块/*主函数*/void main()WDTCTL = WDTPW + WDTHOLD; / 关闭看门狗LCD_init_first();LCD_init();delay_nms(100);LCD_write_string(0,0,LCDBuf1);LCD_write_string(0,1,LCDBuf2);delay_nms(10);ADC10();P1DIR |= 0x43; /P1.0.1.6设置为输

25、出P1DIR &= 0x08;P1OUT |= 0x48;P1OUT &= 0x01;P1REN |= 0x08;while(1)ADC10CTL0|=ENC+ADC10SC; /使能采样,开始采样while(ADC10CTL0&ADC10IFG)=0);/等待转化完成ADC10_Result=ADC10MEM;/获得采样转换值TEMP_Result=(ADC10_Result-734)*1.5/(0.000355*1023)+280; /经计算得到温度值a0= TEMP_Result/100;a1= TEMP_Result%100/10;a2= TEMP_Result

26、%10;LCD_write_char(8,1,a0+0x30);/lcd显示部分delay_nms(10);LCD_write_char(9,1,a1+0x30);delay_nms(10);LCD_write_char(10,1,0x2e);delay_nms(10);LCD_write_char(11,1,a2+0x30);delay_nms(10);LCD_write_char(12,1,0xdf);delay_nms(10);LCD_write_char(13,1,0x43);if(!(P1IN&0x08)P1OUT =0x41;if(TEMP_Result>320)P1

27、OUT &= 0x02;_delay_cycles(600000);P1OUT |= 0x02;_delay_cycles(600000);if(TEMP_Result<280)P1OUT &= 0x02;_delay_cycles(600000);P1OUT |= 0x02;_delay_cycles(600000);/*LCD液晶操作函数*/void LCD_init_first(void) /LCD1602液晶初始化函数(热启动) delay_nms(500); LCD_DATA_DDR|=LCD_DATA; /数据口方向为输出 LCD_EN_DDR|=LCD_EN

28、; /设置EN方向为输出 LCD_RS_DDR|=LCD_RS; /设置RS方向为输出 delay_nms(50); LCD_write_command(0x30); delay_nms(50); LCD_write_command(0x30); delay_nms(5); LCD_write_command(0x30); delay_nms(500);/*LCD1602液晶初始化函数*/void LCD_init(void)delay_nms(500);LCD_DATA_DDR|=LCD_DATA; /数据口方向为输出LCD_EN_DDR|=LCD_EN; /设置EN方向为输出LCD_RS_

29、DDR|=LCD_RS; /设置RS方向为输出delay_nms(500);LCD_write_command(0x28); /4位数据接口delay_nms(50);LCD_write_command(0x28); /4位数据接口delay_nms(50); LCD_write_command(0x28); /4位数据接口 delay_nms(50); LCD_en_write2(); delay_nms(50); LCD_write_command(0x28); /4位数据接口 delay_nms(500); LCD_write_command(0x01); /清屏 LCD_write_c

30、ommand(0x0c); /显示开,关光标,不闪烁 LCD_write_command(0x06); /设定输入方式,增量不移位 delay_nms(50);/*液晶使能上升沿*/void LCD_en_write1(void) LCD_EN_PORT&=LCD_EN; delay_nus(10); LCD_EN_PORT|=LCD_EN;/*液晶使能下降沿*/void LCD_en_write2(void) LCD_EN_PORT|=LCD_EN; delay_nus(10); LCD_EN_PORT&=LCD_EN;/*写指令函数*/void LCD_write_comm

31、and(unsigned char command) delay_nus(16); P2SEL=0x00; LCD_RS_PORT&=LCD_RS; /RS=0 LCD_en_write1(); LCD_DATA_PORT&=0X0f; /清高四位 LCD_DATA_PORT|=command&0xf0; /写高四位 delay_nus(16); LCD_en_write2(); command=command<<4; /低四位移到高四位 LCD_en_write1(); LCD_DATA_PORT&=0x0f; /清高四位 LCD_DATA_PORT|=command&0xf0; /写低四位 LCD_en_write2();/* 写数据函数*/void LCD_write_data(unsigned char data) delay_nus(16); P2SEL=0x00; LCD_RS_PORT|=LCD_RS; /RS=1 LCD_en_write1(); /E上升沿 LCD_DA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论