




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实时温控报警器设计1嵌入式系统原理与应用综合设计实时温控报警器设计系部:专业班级:姓 名:学 号:小组成员:指导教师: 电子与信息工程系 电子信息工程09秋1班完成日期2012年6月目录1绪论11.1嵌入式系统简介11.2课程设计目的213课程设计题目及设计要求21.3.1设计题1.3.2设计要1.3.3工作流程21.3.4实验设备与器材32设计方案.42.1总体方案43硬件设计 3.1隔热器模块53.1.1 继电器 pcm-8032ar 简介53.1.2 pcm-8032ar 硬件结构63.1.3 pcm-8032ar 功能结3.2 arm开发3.2.1 lm3s2110 简介74软件设计.
2、94.1系统控制软件概述94.1.1系统软件主耍实现以下几大功能:94.1.2程序的总体结构104.2系统软件的设计104.2.1主程序设计10i4.2.2键盘读取与lcd1602液晶屏显示子程序设计104.3设计过程及结431对于键盘操作的描述114.3.2对于lcd1602液晶屏显示器的描述114.3.3程序执行基本流程125系统程序设计与调试135.1方案的程序调试136结束语146.1设计调试过程中遇到的问题以及解决方法146.2课程设计体会146.3致谢147参考文献8附件材料 .168.1实物图168.2程序清单及说明16ii1绪论 1.1嵌入式系统简介嵌入式系统是指以应用为中心、
3、以计算机技术为基础、软硬件可裁剪 的专用计算机系统,是继it网络技术之后的乂一新技术发展方向。由于具 有体积小、功耗低、可靠性高以及面向多行业应用的特征,嵌入式系统目 前已被广泛用于国防军事、电子消费、网络通信、工业控制等领域,具有 极为广阔的发展前景。结合internet技术,嵌入式系统目前己普遍应用于智能公路(车辆导 航、信息监测等)、植物工厂(无土栽培、智能种子工程等)、虚拟现实(vr) (交通警察、家用机器人等)、信息家电(冰箱、空调网络化、自动抄表、 防火/防盗系统等)、先进工业自动化(电网安全等)、pos网络及电子商务 (交通卡、电话卡、自动售货机等)。嵌入式系统几乎包括了牛活中的
4、所有电器设备,如掌上pda、移动计字相机、家庭口动化系统、电梯、空调、安全系统、自动售货机、蜂窝式电话、 消费电子设备、工业自动化仪表与医疗仪器等。图1常见的嵌入式系统应用实例212课程设计目的通过木次课程设计,运用已学的课程知识,根据题目要求进行软硬件 系统的设计和调试,对arm嵌入式系统原理课程中涉及的芯片结构、 控制原理、硬件和编程等方面有一定的感性认识和实践操作能力,从而加 深对本课程知识点的理解,使应用知识能力、设计能力、调试能力以及报 告撰写能力等方面有显著提高。1.3课程设计题目及设计要求131设计题目实时温控报警器设计1.3.2设计要求利用实验系统的资源来设计一个“带lcd16
5、02液晶屏显示的实时温控 报警器”。控制面板包括:lcd1602液晶屏显示、四个数字按键键盘、电 源按键、电源指示灯、运行键。1.3.3工作流程工作流程如下:(1)按下电源键,电源指示灯亮,通过数字键设定需控制的温度,lcd1602液晶屏上显示。(2)温度设定完后,启动系统运行,启动加热器,对水进行加热。(3)lcd1602液晶屏实时显示当前的温度,超过设定温度值时,关 闭加热器,并使报警指示灯亮。(4)运行过程中,若再按下电源键,则系统停止,电源指示灯灭。1.3.4实验设备与器材实验设备:lm3s2110、pc机一台。实验器材:lcd1602液晶屏、4个独立按键、蜂鸣器、lm75a数字温 度
6、传感器、加热器、继电器pcm-8032aro42设计方案2.1总体方案利用键盘來控制温度的设计,为了使按键更冇目的性,利用四个按键 来控制温度的设置,当按下一个按键后,首先判断按下的按键时哪个键, 假设按键是“key4”,则lcd1602液晶屏上显示摄氏温度,随即再按“key3” 键,则此键设置报警温度显示在lcd1602液晶屏上;若按键为“key2”, 则华氏温度显示在lcd1602液晶屏上,随即再按“key1”键,则此键显示 在lcd1602液晶屏上为复位。为了使显示更能体现是摄氏温度和华氏温度, 在lcd1602液晶屏上显示“。c”、“。f”。初始温度设置完毕后,然后与 lm75a数字温
7、度传感器送进来的实际温度进行比较,若实际温度大于所设置的温度,则蜂鸣器蜂鸣;反之,蜂鸣器不蜂鸣。3硬件设计系统结构框图如图2所示。1温度测量:采用lm75a数字温度传感器;2按键、显示:4个独立按键及lcd1602液晶屏;3.arm 开发板:lm3s2110;4加热器和arm开发板之间:继电器或光电隔离,实现高压电与低压 电的隔离。图2系统结构框图3.1隔热器模块加热器和arm开发板z间须加隔离,实现高压电与低压电的隔离。(光 电或继电器隔离)所以我们采用继电器pcm-8032ar来进行隔离。3.1.1继电器pcm-8032ar简介pcm-8032ar是一款用于pc/104总线的数据板卡,完全
8、符合pc/104总6线标准。板载16路功率继电器输出和16路光耦隔离的数字输入。 继电器的可靠转换电压为5vdc到220vdco板载继电器具有2排相同并 列排列的no和nc触点,该模块板可用于交流或直流大功率电路的通断、 马达和传动装置控制以及高低电压转换。光耦隔离数字通道输入电压绝对 值达3.5v-30v,并允许有双极性输入,连接线路时无须考虑正负。 pcm-8032ar的继电器输出信号在系统复位后会失效,以防止出现误操作。3.1.2 pcm-8032ar 硬件结构如图3所示,cn1是数字量输入接口,cn2与cn3是继电器输出接口。图3继电器硬件结构图3.1.3 pcm-8032ar 功能结
9、构图4 pcm-8032ar功能结构图3.2 arm开发板3.2.1 lm3s2110 简介luminary micro公司stellaris所提供一系列的微控制器是首款基于 arm? cortex?-m3的控制器,它们为对成本尤其敏感的嵌入式微控制器应 用方案带来了高性能的32位运算能力。这些具备领先技术的芯片使用户 能够以传统的8位和16位器件的价位来享受32位的性能,而且所有型号 都是以小占位面积的封装形式提供。该stellaris系列芯片能够提供高效的性能、广泛的集成功能以及按照 要求定位的选择,适用于各种关注成本并明确要求具冇的过程控制以及连 接能力的应用方案。该stellaris
10、lm3s1000系列使用更大的片上存储器、增 强型电源管理和扩展i/o以及控制功能来扩展stellaris家族。该 stellaris?lm3s2000系列是针对控制器局域网(can)应用方案而设计的一 组芯片,它在stellaris系列芯片的基础8上扩展了 bosch can网络技术一一短距离工业网络里的黄金标准。该 stellarislm3s2000系列芯片还标志着先进的cortex-m3内核和can能力的首次结合运用。该stellarislm3s6000系列芯片结合了 10/100以太网媒体访 问控制(mac)以及物理层(phy),标志着arm cortex-m3 mcu已经具备 集成连
11、接能力,还是唯一集成了 10/100以太网mac和phy物理层的arm 架构mcu。该stellaris lm3s8000系列结合了 bosch控制器局域网技术和 10/100以太网媒体访问控制(mac)以及物理(phy)层。该lm3s2110微控 制器是针对工业应用方案而设计的,包括远程监控、电子贩售机、测试和 测量设备、网络设备和交换机、工厂自动化、hvac和建筑控制、游戏设 备、运动控制、医疗器械、以及火警安防。除此之外,该lm3s2110微控制器的优势还在于能够方便的运用多种 arm的开发工具和片上系统(soc)的底层ip应用方案,以及广大的用户 群体。另外,该微控制器使用了兼容arm
12、的thumb?指令集的thumb2 指令集来减少存储容量的需求,并以此达到降低成本的目的。最后, lm3s2110微控制器与stellaris系列的所有成员是代码兼容的,这为用户提 供了灵活性,能够适应各种精确的需求。为了能够帮助用户产品快速的上市,luminary micro公司提供了一整 套的解决方案,包括评估和开发用的板卡、白皮书和应用笔记、方便使 用的外设驱动程序库、以及强劲的支持、销售和分销网络。4软件设计4.1系统控制软件概述4.1.1系统软件主要实现以下几大功能:(1) 利用键盘设置初始判断温度,并在lcd1602液晶屏上显示;(2) 通过lm75a数字温度传感器将感应的实际温度
13、送入寄存器; 根据设定的参数初值对数据进行判断,从而开启或关闭加热器,并控制蜂鸣器的报警。n图5控制系统主程序流程图104.1.2程序的总体结构程序开始是定义位地址,定义温度传感器的位地址,温度值的储存缓 存区的地址,显示缓存区地址。然后是复位和中断入口地址表:设定主程 序main的入口地址0000h、外部中断源into的中断入口地址0003ho 其次是系统的主程序:在主程序中分为若干个子程序,通过依次对各个子 程序地调用来完成整个系统的程序运行。4.2系统软件的设计4.2.1主程序设计主程序中仅实现系统的初始化,对系统进行自检和调用数据处理子程 序。包括键盘读取子程序,温度传感器获取温度子程
14、序,温度转化子程序, 显示子程序。4.2.2键盘读取与lcd1602液晶屏显示子程序设计由键盘输入键值并判断而后在lcd1602液晶屏上显示。zlg7290i2c接口键盘及lcd1602液晶屏应用流程图如图6。图6键盘扫描及显示流程图4.3设计过程及结果4.3.1对于键盘操作的描述所有键盘都以十六进制进行控制。其中数字09即为十六进制的0000-1001 o 0x60作为显示温度的控制键。0x50作为设置报警温度控 制键,0x30作为摄氏温度和华氏温度的转化,0x00作为复位温度的控制键。4.3.2对于lcd1602液晶屏显示器的描述用一个lcd1602液晶屏來实现实验。其中第一位显示c,表示
15、温度单 位。第二位显示“。”,第三位显示个位温度;第四位显示十位温度,第 五位显示“! ”,表示温度报警。124.3.3程序执行基本流程1 输入一个两位温度给模块作为其初始温度。显示温度在lcd1602液 晶屏上的第0x85、0x86位。2.假设一个具体数值,如32,把此数值假设为温度传感器感应的温度, 与lcd1602液晶屏上显示的报警温度进行比较。3若32小于lcd1602液晶屏上显示的报警温度,则蜂鸣器无任何操作。 因为对应管脚位低电平,蜂鸣器不激活。4.若32大于lcd1602液晶屏上显示的报警温度,则蜂鸣器蜂鸣。因为 对应管脚为高电平。5在步骤4的情况下,按下“key3”键可再次改变
16、lcd1602液晶屏上 显示的报警温度。6.在步骤5的情况下,若lcd1602液晶屏上显示的报警温度大于32, 则蜂鸣器不工作,即停止蜂鸣。5系统程序设计与调试 52方案的程序调试此方案是通过四个按键來控制温度的设置,首先通过按键来输入键值, 然后判断所输入的键值是什么,如果是“key4”,则lcd1602液晶屏显示 传感器实时温度;如果是“ key3”,则lcd1602液晶屏上显示设置的报警 温度,如果是"key2mcd1602液晶屏上显示摄氏温度转化为华氏温度,如 果是“key1”,则lcd1602液晶屏上显示复位温度,最后判断由lm75a温度 感应器传送进来的温度值是否大于lc
17、d1602液晶屏显示的报警温度,若是 则蜂鸣器鸣响。详细程序清单参阅附件材料。146结束语6.1设计调试过程屮遇到的问题以及解决方法满足报警温度,蜂鸣器就会一直鸣响,不管以后温度是否低于报警温 度,这个问题也困扰了我很久,最后我分析了一下,发现是因为程序只写 了满足条件蜂鸣器响,而没有写不满足时蜂鸣器不响,所以跳入蜂鸣器响 的程序,程序一直执行就蜂鸣。后來我在主函数main()中加了一句话else 语句;这句话的作用是不满足时蜂鸣器不响。6.2课程设计体会通过这次的课程设计,我学到了很多东西,原先我对嵌入式系统并不 是很了解,但是现在我对嵌入式系统有了更进一步的理解,在我们的生活 中无处不存在
18、嵌入式系统,交通信号灯、车灯、dv、数码相机等等一系列 电子产品。通过这次实践,我对zlg7290,数码管,蜂鸣器,lm75a等一 些器件有了深入的了解,知道了它们的结构与功能,以及相关的函数功能会如何运用网络和图书馆來查找相关的资料与整合。6.3致谢这次的课程能够顺利的完成,我要特别感谢我的指导老师徐振、陶亚 雄老师。他们对我的这次课程设计提供很大的帮助,没有他们我不可能顺 利完成,在他们的帮助下,我把所学的知识运用到了实际屮,又在实践学 会很多。再次感谢两位老师的悉心教导和帮助。7参考文献周立功.arm嵌入式系统基础教程m 北京:北京航空航天大学出 版社,2005:12 周立功.arm嵌入
19、式系统实验教程m.第三版北京:北京航空航天 大学出版社,2005:93 周立功.arm嵌入式系统实验教程m 第三版扩展实验北京:北 京航空航天大学岀版社,2005:114 田泽嵌入式系统开发与应用实验教程m 第二版北京:北京航空 航天大学出版社,2005:45 labrosse j jean.邵贝贝译嵌入式实时操作系统u c/os-ll m.第二 版北京:北京航空航天大学出版社,2003参考网站:周立功单片机;2广州致远电子网页;电了电路图网dz乙com;4中国互动出版网 http:/www.china-。168附件材料8.1实物图8.2程序清单及说明#in elude "syste
20、mlnit.h"#defi neleden gpio_pin_0/pbo;#defi neledrs gpio_pin_1/pb1;#defi nekey_periphsysctl_periph_gpiob/数码管段选,gpiob模块#defi nekey_portgpio_portb_base#defi nekey_pinsgpio_pin_4 | gpio_pin_5 |gpio_pin_6# defi nebuz_periphsysctl_periph_gpioh/buz#defi nebuz_portgpio_porth_base#defi nebuz_pinsgpio_pi
21、n_0# defi nekey1_periphsysctl_periph_gpioh 数码管段选,gpio h模块# defi nekey1_portgpio_porth_base#defi nekeyl pinsgpio pin 1unsigned char data;/pd0-pd7;unsigned char num;写命令void write_com(unsigned char com)gpiopinwrite(gpio_portb_basejcdrs/oxoo); /lcdrs=o;gpiopi nwrite(gpio_portd_base,gpio_pin_01 gpio_pin_
22、11 gpio_pin_21gpio_pin_31 gpio_pin_41 gpio_pin_5 |gpio_pin_61 gpio_pin_7,com);/pd= com;sysctldelay(5*(thesysclock/4000);/延时5msgpiopi nwrite(gpio_portb_base,lcden,oxff);/ lcden=l;sysctldelay(5*(thesysclock/4000);gpiopi nwrite(gpio_portb_base,lcden/oxoo);/ lcden=0;void write_data(unsigned char date)gp
23、iopi nwrite(gpio_portb_base,lcdrs,oxff);/ lcdrs=l;gpiopi nwrite(gpio_portd_base,gpio_pin_01 gpio_pin_1 |gpio_pin_21 /pd=date;sysctlperienable(sysctl_periph_gpiod); 使能 a 端口gpiopi ntypeout(gpio_portd_base,gpio_pin_0 |gpio_pin_11 gpio_pin_2gpio_pin_31 gpio_pin_4|gpio_pin_5 |gpio_pin_6 |gpio_pin_7);sysc
24、tlperienable(sysct l_periph_gpiob);gpiopintypeout(gpio_portb_base, gpio_pin_0|gpio_pin_1); gpiopinwrite(gpio_portb_base,lcden/oxoo); / lcden=0;/主函数(程序入口)int main (void)clocklnit();/时钟初始化:晶振,6mhzsysctlperienable(key_periph); / 使能 key 所在的 gpio 端口gpiopintypeln(key_port, key_pins); / 设置 key 所在管脚为输入 writ
25、e_com(0x38);8 位数据,双列,5*7 字形 write_com(0x0c);显示功能开,有光标,光标闪烁 write_com(0x06); / write_com(0x01);/ 开始清屏 sysctldelay(5*(thesysclock/4000);gpiopinwrite(gpio_portb_base,lcden,oxff); / lcden=l; sysctldelay(5*(thesysclock/4000);gpiopinwrite(gpio_portb_base,lcdenzoxoo); / lcden=0;gpio_pin_31 gpio_pin_4 |gpio
26、_pin_5 |gpio_pin_6 |gpio_pin_7,date);sysctlperienable(keyl_periph);/使能key所在的gpio端口gpiopintypeln(keyl_port, key1_pins); / 设置 key 所在管脚为输入sysctlperienable(buz_periph);/使能buz所在的gpio端口gpiopintypeln(buz_port, buz_pins); / 设置 buz 所在管脚为输入init();/ 分钟60sint m = 0;int n 二 0;int f = 0;讦(gpiopinread(key_pore key
27、_pins) = 0x60) 如果按下 key4sysctldelay(10*(thesysclock/3000);/ 延时约 10msif(gpiopinread(key_port; key_pins) = 0x60)显示数据,分h立和个位int sec2; write_com(0x87); write_data(223); write_com(0x88); write_data(67);f=m*9/5+32;for (int i=0;i<2;i+)write_data(seci+48);整型数据转换为 asc2sysctldelay(100*(thesysclock/4000
28、);sysctldelay(800 * (thesysclock / 4000); 总共延时 ism+;倒计时if (m = 37)倒计时结束,重新开始 m = 0;conti nue;讦(gpiopinread(key_por7; key_pins) = 0x30) 如果按下 key2sysctldelay(10*(thesysclock/3000);/ 延时约 10msif(gpiopinread(key_port; key_pins) = 0x30)int sec2;显示数据,分十位和个位write_data(223);write_com(0x88);write_data(70);write_com(0x85);设定上排的显示位置seco =f/10;取十位取个位for (int i=0;i<2;i+)write_data(seci+48);整型数据转换为asc2sysctldelay(100*(thesysclock/4000);sysctldelay(800*(thesysclock/4000); 总共延时 is讦(gpiopinread(key_port, key_p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天津市部分区(静海、武清、宝坻等区)2019-2022三年高三年级上册英语期末试卷汇编:阅读理解
- 同方鼎欣java面试题及答案
- 比亚迪java面试题及答案
- 法律方面试题及答案
- 生育保险服务行业相关投资计划提议范本
- 物业应急预案手册
- 石大学前儿童保育学小组作业展示:查找资料安全知识必读
- 部编版2021学年小学语文二年级下册《25 羿射九日》导学案-21
- 店长助理个人工作总结
- 店长的工作职责
- 中建三局三公司安装分公司劳务企业定额
- 《选品与采购》中职全套教学课件
- HG∕T 4591-2014 化工液力透平
- 国家开放大学《工程地质(本)》形考作业-1-4参考答案
- 2024年新疆发声亮剑发言稿3则
- JT-T-1344-2020纯电动汽车维护、检测、诊断技术规范
- 北京市西城区2023-2024学年五年级下学期期末数学试卷
- 【网上书店设计与实现20000字(论文)】
- 江苏省南京市建邺区2023-2024学年五年级下学期6月期末英语试题
- 2024年湖北省武汉市中考语文试卷真题(含答案)
- 福建省漳州市2023-2024学年八年级下学期期末数学试题
评论
0/150
提交评论