数字式温度测控仪测空器设计

上传人:QQ40****828 文档编号:443045 上传时间:2018-10-02 格式:DOC 页数:31 大小:540KB
返回 下载 相关 举报
数字式温度测控仪测空器设计_第1页
第1页 / 共31页
数字式温度测控仪测空器设计_第2页
第2页 / 共31页
数字式温度测控仪测空器设计_第3页
第3页 / 共31页
点击查看更多>>
资源描述
黄河科技学院毕业设计(论文) 第 1 页1 绪论温度是工业对象中主要的被控参数之一,像冶金、机械、食品、化工各类工业中,广泛使用的各种加热炉、热处理炉、反应炉等,对工件的处理温度要求严格控制。随着技术的发展,各种惯性器件的性能在不断提高,体积也在不断小型化。对于惯性器件(如加速度计、陀螺)性能的提高,温度补偿作为一种重要的修正方式越来越引起人们的注意,因此如何在惯性器件极小的空间内精确地测量、传输、处理温度信息,温度成了能否使其性能和体积优势进一步提高的关键问题。目前,温度测控器主要是用单片机控制温度传感器来测量物体温度,温度传感器的发展大致经历了以下 3 个阶段:1、传统的分立式温度传感器(含热敏元件) ,主要能够进行非电量和电量之间的转换。2、模拟集成温度传感器/控制器。模拟集成温度传感器是在 20 世纪 80 年代问世的,它将温度传感器集成在一个芯片上,可完成温度测量及模拟信号输出等功能。3、智能温度传感器。21 世纪后,智能温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、虚拟传感器和网络传感器的方向迅速发展,产品如 DS1624、 DS1629、DS18b20 等。本次设计的数字式温度测控器选用 DS18b20 温度传感器,其特点与性能将在后面部分介绍。数字式温度测控器的原理:DS18B20 是温度测量器件,测得某部件的温度后,采用串行通信的方式送到单片机,温度经过数字化处理后,再由串/并转换电路74LS164 送到数码管显示。硬件框图如下:图 1.1 硬件框图软件:黄河科技学院毕业设计(论文) 第 2 页1、主流程:(1)初始化:将DS18B20设置为相应的工作方式;设置定时器50毫秒中断;(2)将DS18B20温度读入内存;(3)输出到LED显示;(4)判断是否到设置的报警温度,是则输出报警;否则转向上一步即(3);2、定时器中断:定时器设定 50 毫秒中断一次,中断 20 次共 1 秒钟,1 秒钟到,单片机从DS18B20 取温度数据,放入内存;黄河科技学院毕业设计(论文) 第 3 页2 总体方案分析与硬件的选择2.1 产品的设计性能:能够测量物体表面的温度,测量范围是55+125,误差 0.5。用数码管显示温度的实际值。2.2 设计方案的选择:采用 AT89C51 单片机作为控制器件。DS18B20 作为温度测量器件。LED 数码管作为显示器件。74LS164(串入并出)来驱动 LED。采用 AC220V 电源供电,AC/DC变换。继电器和蜂鸣器作为信号输出。2.3 原理介绍:DS18B20 是温度测量器件,测得某部件的温度后,采用串行通信的方式送到单片机。经数字处理后,把温度值经过串/并转换电路 74LS164 送到 LED 显示。2.4 硬件的特点与性能:2.4.1 AT89C51 的特点:AT89C51 是美国 ATMEL 公司生产的低电压,高性能 CMOS8 位单片机,片内含 4k bytes 的可反复擦写的只读程序存储器( PEROM)和 128bytes 的随机存取数据存储器(RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器(CPU)和 Flash 存储单元,功能强大 AT89C51 单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。主要性能参数:1、与 MCS-51 产品指令系统完全兼容;2、4k 字节可擦除 Flash 闪速存储器;3、1000 次改写周期;4、全静态操作:0Hz 24MHz ;5、三级加密程序存储器;6、1288 位内部 RAM;7、32 位可编程 IO 口线;8、2 个 16 位定时计数器;9、5 个中断源;黄河科技学院毕业设计(论文) 第 4 页10、可编程串行 UART 通道;11、低功耗空闲和掉电模式;12、有片内振荡器和时钟电路;2.4.2 DS18B20 的特性1、独特的单线接口,只需 1 个接口引脚即可通信;2、多点(multidrop)能力使分布式温度检测应用得以简化;3、不需要外部元件;4、可用数据线供电;5、不需备份电源;6、测量范围从-55至+125,增量值为 0.5。等效的华氏温度范围是-67至 257,增量值为 0.9;7、以 9 位数字值方式读出温度;8、在 1 秒(典型值)内把温度变换为数字;9、用户可定义的,非易失性的温度告警设置;10、告警搜索命令识别和寻址温度在编定的极限之外的器件(温度告警情况);11、应用范围包括恒温控制,工业系统,消费类产品,温度计或任何热敏系统;2.4.3 74LS164的特点说明74LS164(图 2.1)为 8 位移位寄存器(串行输入,并行输出)。当清除端( )为低电平时,输出端(Q0Q7)均为低电平。串行数据输入端(A ,B)可控MR制数据。当 A、B 任意一个为低电平,则禁 止新数据输入,在时钟端(CP)脉冲上升沿作用下 Q0 为低电平。当 A、B 有一个为高电平,则另一个就允许输入数据,并在CP 上升沿作用下决定 Q0 的状态。A、B 为穿行数据输入端,Q0Q7 为并行数据输出端,CP 为串行时钟输入端, 为串行输出清零端,Vcc 为+5V 电源输入端,GND 为MR接地端。使用 74LS164 做静态显示,可以使用串口方式 0 来传递数据,即 RXD 接74LS164 的 A 和 B,TXD 接 74LS164 的 CP, 接 Vcc,74LS164 的输出端接共阴的R数码管。黄河科技学院毕业设计(论文) 第 5 页图 2.1 74LS164 的引脚分布2.4.4 LED显示器的特点数码管具有很好的人机界面,设计简单、价格便宜,通过过程控制还可以拥有静态显示和动态显示两功能,故数码管显示在单片机的系统中具有很广泛的应用。在各种仪器仪表中数码管已经成为不可缺少的重要组成部分,是仪器和人进行对话的一种重要形式。LED显示器一般分为两类数码管和点阵。数码管只能显示数字信息,而点阵可以显示更为复杂的文字和图像信息。数码管在单片机系统中是一种重要的输出装置。数码管体积小、重量轻、低功耗尤其适用于输出纯数字信息。黄河科技学院毕业设计(论文) 第 6 页3 硬件部分的结构与工作原理3.1 AT89C51 介绍3.1.1 AT89C51 引脚功能说明1、Vcc:电源电压。2、GND:地。3、P0 口:P0 口是一组 8 位漏极开路型双向 IO 口,也即地址数据总线复用口。作为输出口用时,每脚可吸收 8 个 TTL 门电流,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。在 FIash 编程时, P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。4、P1 口:P1 是一个带内部上拉电阻的 8 位双向 IO 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(I IL)。FIash 编程和程序校验期间,P1 接收低 8 位地址。5、P2 口:P2 是一个带有内部上拉电阻的 8 位双向 IO 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(I IL)。在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 MOVXDPTR 指令)时,P2 口送出高 8 位地址数据。在访问8 位地址的外部数据存储器(如执行 MOVXRI 指令)时,P2 口线上的内容(也即特殊功能寄存器(SFR)区中 R2 寄存器的内容),在整个访问期间不改变。 Flash 编程或校验时,P2 亦接收高位地址和其它控制信号。6、P3 口:P3 口是一组带有内部上拉电阻的 8 位双向 IO 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对 P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的 P3 口将用上拉电阻输出电流(I IL)。P3 口除了作为一般的 IO 口线外,更重要的用途是它的第二功能,如下表 3.1所示:黄河科技学院毕业设计(论文) 第 7 页表 3.1 P3 口的第二功能7、RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。8、ALE/PROG:当访问外部程序存储器或数据存储器时, ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。即使不访问外部存储器,ALE 仍以时钟振荡频率的 l6 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。9、EA VPP :外部访问允许。欲使 CPU 仅访问外部程序存储器(地址为 0000HFFFFH),EA 端必须保持低电平(接 地)。需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。如 EA 端为高电平(接 VCC 端),CPU 则执行内部程序存储器中的指令。 Flash 存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用 12V 编程电压 Vpp。10、XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。11、XTAL2:振荡器反相放大器的输出端。3.1.2 振荡器特性端口引脚 第二功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 (外中断 0)INTP3.3 (外中断 1)P3.4 T0(定时计数器 0 外部输入)P3.5 T1(定时计数器 1 外部输入)P3.6 (外部数据存储器写选通)WRP3.7 (外部数据存储器读选通)D黄河科技学院毕业设计(论文) 第 8 页XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器,石英体振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2 应不接。输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.1.3 芯片擦除整个 EPROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE 管脚处于低电平 10ms 来完成。在芯片擦出操作中,代码阵列全被写 “1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51 设有稳态逻辑。在闲置模式下,CPU 停止工作。但 RAM、定时器、计数器、串口和中断系统仍在工作。在掉电模式下,保存 RAM 的内容并且冻结振荡器,禁止使用其他芯片功能,直到下一个硬件复位为止。3.1.4 AT89C51 的极限工作参数:工作温度 -55 to +125储藏温度 -65 to+150任一脚对地电压 -1.0V to +7.0V最高工作电压 6.6V直流输出电流 15.0 mA1、外部程序存储器读周期如图 3.1 所示图 3.1 外部程序存储器读周期时序2、外部数据存储器读周期如图 3.2 所示黄河科技学院毕业设计(论文) 第 9 页图 3.2 外部数据存储器读周期时序 3、外部数据存储器写周期如图 3.3 所示图 3.3 外部数据存储器写周期时序3.1.5串行口的工作方式:根据串行通信数据格式和波特率的不同,MCS-51系列单片机的串行通信有4种工作方式,可以通过编程进行选择。本设计用到串口的工作方式0。1、方式0(移位寄存器方式)特点:(1)串行数据通过RXD 输入或输出,TXD输出频率为fosc/12 的时钟脉冲。(2)数据格式为8位,低位在前,高位在后。(3)波特率固定:波特率=fosc/12(fosc为单片机外接的晶振频率)(4)发送过程以写SBUF 寄存器开始,当 8位数据传送完,TI被置为1,方可再发送下黄河科技学院毕业设计(论文) 第 10 页一帧数据。接收方必须先置REN=1(允许接收) 和RI=0 ,当8位数据接收完,RI被置为1,此时,可通过读SBUF指令,将串行数据读入。(5)移位寄存器方式多用于接口扩展。当用单片机构成系统时,往往感到并行口不够用,此时可通过外接串入并出移位寄存器扩展输出接口;通过外接并入串出移位寄存器扩展输入接口。方式0也可应用于短距离的单片机之间的通信。2、 串行口的应用编程:(1)定好波特率,串行口的波特率有两种方式,固定波特率和可变波特率。当使用可变波特率时,应先计算T1的计数初值,并对T1进行初始化;如果使用固定波特率(方式0、方式2),则此步骤可省略。(2)填写控制字,即对SCON寄存器设定工作方式,如果是接收程序或双工通信方式,需要设置REN=1 (允许接收),同时也将TI 、RI进行清零。(3)串行通信可采用两种方式,查询方式和中断方式。TI和RI是一帧数据是否发送完或一帧数据是否到齐的标志,可用于查询;如果设置允许中断,可引起中断。两种方式的编程方法如下:查询方式发送程序:发送一个数查询TI发送下一个数据(先发后查)。查询方式接收程序:查询RI读入一个数据查询RI读下一个数据(先查后收)。中断方式发送程序:发送一个数据等待中断,在中断中再发送下一个数据。中断方式接收程序:等待中断,在中端中再接收一个数据。(4)两种方式中,当发送或接收数据后都要注意清TI或RI。3.1.6 定时器/计数器AT89C51芯片包含有两个16位的定时/计数器:定时器 /计数器T0和定时器/计数器T1。共有 4种工作方式。本设计用到定时器/计数器T0 的方式1,下面来介绍工作方式0。当TMOD寄存器中M1M0=01时,定时/计数器工作在方式1。方式 1 为 16 位定时/计数方式,由 THx 提供高 8 位、 TLx 提供低 8 位的计数初值,黄河科技学院毕业设计(论文) 第 11 页最大计数值为 65536.当 C/ =0 时,工作于定时方式,以振荡源的 12 分频信号作为计数脉T冲.当 C/ =1 时,工作于计数方式,对外部脉冲输入端 T0 或 T1 输入的脉冲计数。启动计T数前需预置计数初值。启动后计数器立即加 1,TLx 低 8 位的计数满并回零后,向THx 进位,当 16 位计数满回零时,中断溢出标志 TFx 置 1,产生中断请求,表示定时时间到或计数次数到。若允许中断(Etx=1)且 CPU 开中断( =1),则 CPU 响应中断,AE转向中断服务程序,同时,TFx 自动清 0。1、串行口时序:移位寄存器测试条件如下表所示: Vcc=5.0V20%;负载容抗=80pF.2、移位寄存器时序波形如图 3.4图 3.4 移位寄存器时序波形图3.2 DS18B20 的工作原理3.2.1 DS18B20的内部结构 DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非易失性温度报警触发器TH和TL 、配置寄存器。DS18B20的内部结构框图(图3.5)所示,其中DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)黄河科技学院毕业设计(论文) 第 12 页图 3.5 DS18B20 的内部结构框图64 位光刻 ROM 的结构如下表所示: 8 位 CRC 校验码 48 位序列号 8 位工厂代码MSB LSB MSB LSB MSB LSB在 ROM 中,开始 8 位是工厂代码,接着是每个器件的唯一序列号,共有 48 位,最后 8 位是前 56 位的 CRC 校验码。可用 ROM 操作命令读出其内容。DS18B20 温度传感器的内部存储器字节顺序如下表所示:字节 0 字节 8第1,2字节保存温度数值,其中第1字节为低位,第2字节为高位。第3,4字节锁存器TH 和TL保存非易失性温度报警数据,可通过软件写入用户报警上下限值。第5字节是配置寄存器,其内容用于确定温度值的数字转换分辨率,DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。改字节各位的定义如下表所示:TMR1R011111该寄存器低5位都是1。TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时该位被设置为0(工作模式),用户不要去改动。R1和R0决定温度转换的精度位数,即是用来设置分辨率的,如下表所示(DS18B20出厂时被设置为12位) 。温度低位 温度高位 TH TL 配置 保留 保留 保留 8 位 CRC黄河科技学院毕业设计(论文) 第 13 页R1 R0 分辨率 最大温度转换时间(ms)0 0 9 93.750 1 10 187.501 0 11 275.001 1 12 750.00由表可知,设定的分辨率越高,所需的温度数据转换时间就越长。第68字节未用,全为逻辑1。第9字节读出的是前面所有8个字节的循环冗余校验码(CRC),可用来保证通信正确。CRC存储在64位ROM 的最高字节中。单片机根据ROM的前56位来计算CRC 值,并和存入DS18B20的CRC值做比较,以判断收到的 ROM数据是否正确。3.2.2 温度格式当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在内部存储器的第1,2字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据以0.0625/LSB形式表示。温度值格式如下表所示:位 7 6 5 4 3 2 1 0低字节 2 32 212 02 12 2 32 4高字节 S S S S S 2 62 52当符号位S=0时,直接将二进制位转换为十进制数;当S=1 时,先将补码变换为原码,在计算十进制值。部分温度值对应表如下表所示温度() 二进制数 十六进制数+125 0000 0111 1101 0000 07D0H+25.0625 0000 0001 1001 0001 0191H+0.5 0000 0000 0000 1000 0008H0 0000 0000 0000 0000 0000H-0.5 1111 1111 1111 1000 FFF8H-25.0625 1111 1110 0110 1111 FE6FH-55 1111 1100 1001 0000 FC90H黄河科技学院毕业设计(论文) 第 14 页3.2.3 读写时间片 通过使用时间片(time slots)来读出和写入 DSl820 的数据,时间片用于处理数据位和指定进行何种操作的命令字。1、写时间片(Write Tim slots )图 3.6当主机把数据线从高逻辑电平拉至低逻辑电平时,产生写时间片。有两种类型的写时间片:写 1 时间片和写 0 时间片。 所有时间片必须有最短为 60 微秒的持续期,在各写周期之间必须有最短为 l 微秒的恢复时间。在 I0 线由高电平变为低电平之后,DSl820 在 15us 至 60us 的窗口之间对 IO 线采样。如果线为高电平,写 1 就发生。如果线为低电平,便发生写 0 对于主机产生写 1 时间片的情况,数据线必须先被拉至逻辑低电平,然后就被释放,使数据线在写时间片开始之后的 15 微秒之内拉至高电平。对于主机产生写 0 时间片的情况,数据线必须被拉至逻辑低电平且至少保持低电平 60us。图 3.6 DS18B20 的写时序2、读时间片当从 DSl820 读数据时,主机产生读时间片。当主机把数据线从逻辑高电平拉至低电平时,产生读时间片。数据线必须保持在低逻辑电平至少 l 微秒;来自 DSl820 的输出数据在读时间片下降沿之后 15 微秒有效。因此,为了读出从读时间片开始算起 15 微秒的状态主机必须停止把 I0 引脚驱动至低电平(见图 3.7)。在读时间片结束时,I O 引脚经过外部的上拉电阻拉回至高电平。所有读时间片的最短持续期限为 60 微秒,各个读时间片之间必须有最短为 l 微秒的恢复时间。黄河科技学院毕业设计(论文) 第 15 页图 3.7 DS18B20 的读时序3.3 LED 显示器3.3.1 数码管结构LED 是当外加电压超过额定电压值时发生击穿而发出可见光。LED 的工作电流通常为 2,工作压降为左右,使用时需加限流电阻。LED 发光器件一般常用的有两类:数码管和点阵。单片机应用系统通常使用七段数码管。七段数码管又称七字型数码管,分为七段,即 a、b、c 、d、e、f、g,外加小数点dp,由 8 个发光二极管构成,通称七段 LED,如图 3.8图 3.8 LED 管脚图从内部电路上看,数码管又可分为共阴极接法和共阳极接法。通过对公共端黄河科技学院毕业设计(论文) 第 16 页(COM)接地或接高电平的控制,可使共阴极或共阳极数码管根据由 ag 引脚输入的代码来显示数字或符号。对数码管公共端的电位控制操作称为位选。为了数码管显示数字或符号,要为 LED 显示器提供代码,这些代码是为显示器显示字型的,所以也称之为字型代码、段选码。七段数码管由 8 个发光二极管的亮暗来构成字型,所以对应于 adp 的字型代码正好是一个字节,其对应关系如下表:位代码 D7 D6 D5 D4 D3 D2 D1 D0显示段 dp g f e d c b a应用中要将一个 8 位并行段选码送至 LED 显示器对应的引脚,送入的段选码不同,显示的数字或字符也不同。共阴极与共阳极的段选码互为反码。3.3.2 静态显示器单片机驱动 LED 数码管的方法有很多,按显示方法可分为静态显示和动态显示。本设计用到静态显示。静态显示是指数码管显示某一字符时,相应的发光二极管恒定导通和恒定截至。这种显示方式的各位数码管相互独立,公共端固定接地或接正电源。每个数码管的 8个字段分别与 8 位 I/O 口输出的 1 位相连.I/O 口只要有段码输出,相应的字符就显示出来,并保持不变,直到 I/O 口输出新的段码。这种显示方法的每一位都需要有一个 8位输出口控制。在单片机系统中,如果并行口的 I/O 资源不够,而串行口又没有其他的作用,那么就可以用 74LS164 来扩展并行 I/O 口,节约单片机资源。静态显示就是显示驱动电路具有输出锁存功能,单片机将要显示的数据输出后就不在管理 LED,直到下一次数据传送时传送一次新的显示数据。如果当前的数据没有变化单片机就不用管 LED,有变化时才传送数据。静态显示的好处就是数据显示稳定,占用 CPU 的时间很少。但是在静态显示中,每一个显示器都要占用单独的具有锁存功能的 I/O 口,该接口用于笔画信息的传送。这样单片机只要把显示的笔画信息发送到接口电路,数码管就可以显示发送的字符。要显示新的数据时,单片机再发送新的编码。黄河科技学院毕业设计(论文) 第 17 页4 软件部分4.1 流程图:图 4.1 温度控制主程序流程图图 4.1 给出了温度控制主程序流程图,图 4.2 给出了温度转换及读取子程序流程图,图 4.3 给出了显示温度子程序流程图,图 4.4 给出了计算温度子程序流程图,图 4.5 给出了比较温度程序流程图。黄河科技学院毕业设计(论文) 第 18 页图 4.2 温度转换及读取子程序流程图 图 4.3 显示温度子程序流程图黄河科技学院毕业设计(论文) 第 19 页图 4.4 计算温度子程序流程图 图 4.5 比较温度程序流程图4.2 源程序:;-主程序-TEMPER_L EQU 31H ;用于保存读出温度的低字节TEMPER_H EQU 30H ;用于保存读出温度的高字节T_DF EQU 33H ;FORMAT 后的小数部分,半字节的温度小数(存在低 4 位) T_INTEGER EQU 32H ;FORMAT 后的整数部分,将两字节温度整合成 1 字节FLAG BIT 20H ;标志位DAT BIT P1.2 ;DS18B20 数据线ORG 0000HAJMP MAINORG 001BH ;定时中断入口地址 黄河科技学院毕业设计(论文) 第 20 页LJMP IP1ORG 0040HMAIN: CLR EA ;使用 DS18B20 一定要禁止中断MOV SP,#60HMOV T_DF,#00H ;赋初始温度为 20 度MOV T_INTEGER,#20HMOV 21H,28H ;赋标准温度为 28 度START: LCALL GET_TEMPER ;调用读温度子程序LCALL T_FORMAT ;将读出的两字节温度格式化,并转换为压缩 BCD 码LCALL COMPARE ;与设定值比较,进行调节,执行外部电路LCALL DISPLAY ;显示温度AJMP START;-DS18B20 的温度转换子程序 - GET_TEMPER:LCALL SET_18B20MOV A,#0CCH ;跳过 ROM 匹配LCALL WRITE_1820MOV A,#44H ; 发出温度转换命令LCALL WRITE_1820LCALL DISPLAY ;用显示温度(持续 1s 左右)来等 待 A/D 转换结束,12 位的话要转 换 750msLCALL SET_18B20 ;准备读温度前先初始化MOV A,#0CCH ;跳过 ROM 匹配LCALL WRITE_1820MOV A,#0BEH ;发出读温度命令黄河科技学院毕业设计(论文) 第 21 页LCALL WRITE_1820LCALL READ_1820RET;-DS18B20 初始化程序 - SET_18B20:SETB DATNOP CLR DATMOV R2,#250 ;主机发出延时 500s 复位低脉冲DJNZ R2,$ SETB DAT ; 然后拉高数据线MOV R2,#30DJNZ R2,$ ; 延时 60s 等待 DS18B20 回应JNB DAT,INIT1JMP SET_18B20 ;超时而没有响应,重新初始化INIT1: MOV R2,#120DJNZ R2,$ ;延时 240sJB DAT,INIT2 ;数据变高,初始化成功JMP SET_18B20INIT2: MOV R2,#240DJNZ R2,$RET;-写 DS18B20 的子程序 -WRITE_1820:MOV R2,#8 ;一共 8 位数据WR0: CLR DAT MOV R3,#6DJNZ R3,$黄河科技学院毕业设计(论文) 第 22 页RRC AMOV DAT,CMOV R3,#20DJNZ R3,$SETB DATNOPNOPDJNZ R2,WR0SETB DATRET;-读 DS18B20 的程序,从 DS18B20 中读出两个字节的温度数据-READ_1820:MOV R4,#2 ;将温度高位和低位从 DS18B20中读出 MOV R1,#TEMPER_L ;低位存入 31H(TEMPER_L)RE0: MOV R2,#8RE1: SETB DATNOPNOPCLR DATNOPNOPSETB DATMOV R3,#4DJNZ R3,$MOV C,DATRRC AMOV R3,#30DJNZ R3,$黄河科技学院毕业设计(论文) 第 23 页DJNZ R2,RE1MOV R1,ADEC R1 ;高位存入 30H(TEMPER_H DJNZ R4,RE0RET;-整合读出的两字节温度-T_FORMAT:MOV A,TEMPER_LSWAP AMOV R0,AMOV A,TEMPER_HSWAP AXCHD A,R0MOV T_INTEGER,A ;获得整数部分(1 字节)TO_BCD: MOV A,T_INTEGERMOV B,#10DIV ABSWAP AADD A,BMOV T_INTEGER,A ;整数部分压缩 BCD 码送T_INTEGERRET;-比较设定值与比较值的大小,调用 COMPARE 子程序-COMPARE: MOV A,#T_INTEGERCJNE A,21H,RESULT1LOOP7: CLR P1.0LJMP RETURNRESULT1: JC LOOP8黄河科技学院毕业设计(论文) 第 24 页SETB P1.0LJMP RETURNLOOP8: LJMP LOOP7RETURN: RET;-显示温度子程序-DISPLAY: MOV SCON,#00HSETB ESMOV TMOD,#09HMOV TH0,#3CHMOV TL0,#0B0HSETB ET0SETB EAMOV R5,#14HSETB TR0SETB EADISP1: MOV A,T_INTEGER ;显示整数部分MOV R3,#0FEHMOV R4,#0FDHSETB FLAGCPL FLAGMOV B,#10HDIV ABMOV R2,B ;低位送 R2 暂存MOV A,R2 ;字型 R2 送 AMOV DPTR,#TAB ;表首地址送 DPTR MOVC A,A+DPTR ;查表MOV SBUF,A JNB TI,$CLR TI黄河科技学院毕业设计(论文) 第 25 页CALL D1MS ;延时MOV P0,#0FFH ;关闭字型显示MOV R2,A ;高位送 R2 暂存MOV A,R2 ;字型 R2 送 AMOV DPTR,#TAB ;表首地址送 DPTRMOVC A,A+DPTR ;查表JNB FLAG,D1JMP D2D1: ANL A,#7FHD2: MOV SBUF,AJNB TI,$CLR TICALL D1MS ;延时MOV P0,#0FFH ;关闭字型显示LCALL DISP1IP1: DJNZ R5,RET0MOV R5,#14HCLR EAAJMP START RETRET0: MOV TH0,#3CHMOV TL0,#0B0HSETB TR0RETI;-1ms 延时(按 12MHZ 算)-D1MS: MOV R7,#250LOOP0: NOPNOP黄河科技学院毕业设计(论文) 第 26 页DJNZ R7,LOOP0RET;-共阳数码管对应字型表 -TAB: DB 0C0H,0F9H ,0A4H ,0B0H,99H,92H ,82H ,0F8H ;段码表; 0 1 2 3 4 5 6 7 ;对应内容DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH; 8 9 A B C D E F黄河科技学院毕业设计(论文) 第 27 页5 原理图与 PCB 印制板图Title Number RevisionSizeA3Date: 24-May-209 Shet of File: H:三三三 0(2)Mydesign2.db Drawn By:P1.01 P1.12 P1.23 P1.34 P1.45P1.56 P1.67 P1.78 RESET9 XD10T1 INT012 IT113 T014 T115WR16 D17 X218 119 P2.1 2P2.2 23P2.3 24P2.4 25PSEN29P2.5 26ALE/ P 30P2.6 27E/Vp 31P2.7 28P0.7 32P0.6 3P0.5 34P0.4 35Vc 40Vs20 P2.0 21P0.3 36P0.2 37P0.0 39P0.1 38U180c51Y11.0592MC130p C230p+C310S1 R18.2kDQ3Vc 4DS18B20NC1 GND2 U7 LS1SPEAKERQ29012R52kD2IN407123P2 Q19012 R42kA1 B2 CLK3MR4 Q7 56 6Q5 74 8Q392 10Q1 10 12U274LS164A1 B2 CLK3MR4 Q7 56 6Q5 74 8Q392 10Q1 10 12U374LS164A1 B2 CLK3MR4 Q7 56 6Q5 74 8Q392 10Q1 10 12U474LS164A1 B2 CLK3MR4 Q7 56 6Q5 74 8Q392 10Q1 10 12U174LS164R7 8 R9 10 R112 R13 14R15 16 R17 18 R1920 R21 2 R23 24 R25 26 R2728 R29 30 R31 32 R3 34 R3536 R37 38 abf cgdeDPY1234567abcdefg8 dp dpcom9com10LD2abf cgdeDPY1234567abcdefg8 dp dpcom9com10LD1abf cgdeDPY1234567abcdefg8 dp dpcom9com10LD3abf cgdeDPY1234567abcdefg8 dp dpcom9com10LD4R210kVCVCVCVCVCVCVCVCR610kVC45A1三三三三器器器器器器器器1GND3 2 +5V6 1 -12V4+12 5AC/DCJP三20V三12345678910112131415三 三/三 三 三三三三三三三三三三三三 三三三三三三AC/DCS1P2A1D2Q1R4LS1Q2R5U7R6C3R1C1三C2AC20VKR-B-01ASP25JS1-12VIN40790122kSPEAKER90122kDS18B2010k108.2k30p121111111111112三三三三三三三三三三三三三三三161718192021 Y1U1R2U1三U4R7R38LD1三LD4 1.0592M80C5110k74LS164250kLED 1114324 三三三S2 2 S2 T701A 1 三图 5.1 原理图黄河科技学院毕业设计(论文) 第 28 页图 5.2 PCB 印制板图总 结通过本次设计,使我对单片机的基本结构、中断系统以及系统扩展等方面有了更深入的了解。比如内、外 RAM 中的低 256 字节地址是重叠的,在寻址时可以通过指令来区别,即 MOV 和 MOVX;在定时器的应用中,采用中断方式要比查询方式更简单,查询方式是通过软件方式不断等待去查询中断的标志位;而中断方式是机器自动转向中断服务程序,此时 CPU 可以得到解放,让 CPU 去处理其他的事情。对于存储器的扩展,数据线、地址线、控制线要对应相连,要根据外扩存储器的内存确定需要连接几根地址线。并行 I/O 口的扩展,相当于扩展外部普通 RAM 的 1 字节单元。在设计中充分运用了所学的知识,把学习中所学到的、看到的,尽可能的运用到本次设计中。针对单片机性能在分析、设计、选用和正确使用以等方面有了长足的进步,但感觉自己通信方面的知识还很匮乏。通过对本设计的学习,掌握了简单单片机控制电路的设计方法。具备了设计简单单片机控制电路的能力。毕业在即,回想起经过的三个多月的做毕业设计日子,感触良多。毕业设计是对自己在大学里学习收获的一次综合的考察,在本次设计中我们可以在温故已学知识的黄河科技学院毕业设计(论文) 第 29 页同时,又可以查漏补缺,学习到新的知识,更提高了自己综合运用知识的能力。致 谢这次毕业设计是自己四年所学知识和技能的一次综合的应用,它让我在Protel99se 制图、查阅资料以及计算机应用等能力方面都得到了很好的锻炼,为以后的参加工作能够最大的发挥自己的才能打下了坚实的基础。本设计是在王质朴老师的悉心指导下完成的。整个毕业设计期间,王老师在学习和工作上给了我大量的支持和帮助,在此致以深深的感谢。王老师严谨的治学态度、求实的工作作风,平易近人的处世风范,不仅教会了我处理问题的方法,在我完成毕业设计的同时,还教给了我正确的处世方法,使我能够正确的对待生活和学习中遇到的困难和挫折,对我的人生观产生了深远的影响。同时也感谢实验室的老师、同组的同学们在学习上的帮助和生活上的关心。他们的关心和帮助给了我前进的动力,使我在学习过程中能够知难而进。最后,感谢养育我多年的父母和一直关心和支持我的亲人和朋友,他们的鞭策、鼓励、理解和帮助是我克服困难、不断进步的精神支柱。由于这次设计任务较多,同时时间有限,再加上本人的水平有限,在设计过程中黄河科技学院毕业设计(论文) 第 30 页难免有遗漏和过错,希望能得到老师及同学的批评指正,以使自己在今后的工作、生活中能加以改正,百尺竿头,更进一步。参 考 文 献1 胡汉才编著, 单片机原理及其接口技术 ,北京,清华大学出版社,1996 年2 徐爱均编著, 智能化仪表原理与设计 ,北京,北京航空大学出版社,1996 年3 公茂法等编著, 单片机人机接口实力集 ,北京,北京航空大学出版社,1998 年4 李朝青编著, 单片机原理及其接口技术 ,北京,北京航空大学出版社,1998 年5 邬宽明编著, 单片机外围器件实用手册 ,北京,北京航空大学出版社,1998 年6 先锋工作室编著, 单片机程序设计实例 ,北京,清华大学出版社,2002 年7 张毅刚,彭喜元,孟升卫,刘兆庆编著, MCS-51 单片机使用子程序设计 ,哈尔滨,哈尔滨工业大学出版社,2003 年8 陈明荧编著, 8051 单片机课程设计实训教材 ,北京,清华大学出版社,2003 年9 肖玲妮,袁增贵编著, Protel99SE 印刷电路板设计教程 ,北京,清华大学出版社,2003 年10于斌主编, 单片机原理与接口技术 ,北京,人民邮电出版社,2008 年 4 月11李恩林、陈斌生主编, 微机接口技术 300 例 ,北京,机械工业出版社,2003 年
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


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

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


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