《优秀毕业论文基于MCS51系列单线制的多点温度采集系统设计06019.doc》由会员分享,可在线阅读,更多相关《优秀毕业论文基于MCS51系列单线制的多点温度采集系统设计06019.doc(31页珍藏版)》请在三一办公上搜索。
1、保密类别 编 号 武汉大学毕 业 论 文基于MCS-51系列单线制的多点温度采集系统武汉大学2013年05月2日摘 要本设计的温度测量系统以MCS-51系列单片机为核心部件,外加温度采集电路、键盘电路、显示电路和声光报警电路组成。采用总线型数字式的温度传感器 DS18B20,及行列式键盘和动态显示的数码管作为主要器件。通过小键盘实现对不同温度数据的采集与切换显示。同时,也可利用小键盘实现温度最大最小值的设定。对于超过此的温度数据将产生报警信号。本作品既可以对当前温度进行实时显示又可以对温度进行监控,人性化的行列式键盘设计使设置温度简单快速。采用浮点小数的显示方式使具有更高的显示精度和灵活性。通
2、过对系统软件和硬件设计的合理规划,发挥单片机自身集成众多系统级功能单元的优势,在不减少功能的前提下有效降低了硬件成本,系统操控显得更加简便。关键词:MCS-51系列单片机 DS18B20 温度采集 温度监控目 录摘要 I第一章 绪论1第一章 方案论证2.1 为什么选用DS18B20而不选用热电偶作为温度传感器?52.2 为什么要选用AT89C51单片机?52.3 为什么要设置键盘电路?6第二章 系统硬件设计3.1 系统控制模块73.2 温度采集模块133.3 显示电路模块153.4 键盘电路173.5 报警电路18第三章 系统软件设计 4.1 软件程序19结论20参考文献21附录22后记28第
3、一章 绪论自从1976年Intel公司推出第一批单片机以来,80年代单片机技术进入快速发展时期,近年来,随着大规模集成电路的发展,单片机继续朝快速、高性能方向发展,从4位、8位单片机发展到16位、32位单片机。单片机主要用于控制,它的应用领域遍及各行各业,大到航天飞机,小至日常生活中的冰箱、彩电,单片机都可以大显其能。单片机在国内的三大领域中应用得十分广泛:第一是家用电器业,例如全自动洗衣机、智能玩具;第二是通讯业,包括电话、手机和BP机等等;第三是仪器仪表和计算机外设制造,例如软盘、硬盘、收银机、电表。除了上述传统领域外,汽车、电子工业在国外也是单片机应用十分广泛的一个领域。它成本低、集成度
4、高、功耗低、控制功能多能灵活的组装成各种智能控制装置,由它构成的智能仪表解决了长期以来测量仪器中的误差的修正、线性处理等问题。单片机将微处理器、存储器、定时/计数器、I/O接口电路等集成在一个芯片上的大规模集成电路,本身即是一个小型化的微机系统。单片机技术与传感与测量技术、信号与系统分析技术、电路设计技术、可编程逻辑应用技术、微机接口技术、数据库技术以及数据结构、计算机操作系统、汇编语言程序设计、高级语言程序设计、软件工程、数据网络通信、数字信号处理、自动控制、误差分析、仪器仪表结构设计和制造工艺等的结合,使得单片机的应用非常广泛。同时,单片机具有较强的管理功能。采用单片机对整个测量电路进行管
5、理和控制,使得整个系统智能化、功耗低、使用电子元件较少、内部配线少、成本低,制造、安装、调试及维修方便。温度作为作物生长一个非常重要的参数,温度的变化影响作物的发芽、幼苗的成长、作物的开花、果实的成熟等等。对于不同的作物,其适宜的生长温度总是在一个范围。超过这个范围,作物或许会活着,但是其生长的规律将发生明显的变化。这对于我们所希望的要求作物能够优质、高产的愿望相距甚远,所以我们必须实时获取作物生长的环境温度。对于,超过作物生长适宜范围的温度能够报警。同时,我们也希望作物的适宜温度范围可以由检测人员根据实际情况加以改变。同时,由于作物分布空间的狭小,各点的温度在同一时间上可能存在差异,所以对于
6、温室必须采取多点采集,以保证能够更准确的获知作物生长的实时温度。本设计就是基于单片机AT89C51设计的实时温度采集。通过小键盘实现对不同路温度数据的切换显示。同时,也可利用小键盘实现温度最大最小值的设定。对于超过此限的温度数据将产生报警信号。第二章 方案论证2.1为什么选用DS18B20而不选用热电偶作为温度传感器?温度检测可以使用低温热偶或铂电阻,数据采集部分则使用带有A/D通道的单片机。考虑到一般的A/D输入通道都只能接收大信号,所以还要设计相应的放大电路。而模拟信号在长距离传输过程中,抗电磁干扰是令人伤脑筋的问题。此方案的软件简单,但硬件复杂,且检测点数追加时,各敏感元件参数的不一致性
7、,都将会导致误差的产生,难以完全清除,而且成本会有较大增长幅度。DALLAS公司的DS18B20单总线数字传感器工作温度范围是-55125,在-3085范围内温度测量精度为0.5;具有温度报警功能,用户可设置最高和最低报警温度,且设置值掉电不丢失;采用DALLAS公司特有的单总线通信协议,只用一条数据线就可实现与MCU的通信;此外,这类温度传感器直接输出数字信号,且多路温度传感器可以挂在1条总线上,共同占用单片机的1个I/O口即可实现。在提升单片机I/O口驱动能力的前提下,理论上可以任意扩充检测的温度点数。DS18B20具有下列特点:具有高的测量精度和分辨率,测量范围大;抗干扰能力强,稳定性好
8、;信号易于处理、传送和自动控制;便于动态及多路测量,读数直观;安装方便,维护简单,工作可靠性高;6够直接从数据线获得电源,无需外部电池供电。综上所述故选用DS18B20作为温度传感器2 .2为什么要选用AT89C51单片机?单片机,专业名称Micro Controller Unit(微控制器件),它是由INTEL 公司发明的,最早的系列是MCS-48,后来有了MCS-51,现在还有MCS-96 系列,我们经常说的51 系列单片机就是MCS-51,它是一种8 位的单片机,而MCS-96 系列则是一种16 位的单片机,目前在我国比较流行的就是美国ATMEL 公司的89C51,它是一种带Flash
9、ROM 的单片机AVR 系列单片机也是ATMEL 公司生产的一种8 位单片机,它采用的是一种叫RISC(精简指令集单片机)的结构,所以它的技术和51 系列有所不同,开发设备也和51 系列是不通用的,它的一条指令的运行速度可以达到纳秒级(即每秒1000000000 次),是8 位单片机中的高端产品。由于它的出色性能,目前应用范围越来越广,大有取代51 系列的趋势,IC 系列单片机,它是美国MICROCHIP 公司,微芯公司的生产的另一种8 位单片机,它采用的也是RISC 的指令集,它的指令系统和开发工具与51 系列更是不同,但由于它的低价格和出色性能,目前国内使用的人越来越多,国内也有很多的公司
10、在推广它,不过它的影响力远没有51 系列的大,所以作为初学者,51 系列当然是首选。且AT89C51单片机有以下特点:与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路综上所述故选用AT89C51单片机2.3为什么要设置键盘电路?单片机系统所用的键盘有编码键盘和非编码键盘两种。编码键盘本身除了按键之外,还包括产生键码的硬件电路。只要按下编码键盘的某一个键,它就能产生这个键的代码,
11、并称为键码,与此同时还产生一个脉冲信号,以通知CPU接收键码,编码键盘的优点是使用比较方便,亦不需要编写太复杂的程序。其缺点是使用的硬件较复杂。非编码键盘的按键是排列成行、列矩阵形式的。按键的作用只是简单地实现接点的接通或断开,因此必须有一套相应的程序与之配合,才能产生相应的键码,非编码键盘几乎不需要附加什么硬件电路。因此为了简洁电路,我使用非编码键盘。但使用非编码键盘需要通过软件来解决按键的识别、防抖动以及如何产生键码的问题。在这里我们使用非编码键盘电路,通过小键盘实现对不同温度数据的采集与切换显示。同时,也可利用小键盘实现温度最大最小值的设定。综上所述故需设置键盘电路第三章 系统硬件设计3
12、.1系统控制模块图3.1系统控制模块1.AT89C51功能简介:AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT
13、89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图3.2所示:主要特性:与MCS-51 兼容4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24MHz 三级程序存储器锁定1288位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道 低功耗的闲置和掉电模式片内振荡器和时钟电路 管脚说明:VCC:供电电压。GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存
14、储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,
15、将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:P3口管脚 备选功能:P3.
16、0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6
17、。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部
18、锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于
19、低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器, 计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止2.复位电路复位是单片机的初始化操作,其作用是使CPU中的各个部件都处于一个确定的初始状态,并从这个状态开始工作。当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复
20、位操作。如果RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。常用的按键复位电路如图3.2所示。按键后:电容器被短路放电、RST直接和VCC相连,就是高电平,此时进入“复位状态”。松手后:电源开始对电容器充电,此时,充电电流在电阻上,形成高电平送到RST,仍然是“复位状态”;稍后,充电结束,电流降为0,电阻上的电压也将为0,RST降为低电平,开始正常工作。单片机的复位操作使单片机进入初始化状态
21、,其中包括使程序计数器PC0000H,这表明程序从0000H地址单元开始执行。图3.2 89c51单片机图3.3 89c51单片机复位电路3.时钟电路:在MCS51单片机片内有一个高增益的反相放大器,反相放大器的输入端为XTAL1,输出端为XTAL2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式。根据硬件电路的不同,单片机的时钟连接方式可分为内部时钟方式和外部时钟方式,为保证系统的稳定性,我们这里采用内部时钟方式如图3.3所示。图3.4 时钟电路在内部方式时钟电路中,必须在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路,通常C1和C2一般取30pF,
22、晶振的频率取值在1.2MHz12MHz之间。对于外接时钟电路,要求XTAL1接地,XTAL2脚接外部时钟,对于外部时钟信号并无特殊要求,只要保证一定的脉冲宽度,时钟频率低于12MHz即可。晶体振荡器的振荡信号从XTAL2端送入内部时钟电路,它将该振荡信号二分频,产生一个两相时钟信号P1和P2供单片机使用。时钟信号的周期称为状态时间S,它是振荡周期的2倍,P1信号在每个状态的前半周期有效,在每个状态的后半周期P2信号有效。CPU就是以两相时钟P1和P2为基本节拍协调单片机各部分有效工作的。3.2温度采集模块1.DS18B20传感器性能简介:DS18B20温度传感器是美国DALLAS半导体公司最新
23、推出的一种改进型的一线式智能数字温度传感器,与传统的热敏电阻等测温元件相比,他能直接读出北侧温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读书方式。DS18B20有以下的性能特点:独特的单线接口仅需要一个端口引脚进行通信。多个DS18B20可以并联在唯一的三线是,实现多点组网功能。无需外部器件。可通过数据线供电,电压范围为3.0-5.5V。零待机功耗。温度测量范围为55125。温度以9或12位数字量读出,即可编程为912位A/D转换精度。测温分辨率可达 0.0625。适用于远距离多点温度检测系统。用户可定义的非易失性稳定报警设置。报警搜索命令识别并标志超过程序限定温度(温度报警条
24、件)的器件。负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。DS18B20可以采用两种方式供电。一种是采用电源供电方式,如图3.4所示,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图3.5所示。单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。 当DS18B20处于写存储器操作和温度AD转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。处于寄生电源供电方式时Vdd和GND端均接地。由于单线制只有一根线,因此发送接口必须是三态的。DS18B20的内部结构D
25、S18B20主要由4部分组成:64 位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如图3.6所示,DQ为数字信号输入输出端;GND为电源地;VDD为外接供电电源输入端。图3.6 DS18B20的管脚图ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。2.DS18B20与单片机的典型接口设计:图3.7以MCS51系列单片机为例,画出了DS18B20与微处理器的典型连接。DS1
26、8B20采用寄生电源方式,其VDD和GND端均接地。 单片机系统所用的晶振频率为12MHz,根据DS18B20的初始化时序、写时序和读时序,分别编写了3个子程序:INIT为初始化子程序,WRITE为写(命令或数据)子程序,READ为读数据子程序,所有的数据读写均由最低位开始。主机控制DS18B20完成温度转换必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。必须先启动DS18B20开始转换,再读出温度转换值。如果一线上挂接多个DS18B20、采用寄生电源连接方式、需要进行转换精度配置、高低限报警等,则子程序GETWD的编写就要复杂一些。3.3 显示电路模块1.74ls138译码器功能简
27、介:74ls138是一个3线-8线译码器,它有三个数据输入端,八个输出端,3个使能输入端(一个高电平有效和两个低电平有效)。其功能表如下所示:2.MC14495译码器功能简介:MC14495是由4位锁存器、地址译码、笔段ROM阵列以及带有限流电阻的驱动电路部分电路组成。图3.8中A、B、C、D为二进制码输入端;LE为所存控制端,LE为低电平时可以输入数据,LE为高电平时锁存输入数据;h为输入数据大于等于10指示位,若输入数据大于或等于10,则h输出高电平,否则输出为低电平。在此处的作用是输入被显字符的二进制码,并把它自动转换成相应字型码,送给LED显示。3.LED数码管接法比较:LED数码管根
28、据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。4.LED数码管驱动原理:采用技术成熟的74LS138实现串并转换。LED显示分为静态显示和动态显示。这里采用静态显示,系统通过单片机的串行口来实现静态显示。串行口为方式零状态,即工作在移位寄存器方式,波特率为振荡频率的112。当器件执行任何一条将SBUF作为目的寄存器的命令时,数据便开始从RXD端发送。在写信号有效时,相隔一个机器周期后发送控制端SEND有效,即允
29、许RXD发送数据,同时本设计中用6个LED组成显示单元,采用静态显示方式。如图3.9所示:图3.9 显示电路3.4 键盘电路组成键盘的按钮有触点式和非触点式两种,单片机中应用的一般是由机械触点组成的。在下图中,开关S未被按下时,P1.0输入为高电平,S闭合后,P1.0输入为低电平。由于按钮是机械触点,当机械触点断开、闭合时,会有抖动。这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全能感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。中断时按钮有时灵,有时不灵,其实就是这个原因,你只按了一次按钮,可是计算机却已执行了多次中断
30、的过程。 为使CPU能正确地读出P1口的状态,对每一次按钮只作一次响应,就必须考虑如何去除抖动,常用的去抖动的办法有两种:硬件办法和软件办法。单片机中常用软件法。软件法就是在单片机获得P1.0口为低的信息后,不是立即认定S1已被按下,而是延时10毫秒或更长一些时间后再次检测P1.0口,如果仍为低,说明S1的确按下了,这实际上是避开了按钮按下时的抖动时间。而在检测到按钮释放后(P1.0为高)再延时5-10个毫秒,消除后沿的抖动,然后再对键值处理。不过一般情况下,常常不对按钮释放的后沿进行处理。图3.10为键盘与单片机的连接。 3.5 报警电路对于本设计只要超过我们设定的温度 值的范围就会产生声光
31、报警,所以我们要在系统中设计报警电路,对于超过此限的温度数据将产生报警信号。 第4章 软件设计4.1软件流程结论本设计用MCS-51单片机为主要硬件,设计了包括温度采集,温度显示,键盘电路和声光报警电路。而且对所设计电路部分给出了相应的软件设计,在温度测量部分采用具有“单线多点”的数字传感器DS18B20,实现单线多点温度数据的采集和监控。多点温度检测与控制系统是典型的集散式控制系统。由AT89C51和DS18B20构成的温度采集系统,提高了温度采集的精度。本设计的线路具有良好的可升级性和可扩展性。程序设计采用我们熟悉的是汇编语言。对本设计感到不足的是,此系统只是一个开环系统,它只实现了对多点
32、温度的采集和对所设置上限温度的监控报警,因此也就局限了此系统功能的延伸。我认为对此设计的再加上对温度控制的执行机构(继电器),比如在室内温度达到所设定的上限时,不再是声光报警,而是通过执行机构接通风扇电源,使其降温,当温度达到所设定的下限时,也通过执行机构去接通加热器电源,使其温度回升,这样所设计的系统就成为闭环负反馈系统,使其温度控制在一定的范围内。这样就可以实现其自动化控制。参考文献1 程佩青数字信号处理教程北京:清华大学出版社,20042 周立功.单片机实验与实践. 北京:北京航空航天大学出版社.3 吴国经.单片机应用技术.北京:中国电力出版社,2003.4 阎石.数字电子技术基础.北京
33、:高等教育出版社,2006.5 谭浩强.C程序设计.北京:清华大学出版社, 2005.6 沙占友等.单片机外围电路设计.电子工业出版社.2003.7 杨金岩.8051单片机数据传输接口扩展技术与应用实例.人民邮电出版社.2005.8 周荷琴、吴秀清.微型计算机原理与接口技术.中国科学技术大学出版社.2011.9 万方数据知识服务平台.10 百度.11 维普期刊资源整合服务平台.12 EBSOC外文论文数据库.13 中文科技期刊.附 录系统程序;*FLAG1 BIT F0 ;DS18B20存在标志位DQ BIT P1.7TEMPER_L EQU 29HTEMPER_H EQU 28HA_BIT
34、EQU 35HB_BIT EQU 36H;*程序起始*ORG 0000HAJMP MAINORG 0100H;*主程序开始*MAIN:LCALL INIT_18B20LCALL RE_CONFIGLCALL GET_TEMPERAJMP CHANGE;*DS18B20复位程序*INIT_18B20: SETB DQNOPCLR DQMOV R0, #0FBHTSR1: DJNZ R0,TSR1 ;延时SETB DQMOV R0, #25HTSR2: JNB DQ, TSR3DJNZ R0, TSR2TSR3: SETB FLAG1 ;置标志位,表明DS18B20存在CLR P2.0 ;二极管指
35、示AJMP TSR5TSR4: CLR FLAG1LJMP TSR7TSR5: MOV R0, #06BHTSR6: DJNZ R0, TSR6TSR7:SETB DQ ;表明不存在RET;*设定DS18B20暂存器设定值*RE_CONFIG:JB FLAG1, RE_CONFIG1RET;RE_CONFIG1: MOV A,#0CCH ;放跳过ROM命令LCALL WRITE_18B20MOV A, #4EHLCALL WRITE_18B20 ;写暂存器命令MOV A, #00H ;报警上限中写入00HLCALL WRITE_18B20MOV A, #00H ;报警下限中写入00HLCALL
36、 WRITE_18B20MOV A,#1FH ;选择九位温度分辨率LCALL WRITE_18B20RET;*读转换后的温度值*GET_TEMPER:SETB DQLCALL INIT_18B20JB FLAG1, TSS2RET ;若不存在则返回TSS2: MOV A,#0CCH ;跳过ROMLCALL WRITE_18B20MOV A,#44H ;发出温度转换命令LCALL WRITE_18B20LCALL DISPLAY ;延时LCALL INIT_18B20MOV A,#0CCH ;跳过ROMLCALL WRITE_18B20MOV A,#0BEH ;发出读温度换命令LCALL WRI
37、TE_18B20LCALL READ2_18B20 ;读两个字节的温度RET;*写DS18B20程序*WRITE_18B20:MOV R2, #8CLR CWR1:CLR DQMOV R3, #6DJNZ R3, $RRC AMOV DQ, CMOV R3, #23DJNZ R3, $SETB DQNOPDJNZ R2, WR1SETB DQRET;*读18B20程序,读出两个字节的温度*READ2_18B20:MOV R4,#2 ;低位存在29 H,高位存在28H MOV R1,#29HRE00: MOV R2, #8RE01: CLR CSETB CNOPNOPCLR DQNOPNOPNO
38、PSETB DQMOV R3, #7DJNZ R3, $MOV C, DQMOV R3, #23DJNZ R3, $RRC ADJNZ R2, RE01MOV R1, ADEC R1DJNZ R4, RE00RET;*读出的温度进行数据转换*CHANGE:MOV A, 29HMOV C, 28H.0 ;将28H中的最低位移入CRRC AMOV C, 28H.1RRC AMOV C, 28H.2 RRC AMOV C, 28H.3RRC AMOV 29H, ASETB p2.0LCALL DISPLAY ;调用数码管显示子程序SETB P2.0LJMP MAIN;*DISPLAY*DISPLAY
39、:MOV a, 29H;将29H中的十六进制数转换成10进制MOV b, #10 ;10进制/10=10进制DIV ABMOV B_BIT, a ;十位在aMOV A_BIT, b ;个位在bMOV DPTR, #TAB ;指定查表启始地址MOV R0, #4DPL1: MOV R1, #250 ;显示1000次DPLOP: MOV A, A_BIT ;取个位数MOVC A,A+DPTR ;查个位数的7段代码MOVE P0,a ;送出个位的7段代码CLR P2.5;开个位显示ACALL d1ms ;显示1msSETB p2.5MOV A,B_BIT ;取十位数MOVC A,A+DPTR ;查十
40、位数的7段代码MOV p0,a ;送出十位的7段代码CLR p2.4;开十位显示ACALL d1ms ;显示1msSETB p2.4DJNZ r1,dplop ;100次没完循环DJNZ r0,dpl1 ;4个100次没完循环RET;*D1MS: MOV R7,#80 ;1MS延时(按12MHZ算)DJNZ R7, $RET;*TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H后 记这次毕业设计历时一个多月,从一开始的确定课题,到后来的资料查找、理论学习,和同学们的探讨,这一切都使我的理论知识有了进一步提高。通过本次对一线式多点温度采集系统
41、的设计,我大有收获。从得到题目到查找资料,在这一个充满挑战伴随挫折,充满热情伴随打击的过程中,我感触颇深,它已不仅是一个对我三年学习知识情况的检验,而且还是对我的钻研精神,面对困难的心态,做事的毅力和耐心的考验。我在这个过程中深刻的感受到了做毕业设计的意义所在。通过完成本课题,我了解并掌握了传感器的基本理论知识,更深入的掌握单片机在实际电路中的开发和应用。为以后从事单片机软硬件产品的设计开发打下了一定的基础,培养了从事产品研发的信心。在本毕业设计的设计和制作过程中,很多同学、老师都热心地帮助了我,给了我很大的鼓励,在此表示衷心的感谢。在论文的写作过程中,我得到了学校、系、老师和同学的大力帮助和
42、支持。特别感谢指导老师蔺老师对我的悉心指导,他给了我许多有益的建议和意见,使我的思维得到了进一步开阔。我的同学也在我的论文写作中给了我很大的启发。在此特向给予我帮助的所有人表示诚挚的谢意。Employment tribunals sort out disagreements between employers and employees.You may need to make a claim to an employment tribunal if: you dont agree with the disciplinary action your employer has taken aga
43、inst you your employer dismisses you and you think that you have been dismissed unfairly.For more information about dismissal and unfair dismissal, seeDismissal.You can make a claim to an employment tribunal, even if you haventappealedagainst the disciplinary action your employer has taken against you. However, if you win your case, the tribunal