基于ARM的温湿度采集系统_第1页
基于ARM的温湿度采集系统_第2页
基于ARM的温湿度采集系统_第3页
基于ARM的温湿度采集系统_第4页
基于ARM的温湿度采集系统_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、编编 号号2 2期期末末大大作作业业题目:题目:基于 ARM 的温湿度采集系统 物联网工程 学院 计算机科学与技术 专业学 号 0304100222 学生姓名 仲其龙 指导教师 陈志国 二一三年五月摘要摘摘 要要课题是基于 S3C44B0 x ARM 微处理器为核心,采用 LCD 液晶显示,设计空气中的温温度和湿度数据采集显示系统。设计的过程主要包括硬件设计和软件设计,其中软件设计为 C 语言设计。系统的主要功能是从空气中采集数据,通过 A/D 转换器,转换为数字信号,并通过 LCD 液晶显示屏显示。实现了智能化的温度数据采集、传输、处理与显示功能。关键词:ARM;S3C44B0 x;嵌入式系

2、统;数据采集 目录目目 录录摘 要 .I目 录 .I第 1 章 概述 .11.1 实验目的及要求 .11.2 实验内容 .1第 2 章 设计原理 .22.1 硬件系统总体设计 .22.2 LCD 液晶显示设计 .22.2.1 S3C44B0X LCD 控制器介绍 .22.2.2 显示控制 .32.2.3 电路设计 .32.3 A/D 转换设计 .42.3.1 采样保持接口 .42.3.2 分压电路 .42.4 电源电路设计 .52.5 温度采集电路设计 .6第 3 章 设计步骤 .73.1 软件设计 .73.2 关键代码 .8第 4 章 实验结果及结果分析 .124.1 实验结果 .124.2

3、 实验结果分析 .12第 5 章 小结 .12参考文献 .13嵌入式系统期末大作业0第第 1 章章 概述概述1.1 实验目的及要求实验目的及要求目前嵌入式系统的研究和应用中,ARM 芯片的使用越来越广泛。本课程的目的是了解嵌入式系统基础理论的前提下,掌握一些常用的 ARM 处理器相关的汇编语言和 C 语言程序设计方法,熟悉基于 S3C44B0X 芯片的硬件接口设计方法,学会使用 ARM 集成开发环境,从而了解嵌入式系统的软硬件设计过程,为今后从事相关领域的应用和研究打好基础。通过大作业期望可以实现如下目的:一、掌握一种 ARM 的开发工具使用方法;二、掌握 S3C44B0X ARM 处理器的原

4、理和接口设计方法;三、掌握 ARM 的 C 语言和汇编语言编程方法;四、培养选用参考书、查阅技术手册及相关参考文献的能力;五、培养独立思考、分析问题和解决问题的能力;六、培养严肃认真的学习风气和良好的沟通协作能力。1.2 实验内容实验内容题目题目:基于 ARM 的温湿度显示系统具体要求:具体要求:1以 S3C44B0X 的 ARM 处理器为核心,选择合适的元器件,设计一个空气中的温度和湿度 的显示系统;2温度传感器和湿度传感器的类型不限,要求温度测量范围为-20+60,湿度测量范围 为 10%90%;3温度和湿度的显示,可以采用八段数码管或 LCD 液晶屏的形式;4要求给出 S3C44B0X

5、和主要装置的硬件连接电路图(原理图) ;5要求编写相关的温湿度采集和显示程序,并给出合理的程序注释。本科生毕业论文(设计)题目1 1第第 2 章章 设计原理设计原理2.1 硬件系统总体设计硬件系统总体设计在本系统的设计过程中,根据嵌入式系统的基本设计思想,系统采用了模块化的设计方法;并且根据系统的功能要求和技术指标,系统遵循自上而下、由大到小、由粗到细的设计思想;按照系统的功能层次,在设计中把硬件和软件分成若干功能模块分别设计和调试,然后全部连接起来统调。 本设计的基于ARM 的嵌入式数据采集和显示装置的原理框图如图1所示。由图可见,本系统采用“电源部分ARM 核心控制模块温度采集模块”实现所

6、需功能。下面分别对各部分的工作原理做简要的说明: 多路温度传感器协控制器RS-232电源电路ARM处理器LCD显示键盘Flash ROM存储器SDRAM存储器图1为了实现系统所要求的功能和指标,并考虑到系统的可扩展性和延伸性,本系统采用主从CPU协同工作,实现了数据的实时采集、传输与显示,具有处理速度快、精度高、人机交互界面友好、稳定性高、扩展性好等优点。 2.2 LCD 液晶显示设计液晶显示设计2.2.1 S3C44B0X LCD 控制器介绍控制器介绍S3C44B0X 处理器集成 LCD 控制器,支持 4 位单扫描、4 位双扫描和 8 位单扫描工作方式。处理器使用内部 RAM 区作为显示缓存

7、,并支持屏幕水平和垂直滚动显示。数据的传送采用 DMA(直接内存访问)方式,以达到最小的延迟。根据实际硬件水平和垂直像素点数、传送数据位数、时间线和帧速率方式等进行编程以支持多种类型的液晶屏。可以支持的液晶类型有:嵌入式系统期末大作业2- 单色液晶- 4 级或 16 级灰度屏(基于时间抖动算法或帧速率控制-FRC)- 256 色彩色液晶(STN 液晶)2.2.2 显示控制显示控制LCD 控制器主要提供液晶屏显示数据的传送、时钟和各种信号的产生与控制功能。S3C44B0X处理器的LCD控制器主要部分框图如图2所示:寄存器控制数据控制DMA传送控制信号产生电路323232System BusVCL

8、KVD3:0VMVFRAMEVLNEVD7:3图2 LCD控制框图2.2.3 电路设计电路设计进行液晶屏控制电路设计时必须提供电源驱动、偏压驱动以及LCD 显示控制器。由于S3C44B0X处理器本身自带LCD 控制器,而且可以驱动实验板所选用的液晶屏,所以控制电路的设计可以省去显示控制电路,只需进行电源驱动和偏压驱动的电路设计即可。图 3 液晶显示电路本科生毕业论文(设计)题目3 32.3 A/D 转换设计转换设计2.3.1 采样保持接口采样保持接口在S3C44B0X中A/D模块有8 个模拟输入通道,通道的切换可以由内部的定时器完成。如果要进行8个通道连续变化的信号的转换,还必须在8个通道全部

9、加采样保持器,采样保持的接口电路如下图。模拟输入信号为需要转换的信号,驱动控制信号可以通过编程利用ARM里面的timer产生,也可以通过I/O 口来控制,输出信号直接接到A/D模块中的输入通道。 图4 采样保持接口2.3.2 分压电路分压电路分压电路比较简单,为了保证电压转换时是稳定的,可以直接调节可变电阻得到稳定的电压值。嵌入式系统期末大作业4图 5 分压电路2.4 电源电路设计电源电路设计本系统的电源电路由两部分组成:系统总电源电路和RAM核心模块电源电路。如图:+12V恒定直流电源经电容滤波,分别进入7809和7805稳压,得到+9V和+5V的稳定电压输出后分别供给ARM核心控制模块和其

10、余电路部分使用。图中IN4148是为了防止输出端并接高于本稳压模块的输出电压而烧坏7809和7805而特别设计,达到了可靠性电源设计目的。另外,由于系统正常工作电流较大,因此使用时均应在7809和7805上加散热片散热。 由图可见,系统采用双电源供电,提供了系统正常工作所需的电源电压。另外,由于考虑到便携目的,本系统采用+12V铅蓄电池提供系统所需的恒定直流电源。 本科生毕业论文(设计)题目5 5图6 电源电路2.5 温度采集电路设计温度采集电路设计温度采集模块电路如图。考虑到系统成本因素,此处采用AT89S52单片机作为模块的协控制器。对于温度传感器的选用DS18B20,因为DS18B20是

11、Dallas公司最新单总线数字温度传感器,该传感器集温度变换、A/D转换于同一芯片,输出直接为数字信号,大大提高了电路的效率。由于现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,且提高了CPU的效率。图4中AT89S52单片机的P0 口与8路温度传感器相连,用于采集温度数据;另外,模块提供RS-232串行口与RAM核心控制模块通信,达到数据传输的目的。 图 7 温度采集电路嵌入式系统期末大作业6第第 3 章章 设计步骤设计步骤3.1 软件设计软件设计本温度数据采集与显示装置的主体由S3C44B0 x核心控制模块和温度数据采集模块构成,所以系统软件也是围绕这两个模块来编写的。

12、而又由于系统采用了 S3C44Box和AT89S52两个CPU协同工作,所以软件的编写需要对这两个CPU分别编写,以实现所要求的功能。 开始ARM初始化硬件装置初始化扫描键盘处理按键键盘初始化LCD显示初始化相应显示数据获取数据处理数据显示有键按下YN软件设计流程图由该流程图可看出,刚上电时,S3C44B0 x 要先进行 ARM 内部的初始化,以使 ARM 进入相应的状态和模式;然后初始化硬件装置,以使硬件系统可以正常支持温度数据采集;接着通信初始化,以确定温度采集模块与 ARM 核心控制模块连接正常,并通过 UART 复位本科生毕业论文(设计)题目7 7温度数据采集模块,确保其进入正常温度数

13、据采集状态;然后初始化 LCD 显示和键盘,在 LCD 上显示相应的 菜单列表,供用户通过键盘选择操作;至此,系统初始化完成,并进入正常主程序循环状态。 在正常主程序循环状态中,首先扫描键盘,以快速的响应用户的按键操作;若没有键值按下,则 ARM 立即进行数据的采集、处理与显示,以实现实时数据采集与显示等功能。 3.2 关键代码关键代码LCD 液晶屏初始化:液晶屏初始化:void lcd_init(void)rDITHMODE = 0 x12210;rDP1_2= 0 xa5a5;rDP4_7= 0 xba5da65;rDP3_5= 0 xa5a5f;rDP2_3 = 0 xd6b;rDP5_

14、7 = 0 xeb7b5ed;rDP3_4= 0 x7dbe;rDP4_5 = 0 x7ebdf;rDP6_7 = 0 x7fdfbfe;/ disable,8B_SNGL_SCAN,WDLY=16clk,WLH=16clk,rLCDCON1= (0 x0)|(25)|(MVAL_USED7)|(0 x38)|(0 x310)|(CLKVAL_COLOR12);/ LINEBLANK=10 (without any calculation)rLCDCON2 = (LINEVAL)|(HOZVAL_COLOR10)|(1021);rLCDCON3 = 0;/ 256-color, LCDBANK

15、, LCDBASEUrLCDSADDR1 = (0 x322)1);rLCDSADDR2=M5D(unsigned int)g_unLcdActiveBuffer+(SCR_XSIZE*LCD_YSIZE)1) | (MVAL21);、rLCDSADDR3 = (LCD_XSIZE/2) | ( (SCR_XSIZE-LCD_XSIZE)/2)9 );/The following value has to be changed for better display.rREDLUT =0 xfdb96420; / 1111 1101 1011 1001 0110 0100 0010 0000rG

16、REENLUT=0 xfdb96420; / 1111 1101 1011 1001 0110 0100 0010 0000rBLUELUT =0 xfb40; / 1111 1011 0100 0000rLCDCON1=(0 x1)|(25)|(MVAL_USED7)|(0 x38)|(0 x310)|(CLKVAL_COLOR12);rPDATE=rPDATE&0 x0e;lcd_clr();嵌入式系统期末大作业8LCDLCD显示温度湿度代码:显示温度湿度代码:/-/显示温度湿度/-void word_view320 x240 x256(UINT8T *pBuffer)UINT32

17、T i, j;UINT32T *pView = (UINT32T*)g_unLcdActiveBuffer;for (i = 0; i SCR_XSIZE * SCR_YSIZE / 4; i+)*pView = (*pBuffer) 24) + (*(pBuffer+1) 16) + (*(pBuffer+2) 8) + (*(pBuffer+3);pView+;pBuffer += 4;相应温度处理与转换子程序:相应温度处理与转换子程序: /存放读取到的当前温度值,未转换 static U16 a-temp-now8=8*0 /存放经精度计算后的实际温度值,高8位整数部分,低8位小数部分

18、static U16 b-temp-now8=8*0; /存放8路转换后温度值,分别为百位,十位,个位,小数位 static U8 temp-convent-all32=32*0; /- /温度处理与转换子程序 /- void temp-change(void) U8 negtive=0 x00; /存放数的符号,若为正=0;若为负,=0 xff U8 j=0; U8 *pt=temp-convent-all; U16 *p1=a-temp-now; U16 *p3=b-temp-now; U16 temp=0; 本科生毕业论文(设计)题目9 9for(j=0;j8;j+) negative

19、=0 x00; temp=*p1; /若温度为负值,进行相应处理 if(temp&0 xf80) !=0) temp=(temp)+1;/转为正的原码 negative=0 xff; / 同时置符号为0 xff /根据精度消除无关数据 switch(a-temp-prec) case 0 x1f: /精度为9位,则清除最低3位无效位 temp=temp&0 xfff8;break; case 0 x3f: /精度为10位,则清除最低2位无效位 temp=temp&0 xfffc;break; case 0 x5f: /精度为11位,则清除最低1位无效位 temp=temp&0 xfffe;break; case 0 x7f: /精度为12位 break; /换算成实际温度,并扩大10倍,去掉小数部分 嵌入式系统期末大作业10temp=(U16)(float)(temp)*0.625); /折算放入b-temp-now 数组中 /高8位放整数部分,低8位放小数部分,最高位放符号位 if(negtive= 0 xff) /若为负值 *p3=(temp/10)8)|(temp%10)|0 x8000; else *p3=(temp/10)0;j-) *p1+=0 x0; 本科生毕业论文(设计)题目1111第第 4 章章 实验结果及结果分析实验结

温馨提示

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

评论

0/150

提交评论