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

下载本文档

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

文档简介

1、.目录目录1第一章概述21.1设计题目21.2设计目的21.3设计器材21.4任务分析2第二章设计原理32.1嵌入式操作系统的概述32.2 设计原理5第三章系统设计33.1系统需求分析33.2硬件设计33.3软件设计6第四章详细设计94.1 主函数94.3 湿度的转化实现代码104.4TFT 屏幕显示设置104.5 下载运行10总结11致谢12.专业专注.第一章概述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 世纪集成技术的主流 。嵌入式操作系统

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

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

7、、蓝屏是绝对不允许的 。( 3) 可移植性 。2.2 设计原理本次课程设计采用SHT10 传感器温湿度监测系统,通过 SHT10 检测室内温度 ,如果检测到的温度超过设定值时,由 LPC2103 输出控制信号启动相应的中断报警功能。温湿度传感器模块默认使用处理器的IIC 总线,需要连接开发板的P1 端口, IIC 总线需要接上拉电阻 。总线IIC 总线是一种二进制总线 ,它通过 SDA(串行数据线 )及 SCL(串行时钟线 )连接到总线上的器件 ,并根据地址识别每个器件。支持 IIC 的设备有微控制器 ,ADC, DAC,存储器,LCD 控制器,LED 驱动器以及实时时钟等 ,通过软件寻址实现

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

9、GND )之间可以增加一个100NF 的电容,用以去耦滤波 。串行接口 (两线双向 ), SHT10 的串行接口 ,在传感器信号的读取以及电源损耗方.专业专注.面,都做了优化处理 ,但与 IIC 接口不兼容 。串行时钟输入 (SCK), SCK 用于微处理器与SHT10 之间的通讯同步 ,由于接口包含了完全静态逻辑,因而不存在最小 SCK频率。串行数据(SDA)DATA 三态门用于数据的读取 ,DATA 在 SCK 时钟下降沿之后改变状态,并仅在 SCK 时钟上升沿有效 。 数据传输期间 ,在 SCK 时钟高电平时 , DATA 必须保持稳定 。为避免信号冲突,微处理器应驱动DATA 在低电平

10、 。需要一个外部上拉电阻将信号提升至高电平。上拉电阻通常包含在微处理器的IO 电路中 。.专业专注.第三章系统设计3.1系统需求分析课程设计内容基于 LPC2103 开发板 ,完成设定温度控制功能 。课程设计要求( 1)熟悉 ARM 开发板工作及开发环境 ;( 2)熟悉 ARM 处理器的定时器控制及工作原理 ;( 3)采用温度传感器测试温度用继电器控制加热器 ,实现设定温度的控制 ;( 4)在 LCD 屏幕显示当前的温度和设置温度 。( 5)控制温度可以设置 。3.2硬件设计处理器ARM (AdvancedRISCMachines ),既可以认为是一个公司的名字,也可以认为是对微处理器的通称

11、,还可以认为是一种技术的名字。ARM 处理器是一个 32 位元精简指令集(RISC)处理器架构 ,其广泛地使用在许多嵌入式系统设计。( 1) ARM 处理器系列ARM7系列、 ARM9 系列、ARM9E 系列、ARM10E 系列、 SecurCore 系列Intel的 XscaleIntel的 StrongARMARM11系列,其中, ARM7 、ARM9 、ARM9E 和.专业专注.ARM10 为 4 个通用处理器系列 ,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。( 2) ARM 处理器特点1、体积小、低功耗、低成本、高性能;2、支持 Thumb (16 位)/ARM (32

12、 位)双指令集 ,能很好的兼容 8 位 /16 位器件;3、大量使用寄存器 ,指令执行速度更快 ;4、大多数数据操作都在寄存器中完成 ;5、寻址方式灵活简单 ,执行效率高 ;6、指令长度固定 。( 3)指令结构ARM 微处理器的在较新的体系结构中支持两种指令集:ARM 指令集和 Thumb 指令集。其中, ARM 指令为 32 位的长度 ,Thumb 指令为 16 位长度 。Thumb 指令集为 ARM 指令集的功能子集 ,但与等价的ARM 代码相比较 ,可节省 30% 40% 以上的存储空间 ,同时具备32 位代码的所有优点 。3.3软件设计软件开发环境的使用建立一个新的工程 ,单击 Pro

13、ject 菜单,在弹出的下拉菜单中选中New Project 选项,然后选择保存路径,输入工程的文件名字,然后单击保存,根据处理器的型号选择NXP( founded by Philips )的 LPC2103 处理器,接下来就是软件的详细设计环节了 。的相关命令定义 、#define TEM_TEST0x03/ 温度检测命令.专业专注. . .#define HUM_TEST0x05/ 湿度检测命令#define REG_READ0x07/ 读寄存器#define REG_WRITE0x06/ 写寄存器#define FUNCTION_SET0x01/ 设置 SHT11 的工作精度为 8 位/

14、 湿度 12 位温度#define SHT_SCK0x00000400/p0.10#define SHT_DATA0x00000800/p0.11#defineSCL1<<47#defineSDA1<<48unsigned intflag_tempeture,flag_humidity;相关函数的说明1. void Delay() 函数名称 :Delay() ,函数功能 :SHT10 内部延时2. void Delay_Ms(unsigned int ms) , 函数名称 :Delay_Ms() ,函数功能 :SHT11 检测等待延时函数 ,说明 :11ms/55ms/

15、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. voidSHT11_Answer() 函数名称 SHT11_Answer() :函数功能 :检测 SHT11 的响应信号(在第九个时钟周期 )6. void SHT11_Test_Finish() 函数名称 : SHT11_Test

16、_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 数据后部接收 CRC 校验码10. void SHT11_Write_Register(unsigned char comma

17、nd ,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)函数名称 : ucharSHT11_Read_Register(uchar command) 函数说明 : command 为 REG_READ 0x07/

18、读寄存器返回值为状态寄存器的值位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(ucharcommand,uinttime); 函数功能 :

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

20、13 floatSHT11_Convert_Humidity12bit(unsignedintdat,floattemp)函 数 名称: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.00

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

22、据转化为相应的湿度数据函数说明:相对湿度转换公式 -RHline=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. voidUART0_init(void) 串口初始化 。17. voidUART0_PutCh(unsigned char Ch)发送数据 。18. void fasong(int tem,int hum)发送数据到屏幕

23、。.专业专注.第四章详细设计4.1 主函数int main()int tempdata,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); /湿

24、度检测humi=SHT11_Convert_Humidity8bit(humidata,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(te

25、mpeture1);函数名称 :Convert_Tempeture(uintdat); 函数功能 :将检测到的数据转化为相应的温度数据函数说明 :温度转换公式 -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)+RHlin

26、e;if(RHtrue<10.0)flag_humidity=1;elseflag_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 Backli

27、ghtOn(void) /PINSEL0 = 0x00000000;PINSEL1 |= 0x00000200;/ 设置 MAT1.3-P0.20T1TCR=0x03;/ 在设置之前 ,先将定时器复位T1IR=0x01;/ 清除中断标志位T1PR=0x00;/ 设置预分频器T1PWMCON=0x08; / 使能相应 PWM 模式位 MAT1.3T1MCR=0x02;/MR0 匹配时,定时器复位T1MR0=50;/ 设置匹配寄存器T1MR3=48;T1TCR=0x01;/ 重新启动定时器4.5 下载运行将工程文件下载至开发板,调整好串口 ,设置好波特率 ,可以看到开发板将检测到的室.专业专注.内

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

温馨提示

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

评论

0/150

提交评论