ARM嵌入式系统原理课程设计报告实时温控报警器_第1页
ARM嵌入式系统原理课程设计报告实时温控报警器_第2页
ARM嵌入式系统原理课程设计报告实时温控报警器_第3页
ARM嵌入式系统原理课程设计报告实时温控报警器_第4页
ARM嵌入式系统原理课程设计报告实时温控报警器_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、2021.10 上海师范大学天华学院电子信息工程系arm课程设计 27arm嵌入式系统原理课程设计报告实时温控报警器目 录第一章 绪论41.1嵌入式系统简介41.2课程设计目的51.3课程设计题目及设计要求51.3.1设计题目51.3.2设计要求51.3.3工作流程51.3.4实验设备与器材6第二章设计方案62.1总体方案62.1.1方案一62.1.2方案二62.1.3方案三72.2方案比较72.2.1方案一的特点72.2.2方案二的特点72.2.3方案三的特点72.2.3 结论8第三章 硬件设计83.1 zlg7290键盘输入模块及led数码管83.1.1 zlg7290简介93.1.2 引

2、脚图93.1.3功能描述103.1.4 数码管113.2传感器模块123.2.1 lm75a 概述123.2.2 lm75a 管脚描述123.2.3 lm75a 的功能特点133.3报警器模块133.4隔热器模块143.4.1 继电器pcm-8032ar简介143.4.2 pcm-8032ar硬件结构143.4.3 pcm-8032ar功能结构153.5 arm开发板153.5.1magicarm2200实验箱简介16第四章 软件设计164.1 系统控制软件概述164.1.1 系统软件主要实现以下几大功能:164.1.2 程序的总体结构174.2 系统软件的设计174.2.1 主程序设计184

3、.2.2 键盘读取与数码管显示子程序设计184.3设计过程及结果184.3.1对于键盘操作的描述184.3.2对于数码管显示器的描述194.3.3程序执行基本流程19第五章 系统程序设计与调试195.1方案二的程序调试195.2方案三的程序调试20第六章结束语206.1设计调试过程中遇到的问题以及解决方法206.1.1四个按键之间的输入读键混乱,不能正确报警。206.1.2增加显示,遇到困难。216.1.3程序一执行,蜂鸣器就会鸣响216.2课程设计体会216.3致 谢21第七章参考文献22第八章附件材料228.1实物图228.2程序清单及说明238.2.1方案二主程序清单:238.2.2方案

4、三主程序清单:26第一章 绪论1.1嵌入式系统简介嵌入式系统是指以应用为中心、以计算机技术为基础、软硬件可裁剪的专用计算机系统,是继it网络技术之后的又一新技术发展方向。由于具有体积小、功耗低、可靠性高以及面向多行业应用的特征,嵌入式系统目前已被广泛用于国防军事、电子消费、网络通信、工业控制等领域,具有极为广阔的发展前景。结合internet技术,嵌入式系统目前已普遍应用于智能公路(车辆导航、信息监测等)、植物工厂(无土栽培、智能种子工程等)、虚拟现实(vr)(交通警察、家用机器人等)、信息家电(冰箱、空调网络化、自动抄表、防火/防盗系统等)、先进工业自动化(电网安全等)、pos网络及电子商务

5、(交通卡、电话卡、自动售货机等)。嵌入式系统几乎包括了生活中的所有电器设备,如掌上pda、 移动计算设备、电视机顶盒、手机上网、数字电视、多媒体、汽车、微波炉、数字相机、家庭自动化系统、电梯、空调、安全系统、自动售货机、蜂窝式电话、消费电子设备、工业自动化仪表与医疗仪器等。图1.1常见的嵌入式系统应用实例1.2课程设计目的通过本次课程设计,运用已学的课程知识,根据题目要求进行软硬件系统的设计和调试,对arm嵌入式系统原理课程中涉及的芯片结构、控制原理、硬件和编程等方面有一定的感性认识和实践操作能力,从而加深对本课程知识点的理解,使应用知识能力、设计能力、调试能力以及报告撰写能力等方面有显著提高

6、。1.3课程设计题目及设计要求1.3.1设计题目实时温控报警器设计1.3.2设计要求利用实验系统的资源来设计一个“带led显示的实时温控报警器”。控制面板包括:两位数码显示、十个数字按键键盘、电源按键、电源指示灯、运行键。1.3.3工作流程工作流程如下:(1) 按下电源键,电源指示灯亮,通过数字键设定需控制的温度,并在led上显示。(2) 温度设定完后,启动系统运行,启动加热器,对水进行加热。(3) led实时显示当前的温度,超过设定温度值时,关闭加热器,并使报警指示灯亮。(4) 运行过程中,若再按下电源键,则系统停止,电源指示灯灭。1.3.4实验设备与器材 实验设备:magicarm2200

7、实验箱、pc机一台。实验器材:八位共阴数码管(由zlg7290驱动)、4*4小键盘(由zlg7290驱动)、蜂鸣器、lm75a数字温度传感器、加热器、继电器pcm-8032ar。 第二章设计方案2.1总体方案2.1.1方案一利用键盘来控制温度的设计,当按下一个按键后,让其显示在数码管的第一位上(相当于个位);当再按下一个按键时,让其显示在数码管的第二位(相当于十位)。这样初始判断温度设置完毕,然后与lm75a数字温度传感器送进来的实际温度进行比较,若实际温度大于所设置的温度,则蜂鸣器蜂鸣;反之,蜂鸣器不蜂鸣。2.1.2方案二利用键盘来控制温度的设计,为了使按键更有目的性,利用四个按键来控制温度

8、的设置,当按下一个按键后,首先判断按下的按键时哪个键,假设按键是“a”,则数码管第四位闪烁,随即再按一个键,则此键显示在数码管第四位上(相当于十位);若按键为“b”,则数码管第三位闪烁,随即再按一个键,则此键显示在数码管第三位上(相当于个位)。为了使显示更能体现是温度,在数码管第二位和第一位上分别显示“”、“c”。初始温度设置完毕后,然后与lm75a数字温度传感器送进来的实际温度进行比较,若实际温度大于所设置的温度,则蜂鸣器蜂鸣;反之,蜂鸣器不蜂鸣。2.1.3方案三利用两个按键来控制键值的读入,首先设置shi的初值为9、ge的初值为9,然后通过按键输入键值,然后判断所输入键值为什么,假设为“a

9、”,则执行if (shi0) shi=-shi;else shi=shi+9;若为“b”,则执行if (ge0) ge=-ge;else ge=ge+9;最后判断由lm75a温度感应器传送进来的温度值是否大于数码管显示的温度,若是则蜂鸣器鸣响。2.2方案比较2.2.1方案一的特点优点:能够进行准确的判断,不会产生误判而导致错误报警。缺点:在设置十位和个位的时候,由于只有两个按键控制,不能很好控制输入的是十位还是个位,容易造成误输,程序运行没有实际效果。2.2.2方案二的特点优点:四个按键控制温度设置,两个按键控制十位和个位的输入顺序,另两个按键控制十位和个位的具体数值,不会产生十位和个位输入的

10、混乱。缺点:由于有四个按键控制也产生一定的读键混乱,有时判断不太准确,会将控制输入顺序的按键值读入并与实际温度进行比较而导致错误报警。2.2.3方案三的特点优点:两个按键控制十位和个位输入顺序,再由设置好的shi和ge的加减来控制数码管上显示的数值,因此不会影响判断和报警。2.2.3 结论相较三个方案,方案三既不会出现输入的混乱也不会产生读键与判断的混乱,最具实际应用价值,所以我选用方案三。第三章 硬件设计系统结构框图如图3.1 所示。1.温度测量:采用lm75a数字温度传感器;2.键盘、显示:zlg7290 i2c接口键盘及led驱动器;3.arm开发板:lpc2200开发板;4.加热器和a

11、rm开发板之间:继电器或光电隔离,实现高压电与低压电的隔离。图3.1系统结构框图3.1 zlg7290键盘输入模块及led数码管3.1.1 zlg7290简介magicarm2200实验箱主板上拥有8位动态led数码管和16个按键,使用了i2c接口的键盘与led驱动芯片zlg7290进行控制,电路如图3.2所示。zlg7290是一款功能强大的键盘与led驱动芯片,最大支持64个按键及8位共阴led数码管。jp12可以断开这一部分电路与lpc2200的连接。zlg7290电源采用3.3v,使用rc复位电路(r10和c7)。只有在系统上电时,zlg7290才会复位。由于zlg7290采用3.3v电

12、源,为了提高led数码显示的亮度,led限流电阻r13r41的阻值选用220。16个按键分别与zlg7290的sega、segb引脚连接,这样做的好处就是键盘的扫描值是连续的,即s1s16按键的扫描值为116,方便应用程序的设计。zlg7290的键盘中断输出信号与lpc2200的中断引脚p0.30/eint3相连,当有按键按下时,zlg7290将会输出中断信号通知lpc2200.注意:使用键盘电路时,要将电源跳线jp11短接,将jp12跳线器短接。图3.2 键盘及led显示电路3.1.2 引脚图采用24 引脚封装,引脚图如图3.3所示。图3.3 引脚图3.1.3功能描述一键盘部分zlg7290

13、 可采样16 个按键或传感器,可检测每个按键的连击次数。其基本功能如下:(1) 键盘去抖动处理当键被按下和放开时,可能会出现电平状态反复变化,称作键盘抖动。若不作处理会引起按键盘命令错误,所以要进行去抖动处理,以读取稳定的键盘状态为准。(2) 双键互锁处理当有两个以上按键被同时按下时,zlg7290 只采样优先级高的按键(优先顺序为s1s2s16如同时按下s2 和s16 时采样到s2)。(3) 连击键处理当某个按键按下时,输出一次键值后,如果该按键还未释放,该键值连续有效,就像连续压按该键一样,这种功能称为连击。连击次数计数器(repeatcnt)可区别出单击(某些功能不允许连击,如开/关)或

14、连击。判断连击次数可以检测被按时间,以防止某些功能误操作(如连续按5 秒经入参数设置状态)。(4) 功能键处理功能键能实现2 个以上按键同时按下来扩展按键数目或实现特殊功能。如pc 机上的“shift”、“ctrl”、“alt” 键。二显示部分在每个显示刷新周期,zlg7290按照扫描位数寄存器(scannum )指定的显示位数n,把显示缓存dpram0dpramn的内容按先后循序送入led 驱动器实现动态显示,减少n值可提高每位显示扫描时间的占空比,以提高led 亮度,显示缓存中的内容不受影响。修改闪烁控制寄存器(flashonoff)可改变闪烁频率和占空比(亮和灭的时间)。zlg7290

15、提供两种控制方式:寄存器映象控制和命令解释控制,如上述对显示部分的控制,寄存器映象控制是指直接访问底层寄存器,实现基本控制功能,这些寄存器须字节操作。命令解释控制是指通过解释命令缓冲区(cmdbuf0 cmdbuf1)中的指令,间接访问底层寄存器实现扩展控制功能。如实现寄存器的位操作;对显示缓存循环,移位对操作数译码等操作。3.1.4 数码管数码管显示器主要用于显示温度数值。这种显示器成本低廉,配置灵活,与单片机接口方便。led 内部的所有发光二极管有共阴极接法和共阳极接法两种,即将 led 内部所有二极管阴极或阳极接在一起并通过 com 引脚引出,并将每一发光段的另一端分别引出到对应的引脚。

16、图3.4 7段数码管由于加热器使温度值不停地变化,所以数码管显示器就要显示动态数据。这就需要把数码管显示器与单片机连接成动态显示电路。八位 led 动态显示电路需要两个 8 位 i/o口,其中一个控制段选码,另一个控制位选码。此电路须采用扫描显示方式,即在每一瞬间只使一位显示相应字符。在此瞬间,段选控制 i/o 口输出相应字符段选码,位选控制 i/o 口在该显示位送入选通电(共阴极送低电平、共阳极送高电平),以保证该位显示相应字符。如此轮流,使每位显示该位应显示字符,并保持延时一段时间。表 3.1 下载数据并译码命令的数据表3.2传感器模块本系统的传感器模块采用的是lm75a数字温度传感器。3

17、.2.1 lm75a 概述lm75a 是一个高速i2c 接口的温度传感器,可以在-55+125的温度范围内将温度直接转换为数字信号,并可实现0.125的精度。mcu 可以通过i2c 总线直接读取其内部寄存器中的数据,并可通过i2c 对4 个数据寄存器进行操作,以设置成不同的工作模式。lm75a有3 个可选的逻辑地址管脚,使得同一总线上可同时连接8 个器件而不发生地址冲突。lm75a 可配置成不同的工作模式。它可设置成在正常工作模式下周期性地对环境温度进行监控,或进入关断模式来将器件功耗降至最低。os 输出有2 种可选的工作模式:os比较器模式和os 中断模式,os 输出可选择高电平或低电平有效

18、。正常工作模式下,当器件上电时,os 工作在比较器模式,温度阈值为80,滞后阈值为75。3.2.2 lm75a 管脚描述lm75a 的管脚描述见图 3.4图 3.4 lm75a 管脚描述sda: i2c 串行双向数据线,开漏口。scl: i2c 串行时钟输入,开漏口。os: 过热关断输出。开漏输出。gnd: 地,连接到系统地。a2: 用户定义的地址位2。a1: 用户定义的地址位1。a0: 用户定义的地址位0。vcc: 电源。3.2.3 lm75a 的功能特点(1) 提供环境温度对应的数字信息,直接表示温度;(2) 可以对某个特定温度作出反应,可以配置成中断或者比较器模式(os 输出);(3)

19、高速i2c 总线接口,有a2-a0 地址线,一条总线上最多可同时使用8 个lm75a;(4) 低功耗设计,工作电流典型值为250ua,掉电模式为3.5ua;(5) 测量的温度最大范围为-55+125;(6) 宽工作电压范围:2.8v5.5v;(7) 提供了良好的温度精度(0.125);(8) 可编程温度阈值和滞后设定点。3.3报警器模块如图3.5所示,蜂鸣器使用pnp三极管q12进行驱动控制。当控制p0.7输出低电平时,q12导通,蜂鸣器蜂鸣;当控制p0.7输出高电平时,q12截止,蜂鸣器停止蜂鸣。若把jp22断开,则q12截止,蜂鸣器停止蜂鸣。由于p0.7口与(lpc2200的)spi功能部

20、件的ssel0复用,所以此引脚上接一上拉电阻r86,防止在使用硬件spi总线时由于ssel0引脚悬空导致spi操作出错。图3.5蜂鸣器控制电路3.4隔热器模块加热器和arm开发板之间须加隔离,实现高压电与低压电的隔离。(光电或继电器隔离)所以我们采用继电器pcm-8032ar来进行隔离。3.4.1 继电器pcm-8032ar简介pcm-8032ar是一款用于pc/104 总线的数据板卡,完全符合pc/104 总线标准。板载16 路功率继电器输出和16 路光耦隔离的数字输入。继电器的可靠转换电压为 5vdc 到 220vdc。板载继电器具有2 排相同并列排列的no和nc 触点,该模块板可用于交流

21、或直流大功率电路的通断、马达和传动装置控制以及高低电压转换。光耦隔离数字通道输入电压绝对值达3.5v30v,并允许有双极性输入,连接线路时无须考虑正负。pcm-8032ar 的继电器输出信号在系统复位后会失效,以防止出现误操作。3.4.2 pcm-8032ar硬件结构如图3.6所示,cn1 是数字量输入接口,cn2 与cn3 是继电器输出接口。图3.6 继电器硬件结构图3.4.3 pcm-8032ar功能结构图3.7 pcm-8032ar功能结构图3.5 arm开发板3.5.1magicarm2200实验箱简介magicarm2200实验箱是由广州周立功单片机发展有限公司开发的arm教学实验开

22、发平台。实验箱的主板上带有充足的存储资源(psram、nand flash、nor flash和e2prom等),具有以太网接口、modem接口、can接口、ide硬盘接口、cf卡接口、sd仿真接口,5.2英寸320*240彩色液晶屏,可使用jtag仿真调试。灵活的跳线选择,外设pack和gpio输出接口,非常适用于教学实验。第四章 软件设计4.1 系统控制软件概述4.1.1 系统软件主要实现以下几大功能:(1) 利用键盘设置初始判断温度,并在数码管上显示;(2) 通过lm75a数字温度传感器将感应的实际温度送入寄存器;(3) 根据设定的参数初值对数据进行判断,从而开启或关闭加热器,并控制蜂鸣

23、器的报警。程序初始化低电平?打开中断读键盘值判断键盘键值为“b”?判断键盘键值为“a”?输入十位(shi)输入个位(ge)32(shi*10+ge)? yy蜂鸣器鸣响ynn蜂鸣器不响ny图4.1 控制系统主程序流程图4.1.2 程序的总体结构程序开始是定义位地址,定义温度传感器的位地址,温度值的储存缓存区的地址,显示缓存区地址。然后是复位和中断入口地址表:设定主程序 main 的入口地址 0000h、外部中断源 int0的中断入口地址 0003h。其次是系统的主程序:在主程序中分为若干个子程序,通过依次对各个子程序地调用来完成整个系统的程序运行。4.2 系统软件的设计4.2.1 主程序设计主程

24、序中仅实现系统的初始化,对系统进行自检和调用数据处理子程序。包括键盘读取子程序,温度传感器获取温度子程序,温度转化子程序,显示子程序。4.2.2 键盘读取与数码管显示子程序设计由键盘输入键值并判断而后在数码管上显示。zlg7290i2c接口键盘及led驱动器应用流程图如图4.2。设置p1口为准双向口向zlg7290送入显示初值有键按下否读出键值数码管显示左移2位将键值输出到数码管并使能闪烁ny图4.2 键盘扫描及显示流程图4.3设计过程及结果4.3.1对于键盘操作的描述所有键盘都以十六进制进行控制。其中数字0-9即为十六进制的0000-1001。1010-a,作为十位数的控制键。1011-b,

25、作为个位数的控制键。4.3.2对于数码管显示器的描述用一个八位数码管来实现实验。其中第一位显示c,表示温度单位。第二位显示“”,第三位显示个位温度;第四位显示十位温度。4.3.3程序执行基本流程1.输入一个两位温度给模块作为其初始温度。显示温度在数码管上的第3、4位。2.假设一个具体数值,如32,把此数值假设为温度传感器感应的温度,与数码管上显示的温度进行比较。 3.若32小于数码管上显示的温度,则蜂鸣器无任何操作。因为对应管脚位低电平,蜂鸣器不激活。4.若32大于于数码管上显示的温度,则蜂鸣器蜂鸣。因为对应管脚为高电平。5.在步骤4的情况下,按下“a”“b”键可再次改变数码管显示温度。6.在

26、步骤5的情况下,若数码管显示温度大于32,则蜂鸣器不工作,即停止蜂鸣。第五章 系统程序设计与调试5.1方案二的程序调试方案二是通过四个按键来控制温度的设置,首先通过按键来输入键值,然后判断所输入的键值是什么,如果是“a”,则第四位数码管闪烁,表明可以再次按键,而此键值即是十位的数值;如果是“b”,则第三位数码管闪烁,表明可以再次按键,而此键输入的是个位的数值。最后判断由lm75a温度感应器传送进来的温度值是否大于数码管显示的温度,若是则蜂鸣器鸣响。但读键判断稍有混乱。会影响蜂鸣器的正常报警。详细程序清单参阅附件材料。5.2方案三的程序调试方案三简化了方案二程序的四个按键,而是改用两个按键来控制

27、键值的读入,首先设置shi的初值为9、ge的初值为9,然后通过按键输入键值,然后判断所输入键值为什么,如果为“a”,则执行if (shi0) shi=-shi;else shi=shi+9;如果为“b”,则执行if (ge0) ge=-ge;else ge=ge+9;最后判断由lm75a温度感应器传送进来的温度值是否大于数码管显示的温度,若是则蜂鸣器鸣响。详细程序清单参阅附件材料。第六章结束语 6.1设计调试过程中遇到的问题以及解决方法 6.1.1四个按键之间的输入读键混乱,不能正确报警。 在我把初始程序进行调试测试的时候,总会发现它的判断报警有点不太准确,一开始我并不知道是什么原因,不断的试

28、和改程序但都不对,后来在老师的提示下,我在第七位和第六位的地方设置了实时读取显示的数值,结果终于发现,是因为有四个按键而混乱了读键和判断,所以报警才会不对。知道了原因后,我又不断的改进,最终终于调试出了比较满意的程序,那就是在程序一开始进入while(1)判断后加了c=1;if (c=1);使得程序能得到正确的判断与报警。6.1.2增加显示,遇到困难。 显示c没有任何困难,通过查阅zlg7290的表格就把问题解决了;但是要让数码管显示却碰到了困难,查表不行,没有具体的代码。我查阅了其他书籍,发现可以用数码管的八段a,b,c,d,e,f,g,h来进行编码,于是我就尝试着用zlg7290showc

29、har(0, 0xc6);但是显示结果却不对,我苦思冥想,不知道该怎么办。后来经过对程序的一再研究,终于发现原来要用另一种显示的语句buf0 = 0x11;buf1 = 0xc6;终于在第二位数码管处显示出了。6.1.3程序一执行,蜂鸣器就会鸣响 程序一执行就会蜂鸣,这个问题也困扰了我很久,最后我分析了一下,发现是因为程序一执行就进入了低电平有效,跳入蜂鸣器响的程序,因此程序一执行就蜂鸣。后来我在主函数main()中加了一句话io0set=beep;这句话的作用是初始化蜂鸣器(不响)。6.2课程设计体会 通过这次的课程设计,我学到了很多东西,原先我对嵌入式系统并不是很了解,但是现在我对嵌入式系

30、统有了更进一步的理解,在我们的生活中无处不存在嵌入式系统,交通信号灯、车灯、dv、数码相机等等一系列电子产品。通过这次实践,我对zlg7290,数码管,蜂鸣器,lm75a等一些器件有了深入的了解,知道了它们的结构与功能,以及相关的函数功能与运用,真正的把所学运用到了实际中,更好把课本与实际相结合。也学会如何运用网络和图书馆来查找相关的资料与整合。6.3致 谢 这次的课程能够顺利的完成,我要特别感谢我的指导老师王永明、徐会彬老师。他们对我的这次课程设计提供很大的帮助,没有他们我不可能顺利完成,在他们的帮助下,我把所学的知识运用到了实际中,又在实践学会很多。再次感谢两位老师的悉心教导和帮助。第七章

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

32、章附件材料8.1实物图图9.1 键盘及数码管图9.2 lm75a8.2程序清单及说明8.2.1方案二主程序清单:#include config.h /包含了 includes.h和一些系统配置文件#include stdlib.h#define beep 1= 0x100) ostimedly(os_ticks_per_sec / 100); continue; if (key =11) /判断按键是否为“a” a=1; if (key =12) /判断按键是否为“b” b=1; if(a=1) zlg7290wink(8); /第四位闪烁ostimedly(os_ticks_per_sec / 10); /延时 key

温馨提示

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

评论

0/150

提交评论