ARM温湿度传感器课程设计_第1页
ARM温湿度传感器课程设计_第2页
ARM温湿度传感器课程设计_第3页
ARM温湿度传感器课程设计_第4页
ARM温湿度传感器课程设计_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、沈阳工程学院课程设计报告 第一章 概 述目 录目 录1第一章 概 述21.1 设计题目21.2 设计目的21.3 设计器材21.4 任务分析2第二章 设计原理32.1 嵌入式操作系统的概述32.2设计原理3第三章 系统设计53.1 系统需求分析53.2 硬件设计53.3 软件设计6第四章详细设计84.1主函数84.3湿度的转化实现代码94.4TFT屏幕显示设置94.5 下载运行9总 结10致 谢1111第一章 概 述1.1 设计题目在LPC2103开发板上,实现设定温度以及控制功能。1.2 设计目的1、本次课程设计的主要目的是实现温度的控制功能,锻炼学生的动手能力以及注重课外实践的培养,使得理

2、论与实践相结合; 2、了解并掌握掌握相关专业课程知识和设计能力;3、初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技术;4、提高综合运用所学的理论知识和方法独立分析和解决问题的能力;5、加深对专业课的理解,强化学生的逻辑思维能力和动手能力,巩固良好的编程习惯,掌握工程软件设计的基本方法,为将来工作的学习打下坚实基础。1.3 设计器材本课程设计需要的硬件要求和软件配置具体要求如下:硬件要求:一台PC机、LPC2103开发板一块;软件配置:KEIL软件、J-Flash ARM,串口助手;1.4 任务分析有许多客观需求促进了ARM处理器的设计改进。首先,便携式的嵌入式系统往往需

3、要电池供电,为降低功耗,ARM处理器已经被特殊设计成较小的核,从而延长了电池的使用时间。高的代码密度是嵌入式系统的又一个重要需求。由于成本问题和物理尺寸的限制,嵌入式系统的存储器是很有限的。所以,高的代码密度对于那些只限于在板存储器的应用是非常有帮助的。另外,嵌入式系统通常都是价格敏感的,因此,一般都使用速度不高,成本较低的存储器。ARM内核不是一个纯粹的RISC体系架构,这是为了使他能够更好的适应其主要应用领域嵌入式系统。在某种意义上,甚至可以认为ARM内核的成功,正是因为它没有在RISC的概念上沉入太深。本系统的设计过程中,根据嵌入式系统的基本设计思想,系统采用了模块化的设计方法,并且根据

4、系统的功能要求和技术指标,系统遵循自上而下,由大到小,由粗到细的设计思想,按照系统的功能层次,在设计中把硬件和软件分为若干功能模块设计和调试,然后全部连接起来统调。沈阳工程学院课程设计报告 第三章 系统设计第二章 设计原理2.1 嵌入式操作系统的概述嵌入式系统是集成电路发展过程中的一个标志性成果,它把计算机直接嵌入到应用系统中,融合了计算机软/硬件技术、通信技术和微电子技术,是一种微电子产业和信息技术产业的最终产品。微电子产业是许多国家优先发展的产业。以超深亚微米工艺和IP核复用技术为支撑的系统芯片技术是国际超大规模集成电路发展的趋势和21世纪集成技术的主流。2.1.1 嵌入式操作系统的特性随

5、着计算机技术和产品向其它行业的广泛渗透,由于嵌入式系统具有小巧、高度自动化、响应速度快的特点,因而非常适应信息家电和现代控制设备的需要,嵌入式技术成为了一个研究热点。嵌入式系统,是将计算机直接嵌入至系统中,是信息IT的最终产品。它根据应用的要求,将操作系统和功能软件集成于计算机硬件系统中,实现软件与硬件一体化。2.1.2 嵌入式操作系统的分类嵌入式操作系统是随着嵌入式系统的发展出现的。从应用范围角度大致可以分为可分为专用型(如Ucos、Windows CE、VxWorks、嵌入式Linux等)和通用型(如Palm OS、Symbian)的嵌入式操作系统等。从实时性的角度大致可以分为实时嵌入式操

6、作系统和一般嵌入式操作系统。2.1.3 嵌入式操作系统的特点嵌入式操作系统是对通用操作系统的继承和发展,具有操作系统的基本功能,包括指令执行、任务调度、存储器管理、设备管理和中断处理等。但是,由于嵌入式系统的硬件环境和程序运行需求有很大限制,所以嵌入式操作系统又有如下并不同于一般操作系统的特点。(1) 资源限制。嵌入式操作系统一般只有64MB内存,而且非易失性FLASH通常也就32MB,因此,操作系统运行时,就不能像在PC上那样使用资源了。(2) 安全性限制。 在嵌入式领域,系统在运行之后一般都不能在短时期内停机或者重启,因此死机、蓝屏是绝对不允许的。(3) 可移植性。2.2设计原理本次课程设

7、计采用SHT10传感器温湿度监测系统,通过SHT10检测室内温度,如果检测到的温度超过设定值时,由LPC2103输出控制信号启动相应的中断报警功能。温湿度传感器模块默认使用处理器的IIC总线,需要连接开发板的P1端口,IIC总线需要接上拉电阻。2.2.1 IIC总线IIC总线是一种二进制总线,它通过SDA(串行数据线)及SCL(串行时钟线)连接到总线上的器件,并根据地址识别每个器件。支持IIC的设备有微控制器,ADC,DAC,存储器,LCD控制器,LED驱动器以及实时时钟等,通过软件寻址实现片选,减少器件片选线的连接。2.2.2 数字温湿度传感器SHT10SHT10系列单芯片传感器是一款含有已

8、校准数字信号输出的温湿度复合传感器。它应用于专利的工业COMS过程微加工技术(CMOSens),确保产品具有极高的可靠性与卓越的长期稳定性。传感器包含一个电容式聚合体测湿元件和一个能隙式测温元件,并与一个14位的AD转换器以及串行接口电路在同一芯片上实现无缝连接。因此,该产品具有品质卓越,超快响应,抗干扰能力强,性价比极高等优点。 SHT10的供电电压为2.4-5.5v。传感器上电后,要等待11ms以越过休眠状态,在此期间无需发送任何指令。电源引脚(VDD,GND)之间可以增加一个100NF的电容,用以去耦滤波。串行接口(两线双向),SHT10的串行接口,在传感器信号的读取以及电源损耗方面,都

9、做了优化处理,但与IIC接口不兼容。串行时钟输入(SCK),SCK用于微处理器与SHT10之间的通讯同步,由于接口包含了完全静态逻辑,因而不存在最小SCK频率。串行数据(SDA)DATA三态门用于数据的读取,DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿有效。数据传输期间,在SCK时钟高电平时,DATA必须保持稳定。为避免信号冲突,微处理器应驱动DATA在低电平。需要一个外部上拉电阻将信号提升至高电平。上拉电阻通常包含在微处理器的IO电路中。第三章 系统设计3.1 系统需求分析3.1.1 课程设计内容基于LPC2103开发板,完成设定温度控制功能。3.1.2 课程设计要求(1)

10、熟悉ARM开发板工作及开发环境;(2)熟悉ARM处理器的定时器控制及工作原理;(3)采用温度传感器测试温度用继电器控制加热器,实现设定温度的控制;(4)在LCD屏幕显示当前的温度和设置温度。(5)控制温度可以设置。3.2 硬件设计3.2.1 ARM处理器ARM(AdvancedRISCMachines),既可以认为是一个公司的名字,也可以认为是对微处理器的通称,还可以认为是一种技术的名字。ARM处理器是一个32位元精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。(1)ARM处理器系列ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、SecurCore系列Inte

11、l的XscaleIntel的StrongARM ARM11系列,其中,ARM7、ARM9、ARM9E和ARM10为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。(2)ARM处理器特点1、体积小、低功耗、低成本、高性能; 2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件; 3、大量使用寄存器,指令执行速度更快; 4、大多数数据操作都在寄存器中完成; 5、寻址方式灵活简单,执行效率高; 6、指令长度固定。(3)指令结构ARM微处理器的在较新的体系结构中支持两种指令集:ARM指令集和Thumb指令集。其中,ARM指令为32位的长度,

12、Thumb指令为16位长度。Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%40%以上的存储空间,同时具备32位代码的所有优点。3.3 软件设计3.3.1 KEIl软件开发环境的使用建立一个新的工程,单击Project菜单,在弹出的下拉菜单中选中New Project选项,然后选择保存路径,输入工程的文件名字,然后单击保存,根据处理器的型号选择NXP(founded by Philips)的LPC2103处理器,接下来就是软件的详细设计环节了。3.3.2 SHT10的相关命令定义、#define TEM_TEST 0x03/温度检测命令#define HUM_

13、TEST 0x05/湿度检测命令#define REG_READ 0x07/读寄存器#define REG_WRITE 0x06/写寄存器#define FUNCTION_SET0x01/设置SHT11的工作精度为8位/湿度 12位温度#define SHT_SCK 0x00000400/p0.10#define SHT_DATA 0x00000800/p0.11#define SCL 1<<47#define SDA 1<<48unsigned int flag_tempeture,flag_humidity;3.3.3 相关函数的说明1. void Delay()函

14、数名称:Delay(),函数功能:SHT10内部延时2. void Delay_Ms(unsigned int ms), 函数名称:Delay_Ms(),函数功能:SHT11检测等待延时函数,说明:11ms/55ms/210ms 分别对应8位/12位/14位 测量结果对应的形参为N 则延时Nms;3. void SHT11_Start()函数功能:SHT11启动时序4. void SHT11_Sendbyte(unsigned char dat) 函数名称:SHT11_Sendbyte(uchar dat)函数功能: 向SHT11发送8bite数据5. void SHT11_Answer()函

15、数名称SHT11_Answer():函数功能:检测SHT11的响应信号(在第九个时钟周期)6. void SHT11_Test_Finish()函数名称:SHT11_Test_Finish()函数功能:检测SHT11温湿度检测是否完毕7. unsigned char SHT11_Receivebyte()函数名称:SHT11_Receivebyte()函数功能:从SHT11接收8bite数据8. void ARM_Answer()函数名称:ARM_Answer()函数功能:ARM向SHT11发送应答信号9. void SHT11_End()函数名称:SHT11_End()当接收两个8byte数

16、据后部接收CRC校验码10. void SHT11_Write_Register(unsigned char command ,unsigned char dat) 函数名称:void SHT11_Write_Register(uchar command ,uchar dat)函数说明:向SHT11的状态寄存器设置功能command为REG_WRITE 0x06写寄存器dat为 设置SHT11的功能 可以设置检测的数据位数。11. unsigned char SHT11_Read_Register(unsigned char command) 函数名称:uchar SHT11_Read_Reg

17、ister(uchar command)函数说明:command为REG_READ 0x07/读寄存器返回值为状态寄存器的值位6显示当前检测完一次数据后电源供电情况当位6为0时表明VDD>2.47V 当位6为1时表明VDD<2.47V即电量不足位0表明当前的测量分辨率,当位0为1时表明测量精度:8位/湿度 12位温度,当位0为0时表明测量精度:12位湿度 14位温度 默认为0。12. unsigned int SHT11_Measure(unsigned char command,unsigned char time) 函数名称:SHT11_Measure(uchar comman

18、d,uint time);函数功能:设置SHT11检测功能,并返回相应的检测结果函数说明:command形参用于设定温度检测还是湿度检测,time形参用于设定检测过程中的等待时间,以确定检测结果的位数。11ms/55ms/210ms 分别对应8位/12位/14位。12. float SHT11_Convert_Tempeture14bit(unsigned int dat) 函数称:Convert_Tempeture(uint dat);函数功能:将检测到的数据转化为相应的温度数据函数说明:温度转换公式-T=d1+d2*SOt公式中的参数d1=-40,d2=0.01适用于14位测量精度。13f

19、loat SHT11_Convert_Humidity12bit(unsigned int dat,float temp) 函数名称:SHT11_Convert_Humidity(uint dat,float temp)函数功能:将检测到的数据转化为相应的湿度数据函数说明:相对湿度转换公式-RHline=C1+C2*SOrh+C3*SOrh*SOrh(检测数据的线性化 SOrh为单片机接收到的数据)-RHtrue=(tempeture-25)*(t1+t2*SOrh)+RHline公式中的数:C1=-4,C2=0,0405,C3=-0.0000028t1=0.01,t2=0.00008适用于1

20、2位测量精度。14. float SHT11_Convert_Tempeture12bit(unsigned int dat) 函数功能:将检测到的数据转化为相应的温度数据函数说明:温度转换公式-T=d1+d2*SOt公式中的参数d1=-40,d2=0.04适用于12位测量精度。15. float SHT11_Convert_Humidity8bit(unsigned int dat,float temp) 函数名称:SHT11_Convert_Humidity8bit(uint dat,float temp)函数功能:将检测到的数据转化为相应的湿度数据函数说明:相对湿度转换公式-RHline

21、=C1+C2*SOrh+C3*SOrh*SOrh(检测数据的线性化 SOrh为单片机接收到的数据)-RHtrue=(tempeture-25)*(t1+t2*SOrh)+RHline公式中的参数:C1=-4,C2=0,648,C3=-0.00072t1=0.01,t2=0.00128适用于8位测量精度。16. void UART0_init(void)串口初始化。17. void UART0_PutCh(unsigned char Ch) 发送数据。18. void fasong(int tem,int hum) 发送数据到屏幕。第四章 详细设计4.1主函数int main()int temp

22、data,humidata,temp,humi;PINSEL0=PINSEL0&0x33ffffff;SHT11_Write_Register(REG_WRITE,FUNCTION_SET);UART0_init(); while(1) tempdata=SHT11_Measure(TEM_TEST,55);/温度检测temp=SHT11_Convert_Tempeture12bit(tempdata); /12位温度转换humidata=SHT11_Measure(HUM_TEST,11); /湿度检测humi=SHT11_Convert_Humidity8bit(humidata,

23、temp);/8位湿度转换 fasong(temp,humi); 4.2温度的转化代码ffloat SHT11_Convert_Tempeture14bit(unsigned int dat)float tempeture1;tempeture1=-40+0.01*dat;if(tempeture1>100.0)flag_tempeture=1;else if(tempeture1<0.0)flag_tempeture=1;else flag_tempeture=0;return(tempeture1);函数名称:Convert_Tempeture(uint dat);函数功能:将

24、检测到的数据转化为相应的温度数据函数说明:温度转换公式-T=d1+d2*SOt公式中的参数d1=-40,d2=0.01适用于14位测量精沈阳工程学院课程设计报告 总 结度。4.3湿度的转化实现代码float SHT11_Convert_Humidity12bit(unsigned int dat,float temp)float RHline,RHtrue;RHline=-4+0.0405*dat-0.0000028*dat*dat;RHtrue=(temp-25)*(0.01+0.00008*dat)+RHline;if(RHtrue<10.0)flag_humidity=1;else

25、 flag_humidity=0;return(RHtrue);函数功能:将检测到的数据转化为相应的湿度数据,说明:相对湿度转换公式RHline=C1+C2*SOrh+C3*SOrh*SOrh(检测数据的线性化 SOrh为单片机接收到的数据)-RHtrue=(tempeture-25)*(t1+t2*SOrh)+RHline公式中的数:C1=-4,C2=0,0405,C3=-0.0000028t1=0.01,t2=0.00008适用于12位测量精度。4.4TFT屏幕显示设置void BacklightOn(void) /PINSEL0 = 0x00000000;PINSEL1 |= 0x000

26、00200;/设置MAT1.3-P0.20 T1TCR=0x03;/在设置之前,先将定时器复位 T1IR=0x01;/清除中断标志位 T1PR=0x00;/设置预分频器 T1PWMCON=0x08;/使能相应PWM模式位MAT1.3 T1MCR=0x02;/MR0匹配时,定时器复位 T1MR0=50;/设置匹配寄存器 T1MR3=48;T1TCR=0x01;/重新启动定时器 4.5 下载运行将工程文件下载至开发板,调整好串口,设置好波特率,可以看到开发板将检测到的室内温度和湿度以十进制的形式发送给PC机的串口,并且验证温度传感器的灵敏度,可以发现温度随着外部环境的变化而变化,由此可以得出结论温

27、度传感器的温度采集和传送功能都已实现。沈阳工程学院课程设计报告 致 谢总 结在这次ARM嵌入式系统课程设计中,我对ARM嵌入式系统尤其是数据处理中的温度采集系统有了更进一步的了解,同时知识面也进一步得到了扩展和加深。本次课程设计的任务主要是对基于传统温度采集系统的使用环节中遇到的一些问题提出的一种改进方法,有助于温度采集系统更好的发展与使用,帮助我们更好的理解嵌入式系统和温度采集系统的原理和应用。温度采集是一种直接数字处理方法。所谓温度采集系统,就是通过温度传感器对被采集物体进行温度数据的收集与处理,最后得到所需要的有用的数字信号并送入系统的下一环节进行其他操作。目前,由于传统的温度采集系统存在响应慢、精度低、可靠性差、效率低、操作繁琐等弊端,已经不能完全适应现代化工业的高速发展。随着嵌入式技术的

温馨提示

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

评论

0/150

提交评论