课程设计(论文)基于AT89S52单片机的数字温度计设计

上传人:沈*** 文档编号:42641636 上传时间:2021-11-27 格式:DOC 页数:37 大小:725.52KB
收藏 版权申诉 举报 下载
课程设计(论文)基于AT89S52单片机的数字温度计设计_第1页
第1页 / 共37页
课程设计(论文)基于AT89S52单片机的数字温度计设计_第2页
第2页 / 共37页
课程设计(论文)基于AT89S52单片机的数字温度计设计_第3页
第3页 / 共37页
资源描述:

《课程设计(论文)基于AT89S52单片机的数字温度计设计》由会员分享,可在线阅读,更多相关《课程设计(论文)基于AT89S52单片机的数字温度计设计(37页珍藏版)》请在装配图网上搜索。

1、河南理工大学单片机课程设计河南理工大学单片机课程设计报告数字温度计姓 名: 学 号: 专业班级: 自动化 06-3班 指导老师: 所在学院:电气工程与自动化学院 2009年06 月 10日摘要本设计是一个基于AT89S52单片机的“数字温度计”。随着科学技术的进步和发展,单片机技术已经普及到我们的生活、学习、工作、科研等各个领域,已经成为一种比较成熟的技术,因此,采用AT89S52单片机来实现这个测温系统。此外,测温系统的开发还利用了数字温度传感器DS18B20,可以方便的实现温度的采集,并对传感器在单片机下的硬件连接,软件编程以及各个模块系统流程进行了分析,对各部分的电路也进行一一介绍。此测

2、温系统测量温度的基本范围是-50110,精度误差小于0.5,采用LED数码直读显示,并且可以根据需要任意设定上下限的报警温度。其体积小、功耗低、结构简单、抗干扰能力强,既适用于我们日常生活、工农业生产中的温度测量,也适用于恶劣环境下进行现场温度测量,同时,还可以当作温度处理模块嵌入其他系统中,作为其他主系统的辅助扩展,有着广泛的应用前景。关键词:AT89S52单片机、DS18B20数字温度传感器、测温系统、温度计。目录1.概述- 4 -1.1、设计目的- 4 -1.2、设计意义- 4 -1.3、设计任务及要求- 4 -2.系统总体方案及硬件设计- 5 -2.1、设计方案论证- 5 -2.1.1

3、、方案一:使用热敏电阻- 5 -2.1.2、方案二:采用数字温度芯片DS18B20- 5 -2.2、总体设计框图- 6 -2.3、主控制器- 6 -2.4、时钟电路和复位电路- 7 -2.5、按钮输入电路- 8 -2.6、显示电路和驱动电路- 9 -2.7、数字温度传感器DS18B20- 10 -2.7.1、DS18B20简单介绍- 10 -2.7.2、DS18B20性能特点- 11 -2.7.3、DS18B20内部结构- 11 -2.7.4、DS18B20控制方法- 12 -2.8、温度报警电路- 13 -2.9、电源设计- 14 -3.软件设计- 15 -3.1、主程序流程图- 15 -3

4、.2、读出温度子程序- 16 -3.3、数据处理子程序- 17 -3.4、数据刷新子程序- 17 -3.5、报警子程序- 18 -4.实验仿真- 19 -4.1、系统仿真设计- 19 -4.2、仿真结果分析- 19 -5.软硬件系统的调试- 23 -6.课程设计体会- 24 -7. 参考文献- 24 -附1源程序代码- 25 -附2系统原理图- 37 -1.概述1.1、设计目的1、进一步熟悉和掌握单片机的内部结构和工作原理,了解单片机应用系统设计的基本方法和步骤。2、理解单片机在自动化中的作用以及掌握单片机的编程方法和仿真软件Proteus的使用方法。3、掌握键盘和显示器在单片机控制系统中的应

5、用。4、掌握撰写课程设计报告的方法。1.2、设计意义数字温度计在我们的日常生活中扮演这重要的作用。由于其精度高、量程宽、灵敏度高、体积小、功耗低、抗干扰能力强等特点,其常用于我们的生活、工农业生产中的温度测量以及在恶劣环境下进行的现场温度测量。此外,通过综合利用所学的单片机知识完成“数字温度计”这样一个单片机应用系统的设计并仿真实现,加深对单片机软硬知识的理解,获得初步的应用经验,为走出校门从事单片机应用的相关工作打下基础。1.3、设计任务及要求1、测量温度的基本范围是-50110。2、测量精度误差小于0.5。3、采用LED数码直读显示。4、扩展功能。5、可以任意设定温度的上下限报警功能。2.

6、系统总体方案及硬件设计2.1、设计方案论证该系统主要由温度测量和数据采集两部分电路组成,实现的方法很多,下面将列出两种在日常生活和工、农业生产中经常用到的实现方案。2.1.1、方案一:使用热敏电阻由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度值显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。2.1.2、方案二:采用数字温度芯片DS18B20采用数字温度芯片DS18B20 测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围

7、电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0100 摄氏度时,最大线形偏差小于1 摄氏度。DS18B20 的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89S52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。控制工作,还可以与PC 机通信上传数据,另外AT89S52在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。该系统利用AT89

8、S52芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。该系统扩展性非常强,它可以在设计中加入时钟芯片DS1302以获取时间数据,在数据处理同时显示时间,并可以利用AT24C16芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信,方便的采集和整理时间温度数据。从以上两种方案很容易看出,采用方案二,硬件电路比较简单,软件设计也比较简单,因此,采用方案二进行“数字温度计”的设计。2.2、总体设计框图数字温度计的原理框图如图1所示

9、。图1 数字温度计原理框图数字温度计主要是由单片机控制器AT89S52和温度传感器DS18B20以及LED显示电路组成。由DS18B20温度传感器芯片测量当前的温度,并将结果送入单片机,通过AT89S51单片机芯片对送来的测量温度读数进行计算和转换,并将此结果送入显示电路显示。其中,DSI8B20温度传感器芯片采用“一线制”与单片机相连,它独立地完成温度测量以及将温度测量结果送到单片机的工作。2.3、主控制器对于单片机的选择,可以考虑使用8031与8051系列,由于8031没有内部RAM,系统又需要大量内存存储数据,因而不适用。AT89S52 是美国ATMEL公司生产的低功耗,高性能CMOS8

10、位单片机,片内含8kB的可编程的Flash只读程序存储器,兼容标准 8051 指令系统及引脚。它集Flash程序存储器既可在线编程(ISP),也可用传统方法进行编程,所以低价位 AT89S52单片机可为提供许多高性价比的应用场合,可灵活应用于各种控制领域,对于简单的测温系统已经足够。单片机AT89S52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。AT89S52单片机引脚图如图2所示。图 2 AT89S52单片机引脚图2.4、时钟电路和复位电路MCS-51内部有一个构成振荡器的高增益反相放大器,此放大器的输入端

11、口和输出端口分别是引脚 XTAL1 和 XTAL2,在 XTAL1 和 XTAL2 上外接时钟源,即可构成时钟电路。根据单片机的生产工艺不同,可以分为内部和外部两种时钟产生方式。本次设计采用内部时钟产生方式,其电路图如图3所示。图3 时钟电路图复位是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。MCS-51单片机通常采用上电自动复位、按钮电平复位、外部脉冲复位、上电+按钮电平复位、程序运行监视复位等方式。本次设计采用上电+按钮电平复位,其电路图如图4所示。图4 复位电路图2.5、按钮输入电路键盘可以分为独立连接式和矩阵式两类。独立连接式按键是指直接用I/O口线构成的单

12、个按键电路。每个键单独占用一根I/O口线,每根I/O线的工作状态不会影响其他I/O口线的工作状态。未有按键按下时,所有的数据输入线都处于高电平状态。当任何一个键按下时,与之相连的数据输入线将被拉成低电平,要判断是否有键按下,只需要用微操作指令即可。独立连接式按键接口电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,在按键较多时,I/O口线浪费较大,故只在按键数量不多时采用这种按键电路。于使用按键较少,本次设计采用独立连接式按键。按钮输入电路如图5所示。图5 按钮输入电路2.6、显示电路和驱动电路本次设计要求使用4位的七段LED数码显示,LED显示器内部由7段发光二极管组成,因此亦称

13、之为七段LED显示器,由于主要用于显示各种数字符号,故又称之为LED数码管。每个显示器还有一个圆点型发光二极管,用于显示小数点。但其编程相对复杂,可显示字符比较少。显示电路如图6所示。图 6 显示电路和驱动电路2.7、数字温度传感器DS18B20由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需要比较多的外部元件支持,且硬件电路复杂,制作成本相对较高。因此,本设计采用DALLAS公司的数字温度传感器DS18B20作为测温元件。2.7.1、DS18B20简单介绍DS18B20是DALLAS公司的一种新型的单线数字温度传感器,其体积更小、更适用于多种场合、且适用电压更宽、更经济

14、。温度测量范围为-55+125 摄氏度,可编程为9位12位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM中,掉电后依然保存。被测温度用符号扩展的16位数字量的方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个DS18B20可以并联到3 根或2 根线上,CPU只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以连接很多这样的数字温度计,十分方便。2.7.2、DS18B20性能特点DS18B20 的性能特点:1、用单总

15、线专用技术,既可通过串行口线,也可通过其它I/O 口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9 位二进制数,含符号位)。2、测温范围为-55-+125,测量分辨率为0.0625。3、内含64位经过激光修正的只读存储器ROM。4、适配各种单片机或系统机。5、用户可分别设定各路温度的上、下限。6、内含寄生电源。2.7.3、DS18B20内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。DS18B20的管脚排列如图7所示。图7 DS18B20 引脚分布图64 位光刻ROM 是出厂前被光刻好的,它可以看作是该DS

16、18B20 的地址序列号。不同的器件地址序列号不同。8位产品系列号48位产品序号8位CRC编码DS18B20 高速暂存器共9个存存单元,如表1所示:序号寄存器名称作用0温度低字节以16位补码形式存放1温度高字节2TH/用户字节1存放温度上限3HL/用户字节2存放温度下限4、5保留字节1、26计数器余值7计数器/8CRC表1 DS18B20高速暂存器以12 位转化为例说明温度高低字节存放形式及计算:12 位转化后得到的12 位数据,存储在18B20 的两个高低两个8 位的RAM 中,二进制中的前面5 位是符号位。如果测得的温度大于0,这5 位为0,只要将测到的数值乘于0.0625 即可得到实际温

17、度;如果温度小于0,这5 位为1,测到的数值需要取反加1 再乘于0.0625 才能得到实际温度。高8位SSSSS262524低8位232221202-12-22-32-42.7.4、DS18B20控制方法在硬件上,DS18B20 与单片机的连接有两种方法,一种是VCC接外部电源,GND 接地,I/O 与单片机的I/O 线相连;另一种是用寄生电源供电,此时UDD、GND 接地,I/O 接单片机I/O。无论是内部寄生电源还是外部供电,I/O 口线要接5K左右的上拉电阻。DS18B20 有六条控制命令,如表2所示:指令约定代码操作说明温度转换44H启动DS18B20进行温度转换读暂存器BEH读暂存器

18、9个字节内容写暂存器4EH将数据写入暂存器的TH、TL字节复制暂存器48H把暂存器的TH、TL字节写到E2RAM重新调E2RAMB8H把E2RAM中的TH、TL字节写到暂存器TH、TL字节读电源供电方式B4H启动DS18B20发送电源供电方式的信号给主CPU表2 DS18B20 有六条控制命令CPU 对DS18B20 的访问流程是:先对DS18B20 初始化,再进行ROM 操作命令,最后才能对存储器操作,数据操作。DS18B20 每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B20 完成温度转换这一过程,根据DS18B20 的通讯协议,须经三个步骤:每一次读写之前都要对DS18

19、B20 进行复位,复位成功后发送一条ROM 指令,最后发送RAM 指令,这样才能对DS18B20 进行预定的操作。2.8、温度报警电路本设计采用软件处理报警,直流供电,利用有源蜂鸣器进行报警输出。当所测温度超过或低于所预设的温度值时,数据口的电平将会被拉高,报警输出。同时,所测温度超过上限温度时,红灯亮;低于下限温度时,黄灯亮;正常工作时,绿灯亮。报警电路了硬件连接如图8所示。图8 报警电路图2.9、电源设计单片机的工作电源电压为5V左右,典型值为5V。电源连接图如图9所示。图9 电源连接图3.软件设计由于KeilC是一种结构化的语言,具有灵活、高效等优点,并且C语言比汇编语言更具有可读性,因

20、此,本程序是在KeilC的编译环境下进行编译连接的。其软件窗口界面如图10所示。图10 KeilC软件窗口界面本系统程序主要包括主程序,读出温度子程序,温度数据处理子程序,显示数据刷新子程序,报警子程序等。3.1、主程序流程图主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度每隔一定时间测量进行一次,这样可以实时的显示当前的温度值。主程序流程见图11所示。图11 主程序流程图3.2、读出温度子程序读出温度子程序的主要功能是读出RAM中9字节的内容,并将其整合成一整数存储在暂存器中。其程序流程图如图12所示.图12 读出温度子程序流程图3.3、数据处理子程序温

21、度数据处理子程序将从RAM中读取的值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图13所示。图13 数据处理子程序流程图3.4、数据刷新子程序 显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高位显示为0时,将符号显示位移入下一位。程序流程图如图14所示。图14 数据刷新子程序流程图3.5、报警子程序报警子程序主要实现当测量的实际温度高于设定温度的上限时,蜂鸣器响,并且红色指示灯亮;当测量的实际温度低于设定温度的下限时,蜂鸣器也响,但黄色指示灯亮;当测量的实际温度介于设定温度的上下限时,蜂鸣器不响,并且绿色指示灯亮。其流程图如图15所示。图15 报警子程序流

22、程图4.实验仿真4.1、系统仿真设计对于单片机这一门实践性非常强、非常抽象的课程,Proteus软件虽然有些缺点,但依然是一个非常好的仿真软件。因此,本次设计采用Proteus对数字温度计进行仿真。Proteus软件窗口界面如图16所示。图17 Proteus软件窗口界面将与真实元件对应的虚拟元件调出,绘制在窗口的图纸上。连接好线路并保证没有问题时,将编译生成的(*.hex)文件调入虚拟单片机中,点击运行,即可通过仿真电路了解真实电路的运行结果。4.2、仿真结果分析此数字温度计可以测量温度范围为-50110,温度误差小于0.5,并且可以任意设定上下限温度。假设上限温度设定为38,下限温度设定为

23、10。如图17、图18所示。图17 上限温度设定为38图18 下限温度设定为10当温度传感器测量的实际温度超过上限温度时,蜂鸣器响、红色指示灯亮。如图19所示。图19 实际温度超过38当实际温度低于下限温度时,蜂鸣器响、黄色指示灯亮。如图20所示。图20 实际温度低于10当实际温度介于上下限温度之间时,蜂鸣器不响、绿色指示灯亮。如图21所示。图21 实际温度介于10385.软硬件系统的调试DS18B20最大的特点是单总线数据传输方式,DS18B20的数据I/O均由同一条线来完成。DS18B20的电源供电方式有2种:外部供电方式和寄生电源方式。工作于寄生电源方式时,VDD和GND均接地,这在需要

24、远程温度探测和空间受限的场合特别有用,原理是当1Wire总线的信号线DQ为高电平时,窃取信号能量给DS18B20供电,同时一部分能量给内部电容充电;当DQ为低电平时释放能量为DS18B20供电。但寄生电源方式需要上啦电路,软件控制变得复杂(特别是在完成温度转换和拷贝数据到E2PROM时),同时芯片的性能也有所降低。因此,在条件允许的场合,尽量采用外部供电方式。无论是内部寄生电源还是外部电源,I/O口线要接5K左右的上拉电阻。在这里采用外部电源供电方式。DS18B20与芯片连接电路如图22所示。图22 DS18B20与单片机的连接外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干

25、扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。一般在发中使用外部电源供电方式,毕竟比寄生电源方式只多接一根VCC引线。在外接电源方式下,可以充分发挥DS18B20宽电源电压范围的优点,即使电源电压VCC降到3V时,依然能够保证温度量精度。6.课程设计体会经过几周的时间,终于完成了数字温度计的单片机课程设计,虽然本次设计并不是最完美的,但从心底里说,还是十分地高兴,毕竟这次设计和以往不同,要求我们不仅提交设计报告,还要把实物做出来。通过数字温度计的单片机课程设计了解了数字温度计的组成及原理,练习了Protel、Proteus、KeilC等软件的基本操作、了解了如何撰写课程设

26、计报告、并且会用各种方式查找和利用各种文献资料为自己服务、增长了对实际电路设计的经验、提高了分析问题和解决问题的能力。但是,通过本次课程设计,也发现了不少问题,尤其是软件设计方面的问题。就本次课程设计来说,硬件电路很容易就连接好了而且没有出现短接等问题。然而,软件设计则是写了又改、改了再写,足足花了三天时间才修改正确,但程序不够简洁,算法也不是最优的。有很多东西,只有我们试着去做了,才能更进一步了解它。总之,这次课程设计使我们将所学过的知识和实际的电子设计相结合,为以后毕业设计积累了经验,为今后参加工作打下了良好的基础。同时,使我们知道理论和实际之间的差别以及理论联系实际的重要性和必要性。7.

27、 参考文献1孙育才.单片微型计算机及其应用.东南大学出版社.20042沈德金 陈粤初.单片机接口电路与应用程序实例.北京航天航空大学出版社.1990. 3潘新民 王燕芳.微型计算机控制技术.电子工业出版社2003 4李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,19985李广弟.单片机基础.北京:北京航空航天大学出版社,19946阎石.数字电子技术基础(第三版). 北京:高等教育出版社,19897廖常初.现场总线概述J.电工技术,1999.8王勇 叶敦范.基于AT89S51 的便携式实时温度检测仪J.选自仪表技术与传感器.2006附1源程序代码/*/#include

28、 reg51.h#include intrins.h/_nop_();延时函数用#include math.h#define disdata P0 /段码输出口#define discan P2 /扫描口#define uchar unsigned char#define uint unsigned intsbit duqu=P36; /温度输入口sbit dian=P07; /LED小数点控制sbit beep=P16; /蜂鸣器sbit key0=P30;sbit key1=P31;sbit key02=P32;sbit key03=P33;sbit led0=P10;/红灯sbit le

29、d1=P11;/绿灯sbit led2=P12;/黄灯uint h; uint temp;uchar r;char high=38,low=10;uchar sign;uchar st=1;uchar ti;uchar pp;uchar ee;uchar nn;/*温度小数部分用查表法*/uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;/uchar code dis_715=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0

30、x07,0x7f,0x67,0x00,0x40,0x76,0x38,0x39;/共阴LED段码表 0 1 2 3 4 5 6 7 8 9 不亮 - H L C uchar code scan_con4=0x70,0xb0,0xd0,0xe0; /列扫描控制字uchar data temp_data2=0x00,0x00; /读出温度暂放uchar data display5=0x00,0x00,0x00,0x00,0x00; /显示单元数据,共4个数据和一个运算暂用/*11us延时函数*/void delay(uint t) for (;t0;t-);/*显示扫描函数*/void scan()

31、 char k;for(k=0;k0;i-) duqu=1;_nop_();_nop_(); /从高拉倒低 duqu=0;_nop_();_nop_();_nop_();_nop_(); /5 us duqu=val&0x01; /最低位移出 delay(6); /66 us val=val/2; /右移1位 duqu=1; delay(1);/*DS18B20读1字节函数*/从总线上取1个字节uchar read_byte(void)uchar i;uchar value=0;for(i=8;i0;i-)duqu=1;_nop_();_nop_();value=1;duqu=0;_nop_(

32、);_nop_();_nop_();_nop_(); /4 usduqu=1;_nop_();_nop_();_nop_();_nop_(); /4 usif(duqu)value|=0x80;delay(6); /66 usduqu=1;return(value);/*读出温度函数*/uint read_temp()ow_reset(); /总线复位delay(200);write_byte(0xcc); /发命令write_byte(0x44); /发转换命令ow_reset(); delay(1);write_byte(0xcc); /发命令write_byte(0xbe);temp_d

33、ata0=read_byte(); /读温度值的第字节temp_data1=read_byte(); /读温度值的高字节temp=temp_data1;temp6348) / 温度值正负判断 tem=65536-tem;n=1;nn=1; / 负温度求补码,标志位置1display4=tem&0x0f; / 取小数部分的值display0=ditabdisplay4; / 存入小数部分显示值display4=tem4; / 取中间八位,即整数部分的值display3=display4/100; / 取百位数据暂存display1=display4%100; / 取后两位数据暂存display2

34、=display1/10; / 取十位数据暂存display1=display1%10;r=display1+display2*10+display3*100;/*符号位显示判断*/if(!display3) display3=0x0a; /最高位为0时不显示 if(!display2) display2=0x0a; /次高位为0时不显示 if(n)display3=0x0b; /负温度时最高位显示-/*蜂鸣器报警函数*/void BEEP()if(r=high|r=high)led0=0;led2=1;else if(r=abs(low)led2=0;led0=1;beep=1;led1=1

35、;elsebeep=0;led1=0;led0=1;led2=1;/*初始化函数*/void init() beep=0; EA=1;EX0=0;EX1=0;IT0=1;IT1=1;TH0=(65536-10000)/256;TL0=(65536-10000)%256;TH1=(65536-833)/256;TL1=(65536-833)%256;sign=0;ti=high;/*温度/上下限调整切换*/void key11()while(key1=0)delay(300);if(key1=0)st+;if(st=4)st=1;while(!key1);delay(300);while(!ke

36、y1);/*切换调整上下限*/void key10()while(key0=0) delay(300); /消抖动if(key0=0)sign=!sign; while(!key0);delay(300);while(!key0);/*上下限加1*/void key2() while(key02=0)delay(400);if(key02=0)if(sign)low=low+1;if(lowhigh)pp=low;low=high;high=pp;elsehigh=high+1;ti=high; while(!key02);delay(400);while(!key02); /*上下限减1*/

37、void key3() while(key03=0)delay(400);if(key03=0)if(sign)low=low-1;elsehigh=high-1;ti=high;if(lowhigh)pp=low;low=high;high=pp; while(!key03);delay(400);while(!key03); /*上限温度显示*/void high1()uchar k;if(high100)display0=high%10;display1=high/10;display2=10;display3=12;for(k=0;k4;k+) discan=scan_conk; di

38、sdata=dis_7displayk; if (k=1)dian=0; delay(300);disdata=0x00;delay(100);elsedisplay0=high%10;display1=high%100/10;display2=high/100;display3=12;for(k=0;k=0) display0=low%10;display1=low/10;display2=10;display3=13;for(ki=0;ki4;ki+) discan=scan_conki; disdata=dis_7displayki; if (ki=1)dian=0; delay(100

39、);disdata=0x00;delay(100);elseee=abs(low);display0=ee%10;display1=ee/10;display2=11;display3=13;for(ki=0;ki4;ki+) discan=scan_conki; disdata=dis_7displayki; if (ki=1)dian=0; delay(100);disdata=0x00;delay(100);/*主函数*/void main()init(); disdata=0x00; /初始化端口 discan=0x00; for(h=0;h4;h+) /开机显示0000 displa

40、yh=0; ow_reset(); /开机先转换一次 write_byte(0xcc); /Skip ROM write_byte(0x44); /发转换命令 for(h=0;h100;h+) /开机显示0000 scan(); while(1) switch(st) /分支case 1: work_temp(read_temp();scan();/显示温度 BEEP(); break; case 2: high1(); / 显示上限温度 key10();key2();key3();break;case 3: low1(); /显示下限温度key10();key2();key3();break; key11();/*结束*/附2系统原理图- 37 -

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