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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、实时温控报警器设计3.嵌入式系统原理与应用综合设计实时温控报警器设计系 部:电子与信息工程系专业班级:通信工程10秋2班姓 名:学 号:小组成员:指导教师:完 成 日 期 2013年 6月目录1 绪论 11.1 嵌入式系统简介 11.2 综合设计目的 31.3 设计题目及设计要求 31.3.1 题目 31.3.2 设计要求 31.3.3 工作流程 31.4 实验设备与器材 42 方案设计 42.1 总体方案 42.2 硬件方案 52.2.1 原理框图 52.3 ARM开发板与各模块 52.3.1 ARM2110开发板简介 52.3.2 蜂鸣模块 62.3.3 温度测量模块 72.4 软件方案

2、92.4.1 程序流程图 93 系统程序设计与调试 113.1 方案论证 113.2 调试过程 114 结束语 144.1 课程设计体会 144.2 致谢 155 参考文献 166 附录 176.1 程序清单 171 绪论1.1 嵌入式系统简介嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是是由单个程序实现整个控制逻辑。嵌入式系统(Embedded system),是一种“完全嵌入受控器

3、件内部,为特定应用而设计的专用计算机系统”,与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。由于嵌入式系统通常进行大量生产。所以单个的成本节约,能够随着产量进行成百上千的放大。根据以上定义我们也可以看出嵌入式系统具备以下特点: 1)系统内核小。由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。 2)专用性强。嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植,即使在同一品牌、同一系列的产品中

4、也需要根据系统硬件的变化和增减不断进行修改。同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是完全两个概念。 3)系统精简。嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。 4)嵌入式系统开发需要开发工具和环境。由于其本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。开发时往往有主机和目标机的概念

5、,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。5)高实时性的系统软件(OS)是嵌入式软件的基本要求。而且软件要求固态存储,以提高速度;软件代码要求高质量和高可靠性。近年来,随着社会信息化革命的深入以及网络技术的发展,计算机技术也取得了前所未有的发展。在实际应用过程中,人们为了完成特定的功能而逐渐倾向于采用嵌入式系统。嵌入式系统作为专用的计算机系统已经逐渐渗透到社会生活的各个领域,从而深刻的改变着人们的生活方式。嵌入式系统是以应用为中心的知识密集型产业,具有不断创新的特点,是社会发展的重要推动力。图1.1 常见的嵌入式系统应用实例1.2 综合设计目的通过本次综合设计,运用

6、已学的课程知识,根据题目要求进行软硬件系统的设计和调试,对嵌入式系统原理与应用课程中涉及的芯片结构、控制原理、硬件和编程等方面有一定的感性认识和实践操作能力,从而加深对本课程知识点的理解,使学生应用知识能力、设计能力、调试能力以及报告撰写能力等方面有显著提高。1.3 设计题目及设计要求1.3.1 题目实时温控报警器设计1.3.2 设计要求1)利用实验系统的资源来设计一个“带液晶屏显示的实时温控报警器”。2)控制面板包括:1602液晶屏显示、十个数字按键键盘、电源按键、电源指示灯、运行键。1.3.3 工作流程1)按下电源键,电源指示灯亮;2)启动系统运行,1602液晶屏幕上显示出当前环境温度与预

7、先设定临界温度值;3)手握传感器,1602液晶屏上显示传感器测得的环境温度变化;4)1602液晶屏幕实时显示当前的温度,当超过预先设定温度值时,蜂鸣器报警;5)运行过程中,若再按下电源键,则系统停止,电源指示灯灭。1.4 实验设备与器材实验设备:PC机一台、LM3S2110实验开发板。实验器材:蜂鸣器、LM75A数字温度传感器、LCD1602液晶屏。2 方案设计2.1 总体方案方案一:由于本设计是测温电路,根据设计要求可以使用热敏电阻之类的感温器件利用其感温效应,然后将随被测温度变化的电压或电流采集过来,经过A/D转换后,将数据传输到单片机进行数据的处理,然后在显示电路上显示,这样就可以将被测

8、温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。方案二:在嵌入式综合设计中,大多都是使用传感器,这就非常容易想到利用数字温度传感器,所以可以采用一只温度传感器LM75A,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。从以上两种方案,很容易看出,采用方案二,设计比较简洁,程序编写也比较简单,故采用方案二。程序编码中预先设定一个温度临界值,即报警温度。LM75A数字温度传感器测得的当下环境的实时温度与设定的报警温度进行比较,报警温度和实时温度都会显示在LCD1602液晶屏上。我们可以清楚看到实时温度的变化,程序会判断实时温度与报警温度的大小,若实际温度大于所

9、设置的温度,则蜂鸣器蜂鸣;反之,蜂鸣器不蜂鸣。2.2 硬件方案2.2.1 原理框图1)ARM开发板:LM3S2110;2)温度测量与显示:LM75A数字温度传感器、LCD1602液晶屏;3)蜂鸣器:环境温度超过报警温度时实施报警; ARM开 发 板 LED显示 蜂鸣器报警图2.1 系统结构框图2.3 ARM开发板与各模块2.3.1 ARM2110开发板简介ARM2110 开发板中包含一块 LM3S2110 微控制器,是由Luminary Micro公司提供的Stellaris系列芯片,该系列的微控制器是首款基于ARM Cortex-M3的控制器,Stellaris微处理器LM3S2110有如下

10、特点:1)32位ARM的Cortex- M3的25 - MHz的处理器与系统定时器的核心(SysTick的),集成的嵌套向量中断控制器(NVIC),记忆体保护单元(MPU),以及Thumb - 2指令集。2)功能齐全的调试解决方案,通过JTAG和串行线接口,IEEE 1149.1-1990标准的测试访问端口(TAP)控制器调试访问。3)11-40个GPIO GPIO中断和键盘配置的可编程控制(取决于配置)。4)兼容ARM FiRM的看门狗定时器,加上3个通用定时器模块(GPTM),每个提供两个16位定时器/计数器和可配置独立运作。5)10位模拟 - 数字转换器(ADC),模拟输入通道和一个采样

11、/秒的采样率。6)同步串行接口(SSI),支持飞思卡尔SPI接口,MICROWIRE,或德州仪器同步串行接口操作。7)内部集成电路(I2C)接口,提供标准(100 Kbps)和快速(400 Kbps)无论是作为主机或从机发送和接收数据的传输和支持。另外开发板上主要可以使用的元器件有:1个RST 键,4 个独立按键,8个 LED小灯和1个蜂鸣器。图 2.2 ARM2110实验开发板2.3.2 蜂鸣模块ARM2110 开发板中的蜂鸣器电路原理图如图2.3所示,由于蜂鸣器的工作电流一般比较大,以致于MCU的 I/O 口是无法直接驱动的,所以要利用放大电路来驱动。在嵌入式应用的设计上,很多方案都会用到

12、蜂鸣器,大部分都是使用蜂鸣器来做提示或报警,比如按键按下、开始工作、工作结束或是故障等等。一般驱动蜂鸣器的方式有两种:一种是 PWM 输出口直接驱动,另一种是利用 I/O 定时翻转电平产生驱动波形对蜂鸣器进行驱动。PWM 输出口直接驱动是利用 PWM 输出口本身可以输出一定的方波来直接驱动蜂鸣器。只要打开 PWM 输出,PWM 输出口就能输出该频率的方波,这个时候利用这个波形就可以驱动蜂鸣器了。利用 I/O 定时翻转电平来产生驱动波形的方式则必须利用定时器来做定时, 通过定时翻转电平产生符合蜂鸣器要求的频率的波形,这个波形就可以用来驱动蜂鸣器了。本次设计采用了蜂鸣报警。 图 2.3 蜂鸣模块原

13、理图2.3.3 温度测量模块用LM75A数字温度传感器测量当前环境温度,LM75A 是一个使用了内置带隙温度传感器和-模数转换技术的温度-数字转换器。它也是一个温度检测器,可提供一个过热检测输出。LM75A 包含许多数据寄存器:配置寄存器(Conf),用来存储器件的某些配置,如器件的工作模式、OS 工作模式、OS 极性和OS 故障队列等(在功能描述一节中有详细描述);温度寄存器(Temp),用来存储读取的数字温度;设定点寄存器(Tos & Thyst),用来存储可编程的过热关断和滞后限制,器件通过2线的串行I2C总线接口与控制器通信。LM75A 还包含一个开漏输出(OS),当温度超过编程限制的

14、值时该输出有效。LM75A 有3 个可选的逻辑地址管脚,使得同一总线上可同时连接8个器件而不发生地址冲突。LM75A 可配置成不同的工作条件。它可设置成在正常工作模式下周期性地对环境温度进行监控或进入关断模式来将器件功耗降至最低。OS 输出有2 种可选的工作模式:OS 比较器模式和OS 中断模式。OS 输出可选择高电平或低电平有效。故障队列和设定点限制可编程,为了激活OS 输出,故障队列定义了许多连续的故障。LM75A 利用内置的分辨率为0.125的带隙传感器来测量器件的温度,并将模数转换得到的11 位的二进制数的补码数据存放到器件Temp 寄存器中。Temp 寄存器的数据可随时被I2C 总线

15、上的控制器读出。读温度数据并不会影响在读操作过程中执行的转换操作。图 2.4 LM75A数字温度传感器A2 A1 A0 SCL SDA GND图 2.5 LM75A简化功能框图2.4 软件方案2.4.1 程序流程图主程序的主要功能是负责读出并处理LM75A数字温度传感器测量的当前温度值,并在LCD1602液晶屏上进行温度的实时显示,并根据设置的报警温度判断是否报警。系统开始运行时,温度传感器测量并计算温度值进行处理,经过处理后的数据传输到液晶屏进行显示。程序中预先编写进温度报警界限,当实时温度超过报警界限时,蜂鸣器报警,反之不报警。其程序流程见图2.6所示。 开始 否 是 是图 2.6 主程序

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

17、.3 温度显示2)如图3.4,手握住传感器导致实时温度上升,实时温度大于报警温度时,蜂鸣器蜂鸣。图3.4 温度显示4 结束语4.1 课程设计体会为期近一个月的大型作业圆满的结束了,这几周对于我来说有着很深刻的印象。不管是在课程设计中出现的困难,还是同学老师对我的帮助。都或多或少的引发了我的思考。大学接近尾声,而我们平时专业课的学习究竟掌握了多少知识,在这次课程设计中便看到了各自的区别。有的同学可以很轻松的便编写出一个程序,而有的是怎么都写不出来。我也深刻意识到实践和理论的有效结合才能真正的提高自己的专业技能。这次的大型作业一方面加深了我对课本理论知识的理解,另一方面也提高了实践动手能力。实验的

18、过程老师只是会做稍微提示,其他部分从软件测试到硬件连接全要靠自己动手来完成。最开始的几天大家都会比较松懈,会依赖自己的组员,其实真正的成功是要靠两个人的共同努力,合理分工才能完成的。写不出程序时,大家一起讨论便会有新的进展,我也意识到团队的力量是取胜的关键。整个大型作业的时间还是比较充裕的,因为老师会给一些基础的程序代码,我们需要在其基础上进行改进和创新,做出新的东西。这都需要创新的思维和不怕失败的精神,中间免不了出现问题。我也遇到了一些问题。不过后来都得到了解决。就将遇到的问题和解决方法总结如下。1)LCD1602液晶屏不显示。这个问题其实挺多小组都碰到了,而原因各不相同,起初我们以为是连线

19、问题或者是电脑里没有正确安装驱动。但经过仔细检查这些都没有问题。后来我突然想到会不会是开发板或者液晶屏本身坏了,于是便借了其他小组的器材,进行两两组合来检验是哪里出了问题,后来终于验证了我的想法,是开发板坏了,后来便找老师换了一块。2)传感器测量的实时温度只传到串口,无法显示在液晶屏。这个实验的核心内容就是解决这个问题,需要在老师给的原始程序上进行改进,使实时温度两边都能够显示。最后经过多次的简单程序重组和测试,发现了解决问题的关键在于要将LM75A数据寄存器的地址找对,并且将数据重新取出并送给液晶显示屏。而不能简单的加入数据输出语言。3)报警温度不显示。实时温度显示出之后,我们想更改进,将报

20、警温度显示在实时温度下方,可是我改了程序,发现还是不行,后来和同学一起讨论之后才发现我只是加入了报警温度显示的位置,却忘记了数据转换和循环,后来加入了一个for语句,问题便迎刃而解了。其实真正动手实践了才发现很多问题,有的问题虽然很小,但却影响着整个实验的成败。因此我们应该有耐心,更细心,这样才能够成功的完成整个实验。4.2 致谢其实这次课程设计能够顺利的完成,最应该感谢的便是我们的指导老师王永明老师和徐振老师。整个过程中他们都很细心和耐心帮我们。从硬件是否坏了,程序是否出错,电脑是否没正确安装驱动,我们只要提出问题,他们都很快的帮我们解决。他们的讲解和指导,给我们带来很多帮助。哪怕平时上课已

21、经讲过的知识,当我们问的时候,他们还是会认真的再讲一遍。实验的整个过程中,花费了老师很多的宝贵时间和精力,在此向老师表示衷心地感谢,老师认真的态度和对学生的关爱我们都看在眼里,记在心里,我相信通过他们的言传身教下学期我会更努力的学习专业课。其次要感谢的便是我身边的同学了,我对程序编写其实不是很懂,每次很简单的问题也要请教他们,他们会不厌其烦的给我讲,这次实时温度报警器的设计程序是所有设计中最难的一组,程序也比较复杂,团结就是力量,我真心的感谢给过我帮助的同学们。真心谢谢所有帮助过我的人。5 参考文献1周立功.ARM嵌入式系统基础教程.北京:北京航空航天大学出版社,2005.12周立功.ARM嵌

22、入式系统实验教程.第三版.北京:北京航空航天大学出版社,2005.93周立功.ARM嵌入式系统实验教程.第三版.扩展实验.北京:北京航空航天大学出版社,2005.114田泽.嵌入式系统开发与应用实验教程.第二版.北京:北京航空航天大学出版社,2005.4参考网站:1周立功单片机;2广州致远电子网页;3电子电路图网;4中国互动出版网http:/www.china-。6 附录6.1 程序清单#include systemInit.h#include uartGetPut.h#include LM3S_I2CM.h#include #include / 定义LM75A(NXP半导体数字温度传感器,I

23、2C接口)#define LM75A_SLA (0x90 1) / 定义LM75A的器件地址#define LM75A_REG_TMP 0x00 / 定义LM75A的温度寄存器地址#define BUZ_PERIPH SYSCTL_PERIPH_GPIOH / BUZ#define BUZ_PORT GPIO_PORTH_BASE#define BUZ_PINS GPIO_PIN_0 #define lcden GPIO_PIN_0 /PB0;#define lcdrs GPIO_PIN_1 /PB1;unsigned char data; /PD0-PD7;unsigned char num

24、;void write_com(unsigned char com) /写命令 GPIOPinWrite(GPIO_PORTB_BASE,lcdrs,0x00); / lcdrs=0; 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,com);/PD=com; SysCtlDelay(5 * (TheSysClock / 4000); / 延时 5ms GPIOPinWrite(GPIO_PORTB_BASE

25、,lcden,0xFF); / lcden=1; SysCtlDelay(5 * (TheSysClock / 4000); GPIOPinWrite(GPIO_PORTB_BASE,lcden,0x00); / lcden=0; void 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

26、|GPIO_PIN_6|GPIO_PIN_7,date);/PD=date; SysCtlDelay(5 * (TheSysClock / 4000); GPIOPinWrite(GPIO_PORTB_BASE,lcden,0xFF); / lcden=1; SysCtlDelay(5 * (TheSysClock / 4000); GPIOPinWrite(GPIO_PORTB_BASE,lcden,0x00); / lcden=0;void init() SysCtlPeriEnable(SYSCTL_PERIPH_GPIOD); /使能A端口 GPIOPinTypeOut(GPIO_PO

27、RTD_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_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); /显

28、示功能开,有光标,光标闪烁 write_com(0x06); / write_com(0x01); / 开始清屏 / 读取LM75A的温度值,并通过UART发送显示void LM75A_TmpDisp(char *pcTmp) int sec2; char Tab84 = 000, 125, 250, 375, 500, 625, 750, 875; char s20; short t; int m=30; t = pcTmp0; t = 8; t |= pcTmp1 & 0xE0; if (t 5) & 0x07); uartPuts(rn); write_com(0x87); write_

29、data(223); write_com(0x88); write_data(67); write_com(0x85); write_data(s0); write_data(s1); write_com(0x80+0x47); write_data(223); write_com(0x80+0x48); write_data(67); write_com(0x80+0x45); sec0 = m/10; /取十位 sec1 = m%10; /取个位 for (int i=0;im) GPIOPinTypeOut(BUZ_PORT, BUZ_PINS); GPIOPinWrite(BUZ_PORT, BUZ_PINS, 0xff); else GPIOPinTypeOut(BUZ_PORT, BUZ_PINS); GPIOPinWrite(BUZ_PORT, BUZ_PINS, 0x00); / 主函数(程序入口)int main(void) unsigned long ulStart, ulStop; unsigned long

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

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