《单片机原理及应用》课程设计总结报告-八路温度巡回检测系统 .doc

上传人:韩长文 文档编号:5091585 上传时间:2020-02-01 格式:DOC 页数:34 大小:2.83MB
返回 下载 相关 举报
《单片机原理及应用》课程设计总结报告-八路温度巡回检测系统 .doc_第1页
第1页 / 共34页
《单片机原理及应用》课程设计总结报告-八路温度巡回检测系统 .doc_第2页
第2页 / 共34页
《单片机原理及应用》课程设计总结报告-八路温度巡回检测系统 .doc_第3页
第3页 / 共34页
《单片机原理及应用》课程设计总结报告-八路温度巡回检测系统 .doc_第4页
第4页 / 共34页
《单片机原理及应用》课程设计总结报告-八路温度巡回检测系统 .doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《《单片机原理及应用》课程设计总结报告-八路温度巡回检测系统 .doc》由会员分享,可在线阅读,更多相关《《单片机原理及应用》课程设计总结报告-八路温度巡回检测系统 .doc(34页珍藏版)》请在三一文库上搜索。

1、单片机原理及应用单片机原理及应用 课程设计总结报告课程设计总结报告 题题 目目: : 八路温度巡回检测系统八路温度巡回检测系统 设计人姓名设计人姓名: : 院院 系系: : 电电 气气 工工 程程 学学 院院 专专 业业: : 生物医学工程生物医学工程 0707 级级 班班级级学学 号号 : : 2 20 00 07 74 43 32 20 01 10 01 1 指指导导教教 师师 : : 日期:日期:2011-1-72011-1-7 第 1 页 共 34 页 摘要摘要: :本文介绍一种采用 STC 公司的 STC89C52RC 单片机控制 DS18B20 数字温度 传感器采集温度,最后在共阴

2、极的 LED 灯上实时显示温度值的温度检测系统 (由于实验及成本原因本文只做一路传输系统) 。该系统从实际应用工程出发, 主要对硬件电路设计、电子元件选择、系统应用软件设计等方面进行具体探讨 和研究。系统具有性能稳定可靠、功耗低、成本低、测量准确、传输距离远、 维护简单等优点,系统设计在实际工作中具有一定的借鉴意义。 关键词:关键词: 温度检测; STC89C52RC; DS18B20 第 2 页 共 34 页 目目 录录 第一节第一节 引引 言言3 3 1.11.1 系统原理及基本框图系统原理及基本框图3 3 1.21.2 设计任务设计任务3 3 第二节第二节 硬件设计介绍硬件设计介绍4 4

3、 2.12.1 STC89C52RCSTC89C52RC4 4 2.22.2 DS18B20DS18B206 6 2.32.3 三极管三极管 90129012.8 8 2.42.4 共阴极数码管共阴极数码管.8 8 2.52.5 硬件部分电路图硬件部分电路图.9 9 第三节第三节 软件设计介绍软件设计介绍1414 3.13.1 程序流程图和实际图程序流程图和实际图.1414 3.23.2 调试调试.1818 第第四四节节 个个人人心心得得体体会会2121 参考文献参考文献2424 附录附录2525 附附 1 1:电路图:电路图 第 3 页 共 34 页 附附 2 2:元件清单:元件清单 附附

4、3 3:程序:程序 第第 1 1 节节 引言引言 随着计算机技术和传感器技术的飞速发展, 在科研、生产和日常活动中, 人们对温度、压力、流量等模拟物理量的测量要求越来越高。而这些物量中温 度的应用是最为广泛的。如何将温度通过传感器变成电信号, 再经过处理转换 成计算机能够识别的数字量, 输入到计算机中, 由计算机将采集到的数字量 进行不同的处理, 然后在显示器显示出来,并进行实时监控。这已经为当前计 算机测量与控制领域的一个重要研究方向。鉴于此, 本文提出一种基于89C52 和DS18B20的低成本、远距离传输的温度检测系统设计方案。 1.11.1 系统原理及基本框图系统原理及基本框图 如图

5、1.1 所示,为系统的基本框图。 该系统由六部分组成:STC89C52RC 核心单片机,温度采集电路,LED 显示 电路,报警警电路,复位电路,晶振等,其中温度采集主要由 DS18B20 组成, 在短时间内把热力学温度信号数字,送入单片机,由单片机控制显示电路显示, 并且判断是否达到设定温度,若达到设定温度,由单片机启动报警电路,报警。 1.21.2 设计任务设计任务 图 1.1 系统基本方框图 第 4 页 共 34 页 利用单片机与 AD 转换器设计一个八路温度巡回检测系统,对某粮库或冷 冻厂八点(八个冷冻室或八个粮仓)进行温度巡回检测。能够测量-30+50oC 的温度范围,检测精度要求不大

6、于1oC。采用数码管显示测量值; 单片机和 AD 转换器型号自选(如单片机可选 AT89S51 或 AT89C51 等;AD 转换器可选 ADC0809 或 ADC0804 等) 。 (本文均基于一路温度检测系统设计) 。 第二节第二节 硬件设计介绍硬件设计介绍 2.12.1 STC89C52RCSTC89C52RC 2.1.22.1.2 STC89C52RCSTC89C52RC 介绍介绍 单片机自问世以来,以其极高的性价比受到人们的重视和关注,应用 很广,发展很快。单片机的体积小,重量轻,抗干扰能力强,环境要求不高, 价格低,可靠性强,灵活性好,开发较为容易。基于以上的优点,单片机已经 广泛

7、的应用在工业自动化控制,自动检测,智能仪器仪表,机电一体化等各个 方面,所以本系统采用单片机做为控制器。单片机中 51/52 系列最具有代表性。 本设计核心采用了 STC89C52RC 单片机。STC89C51/52 单片机系列是在 MCS51/52 系列的基础上发展起来的,STC89C52RC 完全兼容 MCS-51 系列单片 机的所有功能,并且本身带有 2K 的内存储器,可以在编程器上实现闪烁式的 电擦写达几万次以上,比以往惯用的 8031CPU 外加 EPROM 为核心的单片机系统 在硬件上具有更加简单方便等优点,其外形如图 2.1 所示。 第 5 页 共 34 页 图 2.1 STC8

8、9C52RC 芯片 2.1.32.1.3 STC89C52STC89C52 引脚介绍引脚介绍 STC89C52RC 的引脚图如图 2.2 所示. 图2.2 STC89C52引脚图 单片机的引脚功能说明: 电源引脚 VCC(40 脚):电源端,工作电压为5V。 GND(20脚): 接地端。 第 6 页 共 34 页 时钟电路引脚XTAL1(19 脚)和XTAL2(18 脚) 复位 RST(9 脚) .输入输出(I/O)引脚 P0.0-P0.7(39脚-32脚):输入输出脚,称为P0 口,是一个8 位漏极开路 型双向I/O 口,内部不带上拉电阻。 P1.0-P1.7(1脚 - 8脚):输入输出脚,

9、称为P1 口,是一个带内部上拉电 阻 的8 位双向I/0 口。 P2.0-P2.7(21脚28脚): 输入输出脚,称为P2 口,是一个带内部上拉 电 阻的8 位双向I/O 口, P3.0-P3.7 (10脚17脚):输入输出脚,称为P3 口,是一个带内部上拉电 阻的8 位双向I/O 口。P3 端口具有复用功能。 表2.1 P3口端口引脚与复用功能表 P3 引脚 兼用功能 P3.0 串行通讯输入(RXD) P3.1 串行通讯输出(TXD) P3.2 外部中断0( INT0) P3.3 外部中断1(INT1) P3.4 定时器0 输入(T0) P3.5 定时器1 输入(T1) P3.6 外部数据存

10、储器写选通(WR) P3.7 外部数据存储器读选通(RD) 2.22.2 DS18B20DS18B20 2.2.12.2.1 DS18B20DS18B20性能性能 第 7 页 共 34 页 DS18B20 是 Dallas 公司推出的单线集成数字温度采集系统,与传统的热敏 电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单 的编程实现 912 位的数字值读数方式。其实物如图 2.3 所示。 图 2.3 DS18B20 DS18b20 内部主要有三个数字部件:64 位激光 ROM、温度传感器、非易 失性温度报警触发器 TH 和 TL。 DS18B20 的性能特点如下: 独特的单

11、线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微 处理器与 DS18B20 的双向通讯; 多个 DS18B20 可以并联在唯一的三线上,实现多点组网功能; 无需外部器件; 可通过数据线供电,电压范围:3.05.5V; 测温范围55125,在-10+85时精度为0.5 零待机功耗 温度以 9 或 12 位数字量读出; 用户可定义的非易失性温度报警设置; 具有非易失性上、下限报警设定的功能,用户可方便地通过编程修改上、 下限的数值; 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常 工作; 适用于 DN1525, DN40DN250 各种介质工业管道和狭小空间设

12、备测温。 8PVC 电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。 数字量的转换精度及转换时间可通过简单的编程来控制:9位精度的转换 时间为9375 ms:10位精度的转换时间187.5ms:12位精度的转换时间750ms。 第 8 页 共 34 页 2.2.22.2.2 DS18B20DS18B20引脚图引脚图 本文用的DS18B20的常用封装为3脚,如图2.4所示。: 图2.4 DS18B20引脚图 各脚功能描述如下: DQ:数字信号输入输出端。 GND:电源地端。 VDD:外接供电电源输入端(在寄生电源接线时此脚应接地)。 2.32.3 三极管三极管 90129012 三极管

13、的工作原理三极管的工作原理 三极管是一种控制元件,主要用来控制电流的大小,以共发射极接法为例 (信号从基极输入,从集电极输出,发射极接地) ,当基极电压 UB 有一个微小 的变化时,基极电流 IB 也会随之有一小的变化,受基极电流 IB 的控制,集电 极电流 IC 会有一个很大的变化,基极电流 IB 越大,集电极电流 IC 也越大,反 之,基极电流越小,集电极电流也越小,即基极电流控制集电极电流的变化。 但是集电极电流的变化比基极电流的变化大得多,这就是三极管的放大作用。 IC 的变化量与 IB 变化量之比叫做三极管的放大倍数 (=IC/IB, 表 示变化量。 ) ,三极管的放大倍数 一般在几

14、十到几百倍。 三极管在放大信号时,首先要进入导通状态,即要先建立合适的静态工作点, 也叫建立偏置,否则会放大失真。 9012 是一种最常用的普通三极管。它是一种低电压,大电流,小信号的 PNP 型硅三极管: 第 9 页 共 34 页 集电极电流 Ic:Max -500mA 集电极-基极电压 Vcbo: -40V 工作温度:-55 to +150 和 9013(NPN)相对 主要用途: o开关应用 o射频放大 2.42.4 共阴极数码管共阴极数码管 数码管由 8 个发光二极管(以下简称字段)构成,通过不同的组合可用来 显示数字 0 9、字符 A F、H、L、P、R、 U、Y、符号“”及小数点“”

15、。 数码管的外形结构如下图 2.5 所示。数码管又分为共阴极和共阳极两种结构。 图 2.5 共阴极四位一体数码管 共阴极数码管的 8 个发光二极管的阴极(二极管负端)连接在一起。通常, 公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。当某段驱动 电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的 不同组合可显示出各种数字或字符。此时,要求段驱动电路能提供额定的段导 第 10 页 共 34 页 通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。 使用时,既可以用半导体三极管驱动,也可以直接用 TTL 与非门驱动。需 要加限流电阻。数码管的工作电压一般为 1

16、.5 至 3 伏,工作电流只需几到十几 毫安。且寿命长,响应速度快。 2.52.5 硬件部分电路图硬件部分电路图 2.5.12.5.1 复位电路复位电路 在振荡器运行时,有两个机器周期(24 个振荡周期)以上的高电平出现在 此引脚时,将使单片机复位,只要这个脚保持高电平,52 芯片便循环复位。复 位后P0P3 口均置1 引脚表现为高电平,程序计数器和特殊功能寄存器SFR 全 部清零。当复位脚由高电平变为低电平时,芯片为ROM 的0000H 处开始运行程 序。该芯片的复位脚为9脚,所以复位电路接STC89C52RC的9脚,具体电路如下 图2.6所示。当采用的晶体频率是6 MHZ时,可取C=22U

17、F,R=1K;当采用的晶体 频率为12MHZ时,可取C=10UF,R=8.2K。不过这都是最佳的组合,也可以有其它 大小的电容电阻,只要符合电路要求就可以,如本文就采用22UF的电容和10K的 电阻,经试验也满足要求。 图 2.6 复位电路 2.5.22.5.2 晶振晶振 为了产生时钟信号,在 8052 内部设置了一个反相放大器,XTAL1 是片内 振荡器反相放大器的输入端,XTAL2 是片内振荡器反相放大器的输出端,也是 内部时钟发生器的输入端。当使用自激振荡方式时,XTAL1 和 XTAL2 外接石英 第 11 页 共 34 页 晶振,使内部振荡器按照石英晶振的频率振荡,就产生时钟信号。晶

18、振一般使用 石英晶体,其频率由系统需要和器件决定,在频率稳定度要求不高时也可以使用陶瓷滤波 器。使用石英晶体时 C1、C2 为 C1=C2=30(10)pF,使用陶瓷滤波器时, C1=C2=40(10)pF。本系统用 12MHZ 的石英晶振,接 STC89C52RC 的 18 和 19 脚, 具体电路如图 2.7 所示。 图 2.7 时钟信号电路(晶振) 2.5.32.5.3 一路传输电路一路传输电路 在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿 问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能 够达到较高的测量精度。另外一般监控现场的电磁环境都非常恶劣

19、,各种干扰 信号较强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度。因此, 在温度测量系统中,本文采用抗干扰能力强的新型数字温度传感器是解决这些 问题的最有效方案,新型数字温度传感器 DS18B20 具有体积更小、精度更高、 适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测 温效果。 DS18B20 有三个引脚。VDD 管脚接 5V 电压给传感器供电。DQ 管脚为数据线 ,与 STC89C51RC 的 P1.0 连接的同时,还要接一个 47K 的上拉电阻,并接到 5V 的电源上,使数据线在空闲状态下能自动上拉为高电平。GND 管脚接地。具 体电路如图 2.8 所示。

20、之所以接 P1 口,是因为 P1 口的驱动力最强,完全可以 驱 DS18B20 的正常运行。 第 12 页 共 34 页 图 2.8 一路传输电路 2.5.42.5.4 LEDLED 显示电路显示电路 显示电路采用静态显示,4 位 LED 数码管。所谓静态显示,就是每一个显 示器都要占用单独的具有锁存功能的 I/O 接口用于比划段字形代码。这样单片 机只要把显示的字形代码发送到接口电路,就不用管它了,直到要显示显示新 的数据时,再发送心的字形码,因此,使用这种方法,单片机中的 CPU 的开销 小。本文的显示电路如图 2.9 所示。其中 P0 口作为 7 断码和小数点的选择,P2 口作为位码的选

21、择,在断码和 P0 口之间还需加上 1K 的上拉电阻,以保证 LED 灯的正常显示。 . 图 2.9 LED 显示电路 2.5.52.5.5 报警电路报警电路 本文中当某一通道的温度测量值超出预先设定的上、下限报警值或系统运 第 13 页 共 34 页 行出现故障时, 系统发出声光报警以提醒用户注意。报警电路中光报警采用发 光二极管, 声报警采用蜂鸣器来设计,蜂鸣器电路中, 9012晶体管起开关作 用, P2.6输出低电平时, 管脚输出电压经过lK限流电阻分压后, 到达9012基 极的电压为使得晶体管发射结正偏,集电结反偏, 晶体管导通, 蜂鸣器上电 而产生声响。发光二极管电路中, 主要是限流

22、电阻的设计,由于发光二极管工 作电流是3 mA-30 mA, 导通压降为1.8 V; 而单片机工作在5 V电压时, I/O 口输出低电平的最大灌入电流是16 mA, 输出的低电平是Vss+0.6 V 这样在限 流电阻上的压降就是5-1.8-0.6=2.6 V, 而电流要限定在8 mA左右, 所以电阻 阻值为2.6 V/8 mA=325欧姆, 在实际电路中选用330欧姆的电阻即能满足要求。 具体电路如图2.10所示。 图 2.10 报警电路 2.5.62.5.6 下载程序电路下载程序电路 本文中将 PC 机上的程序拷贝到单片机中是通过如图 2.11 所示的,连接单 片机的 10 和 11 脚串行

23、接口到插件上,再和 PC 机之间进行通讯。 第 14 页 共 34 页 . . 图 2.11 下载程序电路 2.5.72.5.7 完整电路完整电路 图 2.12 完整电路 第三节第三节 软件设计介绍软件设计介绍 3.13.1 程序流程图和实物程序流程图和实物图图 第 15 页 共 34 页 系统程序主要包括主程序,读出温度子程序,温度转换命了子程序,计算 温度子程序,显示刷新温度子程序等。 3.1.13.1.1 主程序主程序 主程序的主要功能是负责温度的实时显示、读出并处理 DS18B20 的测量的 当前温度值。温度测量每 1S 进行一次,这样可以在 1S 之内测量一次被测温度, 其程序流程见

24、图 3.1 所示。 第 16 页 共 34 页 图 3.1 系统主程序流程 3.1.23.1.2 显示电路框图显示电路框图 显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操 作,当最高位显示为 0 时将符号显示位移入下一位。程序流程图如图 3.2 所示。 图 3.2 显示电路框图 3.1.33.1.3 读出温度子程序读出温度子程序 温度转换命令子程序主要是发温度转换开始命令,当采用 12 位分辨率时转 换时间约为 750ms,在本程序设计中采用 1S 显示程序延时法等待转换的完成。 温度转换命令子程序流程图如图 3.3 所示。 第 17 页 共 34 页 图 3.3 温度转换流程图

25、3.1.43.1.4 计算温度子程序计算温度子程序 计算温度子程序将 RAM 中读取值进行 BCD 码的转换运算,并进行温度值正 负的判定,其程序流程图如图 3.4 所示。 第 18 页 共 34 页 图 3.4 计算温度流程图 3.23.2 调试调试 3.2.13.2.1 硬件调试硬件调试 硬件调试是利用开发系统、基本测试仪器(万用表、显示器)等,检查系 统硬件中存在的故障。 静态调试 静态调试是在系统未工作时的一种调试。步骤如下: 第一步:目测。检查外部的各种原器件或者是电路是否有断点。 第二步:用万用表检测。先用万用表复核目测中有疑问的连接点,在检测各种 电源线与接地线之间是否有短路现象

26、。 第 19 页 共 34 页 第三步:加电检测。给电路板加电,检测所有的插座或者是硬件的电源是否符 合要求的值。 第四步:联机检查。因为只有单片机开发系统才能完成对用户系统的调试。 动态调试 动态调试是在用户系统工作的情况下发现和排除系统硬件中存 在的器件内部故障、器件连接逻辑错误等的一种硬件检查,动态调试的一般方 法是由近及远、由分到合。 由近及远 是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远 的分层,然后分层调试。调试时,仞采用去掉无关元件的方法,逐层调试下去, 就会定位故障元件了。 由分到合 是指首先按照逻辑功能将系统硬件电路分为若干块,当调试电路 时,与该元件无关的器件全

27、部从系统中去掉,这样可以将故障范围限定在某个 局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,再对各块电 路功能及各电路之间可能存在的相互联系进行调试, 3.2.23.2.2 软件调试软件调试 软件调试是通过对程序的汇编(或者 C 语言) 、连接、执行来发现程序中存 在的语法错误与逻辑错误并加以排除纠正的过程,查看程序是否有逻辑的错误。 在对硬件调试后再对软件进行,因为先对硬件检查没问题的情况下再对软 件进行调试,编译软件可以通过编译去检查程序上的语法错误,然后可以在它 的基础上在对它进行一些修改达到没有错误为止,然后将软件拿到硬件上去运 行。 通过仿真后,如无误,方可将程序灌输如单

28、片机中。 3.2.33.2.3 实物实物 第 20 页 共 34 页 图 3.5 调试前电路板 图 3.6 调试时电路板 第 21 页 共 34 页 图 3.7 调试后温度显示 第五节第五节 个人心得体会个人心得体会 做本课程设计,让我清楚的了解了电子设计大体分三个阶段:设计与计算 阶段(预设计阶段)、安装与调试阶段、撰写总结报告阶段。 在拿到一个课题时首先要做的事就是对课题的任务,要求和条件进行仔细 的分析和研究,找出关键问题,根据关键问题提出实现的原理和方法,并画出 原理框图。 提出原理方案是一个关系到设计全局的问题,应广泛收集与查阅有关资料, 广开思路,利用已有的各种理论知识,提出尽可能

29、多的方案,以便作出更合理 的选择。所提出的方案中,对关键部分的可行性,一般应通过试验加以确认。 根据整个课题的技术要求,明确该功能框对单元电路的技术要求,必要时应详 细拟定单元电路的性能指标,然后进行单元电路结构形式的选择或设计,但满 足功能框图要求的单元电路可能不止一个,因此必须进行分析比较,择优选择。 就如我们这个课题当初我就提出了三种方案,最后基于简单,可实行选择了如 第 22 页 共 34 页 今这种方案。 然后是元器件的选择,元器件的品种规格繁多,性能、价格和体积各异, 选择器件需进行分析比较。首先考虑满足单元电路对元器件性能指标的要求, 其次考虑价格、货源和元器件体积等,最好是使用

30、实验室已有的元器件。 元器件选好了就是参数的计算了,值得指出的是,满足性能指标要求的参 数值通常不是唯一的,这就要求对各组参数进行综合性的分析,仔细考虑元器 件之间的参数配合、元器件价格、体积和货源等因素,恰当地选取一组适合的 参数。 在各单元电路确定后,还要认真考虑它们之间的级联问题,如:电气特性 的相互匹配、信号耦合方式、时序配合,以及相互干扰等问题,保证整个电路 能正常工作。 这些都做好后,总体实验电路就出来了,接下来的事情就是焊接工作,实施焊 接的主要工具是电烙铁,其次还有松香、焊锡、吸水棉、连接线等,焊接的主 要步骤为准备施焊加热被焊件加焊锡丝移开焊锡丝移开电烙 铁。在焊接电路时一定

31、做到认真仔细、一丝不苟。注意连线正确,焊接规范, 尽量做到整齐美观并保证接触良好;集成块插牢并注意方向;电源和地线不要 短路,以避免人为故障。 最后就是对电路进行调试。一个组装好的电子电路不可能不经调试即可满 足设计要求。调试中出现的各种现象和问题,需要我们提出解决的办法。只有 这样,才能顺利做好调试工作,才能通过此次设计得到实际训练。在调试当中 一般常见故障源为:接触不良(特别是当电源线接触不良时可能工作不稳定)、 焊接错误(错焊、漏焊或虚焊)、接线错误(错接、漏接或短路)、器件本身 损坏(需单独测试其功能方能确定确实损坏)、集成块插错位置或方向插反、 多余控制输入端未正确处理(一般若悬空会

32、有较大干扰,应接固定电平)、设 计上有缺陷(出现预先估计不到的现象,这就需要改变某些元件的参数或更换 元器件,甚至需要修改方案)。在此次设计当中,由于电路设计和焊接工作都 非常仔细认真的完成,所以在调试当中几乎很少出现电路的问题,因此本设计 才顺利的完成了。 我通过实践课的综合练习,课程设计的实际操作,将课堂理论学习贯穿其 第 23 页 共 34 页 中,全面系统的把单片机课程的知识联系在一起,做到融会贯通,使我真正感 受到理论应用于实践的乐趣。这次设计是一次锻炼的好机会,使我在学习和巩 固新、老知识的同时,训练了自己综合运用知识的能力、分析解决新问题的能 力,同时也提高了自己工程实践能力;在

33、设计的过程中,我与同学一同学习、 一同讨论,大家集思广益,发扬了团队协作精神。在课程设计过程中,我发现 了自己的不足,今后应加强学习,并且加强理论与实践的相结合,把所学的知识 应用于实际当中。 第 24 页 共 34 页 参考文献参考文献 1 李朝青.单片机原理及接口技术(第 3 版) M.北京:航空航天大学出版社,2005 2 陈世和.电工电子实习教程 M. 北京:航空航天大学出版社,2007 3 孙进生等.电子产品设计实例教程 M. 北京:冶金工业出版社,2004 4 张伟等.Protel 99SE 实用教程 M.北京:人民电邮出版社,2008 5 白瑞青,金功伟.单片机温度巡回监测系统J

34、.测试技术学报,98年第12卷第3期 6 李红刚,方佳,王强,钱双艳.基于At89C51的八路温度巡回检测系统设计J. 热带农业工程,2010年第34卷第1期 第 25 页 共 34 页 附录附录 附附1 1 表表 1 元件清单元件清单 序号型号个数 1STC89C51(52)RC1 2DS18B201 3排阻(1K)1 4排针(4)1 5.排针(2)1 6按键1 7LED 显示灯(84)1 8蜂鸣器1 912晶振 101K 电阻 114.7K 电阻1 1210K 电阻 130.47K 电阻1 1430PF 电容2 1522UF 电容1 16S9012 三极管1 17发光二极管1 注:封装都为

35、标准封装 第 26 页 共 34 页 附附2 2 第 27 页 共 34 页 图 1 一路传输温度测量系统完整电路图 附附 3 3 第 28 页 共 34 页 源程序源程序 #include “reg52.h“ #include “intrins.h“ /_nop_();延时函数用 #define Disdata P0 /段码输出口 #define discan P2 /扫描口 #define uchar unsigned char #define uint unsigned int sbit DQ=P10; /温度输入口 sbit DIN=P07; /LED 小数点控制 uint h; ui

36、nt temp; /*温度小数部分用查表法*/ uchar code ditab16= 0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x0 8,0x09,0x09; / uchar code dis_712=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xb f; uchar code scan_con4=0xFE,0xFD,0xFB,0xF7; /列扫描控制字 uchar data temp_data2=0x00,0x00; /读出温度暂放

37、uchar data display5=0x00,0x00,0x00,0x00,0x00; /显示单元数据, 共 4 个数据和一个运算暂用 /*11us 延时函数*/ void delay(uint t) 第 29 页 共 34 页 for (;t0;t-); /*显示扫描函数*/ scan() char k; for(k=0;k0;i-) DQ=1;_nop_();_nop_(); /从高拉倒低 DQ=0;_nop_();_nop_();_nop_();_nop_(); /5 us DQ=val /最低位移出 delay(6); /66 us val=val/2; /右移 1 位 DQ=1;

38、 delay(1); /*DS18B20 读 1 字节函数*/ /从总线上取 1 个字节 uchar read_byte(void) 第 31 页 共 34 页 uchar i; uchar value=0; for(i=8;i0;i-) DQ=1;_nop_();_nop_(); value=1; DQ=0;_nop_();_nop_();_nop_();_nop_(); /4 us DQ=1;_nop_();_nop_();_nop_();_nop_(); /4 us if(DQ)value|=0x80; delay(6); /66 us DQ=1; return(value); / /*

39、读出温度函数*/ / read_temp() ow_reset(); /总线复位 delay(200); write_byte(0xcc); /发命令 write_byte(0x44); /发转换命令 ow_reset(); delay(1); write_byte(0xcc); /发命令 write_byte(0xbe); temp_data0=read_byte(); /读温度值的低字节 temp_data1=read_byte(); /读温度值的高字节 第 32 页 共 34 页 temp=temp_data1; temp6348) / 温度值正负判断 tem=65536-tem;n=1

40、; / 负温度求补码,标志位置 1 display4=tem / 取小数部分的值 display0=ditabdisplay4; / 存入小数部分显示值 display4=tem4; / 取中间八位,即整数部分的值 display3=display4/100; / 取百位数据暂存 display1=display4%100; / 取后两位数据暂存 display2=display1/10; / 取十位数据暂存 display1=display1%10; /*符号位显示判断*/ if(!display3) display3=0x0a; /最高位为 0 时不显示 第 33 页 共 34 页 if(

41、!display2) display2=0x0a; /次高位为 0 时不显示 if(n)display3=0x0b; /负温度时最高位显示“-“ /*主函数*/ main() Disdata=0xff; /初始化端口 discan=0xff; for(h=0;h4;h+) /开机显示“0000“ displayh=0; ow_reset(); /开机先转换一次 write_byte(0xcc); /Skip ROM write_byte(0x44); /发转换命令 for(h=0;h100;h+) /开机显示“0000“ scan(); while(1) work_temp(read_temp(); /处理温度数据 scan(); /显示温度值 /*结束*/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 绩效管理


经营许可证编号:宁ICP备18001539号-1