ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:1.76MB ,
资源ID:8659553      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8659553.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实时温控报警器设计4.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实时温控报警器设计4.docx

1、实时温控报警器设计4.嵌入式系统原理与应用综合设计实时温控报警器设计系 部:电子与信息工程系专业班级:通信工程10秋2班姓 名:学 号:小组成员:指导教师:完 成 日 期 2013年 7月目录1 绪论 11.1嵌入式系统简介 11.2课程设计目的 31.3课程设计题目及设计要求 31.3.1设计题目 31.3.2设计要求 31.3.3工作流程 31.3.4实验设备与器材 42 硬件设计 52.1系统结构框图 52.2 1602液晶屏 62.2.2 1602管脚功能 72.3ARM开发板 82.3.1 LM3S2110简介 82.4 LM75A数字温度传感器 102.4.1 LM75A数字温度传

2、感器简介 102.4.2 LM75A数字温度传感器特点 113软件设计 123.1程序流程图 123.2 系统控制软件概述 133.2.1 系统软件主要实现以下几大功能: 133.3 系统软件的设计 133.3.1 主程序设计 133.4设计过程及结果 133.4.1 对于LCD1602液晶屏显示器的描述 133.4.2 程序执行基本流程 134系统程序设计与调试 144.1方案论证 144.2调试过程 155结束语 175.1调试过程中的问题和解决方法 175.2 心得体会 176参考文献 187附录 197.1程序清单 191 绪论1.1嵌入式系统简介嵌入式系统(Embedded syst

3、em),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电器工程师协会( U.K. Institution of Electrical Engineer)的定义,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。由于嵌入式系统通常进行大量生产。所以单个的成本节约,能够随着产量进行成百上千的放大。嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成。与通用计算

4、机能够运行用户选择的软件不同,嵌入式系统上的软件通常是暂时不变的;所以经常称为“固件”。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力、才更具有优势。因此可以这样理解上述三个面向的含义,即嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的裁减利用。嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高

5、度分散、不断创新的知识集成系统。所以,介入嵌入式系统行业,必须有一个正确的定位。例如Palm之所以在PDA领域占有70%以上的市场,就是因为其立足于个人电子消费品,着重发展图形界面和多任务管理;而风河的Vxworks之所以在火星车上得以应用,则是因为其高实时性和高可靠性。嵌入式系统必须根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。所以,如果能建立相对通用的软硬件基础,然后在其上开发出适应各种需要的系统,是一个比较好的发展模式。目前的嵌入式系统的核心往往是一个只有几K到几十K微内核,需要根据实际的使用进行功能扩展或者裁减,但是由于微内核的存在,使得这种扩展能够非常顺

6、利的进行。一般而言,嵌入式系统的构架可以分成四个部分:处理器、存储器、输入输出(I/O)和软件(由于多数嵌入式设备的应用软件和操作系统都是紧密结合的,在这里我们对其不加区分,这也是嵌入式系统和一般的PC操作系统的最大区别)。图1.1是常见的一些应用嵌入式系统的实例图1.1常见的嵌入式系统应用实例1.2课程设计目的 现实生活中,常常需要进行温度控制。当温度超出某一规定的上限值时,需要立即切断电源并报警。待回复正常后设备继续运行。本实验的目的就是亲自动手制作一个这样的温度报警器,实现这一目标,完成其报警的自动控制。温度是一种最基本的环境参数,它是与人类的生活、工作关系最密切的物理量,也是各门学科与

7、工程研究设计中经常遇到和必须精确测量的物理量。从工业炉温、环境气温到人体温度,从空间、海洋到家用电器,各个技术领域都离不开测温和控温。因此研究温度的测量和控制方法具有重要的意义。1.3课程设计题目及设计要求1.3.1设计题目实时温控报警器设计1.3.2设计要求1)利用实验系统的资源来设计一个“带液晶屏显示的实时温控报警器”。2)控制面板包括:1602液晶屏显示、十个数字按键键盘、电源按键、电源指示灯、运行键。1.3.3工作流程工作流程如下:1)按下电源键,电源指示灯亮;2)启动系统运行,1602液晶屏幕上显示出当前环境温度与预先设定临界温度值;3)手握传感器,1602液晶屏上显示传感器测得的环

8、境温度变化;4)1602液晶屏幕实时显示当前的温度,当超过预先设定温度值时,蜂鸣器报警;5)运行过程中,若再按下电源键,则系统停止,电源指示灯灭。1.3.4实验设备与器材 实验设备:PC机一台、LM3S2110实验开发板。实验器材:蜂鸣器、LM75A数字温度传感器、LCD1602液晶屏。 2 硬件设计2.1系统结构框图1)ARM开发板:LM3S2110;2)温度测量与显示:LM75A数字温度传感器、LCD1602液晶屏;3)蜂鸣器:环境温度超过报警温度时实施报警;系统结构框图如图2.1 所示。 ARM开 发 板 LED显示 蜂鸣器报警图2.1系统结构框图2.2 1602液晶屏在本次试验中,因为

9、要显示温度的高低大小,我们决定使用1602液晶屏来显示。2.2.1 1602液晶屏简介工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)注:为了表示的方便 ,后文皆以1表示高电平,0表示低电平。1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符

10、液晶模块(显示字符和数字)。如图2.2所示图2.2 1602的实物图2.2.2 1602管脚功能1602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第714脚:D

11、0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。如图2.3所示图2.3 1602管教图2.3ARM开发板2.3.1 LM3S2110简介Luminary Micro公司 Stellaris所提供一系列的微控制器是首款基于ARM Cortex-M3的控制器,它们为对成本尤其敏感的嵌入式微控制器应用方案带来了高性能的32位运算能力。 这些具备领先技术的芯片使用户能够以传统的8位和16位器件的价位来享受32位的性能,而且所有型号都是以小占位面积的封装形式提供。该 Stellaris_ 系列芯片能够提供高效的性能、广泛的集成功能以及按照要求定位的选择,适用于各种关

12、注成本并明确要求具有的过程控制以及连接能力的应用方案。 该Stellaris_ LM3S1000 系列使用更大的片上存储器、增强型电源管理和扩展I/O以及控制功能来扩展Stellaris家族。该StellarisLM3S2000 系列是针对控制器局域网应用方案而设计的一组芯片,它在Stellaris系列芯片的基础上扩展了Bosch CAN网络技术短距离工业网络里的黄金标准。该StellarisLM3S2000系列芯片还标志着先进的Cortex-M3内核和CAN能力的首次结合运用。该StellarisLM3S6000系列芯片结合了10/100以太网媒体访问控制(MAC)以及物理层(PHY),标志

13、着ARM Cortex-M3 MCU已经具备集成连接能力,还是唯一集成了10/100以太网MAC和PHY物理层的ARM架构MCU。该Stellaris_LM3S8000 系列结合了 Bosch 控制器局域网技术和 10/100 以太网媒体访问控制(MAC)以及物理 (PHY) 层。该LM3S2110 微控制器是针对工业应用方案而设计的,包括远程监控、电子贩售机、测试和测量设备、网络设备和交换机、工厂自动化、HVAC和建筑控制、游戏设备、运动控制、医疗器械、以及火警安防。除此之外,该LM3S2110微控制器的优势还在于能够方便的运用多种ARM的开发工具和片上系统(SoC)的底层IP应用方案,以及

14、广大的用户群体。 另外,该微控制器使用了兼容ARM的Thumb指令集的Thumb2指令集来减少存储容量的需求,并以此达到降低成本的目的。 最后,LM3S2110微控制器与Stellaris系列的所有成员是代码兼容的,这为用户提供了灵活性,能够适应各种精确的需求。为了能够帮助用户产品快速的上市,Luminary Micro公司提供了一整套的解决方案,包括评估和开发用的板卡、白皮书和应用笔记 、方便使用的外设驱动程序库、以及强劲的支持、销售和分销网络。LM3S2110开发板如下图2.4所示。图2.4 LM3S2110开发板2.4 LM75A数字温度传感器2.4.1 LM75A数字温度传感器简介LM

15、75A是一款内置带隙温度传感器和模数转换功能的温度数字转换器,它也是温度检测器,可提供过热输出功能。LM75A包含多个数据寄存器:配置寄存器(Conf)用来存储器件的某些设置,如器件的工作模式、OS工作模式、OS极性和OS错误队列等;温度寄存器(Temp)用来存储读取的数字温度;设定点寄存器用来存储可编程的过热关断和滞后限制,器件通过两线的串行I2C总线接口与控制器通信。LM75A还包含一个开漏输出管脚,当温度超过编程限制的值时该输出有效。LM75A有3个可选的逻辑地址管脚,使得同一总线上可同时连接8个器件而不发生地址冲突。LM75A可配置成不同的工作模式。它可设置成在正常工作模式下周期性地对

16、环境温度进行监控,或进入关断模式来将器件功耗降至最低。OS输出有2种可选的工作模式:OS比较器模式和OS中断模式。OS输出可选择高电平或低电平有效。错误队列和设定点限制可编程,可以激活OS输出。温度寄存器通常存放着一个11位的二进制数的补码,用来实现0.125的精度,在需要精确地测量温度偏移或超出限制范围的应用中非常有用。当LM75A在转换过程中不产生中断(I2C总线部分与转换部分完全独立)或LM75A不断被访问时,器件将一直更新温度寄存器中的数据。正常工作模式下,当器件上电时,OS工作在比较器模式,温度阈值为80,滞后75,这时,LM75A就可用作独立的温度控制器,预定义温度设定点。2.4.

17、2 LM75A数字温度传感器特点 器件可以完全取代工业标准的LM75,并提供了良好的温度精度(0.125),单个器件的电源范围可超出2.8V5.5V的范围 具有I2C总线接口,同一总线上可连接多达8个器件 电源电压范围:2.8V5.5V 环境温度范围:Tamb=-55+125 提供0.125的精度的11位ADC 温度精度:-25+100时为2 -55+125时为3 可编程温度阈值和滞后设定点 为了减低功耗,关断模式下消耗的电流仅为3.5A 上电时器件可用作一个独立的温度控制器 ESD保护:JESD22-A114为2000V HBMJESD22-A115为200V和JESD22-C101为100

18、0V CDM 超过100mA的JESDEC标准JESD78要进行栓锁测试(Latch-up testing)如下图2.5所示图 2.5 LM75A数字温度传感器3软件设计3.1程序流程图主程序的主要功能是负责读出并处理LM75A数字温度传感器测量的当前温度值,并在LCD1602液晶屏上进行温度的实时显示,并根据设置的报警温度判断是否报警。系统开始运行时,温度传感器测量并计算温度值进行处理,经过处理后的数据传输到液晶屏进行显示。程序中预先编写进温度报警界限,当实时温度超过报警界限时,蜂鸣器报警,反之不报警。其程序流程见图3.1所示。图 3.1主程序流程图3.2 系统控制软件概述3.2.1 系统软

19、件主要实现以下几大功能:(1) 利用键盘设置初始判断温度,并在LCD1602液晶屏上显示;(2) 通过LM75A数字温度传感器将感应的实际温度送入寄存器;(3) 根据设定的参数初值对数据进行判断,从而并控制蜂鸣器的报警。3.3 系统软件的设计3.3.1 主程序设计主程序中仅实现系统的初始化,对系统进行自检和调用数据处理子程序。包括键盘读取子程序,温度传感器获取温度子程序,温度转化子程序,显示子程序。3.4设计过程及结果3.4.1 对于LCD1602液晶屏显示器的描述用一个LCD1602液晶屏来实现实验。其中第一位显示C,表示温度单位。第二位显示“”,第三位显示个位温度;第四位显示十位温度,第五

20、位显示“!”,表示温度报警。3.4.2 程序执行基本流程1.输入一个两位温度给模块作为其初始温度。显示温度在LCD1602液晶屏上的第0x85、0x86位。2.假设一个具体数值,如30,把此数值假设为温度传感器感应的温度,与LCD1602液晶屏上显示的报警温度进行比较。 3.若30小于LCD1602液晶屏上显示的报警温度,则蜂鸣器无任何操作。因为对应管脚位低电平,蜂鸣器不激活。4.若30大于LCD1602液晶屏上显示的报警温度,则蜂鸣器蜂鸣。因为对应管脚为高电平。5.在步骤4的情况下,可再次改变LCD1602液晶屏上显示的报警温度。6.在步骤5的情况下,若LCD1602液晶屏上显示的报警温度大

21、于30,则蜂鸣器不工作,即停止蜂鸣。4系统程序设计与调试4.1方案论证烧写程序后,进行调试。LM75A数字温度传感器能有效的测量当前环境温度并实时传送显示到液晶屏幕上。当手握住传感器时,温度上升,液晶屏上的温度变化也能很及时的显示。没有时延的问题,真正的做到了实时性。当温度变化超过了程序预先编写的报警温度时,蜂鸣器便会报警,温度下降到报警温度以下,蜂鸣器便停止报警。结果证明方案可行。4.2调试过程1)将硬件根据电路原理图正确连接,烧写程序。如图4.1,可以看到液晶屏幕上显示出当前室温,与电脑上串口端显示温度相同,如图4.2所示。两者同步变化,说明LM75A数字温度传感器很准确的测量了实时温度。

22、图4.1 硬件连接图图4.2温度显示2)如果没到规定温度,蜂鸣器不响如图4.3,如果到了规定温度,蜂鸣器就响了如图4.4所示 图4.3 蜂鸣器不响 图4.4蜂鸣器响5结束语5.1调试过程中的问题和解决方法在调试的时候,我们发现,一开始做的时候很多都不是很会,然后慢慢地做着就上手了,中间,我还发现了很多问题。问题1:一开始拿到显示屏之后,连接电脑后,发现显示屏不亮,也不知道怎么回事,后来发现旁边有两个旋钮,就随便的转了,经过一步一步的摸索,知道扭一个旋钮可以调节显示屏的亮度。:问题2:满足报警温度,蜂鸣器就会一直鸣响,不管以后温度是否低于报警温度,这个问题也困扰了我很久,最后我分析了一下,发现是

23、因为程序只写了满足条件蜂鸣器响,而没有写不满足时蜂鸣器不响,所以跳入蜂鸣器响的程序,程序一直执行就蜂鸣。后来我在主函数main()中加了一句话else语句;这句话的作用是不满足时蜂鸣器不响。还有一些由于粗心而造成的问题就不细说了。通过我们大家的努力,这些ing人头疼的问题也跟着一一解决了。成功也在一个一个的小问题的解决后变得难能可贵。5.2 心得体会这次实验的心得体会:经过这次大型作业,让我们对ARM系统具有了更深刻的了解与认识,通过一组人得努力合作下,我们终于一起完成了这个项目,自己动手,从在网上挑选需要用的材料,下订单,到最后的装程序,连线调试。每个人都付出了自己的辛劳与汗水。6参考文献1

24、周立功.ARM嵌入式系统基础教程.北京:北京航空航天大学出版社,2005.12周立功.ARM嵌入式系统实验教程.第三版.北京:北京航空航天大学出版社,2005.93周立功.ARM嵌入式系统实验教程.第三版.扩展实验.北京:北京航空航天大学出版社,2005.114田泽.嵌入式系统开发与应用实验教程.第二版.北京:北京航空航天大学出版社,2005.45Labrosse J Jean. 邵贝贝译.嵌入式实时操作系统c/os-II.第二版.北京:北京航空航天大学出版社,2003参考网站:1周立功单片机;2广州致远电子网页;3电子电路图网;4中国互动出版网http:/www.china-。7附录7.1程

25、序清单#include systemInit.h#define lcden GPIO_PIN_0 /PB0;#define lcdrs GPIO_PIN_1 /PB1;#define KEY_PERIPH SYSCTL_PERIPH_GPIOB / 数码管段选,GPIO B模块 #define KEY_PORT GPIO_PORTB_BASE#define KEY_PINS GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6#define BUZ_PERIPH SYSCTL_PERIPH_GPIOH / BUZ#define BUZ_PORT GPIO_PORTH_BAS

26、E#define BUZ_PINS GPIO_PIN_0 #define KEY1_PERIPH SYSCTL_PERIPH_GPIOH / 数码管段选,GPIO H模块 #define KEY1_PORT GPIO_PORTH_BASE#define KEY1_PINS GPIO_PIN_1unsigned char data; /PD0-PD7;unsigned char num;void write_com(unsigned char com) /写命令GPIOPinWrite(GPIO_PORTB_BASE,lcdrs,0x00); / lcdrs=0;GPIOPinWrite(GPI

27、O_PORTD_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2| GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,com);/PD=com;SysCtlDelay(5*(TheSysClock/4000); / 延时 5msGPIOPinWrite(GPIO_PORTB_BASE,lcden,0xFF); / lcden=1; SysCtlDelay(5*(TheSysClock/4000); GPIOPinWrite(GPIO_PORTB_BASE,lcden,0x00); / lcden=0; voi

28、d write_data(unsigned char date)GPIOPinWrite(GPIO_PORTB_BASE,lcdrs,0xFF); / lcdrs=1;GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2| GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,date); /PD=date; SysCtlDelay(5*(TheSysClock/4000); GPIOPinWrite(GPIO_PORTB_BASE,lcden,0xFF); / lcd

29、en=1; SysCtlDelay(5*(TheSysClock/4000); GPIOPinWrite(GPIO_PORTB_BASE,lcden,0x00); / lcden=0;void init()SysCtlPeriEnable(SYSCTL_PERIPH_GPIOD); /使能A端口GPIOPinTypeOut(GPIO_PORTD_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2| GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7); SysCtlPeriEnable(SYSCTL_PERIPH

30、_GPIOB); GPIOPinTypeOut(GPIO_PORTB_BASE, GPIO_PIN_0|GPIO_PIN_1); GPIOPinWrite(GPIO_PORTB_BASE,lcden,0x00); / lcden=0; write_com(0x38); /8位数据,双列,5*7字形 write_com(0x0c); /显示功能开,有光标,光标闪烁 write_com(0x06); / write_com(0x01); / 开始清屏/ 主函数(程序入口)int main(void) clockInit(); / 时钟初始化:晶振,6MHz SysCtlPeriEnable(KEY_PERIPH); / 使能KEY所在的GPIO端口 GPIOPinTypeIn(KEY_PORT, KEY_PINS); / 设置KEY所在管脚为输入 SysCtlPeriEnable(KEY1_PERIPH); / 使能KEY所在的GPIO端口 GPIOPinTypeIn(KEY1_PORT, KEY1_PINS); / 设置KEY所在管脚为输入 SysCtlPeriEnable(BUZ_PERIPH); / 使能BUZ所在的GPIO端口 GPIOPinTypeIn(BUZ_PORT, BUZ_PINS); /

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1