温控设计.docx
- 文档编号:9672090
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:29
- 大小:774.37KB
温控设计.docx
《温控设计.docx》由会员分享,可在线阅读,更多相关《温控设计.docx(29页珍藏版)》请在冰豆网上搜索。
温控设计
.
ARM嵌入式系统原理课程设计报告
实时温控报警器
目录
第一章绪论4
§1.1嵌入式系统简介4
§1.2课程设计目的5
§1.3课程设计题目及设计要求5
1.3.1设计题目5
1.3.2设计要求5
1.3.3工作流程5
1.3.4实验设备与器材6
第二章设计方案6
§2.1总体方案6
2.1.1方案一6
2.1.2方案二6
2.1.3方案三7
§2.2方案比较7
2.2.1方案一的特点7
2.2.2方案二的特点7
2.2.3方案三的特点7
2.2.3结论8
第三章硬件设计8
§3.1ZLG7290键盘输入模块及LED数码管8
3.1.1ZLG7290简介9
3.1.2引脚图9
3.1.3功能描述10
3.1.4数码管11
§3.2传感器模块12
3.2.1LM75A概述12
3.2.2LM75A管脚描述12
3.2.3LM75A的功能特点13
§3.3报警器模块13
§3.4隔热器模块14
3.4.1继电器PCM-8032AR简介14
3.4.2PCM-8032AR硬件结构14
3.4.3PCM-8032AR功能结构15
§3.5ARM开发板15
3.5.1MagicARM2200实验箱简介16
第四章软件设计16
§4.1系统控制软件概述16
4.1.1系统软件主要实现以下几大功能:
16
4.1.2程序的总体结构17
§4.2系统软件的设计17
4.2.1主程序设计18
4.2.2键盘读取与数码管显示子程序设计18
§4.3设计过程及结果18
4.3.1对于键盘操作的描述18
4.3.2对于数码管显示器的描述19
4.3.3程序执行基本流程19
第五章系统程序设计与调试19
§5.1方案二的程序调试19
§5.2方案三的程序调试20
第六章结束语20
§6.1设计调试过程中遇到的问题以及解决方法20
6.1.1四个按键之间的输入读键混乱,不能正确报警。
20
6.1.2增加显示℃,遇到困难。
21
6.1.3程序一执行,蜂鸣器就会鸣响21
§6.2课程设计体会21
§6.3致谢21
第七章参考文献22
第八章附件材料22
§8.1实物图22
§8.2程序清单及说明23
8.2.1方案二主程序清单:
23
8.2.2方案三主程序清单:
26
第一章绪论
§1.1嵌入式系统简介
嵌入式系统是指以应用为中心、以计算机技术为基础、软硬件可裁剪的专用计算机系统,是继IT网络技术之后的又一新技术发展方向。
由于具有体积小、功耗低、可靠性高以及面向多行业应用的特征,嵌入式系统目前已被广泛用于国防军事、电子消费、网络通信、工业控制等领域,具有极为广阔的发展前景。
结合Internet技术,嵌入式系统目前已普遍应用于智能公路(车辆导航、信息监测等)、植物工厂(无土栽培、智能种子工程等)、虚拟现实(VR)(交通警察、家用机器人等)、信息家电(冰箱、空调网络化、自动抄表、防火/防盗系统等)、先进工业自动化(电网安全等)、POS网络及电子商务(交通卡、电话卡、自动售货机等)。
嵌入式系统几乎包括了生活中的所有电器设备,如掌上PDA、移动计算设备、电视机顶盒、手机上网、数字电视、多媒体、汽车、微波炉、数字相机、家庭自动化系统、电梯、空调、安全系统、自动售货机、蜂窝式电话、消费电子设备、工业自动化仪表与医疗仪器等。
图1.1常见的嵌入式系统应用实例
§1.2课程设计目的
通过本次课程设计,运用已学的课程知识,根据题目要求进行软硬件系统的设计和调试,对《ARM嵌入式系统原理》课程中涉及的芯片结构、控制原理、硬件和编程等方面有一定的感性认识和实践操作能力,从而加深对本课程知识点的理解,使应用知识能力、设计能力、调试能力以及报告撰写能力等方面有显著提高。
§1.3课程设计题目及设计要求
1.3.1设计题目
实时温控报警器设计
1.3.2设计要求
利用实验系统的资源来设计一个“带LED显示的实时温控报警器”。
控制面板包括:
两位数码显示、十个数字按键键盘、电源按键、电源指示灯、运行键。
1.3.3工作流程
工作流程如下:
(1)按下电源键,电源指示灯亮,通过数字键设定需控制的温度,并在LED上显示。
(2)温度设定完后,启动系统运行,启动加热器,对水进行加热。
(3)LED实时显示当前的温度,超过设定温度值时,关闭加热器,并使报警指示灯亮。
(4)运行过程中,若再按下电源键,则系统停止,电源指示灯灭。
1.3.4实验设备与器材
实验设备:
MagicARM2200实验箱、PC机一台。
实验器材:
八位共阴数码管(由ZLG7290驱动)、4*4小键盘(由ZLG7290驱动)、蜂鸣器、LM75A数字温度传感器、加热器、继电器PCM-8032AR。
第二章设计方案
§2.1总体方案
2.1.1方案一
利用键盘来控制温度的设计,当按下一个按键后,让其显示在数码管的第一位上(相当于个位);当再按下一个按键时,让其显示在数码管的第二位(相当于十位)。
这样初始判断温度设置完毕,然后与LM75A数字温度传感器送进来的实际温度进行比较,若实际温度大于所设置的温度,则蜂鸣器蜂鸣;反之,蜂鸣器不蜂鸣。
2.1.2方案二
利用键盘来控制温度的设计,为了使按键更有目的性,利用四个按键来控制温度的设置,当按下一个按键后,首先判断按下的按键时哪个键,假设按键是“A”,则数码管第四位闪烁,随即再按一个键,则此键显示在数码管第四位上(相当于十位);若按键为“B”,则数码管第三位闪烁,随即再按一个键,则此键显示在数码管第三位上(相当于个位)。
为了使显示更能体现是温度,在数码管第二位和第一位上分别显示“°”、“C”。
初始温度设置完毕后,然后与LM75A数字温度传感器送进来的实际温度进行比较,若实际温度大于所设置的温度,则蜂鸣器蜂鸣;反之,蜂鸣器不蜂鸣。
2.1.3方案三
利用两个按键来控制键值的读入,首先设置shi的初值为9、ge的初值为9,然后通过按键输入键值,然后判断所输入键值为什么,假设为“A”,则执行if(shi>0)shi=--shi;elseshi=shi+9;若为“B”,则执行if(ge>0)ge=--ge;elsege=ge+9;最后判断由LM75A温度感应器传送进来的温度值是否大于数码管显示的温度,若是则蜂鸣器鸣响。
§2.2方案比较
2.2.1方案一的特点
优点:
能够进行准确的判断,不会产生误判而导致错误报警。
缺点:
在设置十位和个位的时候,由于只有两个按键控制,不能很好控制输入的是十位还是个位,容易造成误输,程序运行没有实际效果。
2.2.2方案二的特点
优点:
四个按键控制温度设置,两个按键控制十位和个位的输入顺序,另两个按键控制十位和个位的具体数值,不会产生十位和个位输入的混乱。
缺点:
由于有四个按键控制也产生一定的读键混乱,有时判断不太准确,会将控制输入顺序的按键值读入并与实际温度进行比较而导致错误报警。
2.2.3方案三的特点
优点:
两个按键控制十位和个位输入顺序,再由设置好的shi和ge的加减来控制数码管上显示的数值,因此不会影响判断和报警。
2.2.3结论
相较三个方案,方案三既不会出现输入的混乱也不会产生读键与判断的混乱,最具实际应用价值,所以我选用方案三。
第三章硬件设计
系统结构框图如图3.1所示。
1.温度测量:
采用LM75A数字温度传感器;
2.键盘、显示:
ZLG7290I2C接口键盘及LED驱动器;
3.ARM开发板:
LPC2200开发板;
4.加热器和ARM开发板之间:
继电器或光电隔离,实现高压电与低压电的隔离。
图3.1系统结构框图
§3.1ZLG7290键盘输入模块及LED数码管
3.1.1ZLG7290简介
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电源,为了提高LED数码显示的亮度,LED限流电阻R13~R41的阻值选用220Ω。
16个按键分别与ZLG7290的SEGA、SEGB引脚连接,这样做的好处就是键盘的扫描值是连续的,即S1~S16按键的扫描值为1~16,方便应用程序的设计。
ZLG7290的键盘中断输出信号与LPC2200的中断引脚P0.30/EINT3相连,当有按键按下时,ZLG7290将会输出中断信号通知LPC2200.
注意:
使用键盘电路时,要将电源跳线JP11短接,将JP12跳线器短接。
图3.2键盘及LED显示电路
3.1.2引脚图
采用24引脚封装,引脚图如图3.3所示。
图3.3引脚图
3.1.3功能描述
一.键盘部分
ZLG7290可采样16个按键或传感器,可检测每个按键的连击次数。
其基本功能如下:
(1)键盘去抖动处理
当键被按下和放开时,可能会出现电平状态反复变化,称作键盘抖动。
若不作处理会引起按键盘命令错误,所以要进行去抖动处理,以读取稳定的键盘状态为准。
(2)双键互锁处理
当有两个以上按键被同时按下时,ZLG7290只采样优先级高的按键(优先顺序为S1>S2>…>S16如同时按下S2和S16时采样到S2)。
(3)连击键处理
当某个按键按下时,输出一次键值后,如果该按键还未释放,该键值连续有效,就像连续压按该键一样,这种功能称为连击。
连击次数计数器(RepeatCnt)可区别出单击(某些功能不允许连击,如开/关)或连击。
判断连击次数可以检测被按时间,以防止某些功能误操作(如连续按5秒经入参数设置状态)。
(4)功能键处理
功能键能实现2个以上按键同时按下来扩展按键数目或实现特殊功能。
如PC机上的“Shift”、“Ctrl”、“Alt”键。
二.显示部分
在每个显示刷新周期,ZLG7290按照扫描位数寄存器(ScanNum)指定的显示位数N,把显示缓存DpRam0~DpRamN的内容按先后循序送入LED驱动器实现动态显示,减少N值可提高每位显示扫描时间的占空比,以提高LED亮度,显示缓存中的内容不受影响。
修改闪烁控制寄存器(FlashOnOff)可改变闪烁频率和占空比(亮和灭的时间)。
ZLG7290提供两种控制方式:
寄存器映象控制和命令解释控制,如上述对显示部分的控制,寄存器映象控制是指直接访问底层寄存器,实现基本控制功能,这些寄存器须字节操作。
命令解释控制是指通过解释命令缓冲区(CmdBuf0~CmdBuf1)中的指令,间接访问底层寄存器实现扩展控制功能。
如实现寄存器的位操作;对显示缓存循环,移位对操作数译码等操作。
3.1.4数码管
数码管显示器主要用于显示温度数值。
这种显示器成本低廉,配置灵活,与单片机接口方便。
LED内部的所有发光二极管有共阴极接法和共阳极接法两种,即将LED内部所有二极管阴极或阳极接在一起并通过COM引脚引出,并将每一发光段的另一端分别引出到对应的引脚。
图3.47段数码管
由于加热器使温度值不停地变化,所以数码管显示器就要显示动态数据。
这就需要把数码管显示器与单片机连接成动态显示电路。
八位LED动态显示电路需要两个8位I/O口,其中一个控制段选码,另一个控制位选码。
此电路须采用扫描显示方式,即在每一瞬间只使一位显示相应字符。
在此瞬间,段选控制I/O口输出相应字符段选码,位选控制I/O口在该显示位送入选通电(共阴极送低电平、共阳极送高电平),以保证该位显示相应字符。
如此轮流,使每位显示该位应显示字符,并保持延时一段时间。
表3.1下载数据并译码命令的数据表
§3.2传感器模块
本系统的传感器模块采用的是LM75A数字温度传感器。
3.2.1LM75A概述
LM75A是一个高速I2C接口的温度传感器,可以在-55℃~+125℃的温度范围内将温度直接转换为数字信号,并可实现0.125℃的精度。
MCU可以通过I2C总线直接读取其内部寄存器中的数据,并可通过I2C对4个数据寄存器进行操作,以设置成不同的工作模式。
LM75A有3个可选的逻辑地址管脚,使得同一总线上可同时连接8个器件而不发生地址冲突。
LM75A可配置成不同的工作模式。
它可设置成在正常工作模式下周期性地对环境温度进行监控,或进入关断模式来将器件功耗降至最低。
OS输出有2种可选的工作模式:
OS比较器模式和OS中断模式,OS输出可选择高电平或低电平有效。
正常工作模式下,当器件上电时,OS工作在比较器模式,温度阈值为80℃,滞后阈值为75℃。
3.2.2LM75A管脚描述
LM75A的管脚描述见图3.4
图3.4LM75A管脚描述
SDA:
I2C串行双向数据线,开漏口。
SCL:
I2C串行时钟输入,开漏口。
OS:
过热关断输出。
开漏输出。
GND:
地,连接到系统地。
A2:
用户定义的地址位2。
A1:
用户定义的地址位1。
A0:
用户定义的地址位0。
VCC:
电源。
3.2.3LM75A的功能特点
(1)提供环境温度对应的数字信息,直接表示温度;
(2)可以对某个特定温度作出反应,可以配置成中断或者比较器模式(OS输出);
(3)高速I2C总线接口,有A2-A0地址线,一条总线上最多可同时使用8个LM75A;
(4)低功耗设计,工作电流典型值为250uA,掉电模式为3.5uA;
(5)测量的温度最大范围为-55℃~+125℃;
(6)宽工作电压范围:
2.8V~5.5V;
(7)提供了良好的温度精度(0.125℃);
(8)可编程温度阈值和滞后设定点。
§3.3报警器模块
如图3.5所示,蜂鸣器使用PNP三极管Q12进行驱动控制。
当控制P0.7输出低电平时,Q12导通,蜂鸣器蜂鸣;当控制P0.7输出高电平时,Q12截止,蜂鸣器停止蜂鸣。
若把JP22断开,则Q12截止,蜂鸣器停止蜂鸣。
由于P0.7口与(LPC2200的)SPI功能部件的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触点,该模块板可用于交流或直流大功率电路的通断、马达和传动装置控制以及高低电压转换。
光耦隔离数字通道输入电压绝对值达3.5V~30V,并允许有双极性输入,连接线路时无须考虑正负。
PCM-8032AR的继电器输出信号在系统复位后会失效,以防止出现误操作。
3.4.2PCM-8032AR硬件结构
如图3.6所示,CN1是数字量输入接口,CN2与CN3是继电器输出接口。
图3.6继电器硬件结构图
3.4.3PCM-8032AR功能结构
图3.7PCM-8032AR功能结构图
§3.5ARM开发板
3.5.1MagicARM2200实验箱简介
MagicARM2200实验箱是由广州周立功单片机发展有限公司开发的ARM教学实验开发平台。
实验箱的主板上带有充足的存储资源(PSRAM、NANDFLASH、NORFLASH和E2PROM等),具有以太网接口、MODEM接口、CAN接口、IDE硬盘接口、CF卡接口、SD仿真接口,5.2英寸320*240彩色液晶屏,可使用JTAG仿真调试。
灵活的跳线选择,外设PACK和GPIO输出接口,非常适用于教学实验。
第四章软件设计
§4.1系统控制软件概述
4.1.1系统软件主要实现以下几大功能:
(1)利用键盘设置初始判断温度,并在数码管上显示;
(2)通过LM75A数字温度传感器将感应的实际温度送入寄存器;
(3)根据设定的参数初值对数据进行判断,从而开启或关闭加热器,并控制蜂鸣器的报警。
图4.1控制系统主程序流程图
4.1.2程序的总体结构
程序开始是定义位地址,定义温度传感器的位地址,温度值的储存缓存区的地址,显示缓存区地址。
然后是复位和中断入口地址表:
设定主程序MAIN的入口地址0000H、外部中断源INT0的中断入口地址0003H。
其次是系统的主程序:
在主程序中分为若干个子程序,通过依次对各个子程序地调用来完成整个系统的程序运行。
§4.2系统软件的设计
4.2.1主程序设计
主程序中仅实现系统的初始化,对系统进行自检和调用数据处理子程序。
包括键盘读取子程序,温度传感器获取温度子程序,温度转化子程序,显示子程序。
4.2.2键盘读取与数码管显示子程序设计
由键盘输入键值并判断而后在数码管上显示。
ZLG7290I2C接口键盘及LED驱动器应用流程图如图4.2。
图4.2键盘扫描及显示流程图
§4.3设计过程及结果
4.3.1对于键盘操作的描述
所有键盘都以十六进制进行控制。
其中数字0-9即为十六进制的0000-1001。
1010-A,作为十位数的控制键。
1011-B,作为个位数的控制键。
4.3.2对于数码管显示器的描述
用一个八位数码管来实现实验。
其中第一位显示C,表示温度单位。
第二位显示“°”,第三位显示个位温度;第四位显示十位温度。
4.3.3程序执行基本流程
1.输入一个两位温度给模块作为其初始温度。
显示温度在数码管上的第3、4位。
2.假设一个具体数值,如32,把此数值假设为温度传感器感应的温度,与数码管上显示的温度进行比较。
3.若32小于数码管上显示的温度,则蜂鸣器无任何操作。
因为对应管脚位低电平,蜂鸣器不激活。
4.若32大于于数码管上显示的温度,则蜂鸣器蜂鸣。
因为对应管脚为高电平。
5.在步骤4的情况下,按下“A”“B”键可再次改变数码管显示温度。
6.在步骤5的情况下,若数码管显示温度大于32,则蜂鸣器不工作,即停止蜂鸣。
第五章系统程序设计与调试
§5.1方案二的程序调试
方案二是通过四个按键来控制温度的设置,首先通过按键来输入键值,然后判断所输入的键值是什么,如果是“A”,则第四位数码管闪烁,表明可以再次按键,而此键值即是十位的数值;如果是“B”,则第三位数码管闪烁,表明可以再次按键,而此键输入的是个位的数值。
最后判断由LM75A温度感应器传送进来的温度值是否大于数码管显示的温度,若是则蜂鸣器鸣响。
但读键判断稍有混乱。
会影响蜂鸣器的正常报警。
详细程序清单参阅附件材料。
§5.2方案三的程序调试
方案三简化了方案二程序的四个按键,而是改用两个按键来控制键值的读入,首先设置shi的初值为9、ge的初值为9,然后通过按键输入键值,然后判断所输入键值为什么,如果为“A”,则执行if(shi>0)shi=--shi;elseshi=shi+9;如果为“B”,则执行if(ge>0)ge=--ge;elsege=ge+9;最后判断由LM75A温度感应器传送进来的温度值是否大于数码管显示的温度,若是则蜂鸣器鸣响。
详细程序清单参阅附件材料。
第六章结束语
§6.1设计调试过程中遇到的问题以及解决方法
6.1.1四个按键之间的输入读键混乱,不能正确报警。
在我把初始程序进行调试测试的时候,总会发现它的判断报警有点不太准确,一开始我并不知道是什么原因,不断的试和改程序但都不对,后来在老师的提示下,我在第七位和第六位的地方设置了实时读取显示的数值,结果终于发现,是因为有四个按键而混乱了读键和判断,所以报警才会不对。
知道了原因后,我又不断的改进,最终终于调试出了比较满意的程序,那就是在程序一开始进入while
(1)判断后加了c=1;if(c==1);使得程序能得到正确的判断与报警。
6.1.2增加显示℃,遇到困难。
显示C没有任何困难,通过查阅ZLG7290的表格就把问题解决了;但是要让数码管显示°却碰到了困难,查表不行,没有具体的代码。
我查阅了其他书籍,发现可以用数码管的八段a,b,c,d,e,f,g,h来进行编码,于是我就尝试着用ZLG7290ShowChar(0,0xC6);但是显示结果却不对,我苦思冥想,不知道该怎么办。
后来经过对程序的一再研究,终于发现原来要用另一种显示的语句Buf[0]=0x11;Buf[1]=0xc6;终于在第二位数码管处显示出了°。
6.1.3程序一执行,蜂鸣器就会鸣响
程序一执行就会蜂鸣,这个问题也困扰了我很久,最后我分析了一下,发现是因为程序一执行就进入了低电平有效,跳入蜂鸣器响的程序,因此程序一执行就蜂鸣。
后来我在主函数main()中加了一句话IO0SET=beep;这句话的作用是初始化蜂鸣器(不响)。
§6.2课程设计体会
通过这次的课程设计,我学到了很多东西,原先我对嵌入式系统并不是很了解,但是现在我对嵌入式系统有了更进一步的理解,在我们的生活中无处不存在嵌入式系统,交通信号灯、车灯、DV、数码相机等等一系列电子产品。
通过这次实践,我对ZLG7290,数码管,蜂鸣器,LM75A等一些器件有了深入的了解,知道了它们的结构与功能,以及相关的函数功能与运用,真正的把所学运用到了实际中,更好把课本与实际相结合。
也学会如何运用网络和图书馆来查找相关的资料与整合。
§6.3致谢
这次的课程能够顺利的完成,我要特别感谢我的指导老师王永明、徐会彬老师。
他们对我的这次课程设计提供很大的帮助,没有他们我不可能顺利完成,在他们的帮助下,我把所学的知识运用到了实际中,又在实践学会很多。
再次感谢两位老师的悉心教导和帮助。
第七章参考文献
[1]周立功.ARM嵌入式系统基础教程.北京:
北京航空航天大学出版社,2005.1
[2]周立功.ARM嵌入式系统实验教程.第三版.北京:
北京航空航天大学出版社,2005.9
[3]周立功.ARM嵌入式系统实验教程.第三版.扩展实验.北京:
北京航空航天大学出版社,2005.11
[4]田泽.嵌入式系统开发与应用实验教程.第二版.北京:
北京航空航天大学出版社,2005.4
[5]LabrosseJJean.邵贝贝译.嵌入式实时操作系统μc/os-II.第二版.北京:
北京航空航天大学出版社,2003
参考网站:
[1]周立功单片机;
[2]广州致远电子网页;
[3]电子电路图网;
[4]中国互动出版网http:
//www.china-。
第八章附件材料
§8.1实物图
图9.1键盘及数码管
图9.2LM75A
§8.2程序清单及说明
8.2.1方案二主程序清单:
#i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 温控 设计