基于单片机的温度报警系统毕业毕业论文

上传人:仙*** 文档编号:100856998 上传时间:2022-06-03 格式:DOC 页数:82 大小:1.15MB
收藏 版权申诉 举报 下载
基于单片机的温度报警系统毕业毕业论文_第1页
第1页 / 共82页
基于单片机的温度报警系统毕业毕业论文_第2页
第2页 / 共82页
基于单片机的温度报警系统毕业毕业论文_第3页
第3页 / 共82页
资源描述:

《基于单片机的温度报警系统毕业毕业论文》由会员分享,可在线阅读,更多相关《基于单片机的温度报警系统毕业毕业论文(82页珍藏版)》请在装配图网上搜索。

1、摘 要 温度控制是工业生产过程中经常遇到的过程控制,有些工艺过程对其温度的控制效果直接影响着产品的质量,因而设计一种较为理想的温度控制系统是具有不一般的价值与意义。在现代化的工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。例如:在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用MCS-51单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产

2、中经常会遇到的问题。将这个问题地解决,能很好地提升生产效率,节约资源,降低生产成本。本文从硬件和软件两方面介绍了MCS-51单片机温度控制系统的设计思路,对硬件原理图和程序框图作了简捷的描述该设计结构简单,控制算法新颖,控制精度高,有较强的通用性。关键词:单片机 温度控制 数字PID控制ABSTRACTIn the modern industrial production, the current, voltage, temperature, pressure, and flow, velocity, and switch quantity is accused of main paramet

3、ers.For example,n metallurgical industry, chemical industry, electric power engineering, paper industry, machinery and food processing and so on many domains, people need to all kinds of heating furnace, heat treatment furnace, reactors and boiler temperature detection and control.Using MCS - 51 SCM

4、 to control temperature, has not only convenient control, simple and flexible configuration advantages, and can greatly improve the technical indexes are controlled temperature, which can greatly improve the products quality and quantity.Therefore, the problem of temperature control chip is a indust

5、rial production we often encounter problems. Based on it, for example, hope to receive other cases and the effect.From the two aspects of hardware and software are introduced MCS - 51 SCM temperature control system design, hardware diagram and the procedures for the description of the simple diagram

6、.Keywords: Microcomputer Temperature control system Digital PID control目 录摘 要1ABSTRACT2目 录3第一章 总体设计方案及要求441.2 课程设计的任务要求5第二章 硬件电路的设计62.1 单片机的最小系统硬件电路的设计772.1.2 复位电路102.1.3 时钟电路112.2 显示硬件电路的设计112.2.1 液晶显示电路112.2.2 液晶显示电路的设计122.3 键盘硬件电路的设计132.4 温度传感器的硬件电路设计14温度传感器电路设计142.4.2 温度传感器DS18B20的简介142.5 温度控制执行

7、电路设计182.6 串行通信接口电路192.6 电源电路的设计202.7 温度报警系统电路21第三章 系统的软件设计22233.3 数据采集软件设计243.4 中断处理软件设计243.6 显示软件设计263.7 报警的软件设计273.8 温度部分软件设计27第四章 调试和仿真294.1 系统的调试294.2 温度报警系统的仿真30第五章 总结33附录一 程序源代码34附录二 系统的原理图47参考文献48第一章 总体设计方案及要求由系统的结构框图,可以看出整个温度控制系统的电路组成主要由数字电路和模拟电路两部分的结合,就可以完成对被测物体的温度控制,进而实现温度报警。本设计以单片机为核心由主控模

8、块、输入通道、输出通道、保护电路、电源电路组成等。硬件总体结构框图如下图所示。由结构框图可见,温度控制系统以单片机为核心,并扩展外部存储器构成主控模块。被测对象的温度由DS18B20温度传感器检测外界温度并转化为数字信号,通过单片机处理发出报警信号并驱动相应的电机工作,其系统框图如下所示:图1、温度报警系统原理框图传感器检测转化成数字信号送给单片机处理,一方面将被测对象的温度通过控制面板上的液晶显示器显示出来;另一方面将该温度值与设定的温度值进行比较,根据其偏差值的大小,最后通过控制继电器来驱动电机工作,进而达到对被测物体温度进行控制的目的,如果实际测得的温度值超过或低于系统设定的极限安全温度

9、,保护电路会做出反应同时报警电路报警提示,从而保护被测物体。单片机快速、准确的进行温度采集、数据处理、显示和控制主要是时钟电路提供的时钟频率,使单片机正常的协调处理各项任务。各个器件工作的电源电压主要有电源电路提供。则温度的设定范围就通过矩阵键盘进行设定,并且温度的设定范围可以人为的重复修改,使被测物体在正常的温度范围下工作,而采集的温度值和设定的温度值要能直观的看到就要通过相应的显示电路显示到相应的界面上,如液晶、数码管、点阵等。其中保护电路就是保护被测物体避免被损坏。1.2 课程设计的任务要求1、设计一个温度报电机工作警系统: 温度显示范围为051度可以更大范文,当温度大于40度时,上限报

10、警指示灯点亮,并驱动电机1转动;当温度小于于10度时,下限报警指示灯点亮,并驱动电机2转动;课程设计的要求1、根据任务要求选择方案、设计电路、确定元器件型号和参数2、硬件设计:要求设计出完整的电路原理图,包括电源模块、单片机最小系统电路、按键电路、报时电路、显示电路。3、软件设计:包括编程思路,主程序和各子程序模块的流程图及编写方法,并用汇编语言或C语言编写出完整的源程序。4、按图焊接电路,检查无误后通电调试,调试电路的功能是否符合要求。 5、调试与仿真:对设计的硬件和程序进行仿真调试,并给出仿真结果。制作实物进行调试。第一章 硬件电路的设计硬件电路主要有两大部分组成:模拟部分和数字部分;从功

11、能模块上来分有:主机电路、数据采集电路、键盘显示电路、电源电路、控制执行电路以及掉电保护电路。各个模块电路通过主机电路控制,协调一致的进行工作。完成对被测物体的温度控制。2.1 单片机的最小系统硬件电路的设计单片机的最小系统由单片机和时钟电路、复位电路以及电源电路组成,单片机的I/O接相应的处理电路,其原理图如下所示:主机选用INTEL公司的MCS-51系列单片机89C51来实现,利用单片机软件编程灵活、自由度大的特点,可擦除下载,力求用软件完善各种控制算法和逻辑控制。本系统选用的89C51芯片时时钟可达12MHZ,运算速度快,控制功能完善,完全能满足温度控制系统的要求。其内部具有128字节数

12、据存储器RAM,还可以通过地址、数据线进行外围扩展。而且内部含有4KB的EPROM不需要外扩展存储器,也有数据通信接口,通过TXD、RXD与PC机连接,可以进行人机操作,使得操作更加简单、方便。具有五个中断源,两个中断优先级,两个外部中断、两个定时中断还用一个通信中断AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用ATMEL 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为

13、众多嵌入式控制应用系统提供高灵活、超有效的解决方AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。R8 位微控制器8K 字节在系统可编程,其管脚功能图如下所示。图2.2 STC89S52的管

14、脚图1、功能管脚描述VCC : 电源GND: 地P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程和数据存储器时,P0口也被作为低8位地址在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被部拉低的引脚由于内部电阻的原

15、因,将输出电流(IIL)。此外,P1.0P1.分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时P1口接收低8位地址字节。引脚号 第二功能P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出;P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5 MOSI(在系统编程用);P1.6 MISO(在系统编程用);P1.7 SCK(在系统编程用)P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,

16、内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口

17、使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。2、引脚第二功能P3.0 RXD(串行输入);P3.1 TXD(串行输出);P3.2 INT0(外部中断0);P3.3 INT0(外部中断0);P3.4 T0(定时器0外部输入);P3.5 T1(定时器1外部输入);P3.6 WR(外部数据存储器写选通);P3.7 RD(外部数据存储器写选通) RST: 复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚

18、输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被

19、微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。 PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端XTAL2:振荡器反相放大器的输出

20、端2.1.2 复位电路复位使单片机处于起始状态,并从该起始状态开始运行。AT89C51的RST引脚为复位端,该引脚连续保持2个机器周期(24个时钟振动周期)以上高电平,则可使单片机复位。内部复位电路在每一个机器周期的S5P2期间采样斯密特触发器的输出端,该触发器可抑制RST引脚的噪声干扰,并在复位期间不产生ALE信号,图2.3 复位电路内部RAM处于不断电状态。其中的数据信息不会丢失,也即复位后,只影响SFR中的内容,内部RAM中的数据不受影响。外部复位有上电复位和按键电平复位。由于单片机运行过程中,其本身的干扰或外界干扰会导致出错,此时我们可按复位键重新开始运行。为了便于本设计运行调试,复位

21、电路采用按键复位方式。2.1.3 时钟电路 时钟电路是单片机的心脏,它控制着单片机的工作节奏。MCS-51单片机允许的时钟频率是因型号而异的,其典型值为12MHZ。AT89C51内部有一个反相振荡放大器,XTAL1和 XTAL2分别是该反向振荡放大器的输入端和输出端。该反向放大器可配置为片内振荡器,石晶振荡和陶瓷振荡均可采用。本设计采用的晶振频率为12MHZ。51系列单片机还可使用外部时钟。在使用外部时钟时,外部时钟必须从XTAL1输入,而XTAL2悬空。时钟电路如下图所示:图2.4 时钟电路2.2 显示硬件电路的设计显示电路用液晶作为显示电路,字符型液晶显示直观明了,用字符提示不像数码管,显

22、示更加直观。2.2.1 液晶显示电路液晶显示电路主要用于当前温度的显示和设定时的温度显示,以便于工作人员的观察。1、 液晶的介绍、基本操作时序 读状态 输入:RS=L, R/W=H,E=H 输出:D0D7=状态字读数据 输入:RS=H, R/W=H,E=H 输出:无写指令 输入:RS=L, R/W=L,D0D7=指令码,E=高脉冲 输出:D0D7=数写数据 输入:RS=H, R/W=L, ,D0D7=数据,E=高脉冲 输出:无。 、 液晶1602接口信号写操作时序 通过 RS 确定是写数据还是写命令。读/写控制端设置为写模式,即低电平。 将数据或命令送达数据线上,给 E 一个高脉冲将数据送入液

23、晶控制器,完成写操作。写操作时序如下图所示: 图2.5 液晶些操作时序、 液晶1602接口信号 2.2.2 液晶显示电路的设计如图所示:液晶的数据线接P0口,用来传输显示数据的信息。而RS、RW、E分别接单片机的P2.5、P2.6、P2.7口,控制液晶的读写操作。通过单片机的控制显示出租车计费系统的路程和价格。其原理图如下所示:图2.6 液晶显示硬件电路2.3 键盘硬件电路的设计如图所示按键KEY10、KEY11分别与P3.2(INTO)、P2.1相连,采用外部中断方式。当外部中断1响应,就可以进行当前温度的显示与设定温度显示的界面切换,同时兼用温度上限和下限温度的值的设定。图2.7 键盘电路

24、2.4 温度传感器的硬件电路设计 温度数据采集电路主要由数字温度传感器DS18B20采集被测物体的温度。温度传感器的单总线(1-Wire)与单片机的 IO连接,P3.7是单片机的高位地址线。P3端口是一个带内部上拉电阻的 8 位双向 IO,每个端口都有第二功能,其输出缓冲级可驱动(吸收或 输出电流)4个TTL逻辑门电路。对该端口写“1”,可通过内部上拉电阻将其端口拉至高电平,此时可作为输入口使用,这是因为内部存在上拉电阻,某一引脚被外部信号拉低时会输出一个电流。如图2.8所示:温度传感器DS18b20与单片机只用一根线连接即单总线或one_wire总线。数字温度传感器DS18B20只要三个端口

25、,电路连接很简单,一根电源线接电源,一根接地,一根接数据时钟线接单片机的I/O口,数据时钟线上必须接一个4.7k上拉电阻,防止时钟数据高阻悬挂,就会得不到相应的数据信息,因此也得不到准确的温度信息,从而测得的温度也是不准确,所以必须接一个47K上拉电阻,消除高阻悬挂,获取准确的温度信息。 图2.8 温度传感器硬件电路示意图2.4.2 温度传感器DS18B20的简介DS18B20 数字温度传感器是 DALLAS 公司生产的 1Wire,即单总线器件,具有 线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通 信线,可以挂很多这样的数字温度计,十分方便。一、 DS18B20

26、产品的特点 1、只要求一个端口即可实现通信。2、在 DS18B20 中的每个件上都有独一无二的序列号。3、实际应用中不需要外部任何元器件即可实现测温。 4、测量温度范围在55.C 到125.C 之间。 5、数字温度计的分辨率用户可以从 9 位到 12 位选择。 6、内部有温度上、下限告警设置。7、三个管脚,1脚是接地脚,2脚是单总线、可向电源提供电源 、3脚是电源脚。8、数据线和时钟线共用一根线传输信息即单总线。二、 DS18B20 的内部结构 DS18B20 的内部框图如下图所示。64位RO 存储器件独一无二的序列号。暂存器包含两字节(0和1字节)的温度寄存器,用于存储温度传感器的数字输出。

27、暂存器还提供一字节的上线警报触发(TH)和下线警报触发(TL)寄存器(2 和 3字节), 和一字节的配置寄存器 字节)使用者可以通过配置寄存器来设置温度转换的精度。 (4 , 暂存器的 5、6 和 7 字节器件内部保留使用。第八字节含有循环冗余码(CRC ) 。使用 寄生电源时,DS18B20 不需额外的供电电源;当总线为高电平时,功率由单总线上的 上拉电阻通过 DQ 引脚提供;高电平总线信号同时也向内部电容 CPP 充电,CPP 在总线低电平时为器件供电。其中INTERNAL VDD-内部 VDD 64-BIT ROM AND 1-wire PROT-64 位ROM和单线端 MEMORY C

28、ONTROL LOGIC- 存 储 器 控 制 逻 辑 SCRATCHPAD 暂 存 器 TEMPERATURE SENSOR 温度传感器 ALARM HIGH TRIGGER( TH ) REGISTER 上限温度触发 ALARM LOW TRIGGER( TL ) REGISTER 下 限温度触发 8-BIT CRC GENERTOR 8 位 CRC 产生器 POWER SUPPLLY SENSE 电源探测 PARASITE POWER CIRCUIT 寄生电源电路。图 2.9 DS18B20 的内部框图三、 DS18B20 的 4 个主要数据部件 光刻 ROM 中的 64 位序列号是出厂

29、前被光刻好的,它可以看作是该 DS18B20 的地址序列码。64 位光刻 ROM 的排列是:开始 8 位(28H)是产品类型标号,接着 的 48 位是该 DS18B20 自身的序列号, 最后 8 位是前面 56 位的循环冗余校验码。 光刻 ROM 的作用是使每一个 DS18B20 都各不相同,这样就可以实现一根总线上挂接多个 DS18B20 的目的。 /LSB 形式表达,其中 S 为符号位这是 12 位转化后得到的 12 位数据,存储在18B20的两个8比特的 RAM 中,二进制中的前面 5 位是符号位,如果测得的温度大于0,这 5 位为 0,只要将测到的数值乘于0.0625即可得到实际温度;

30、如果温度小于 0,这5位为 1,测到的数值需要取反加1再乘于0.0625 即可得到实际温度,所以数字温度传感器不需要A/D转化器等外围器件就能获取温度值,集成度高,使用方便,测量精度高。 DS18B20温度传感器的存储器DS18B20温度传感器的内部存储器包括一个高速暂存 RAM 和一个非易失性的可电擦EEPROM,后者存放高温度和低温度触发器TH、TL和结构寄存器。 配置寄存器,五位一直都是1,TM 是测试模式位,用于设置 DS18B20 在工作模式还是在 测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0 用来设置 分辨率四、 DS18B20 的工作过程 (1)初始

31、化 DS18B20 所有的数据交换都由一个初始化序列开始。由主机发出的复位脉冲和跟 在其后的由DS18B20发出的应答脉冲构成。DS18B20发出响应主机的应答脉冲时, 当 即向主机表明它已处在总线上并且准备工作。(2) ROM 命令 ROM命令通过每个器件64-bit的ROM码,使主机指定某一特定器件(如果有多个器件挂在总线上)与之进行通信DS18B20 ,每个 ROM 命 令都是 8 bit 长。(3)功能命令主机通过功能命令对DS18B20进行读/写 Scratchpad存储器,或者启动温度转换。 五、DS18B20 的信号方式 DS18B20 采用严格的单总线通信协议,以保证数据的完整

32、性。该协议定义了几种 信号类型:复位脉冲、应答脉冲、写0、写1、读0 和读1。除了应答脉冲所有这些信 号都由主机发出同步信号。总线上传输的所有数据和命令都是以字节的低位在前。(1)初始化序列:复位脉冲和应答脉冲 在初始化过程中,主机通过拉低单总线至少480的上拉电阻将单总线拉高。 DS18B20检测到这个上升沿后,延时15s60s,通过拉低总线 60s240s 产生应答 脉冲。初始化波形如图 3-3 所示。 图 2.10 DS18B20初始化时序图 (2)读和写时序 在写时序期间,主机向DS18B20 写入指令,而在读时序期间,主机读入来自 DS18B20 的指令。在每一个时序,总线只能传输一

33、位数据。读/写时序如图 3-4 所示。 图 2.11 DS18B20 读/写时序图 控制器采样 写时序:存在两种写时序:“写 1”和“写 0” 。主机在写 1 时序向DS18B20写入逻辑1,而在写0时序向DS18B20写入逻辑0。所有写时序至少需要60s,且在两次写时序之 间至少需要 1s 的恢复时间。两种写时序均以主机拉低总线开始。产生写 1 时序:主机拉低总线后,必须在 15s 内释放总线,然后由上拉电阻将总 线拉至高电平。 产生写0时序: 主机拉低总线后,必须在整个时序期间保持低电平 (至 少60s)。在写时序开始后的 15s60s 期间,DS18B20采样总线的状态。读时序 :DS1

34、8B20 只能在主机发出读时序时才能向主机传送数据。所以主机在发出读数据 命令后,必须马上产生读时序,以便 DS18B20 能够传送数据。所有读时序至少 60s, 且在两次独立的读时序之间至少需要 1s 的恢复时间。2.5 温度控制执行电路设计由输出来控制电机工作,电机可以近似建立为具有滞后性的一阶惯性环节数学模型。其传递函数形式为:G(s)=K/(Ts+1)e-ts电机可以认为是线形环节实现对被测物体温度的控制。为了实现强电和弱电的隔离,要选择光电耦合器,使输出信号要对继电器进行通断控制,以便使电机工作电路导通,此外,当实际温度不在设定的范围内,报警电路将实时报警并作出相相应的处理如(报警信

35、号传到单片机或人,单片机或人就会执行相应的操作),当实际温度低于设定的温度时相应黄色发光二极管点亮并且加热器启动低温的电机转动;高于设定的温度时对应红色二极管亮并且高温的电机转动。如图2.5所示:继电器的通断通过单片机的I/O的输出控制,从而控制加热器、制冷器的启停,来控制被测物体的温度。图2.12 温度控制电路图如图2.6所示:报警电路也是由单片机的I/O控制,当实际温度不在设定的范围单片机就会执行相应的指令,进行实时报警,提示温度超过或低于设定的温度,以便及时作出处理。图2.13 报警电路图2.6 串行通信接口电路目前,广泛使用的串行数据接口标准有一,一与一三种。其中一是美国电子工业协会正

36、式公布的串口总线标准,也是目前最为常用的串行接口标准,用来实现计算机与计算机之间,计算机与外设之间的数据通讯。串行通信接口的基本任务是实现数据格式化。来自的是普通的并行数据,接口电路应具有实现不同串行通信方式下的数据格式化的任务。具体任务是:1. 进行串-并转换;2. 控制数据传输速率;3. 进行错误检测;4. 进行TTL与EIA电平转换;5. 提供一一接口标准所要求的信号线。由于电平和TTL电平不匹配,因此要实现单片机和机之间的通信,必须在它们之间加接电平转换器。电平转换器有232电平转换和485电平转换,本设计采用232电平转换,系统设计采用公司的一接口芯,这是一种标准的一接口芯片。只需巧

37、电源供电,其内部的电源变化成士电源用于通信。该芯片集成有两路收发器,可将单片机输入的电平转换为电平发送给从机,或将从机接收的电平转换为电平发送给单片机。通过这样的电平转换实现主机和从机的通信,本设计的MAX232为双列直插16脚封装。系统串口通信电路如下图所示。图2.14 串行通信接口电路2.6 电源电路的设计系统所用直流电源由三端集成稳压器组成的串联型直流稳压电源提供。设计中选用了双12V的电源电压变压器和四个三端集成稳压器,分别提供+5V、+8V和一5V、-8V直流电压,输出电流均为1A。LM7805、LM7808和LM7905、LM7908的连接方法都一样。变压器将的市电降压后再通过整流

38、桥整流之后采用了大容量的电解电容进行滤波,以减小输出电压纹波。由于电解电容器在高频下工作存在电感特性,对于来自电源侧的高频干扰不能抑制,导致电流纹波很大,因此在整流电路后加入高频电容改善纹波效果。给各器件提供电源,使其更好的工作。同时还采用了保护电路,在正、负电源两端分别串联了保险管起双重保险,当负载功率过大保险丝就会熔断,三端集成稳压管的输入、输出反接了二极管保护,避免反向电流过大击穿稳压管,起到了很好的保护作用,电源电路如图2-17和2-18所示。2.7 温度报警系统电路主机电路、数据采集电路、键盘显示电路、电源电路、控制执行电路以及掉电保护电路。各个模块电路通过主机电路控制,协调一致的进

39、行工作。完成对被测物体的温度控制。图2.16 温度报警电路第三章 系统的软件设计在微机测控系统中,软件与硬件同样重要。硬件是系统的躯体,软件则是灵魂,当系统的硬件电路设计好之后,系统的主要功能还是要靠软件来实现,而且软件的设计在很大程度上决定了测控系统的性能。为了满足系统的要求,编制软件时一般要符合以下基本要求:(1)易理解性、易维护性 在软件的设计方法中,结构化设计是最好的一种设计方法,这种设计方法是由整体到局部,然后再由局部到细节,先考虑整个系统所要实现的功能,确定整体目标,然后把这个目标分成一个个的任务,任务中可以分成若干个子任务,这样逐层细分,逐个实现;(2)实时性 实时性是电子测量系

40、统的普遍要求即要求系统及时响应外部事件的发生,并及时给出处理结果。近年来,由于硬件的集成度与运算速度的提高,配合相应的软件,实时性比较容易满足设计要求;(3)准确性 准确性 准确性对整个系统具有重要意义,尤其是测量系统,系统要进行一定量的运算,算法的正确性和准确性对结果有着直接的影响,因此在算法的选择、计算的精度等方面都要符合设计的要求。(4)可靠性可靠性是系统软件最重要的指标之一,作为能够稳定运行的系统,抗干扰技术的应用是必不可少的,最起码的要求是在软件受到干扰出现异常时,系统还能恢复正常工作。 结合上述编制系统软件的基本要求,首先讨论软件的设计思想。 系统的软件由三大模块组成:主程序模块、

41、功能实现模块和运算控制模3.1 软件模块由于整个系统软件相对比较庞大,为了便于编写、调试、修改和增删,系统软件的编制采用了模块化的设计。即整个控制软件由许多独立的小模块组成,它们之间通过软件接口连接,遵循模块内部数据关系紧凑,模块之间数据关系松散的原则,按功能形成模块化结构。系统的软件主要由主程序模块、温度数据采集模块、数据处理模块、控制算法模块等组成。主模块的功能是为其余几个模块构建整体框架及初始化工作数据采集模块的作用是将转换的数字量采集并储存到存储器中数据处理模块是将采集到的数据进行一系列的处理,其中最重要的是数字滤波程序控制算法模块完成控制系统的运输出控制量。下面就介绍本系统几个主要的

42、程序模块。主程序模块要做的主要工作是上电后对系统初始化和构建系统整体软件框架,其中初始化包括对单片机的初始化、芯片初始化和串口初始化等。然后显示当前温度或者温度设定,若温度已经设定好了,判断系统运行键是否按下,若系统运行,则依次调用各个相关模块,循环控制直到系统停止运行。主程序要协调各个模块的工作,要把温度采集、温度设置、温度显示、键盘扫描输入、中断处理等各个模块的子程序统一协调起来,避免混乱打架的现象,要使得温度控制各个模块正常的工作。主程序在整个程序中起着至关重要的作用,是各个子程序联系的枢纽。主程序模块的程序流程图如图3.2所示。在附录中给出了系统初始化源程序。 图3.1 主程序流程图3

43、.3 数据采集软件设计数据采集模块的任务是负责温度信号的采集以及将采集到的温度模拟量信号转化为相应的数字量信号提供给单片机。单片机再经过相应的数据处理,数据采集主要通过DS18b20温度传感器采集被测物体的温度。因为数字温度传感器DS18B20能将外界的温度直接转换成数字信号,直接送入单片机处理就行了,就不用在经过A/D转化器将其转化成数字信号,这样就方便了很多而且抗干扰能力强。软件程序也简化了很多,数据采集模块的程序流程:数据采集的程序初始化即DS18b20的程序初始化采集温度等待温度转换读取温度送给单机处理,如图3.4所示:图3.2 温度采集流程图3.4 中断处理软件设计功能实现模块主要由

44、中断处理子程序、键盘处理子程序、显示子程序等部分组成。中断系统在单片机应用系统中占有非常重要的角色,其中前后台的应用最为实用,中断系统能帮助我们及时处理重要事务,出现故障能进行实时处理,中断还能够节约大量的CPU资源,就比如查询方式来说中断查询方式要比软件查询方式要来得方便,可靠且节约内存等,中断系统对单片机来说是占有不可或缺的地位,限于篇幅,只介绍中断处理子程序。外部中断INT0是优先级最高,优先级高于其他的四个中断,外部中断0响应用于退出温度设置界面,恢复到当前温度采集界面,进行温度采集、显示以及判断是否越限并是否输出报警等功能,其流程:开始程序初始化等待中断跳出温度设置界面执行相应的程序

45、。流程图如3.7所示:图3.3 外部中断INT0中断程序流程图 本系统中,在软件方面的抗干扰措施主要从以下两个个方面来考虑(1)按键的软件消抖按键是一个机械开关,当键按下时,开关闭合;当键松开时,开关断开。其特点之一就是它的抖动性,这是由按键的机械特性所决定的,抖动的时间一般约为10ms一20ms。对于按键消抖的具体措施目前有两种:一是用硬件电路来实现,即用滤波电路滤除抖动或用触发器消除抖动。另一种是用软件延时的方法来解决,即利用软件的延时避开按键的按下与抬起时都有的抖动期,从而避免检测到干扰信号。本文采用的就是软件延时消抖的方法。附录中给出了延时程序的源程序,同时延时程序还作为通用功能模块被

46、其他模块调用。(2)滤波消抖数字滤波是将一组输入数字序列进行一定的运算而转换成另一组输出数字序列的方法,采用软件滤波算法不需要增加硬件设备,可靠性高,功能多样,使用灵活,但是要占用一定的处理器运行时间。在本系统设计中,采用了数字滤波的软件抗干扰措施,所采用的数字滤波算法是去极值平均滤波法。程序判断滤波法首先要从经验出发,定出一个目标参数最大可能的变化范围。每次采样后都和上次的有效采样值进行比较,如果变化幅度不超过经验值,本次采样有效,否则,本次采样值应视为干扰而放弃,以上次采样值为准。该算法适用于变化缓慢的物理参数的采样过程。算术平均滤波法是对目标参数进行连续采样,然后求其算术平均值作为有效采

47、样值。该算法适用于抑制随机千扰。采样次数越大,平滑效果越好,但系统的灵敏度要下降。算术平均滤波不能将明显的脉冲干扰消除,只是将其影响削弱,因此本设计不采用此方法。3.6 显示软件设计采用技术成熟,价格便宜的 1602 液晶显示器做为输出显示。显示设定的温度范围和被测物体的当前温度,本次设计使用的 1602 液晶显示器为 5V 电压驱动,带背光可调,可显示两行字符,每行16个字符,不能显示汉字,内置 128 个字符的 ASCII 字符集字库,也可以自定义字符,只有并行接口,无串行接口。液晶显示方便、灵活。其流程:开始液晶显示初始化检测忙碌信号写入显示RAM地址写入显示的数据显示在液晶上结束,其流

48、程图如3.8所示:图3.4 液晶显示程序流程图3.7 报警的软件设计本文中所设计的报警电路较为简单,由一个自我震荡型的蜂鸣器(只要在蜂鸣器两端加上超过3V的电压,蜂鸣器就会叫个不停)和一个发光二极管组成。在这次设计中蜂鸣器是通过三极管电流放大IC来控制。在我们所要求的温度达到一定的上界或者下界时,报警电路开始工作。程序流程:开始判断当前温度是否越限发出报警,流程图如3.9所示,程序主要函数见附录。图3.5 报警程序流程图3.8 温度部分软件设计 DS18B20的一线工作协议流程是:初始化ROM操作指令存储器操作指令数据传输。其工作时序包括初始化时序、写时序和读时序。故主机控制DS18B20完成

49、温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。每次访问单总线器件必须严格遵守这个命令序列如果出现序列混乱则单总线器件不会响应主机但是这个准则对于搜索ROM命令和报警搜索命令例外在执行两者中任何一条命令之后主机不能执行其后的功能命令必须返回至第一步,复位要求主CPU将数据线下拉500微秒,然后释DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。程序主要函数见附录。 获取被测物体的温度主要依靠DS18b20数字温度传感器,获

50、取的数字温度信号直接送给单片机处理,就可以获得当前温度,因为DS18b20是依靠单总线传输数字温度信息,所以要遵守严格的单总线协议,其流程为:开始程序初始化等待应答脉冲发送ROM操作指令延时、等待温度转化延时、读取温度结束。其流程图如3.10所示:图3.6 温度获取程序流程图第四章 调试和仿真4.1 系统的调试硬件电路调试,先用proteus仿真之后,在去买好元器件清单,焊接电路。焊接要特别小心,要仔细的对照电路图,既不能使电路短路也不能是电路开路,保持电路的畅通,并在相应的位置装上发光二级管提示电路通电,可以减轻硬件电路的调试困难,还有芯片的焊接要根据芯片资料了解管脚的功能去焊接,不然很容易

51、烧坏芯片,如过芯片的工作不正常先观察芯片管脚有无接触,或者芯片的使能是不是根据相应的要求接的,在用万用表去测试电源管脚是否通电,通电后在去测相应的管脚是否输出相应的电平,如果没有就是芯片有问题,如果相应位置的二极管没有点亮,先观察二级管有没接反,如果没接反就用万用表去测看是否有电压,如果没有电压说明没通电,如果有电压说明二极管坏了,当然也要根据软件结合,测试数码管给以程序,8段数码管一段一段的观察,看是否管脚接错,如果断码接错了等显示数据就会错乱。系统软件程序调试,程序调试先在KEIL软件里写好各模块程序,在一个个子程序调试,结合proteus仿真成功后,再将所有的程序拼在一起调试,软件调试注

52、意的主要是定时中的的初始化,算好中断时间,还有按键程序,看是否读取得到相应的电平,其他的就没没什么了吧。4.2 温度报警系统的仿真在正常的温度中工作,绿灯亮,电机不工作,如下图所示:图4.1 在正常温度范围内工作的仿真图在高于40的环境工作,红灯亮,同时相应的电机转动图4.2 在高温环境中工作的仿真图在低于10的环境工作,黄灯亮,同时相应的电机转动 图4.3 在低温环境中工作的仿真图设置工作温度的下限图4.4 设置工作温下限的仿真图设置工作温度的上限图4.5 设置工作温上限的仿真图第五章 总结社会是不断变化的、发展的,眼下社会发展迅速,对人才的要求越来越高,要用发展的眼光看社会,要学会习,学会

53、创新,学会适应社会的发展需要。在走出校园,迈向社会之即,把握今天,才学能创造未来。课程设计工作中,在老师的熏陶和教诲下,使我懂得了更多的设计思想,有了一定的创新精神和专研精神。在完成毕业设计的这段时间里,我收获颇多。本文设计的出租车计费系统具有硬件简单,容易实现,性能稳定可靠,成本低,寿命长等特点。主要做了下面几点较突出的工作:一、通过查阅相关资料,详细了解了AT89C51单片机的原理,明确了设计采用的元件,明确了研究目标。二、本文给出了系统具体的硬件设计方案,硬件结构电路图,设计中采用的编程软件的介绍,电路图模块分析等方面。三、在这次课程设计的过程中,进一步学习了单片机的基本使用,感到了单片

54、机对复杂电路设计的重要性。通过本次设计我对单片机有了一定的认识,这是我对专业知识一次实际性检验和巩固。课程设计收获很多,比如学会了查找相关资料,分析数据,提高了自己的绘图能力,让自己的设计思想也不断得到修正和提高。理论与实际相结合,不仅包括课堂上学习的有关知识要与技能训练相结合,还要包括了解可接触社会实际的能容。进行课程设计,是在专业知识的指导下,通过各种方式,解决一些实际性的问题。在设计过程中,可以将所学习得理论知识运用到实践中,不仅能加深自己对专业知识的理解,而且能丰富和发展书本上的理论知识,使之转化成更高层次的经验、技能和技巧。附录一 程序源代码#include/头文件#include/

55、包含NOP空操作指令的头文件sbit rs= P26;/数据命令选择端sbit rw = P25;/读写选择端(H/L?sbit ep = P27;/使能信号sbit DQ = P37;/温度数据信号sbit HT_motor = P10;/电机驱动变量sbit LT_motor = P11;/电机驱动变量sbit H_alarm = P12;/高温报警提示sbit normal = P13;/正常温度提示sbit L_alarm = P14;/低温报警提示sbit key_add1 = P20;/温度设置加1sbit key_add10= P21;/温度设置加10sbit key_dec1

56、= P22;/温度设置减1sbit key_dec10= P23;/温度设置减10float temper;/DS18B20温度数据#define delay1us _nop_(); /1微秒延时#define delay5us _nop_();_nop_();_nop_();_nop_();_nop_(); /5微秒延时#define delay15us delay5us;delay5us;delay5us;/15微秒延时#define delay45us delay15us;delay15us;delay15us;/45微秒延时#define delay60us delay15us;del

57、ay15us;delay15us;delay15us;/60微秒延时#define delay480us delay60us;delay60us;delay60us;delay60us;delay60us;delay60us;delay60us;delay60us;/480微秒延时unsigned char display110=0123456789; /液晶字符显示unsigned char display22=.,-; /显示符号unsigned char display320=Current_Wendu; /显示符号unsigned char display420=set_lowerwe

58、ndu;unsigned char display520=set_upperwendu;unsigned int tempreture_nuber,tempreture_dot;/温度存放变量unsigned char th_byte; /变量unsigned char tl_byte; /变量unsigned int tempreture_int; /变量unsigned int upper_temperature=40;unsigned int lower_temperature=10;unsigned int set_flag = 0;/*延时子程序delayms()*/void del

59、ay(unsigned int ms_count)unsigned int k;while(ms_count-)for(k=0;k250;k+)/约一毫秒_nop_();_nop_();_nop_();_nop_();/* 外部中断初始化子程序*/void waibuzhongduan_init()EA = 1;/开总中断EX0=1;/允许外部中断0中断IT0=1;/下降沿触发中断PX0=1;/外部中断0中断优先级高/*LCD_1602的模块化程序*/*液晶1602用来显示读取的温度值,设定的温度值, rs与 P2、6口连接; rw 与 P2、5口连接; ep 与 P2、7口连接; */*LCD_1602的模块化程序*/bit lcd1602_busytest()/检查忙碌标志位是否忙碌bit result;rs = 0;/rs为低电平,rw为高电平时,为读指令rw = 1;ep = 1;/ep使能,高电平有效,开始读指令_nop_();_nop_();_nop_();_nop_();ep = 0;return result;/*液晶写数据地址操作命令子函数*/void lcd1602_write_comdand(unsigned char write_data)while(lcd1602_busytest();rs = 0;/rs与rw都为低电平时写入指令

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!