毕业设计论文基于AT89C51单片机的简易数字温度计的设计

上传人:仙*** 文档编号:36147998 上传时间:2021-10-29 格式:DOC 页数:30 大小:1.18MB
返回 下载 相关 举报
毕业设计论文基于AT89C51单片机的简易数字温度计的设计_第1页
第1页 / 共30页
毕业设计论文基于AT89C51单片机的简易数字温度计的设计_第2页
第2页 / 共30页
毕业设计论文基于AT89C51单片机的简易数字温度计的设计_第3页
第3页 / 共30页
点击查看更多>>
资源描述
简易数字温度计的设计 摘 要 随着“信息时代”的到来,作为获取信息的手段传感器技术得到了显著的进步,其应用领域越来越广泛,对其要求越来越高。本文利用单片机结合传感器技术开发设计,文中把传感器理论与单片机实际应用有机结合,详细的叙述了利用温度传感器DS18B20测量环境温度,同时51单片机在现代电子产品中广泛应用以及其技术已经非常成熟,DS18B20可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部硬件电路,具有成本低和易使用的特点。具体利用单片机AT89C51作为控制器,以及温控传感器DS18B20作为温度采集器,设计了一款数字温度计。该温度计能够测出-55.5-+125之间的温度。按键设置好上下限后,通过18B20直接读取被测温度值,进行数据转换,实时的监控当前温度是否超出设置范围,并实现报警功能。用3位共阳数码管以串口传输数据,实现温度显示。关 键 词 数字温度计;AT89C51;DS18B20;报警中图分类号 TN702 文献标志码 ADesign of Simple digital thermometerAbstractWith the arrival of the information age, as a means of obtaining information sensor technology had been significant progress, its application field, more and more widely, the demand is higher and higher. This paper USES singlechip combined with the sensor technology development and design, this paper the sensor theory and single-chip microcomputer application organically, and detailed description of the temperature sensor DS18B20 measurement environment temperature, at the same time, 51 SCM in modern electronic products is widely used and its technology has very mature, can be read out directly measured DS18B20 temperature, and the use of three wire and single-chip microcomputer is linked together, reduce the external hardware circuit, with low cost and easy to use features. Specific using single chip computer AT89C51 as a controller, and temperature sensor DS18B20 as temperature collector, design a kind of digital thermometer. The thermometer can measure-55.5-+ 125 temperature between. Good upper button, after 18 B20 directly read temperature being measured, data transfer, real time monitoring the current temperature is beyond the set range, and realize the alarm function. With a total of three Yang digital tube to serial data transmission, and realize the temperature display. Key words digital thermometer; DS18B20; AT89C51;alarm.目 录摘 要IAbstractII1.前言12.总体设计方案22.1数字温度计方案22.2总体设计方案及框图23.系统组成及工作原理43.1单片机的选择43.1.1 AT89C51主要特性:43.1.2 AT89C51引脚功能介绍43.2数字温度传感器DS18B2063.2.1 DS18B20的主要特性63.2.2 DS18B20的内部结构73.2.3 DS18B20工作原理73.3 复位电路的设计83.4 功能键83.5数码管串口显示94.系统软件设计114.1软件设计流程114.2 DS18B20读取数据流程125.仿真、测试及结果分析13结 论错误!未定义书签。致 谢错误!未定义书签。参考文献16附录 A17附录 B261.前言现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平。在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段:传统的分立式温度传感器模拟集成温度传感器智能集成温度传感器。目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,本文将介绍智能集成温度传感器DS18B20的结构特征及控制方法,并对以此传感器,89S51单片机为控制器构成的数字温度测量装置的工作原理及程序设计作了详细的介绍。与传统的温度计相比,其具有读数方便,测温范围广,测温准确,输出温度采用数字显示,主要用于对测温要求比较准确的场所,或科研实验室使用。2总体设计方案2.1数字温度计方案本实验系统主要由温度采集、按键设置、温度报警、温度显示四部分电路组成。其中温度采集实现的方法有很多种,以下列出一种在日常生活中和工农业生产中经常用到的实现方案。采用数字温度芯片DS18B20 测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0100摄氏度时,最大线形偏差小于1摄氏度,测温范围 55+125,固有测温分辨率0.5。DS18B20 的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89C51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC 机通信上传数据。另外AT89S51 在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。2.2总体设计方案及框图该系统利用AT89S51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。该系统扩展性非常强,它可以在设计中加入时钟芯片DS1302以获取时间数据,在数据处理同时显示时间,并可以利用AT24C16芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信,方便的采集和整理时间温度数据。系统总体设计方框图如图2-1所示,控制器采用单片机AT89C51,温度传感器采用DS18B20,利用按键进行温度的上下限范围设置,范围可设置位-99.999.9数码管以串口传送数据并进行显示,当设置错误时,即上限温度小于下限温度,黄色Led发光进行警告。按下确定键后,数码管显示当前温度,当温度超出设定范围时,红色Led发光进行报警。图2-1 总体设计方框图3系统组成及工作原理3.1单片机的选择对于单片机的选择,可以考虑使用8031与8051系列,由于8031没有内部RAM,系统又需要大量内存存储数据,因而不适用。AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。3.1.1 AT89C51主要特性: 与MCS-51 兼容; 4K字节可编程闪烁存储器; 寿命:1000写/擦循环; 数据保留时间:10年; 全静态工作:0Hz-24MHz; 三级程序存储器锁定; 1288位内部RAM; 32可编程I/O线; 两个16位定时器/计数器; 5个中断源。3.1.2 AT89C51引脚功能介绍其引脚排列如图3-1所示:各引脚功能简单介绍如下:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在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口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:表3-1 P3口特殊功能介绍口管脚备选功能P3.0 RXD串行输入口P3.1 TXD串行输出口P3.2 /INT0外部中断0P3.3 /INT1外部中断1P3.4 T0记时器0外部输入P3.5 T1记时器1外部输入P3.6 /WR外部数据存储器写选通P3.7 /RD外部数据存储器读选通P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.2数字温度传感器DS18B203.2.1 DS18B20的主要特性 适应电压范围更宽,电压范围为3.05.5V,在寄生电源方式下可由数据线供电。 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。 DS18B20在使用中不需要任何外围元件,全部 传感元件及转换电路集成在形如一只三极管的集成电路内。 温范围55125,在-10+85时精度为0.5。 可编程 的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。 在9位分辨率时最多在 93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。 测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。 负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。3.2.2 DS18B20的内部结构图3-2为DS18B20的内部结构图,表示出了 DS1820 的主要部件。DS1820 有三个主要数字部件:1)64 位激光 ROM,2)温度传感器,3)非易失性温度报警触发器 TH 和 TL。器件用如下方式从单线通讯线上汲取能量:在信号线处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。DS1820 也可用外部 5V 电源供电源供电。3.2.3 DS18B20工作原理如图3-3所示,低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。DS18B20硬件连接图如下所示:图3-4 DS18B20硬件连接图3.3 复位电路的设计单片机的复位电路如图3-5所示。该复位电路采用手动复位与上电复位相结合的方式。当按下按键S1时,VCC通过R2电阻给复位输入端口一个高电平,实现复位功能,即手动复位。上电复位就是VCC通过电阻R2和电容C构成回路,该回路是一个对电容C1充电和放电的电路,所以复位端口得到一个周期性变化的电压值,并且有一定时间的电压值高于CPU复位电压,实现上电复位功能。图3-5单片机的复位电路3.4 功能键上电后,进入上限值设置,此时D4灯发光,通过加减、切换位和负号键可以设置温度值,设置好后按确定键进入下限设置,下限设置好之后按下确定键进入温度采集部分,并显示当前温度,此过程中,再次按下确定键可进入设置环境。功能键部分连接图如图3-6所示:图3-6 功能键部分连接图3.5数码管串口显示此次的设计要求数码管采用串口进行数据传输,所以使单片机串口工作在方式0,即8位移位寄存器输入输出方式,外接移位寄存器74LS164以扩展IO端口。方式 0的输出是8位串行数据,通过移位寄存器可将8位串行数据变成8位并行数据输出,引脚RXDP30和TXDP31分别作74ls164的数据输入端和同步时钟脉冲输入端。每一个时钟信号的上升沿加到74LS164的CP端时,移位寄存器将串口输出的数据移入一位,8个时钟脉冲过后串口输出的8位二进制数全部移入第一片74LS164,通过Q0-Q7并行输出。使用这种方法单片机中CPU的开销小。通过串口外接串并转换器74LS164,扩展并行的IO口。需要几个数码管就扩展几个并行接口,74L164的13(Q7)接下一位移位寄存器的数据输入端即可。管脚数码管直接接在74LS164的输出脚上,单片机通过串口将要显示数据的字形码逐一的串行移出至74LS164的输出脚上数码管就可以显示相应的数字。对于单片机,当发送完一个字节后,TI会置位,开始发送下一个字节必须将TI清零。部分程序如下:/* 名称 : void Display(uchar *T,uchar N)* 功能 : 串口发送并显示* 输入 : *T:所要显示的数据数组;N:所要显示的数据符号位* 输出 : 无*/void Display(uchar *T,uchar N)uchar Num;Num=0;while(Num执行 ROM 指令-执行 DS18B20 功能指令。而在单点上,可以直接跳过 ROM 指令。DS18B20 的转换精度默认为 12 位,而分辨率是 0.0625。DS18B20 温度读取函数参考步骤:DS18B20 开始转换:1)DS18B20 复位;2)写入跳过 ROM 的字节命令,0xCC;3)写入开始转换的功能命令,0x44;4)延迟大约 750900 毫秒。DS18B20 读暂存数据:1)DS18B20 复位;2)写入跳过 ROM 的字节命令,0xCC;3)写入读暂存的功能命令,0xee;4)读入第0个字节LS Byte,转换结果的低八位;5)读入第 1 个字节 MS Byte,转换结果的高八位6)DS18B20 复位,表示读取暂存结束。数据求出十进制:1)整合 LS Byte和MS Byte的数据;2)判断是否为正负数(可选);3)求得十进制值,正数乘以 0.0625,一位小数点乘以 0.625,二位小数点乘以6.25;4)十进制的“个位”求出。具体流程图如图4-2所示:图4-2读取数据流程图5 仿真、测试及结果分析在Keil C51环境下对程序进行编辑和编译,在Proteus ISIS环境下连接电路图,二者结合进行系统的调试。软件仿真通过后进行硬件面包板连线,将Kile编译生成的Hex文件下载值AT89C51单片机内,硬件连接应分模块进行连接,一部分调试通过后再进行下一模块的连接和调试。不能一次连接全部器件,否则一旦出现问题,会比较难检查。Keil基本环境如图5-1所示:图5-1 Keil基本环境图MCS-51单片机软件Keil C51开发过程为:1).建立一个工程项目,选择芯片,确定选项。2).建立汇编源文件或C源文件。3).用项目管理器生成各种应用文件。4).检查并修改源文件中的错误。5).编译连接通过后进行软件模拟仿真或硬件在线仿真。Proteus ISIS主要功能是在图形编辑窗口做出所需的电路图。软件的应用设计界面如图5-2所示:图5-2 Proteus ISIS软件应用设计界面硬件实物连接图如图5-3所示:图5-3 硬件实物连接图参考文献1 李建忠单片机原理及应用第二版M 西安:西安电子科技大学出版社 ,2008.52 何立民单片机应用技术大全M 北京:北京航空航天大学出版社,19943 袁希光传感器技术手册M 北京:国防工业出版社,19864 冯英传感器电路原理与制作M 成都:成都科技大学出版社,19975 张有德,赵志英.单片微型机原理、应用于实验.复旦大学出版社,2000.46 赵新民,王祁.智能仪器设计基础.哈尔滨:哈尔滨工业大学出版社,19997 黄亮基于AT89C2051串口的LED数码管显示电路J电子制作,2006,第08期8truelmz,DS18B20工作原理9 yh3099 ,DS18B20,附录A 源程序#include reg52.h#define uint unsigned int#define uchar unsigned charuchar code tab =0x81,0xcf,0x92,0x86,0xcc,0xa4,0xa0,0x8f,0x80,0x84,0xff;/0-9,正值char Tem3=0; /存储温度 char TemSet3=0; /设定温度上限char TemSet_low3=0; /设定温度下限unsigned int temp;uchar tempL,tempH;uchar Neg;/负值标志uchar Neg_Set;/设定上限负值标志uchar Neg_Set_low;/设定下限负值标志sbit DQ = P23; /DS18B20数据口/按键部分端口设sbit EnSet = P16; /确定/设定sbit AddSet = P17; /设定值加sbit CutSet = P15; /设定值减sbit ChangeSet = P14; /切换设定位sbit Sign_Change = P13; /切换正负/LED灯端口设置sbit LED = P10; /设定上限LED显示sbit LED_low = P11; /设定下限LED显示sbit WarnLed = P37;/警告端口sbit WarnSet = P12;/设定范围警告端口/函数声明void Delay_50ms(unsigned int t);void Delay(uint t);void Reset(void);void WriteByte(uchar dat);uint ReadByte(void);uint ReadTemp(void);void Display(uchar *T,uchar N);/数码管显示子程序char Key();/按键扫描程序/* 延时50ms,精确*/void Delay_50ms(unsigned int t)unsigned int j; for(;t0;t-) for(j=6245;j0;j-);/* 延时函数 约位10us*/void Delay(unsigned int i) while(i-);/*定时器初始化*/void timer_init(void) TMOD = 0x01; /定时器0工作在模式1,16Bit定时器模式 TH0 = (65536-50000) / 256; TL0 = (65536-50000) % 256; TR0 =1; /开定时器 ET0 =1;/开启定时器和中断/* DS18B20复位函数*/void Reset(void)DQ=1; /DQ先置高Delay(4); /延时sec=0.00047400DQ=0; /发送复位脉冲 sec=0.00052600Delay(60); /精确延时大于480ussec=0.00052700DQ=1; /拉高数据线 sec=0.00108300Delay(30); /等待(1560us)这里是等待DS18B20做出回应,如果回应DQ将变低,/MCU是在DQ拉高后开始监视DQ的值的。 /* DS18B20写一个字节函数*/void WriteByte(uchar dat)uint i; for(i=8;i0;i-) DQ=0; /先将DQ拉低,我们这里先不延时15us先,在下面的 delay(5)一起延了, /因为时序图它是一直保持低电平的 DQ=dat&0x01;/去数据的最低位,应为DS18B20是从低到高读的 Delay(8);/延时在60-120us之间 DQ=1; /将DQ拉高 dat=1;/右移一位 Delay(1);/这里延时1us以上/* DS18B20读一个字节函数*/uint ReadByte(void)uchar i,dat=0;/这里要付初值 for (i=8;i0;i-) DQ=1; /DQ稍微拉高,这不可有可无 Delay(1);/延时小会,这里延时不严格 DQ=0; /按照时序图,将DQ拉低,先不延时,在下面delay(4)在一起延! dat=1;/右移一位 DQ=1; /释放一下总线,等待检查DQ值! if(DQ)/当DQ为1是执行下面,如果DQ为0,值不变。 dat=dat|0x80;/把低位先放在高位,然后右移8次,高位的数据就移到了低位,因为先写低位的! Delay(6);/延时60-120us return(dat);/返回dat值 /* DS18B20读温度程序*/uint ReadTemp(void)uint temperature; Reset(); /初始化 WriteByte(0xcc); /写SKIP ROM(跳过检查ROM序列,当需要级联时需要检查) WriteByte(0x44); /写启动温度转换 Delay(60); /转换需要一点时间,延时大一点,应该大于500us Reset(); /初始化 WriteByte(0xcc); /写SKIP ROM(跳过检查ROM序列) WriteByte(0xbe); /读温度寄存器RAM(头两个值分别为温度的低位和高位) tempL=ReadByte(); /读出温度的低位LSB tempH=ReadByte(); /读出温度的高位MSB /温度转换,把高低位做相应的运算转化为实际温度 temperature=(tempH*256)+tempL; /temperature=(tempH*256)+tempL)*0.625;/tempH*256的意思是tempH向左移8位0.0625扩大十倍,增加小数位 /Delay(200);/两次间隔转换的间隔要延时一下 return(temperature); /*温度比较*/void Tem_Compare(void)uchar i;i = 3;/设定值范围错误显示 while(1)if(Neg_Set=1&Neg_Set_low=0) WarnSet=0;break;else if(Neg_Set=0&Neg_Set_low=1) WarnSet=1;break;else if(Neg_Set=Neg_Set_low&Neg_Set=1)if(TemSeti-1TemSet_lowi-1)WarnSet=0;break;else if(TemSeti-1TemSeti-1)WarnSet=0;break;else if(TemSet_lowi-1TemSeti-1|Temi-1TemSet_lowi-1)WarnLed=0;break;else if(Temi-1TemSet_lowi-1) WarnLed=1;break;else i-;if(i=0) WarnLed=1;break;else if(Neg=1&Neg_Set=1&Neg_Set_low=1)if(Temi-1TemSet_lowi-1)WarnLed=0;break;else if(Temi-1TemSeti-1&Temi-1TemSeti-1)WarnLed=0;break;else if(Temi-1TemSet_lowi-1)WarnLed=0;break;else if(Temi-1TemSet_lowi-1) WarnLed=1;break;else i-;if(i=0) WarnLed=1;break;else if(Neg_Set=1&Neg_Set_low=1&Neg=0)WarnLed=0;break;/*发送数据、显示子函数*/void Display(uchar *T,uchar N)uchar Num;Num=0;while(Num=3) i=0; if(Sign_Change = 0)/设定正负Delay_50ms(2);if(Sign_Change = 0) if(Neg_Set=1) Neg_Set=0;else if(Neg_Set=0) Neg_Set=1; if(TemSeti9) TemSeti=0;if(TemSeti=3) i=0;if(Neg_Set=1) Neg_Set_low=1; /若上限为负值,则下限必为负值else if(Sign_Change = 0)/设定正负Delay_50ms(2);if(Sign_Change = 0) if(Neg_Set_low=1)Neg_Set_low=0;else if(Neg_Set_low=0)Neg_Set_low=1;if(TemSet_lowi9) TemSet_lowi=0;if(TemSet_lowi 0x0fff) temp=temp+1; Neg = 1; /判断温度正负 else Neg=0; temp=temp*0.625;/可以不用定时器 Tem2 = temp/100; /十位 Tem1 = temp/10%10;/个位 Tem0 = temp%10;/小数位 Tem_Compare(); Display(Tem,Neg);/显示当前温度 Delay_50ms(1); if(EnSet = 0) Delay_50ms(2);if(EnSet = 0) while(!Key();/等待设定值确定附录B 简易数字温度计原理总图
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 销售管理


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

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


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