基于AT89C51单片机的数字温度计毕业设计_第1页
基于AT89C51单片机的数字温度计毕业设计_第2页
基于AT89C51单片机的数字温度计毕业设计_第3页
基于AT89C51单片机的数字温度计毕业设计_第4页
基于AT89C51单片机的数字温度计毕业设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、率用工学命CHANGZHOU INSTITUTE OF TECHNOLOGY科研实践题目:基于单片机的数字温度计的设计33目录目录2喝恁润属侈瘗睐杨尻赖。1 .绪论1.1 课题研究背景及意义 3沟熠金富爱建谴净。3残鹫楼静铸瀚湃淑塑麓。3 r钢极镇桧猪锥。5弹贸摄尔霁毙撰砖卤尻。5 II养技箧飙鳞恋类蒋蔷。5厦礴恳蹒骈日寺翥继骚。6茕桢广鲫献选块网踊泪。6鹅娅尽揖鹤惨屣茏H赖。6麓丛妈趣为赡债蛭练浮。7 3tm圣横蕨龈讶骅汆。8渗呛俨匀谓鳖调砚金帛。8钱卧泻联圣骋睨11廉。8凤袜备音叫®轮烂蔷。8嬲熟俣阉蕨直阊邺钱H。1.2课题研究的内容2 .数字温度计的系统概论 2.1 系统的功能

2、2.2 温度计的分析3 .设计方案和要求3.1 设计任务和要求3.2 元器件的选取3.3 系统最终设计方案4 .硬件设计4.1 总体设计结构图 4.2 硬件电路概述4.2.1 最小系统4.2.2 输入电路设计 11坛搏乡it忏篓锲铃iO。4.2.3输出电路设计5.硬件仿真12蜡燮夥痛宰艮住铉锚金市赘。15 H蜩福昙JW送闫撷凄。6 .实物制作6.1 电路板焊接6.2 电路板调试7 .小结附录18 铺蜩稠鹏踪韦麟余翟。18 H顾震彦决绥饴夏锦。19猫蚕I!绘燎诛髅既尻。20锹籁饕迳琐睾禊鸥娅蔷。21横氽if簧硕饨芹龈话鹫。1 .参考文献 21辄峰隔槿跳将虢荥。2 .原理图22尧侧闺旬勘蝙督。3

3、.元器件清单23识金昆缢蝶竟嗜俨凄。4 .软件程序 24劳月鼠错痫嫦胫汆。5 .实物图31的鹄灭萦欢;鹫金帛。1.绪论1.1 课题研究背景及意义单片机技术作为计算机技术的一个分支,广泛地应用于工业控制,智能仪器 仪表,机电一体化产品,家用电器等各个领域。“单片机原理与应用”在工科院校 各专业中已作为一门重要的技术基础课而普遍开设。学生在课程设计,毕业设计,科研项目中会广泛应用到单片机知识,而且,进入社会后也会广泛接触到单片机 的工程项目。鉴于此,提高“单片机原理及应用”课的教学效果,让学生参与课 程设计实习甚为重要。单片机应用技术涉及的内容十分广泛,如何使学生在有限 的时间内掌握单片机应用的基

4、本原理及方法, 是一个很有价值的教学项目。为此, 我们进行了 “单片机的学习与应用”方面的课程设计,锻炼学生的动脑动手以及 协作能力。鲨爵舒出襁金甲济雇统零单片机课程设计是针对模拟电子技术,数字逻辑电路,电路,单片机的原理 及应用课程的要求,对我们进行综合性实践训练的实践学习环节,它包括选择课 设任务、软件设计,硬件设计,调试和编写课设报告等实践内容。通过此次课程 设计实现以下三个目标:第一,让学生初步掌握单片机课程的试验、设计方法,即 学生根据设计要求和性能约束,查阅文献资料,收集、分析类似的相关题目,并 通过元器件的组装调试等实践环节,使最终硬件电路达到题目要求的性能指标; 第二,课程设计

5、为后续的毕业设计打好基础,毕业设计是系统的工程设计实践, 而课程设计的着眼点是让学生开始从理论学习的轨道上逐渐引向实际运用,从已 学过的定性分析、定量计算的方法,逐步掌握工程设计的步骤和方法,了解科学 实验的程序和实施方法。第三,培养学生勤于思考乐于动手的习惯,同时通过设 计并制作单片机类产品,使学生能够自己不断地学习接受新知识(如在本课设题 目中存在智能测温器件 DS18B20就是课堂环节中不曾提及的“新器件”),通过 多人的合作解决现实中存在的问题,从而不断地增强学生在该方面的自信心及兴 趣,也提高了学生的动手能力,对学生以后步入社会参加工作打下一定良好的实 践基础。硕濒谄撵懈篙爨敬。1.

6、2 课题研究的内容本文主要介绍了一个基于 AT89C51单片机的测温系统,详细描述了利用数 字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机喜爱的硬 件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也进行一一介绍,该系统可以方便的是实现温度采集和显示, 并可以根据需要任意设定 上下限报警温度,它使用起来方便,具有精度高、量程宽、灵敏度高、体积小、 功耗低等优点,适合我们日常生活和工农业生产中的温度测量, 也可以当做温度 处理模块嵌入其他系统中,作为其他主系统的辅助扩展。 DS18B20和AT89C51 结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适

7、合与恶劣环境 下进行现场温度测量,有广泛的应用前景。 阕擞榭豳i迁择植秘裳本设计首先是确定目标,气候是各个功能模块的设计,再在Proteus软件上进行仿真,修改,仿真。本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围 内时,可以报警。2 .数字温度计的系统概论2.1 系统的功能此数字温度计是基于51单片机,18B2Q四位数码管,led发光二级管,按 键等阻容元件设计制作而成,系统工作稳定,能够很好的测量出温度值,并显示c 此系统带有温度报警指示功能。氨噜1幅贸恳螂t颔泉。2.2 温度计的分析元件设计的意义:关于按键:共设计了 4个独立按键,一个为进入调整上下限的功能键,一个

8、为加,一个为减,另一个为确定设置键,按下调整键进入上限设置,右边红色二 极管亮,设置完上限按确定键,延时并且蜂鸣器响 1下,绿二极管亮,自动进入 下限设置。设置完下限按确定键蜂鸣器响 2下,进入温度正常显示状态。缸循瓷B 隼孙滋御赘。关于发光二极管:共设计了三个发光二极管,一个为电源指示,另外两个分 别为上下限指示或温度报警指示。 当进入调整上限时红色的亮,进入下限时绿色 的亮。当正常显示温度时,温度高于上限红色的亮,低于下限时绿色的亮。怂阐迳醇啸重晨凉。关于蜂鸣器:作为报警或者调整上下限时提示用,当前温度高于上限或者低 于下限蜂鸣器鸣响!从上限设置跳到下限设置时, 蜂鸣器响一下,确定下限设置

9、 时蜂鸣器响两下。关于数码管:当温度为正时,显示温度值,温度为负时,最高位显示”,温度数据精确到小数点后一位。系统采用5v直流供电,通电前注意电源正负极,以及电源接口是否匹配。3 .设计方案和要求3.1 设计任务和要求1、基本范围1542c2、精度误差小于0.5 C3、LED数码直读显示4、可以任意设定温度的上下限报警功能3.2 元器件的选取单片机芯片的选取:万案一:采用89C51芯片作为硬件核心,利用 Flash ROM,内部具有4KB ROM#储 空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电 路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由

10、于程序的 错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成 一定的损坏。 谚辞担谄动律泻熟方案一:采用AT89C51I片机与MCS-51系列单片机相比有两大优势:第一,片内程 序存储器采用闪存,使程序的写入更加方便;第二,提供了更小尺寸的芯片,使 整个硬件电路的体积更小,且管脚数目为20个,与MCS-51相比减少一倍,使理 角单更容易0啜觐言圭缘锡嗫俱触铃铸。综上所述:本课设中单片机芯片采用 AT89C51温度传感器的选取:万案一:采用热敏电阻传感器。利用热敏电阻随温度变化而显著变化,能直接将温度 的变化转换为能量的变化,进而制成温度计。但是其测温传感器比较复杂,而且 不

11、易通过编制程序来控制测温精度,增大系统设计的难度。 受绐!|钿蹦鞠0龈库。万案一:采用DS18B2W度传感器。DS18B20勺内部3脚(或8脚)封装;使用特 有的温度测量技术,将被测温度转换成数值信号;3.05.5V的电源供电方式和寄生电源供电方式;ROMS 64位二进制数字组成,共分为 8个字节;RAM由9 个字节的高速暂存器和非易失性电擦写 ROMS成。11渍峥阅加叫1藏。综上所述:温度传感器选取智能测温器件 DS18B203.3 系统最终设计方案综上各方案所述,对此次课设的方案选定:采用AT89C51作为主控制系统; 1602液晶显示模块芯片作为温度数据显示装置;而智能温度传感器DS18

12、B2解件 作为测温电路主要组成部分。至此,系统最终方案确定。 封忧蒋氯僦B躁悯鹫。4 .硬件设计4.1 总体设计结构图图4-1总体设计结构图4.2 硬件电路概述4.2.1 最小系统晶振电路晶振采用12MHz,分别接入到X1与X2端中。同时在晶振两端各接一个22pF 的电容,每个电容的另一端再接入到地。uvcc|1名RST 9L7 F FT1 PS?RP斗EAXT XI X?RiSETRDUTtPWOKD图4-2晶振电路复位电路复位电路采用的是上电复位。如图所示,在 RST复位输入引脚上接一 Vcc端,下接一个电阻到底。线路上接一按钮,通过按下按钮,复位电路通 过电容给RST一个短暂的高电平信号

13、。达到复位状态。电容至vet丁1选rRSTR3 咏C4:2?F图4-3复位电路单片机本设计采用的单片机是 AT89C51 AT89C5是一种带4K字节闪烁可编程可擦除 只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory ) 的低电压,高性能CMOS8微处理器,俗称单片机。AT89C205是一种带2K字节 闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦 除100次。该器件采用ATME麻密度非易失存储器制造技术制造,与工业标准的 MCS-5指令集和输出管脚相兼容。由于将多功能 8位CPUW闪烁存储器组合在

14、单 个芯片中,ATME的AT89C5是一种高效微控制器,AT89C205是它的一种精简版 本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。颖刍堇蚊库亿顿裳赔洸。P t 0144; vccp f 1?pa .0 ADO |P 1 23”P0 1 | AD t)Pl 1*JFQ 2 tAOl)P t 45PO J |AD3)P *,«3多CO 4 (AD4)P,6T14:.PO.S <AD9)Pi /«131 (AOt)RST»32PO 7 (AD?»XD) P 3 01 0J tf A J V PP<TXB> PS

15、 11 110ALE /PROGtnmh P3 212ZV;PSTS彳 1HT1 > Pa 1t3* 2 1* AP3 414”P? 6 (A 14)(T 1 >31。”P? 3 (A M >1 A R . P3 6ie25P2 4(ff0> P3 ri r34” 3 (A 1 1 >XTAL2i a23P2 2 iAlOiX TAL 110PI » (GKO20才1P2 0AT89C51图4-4 AT89C51弓I脚图电源电路78系列集成稳压器是常用的固定输出电压的集成稳压器。它的内部含有限流 保护,采用了噪声低,温度漂移小的基准电压源,工作稳定可靠。

16、78系列集成稳压器为三端器件:1脚为输入端,2脚为接地端,3脚为输出端,使用十分方便。78系列集成稳压器典型应用电路如下,这是一个输出 5V直流电压的稳压电源电路。IC采用集成稳压器7805, C1,C2分别为输入端和输出端的滤波电容,RL为负 载输出电阻。当输出电流较大时,7805应配上散热板。图4-5电源电路4.2.2 输入电路设计按键电路关于按键:共设计了 4个独立按键,一个为进入调整上下限的功能键,一个 为加,一个为减,另一个为确定设置键,按下调整键进入上限设置,右边红色二 极管亮,设置完上限按确定键,延时并且蜂鸣器响 1下,绿二极管亮,自动进入 下限设置。设置完下限按确定键蜂鸣器响

17、2下,进入温度正常显示状态。朝懒!跻 鳗鸿钱igt®?京。调整 + 确定,一图4-6按键电路测温电路测温电路方面,我们选择的温度传感器是 DS18B20这是美国DALLAS导体 公司最新推出的一种改进型只能温度传感器,不同于传统的热敏电阻,DS18B20能够直接读出被测温度,并且可根据实际要求通过简单的编程实现 912位的数字 读书方式。DS18B2画以采用两种方式供电,一种是采用电源供电方式,此时 DS18B2的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式, 如图4所示单片机端口接单线总线,为保证在有效的DS18B2时钟周期内提供足够的电流,可用一个MOSFET来

18、完成对总线的上拉。当 DS18B20处于写存储器 操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。 采用寄生电源供电方式时VD训接地。由于单线制只有一根线,因此发送接口必 须是三态的。这里我们把温度传感器的DQ端与P2*目接,以P23乍为温度输入口。 温度传感器VCC®接电源,GN邮接地端。如下图所示 挤牖§电"哓类。J1DS1SB204 7K图4-7测温电路4.2.3 输由电路设计显示电路关于发光二极管:共设计了三个发光二极管,一个为电源指示,另外两个分 别为上下限指示或温度报警指示。 当进入调整上限时红色的亮,进入下限时绿色的亮。

19、当正常显示温度时,温度高于上限红色的亮,低于下限时绿色的亮。赔前余申谄命骤辽辈袜金卷。LED发光二极管的压降一般为1.52.0 V ,其工作电流一般取1020 mA为宜。电阻R=U/I ,计算得出范围在250Q-500 Q间,在这里取470Q。° I口20图4-8温度上下限报警灯DY 5VVCCR21K01"一土*MC3 丁一一 D1更严图4-9电源指示灯关于数码管:显示温度,温度数据精确到小数点后一位。数码管使用条件:a、段及小数点上加限流电阻 b、使用电压:段:根据发光颜色决定;小数点: 根据发光颜色决定c、使用电流:静态:总电流80mA(每段10mA;动态:平均 电流

20、4-5mA峰值电流100mA 埴制新1决稳赛法卜册工静态电阻 R=U/I=5V/10mA=500Q为了使数码管正常工作,所需电流应大于静态电流值,故电阻要小于静态电阻, 故取470 Q 。DS1wei4 wei3 weil vveil图4-10数码管5 .硬件仿真1 .设置温度上限为42度,温度下限为15度。REEEEplsa犬兽舄P2H.U PZ JI.U上限温度P2H.UP2.IIM::r。.|工口>|3 E.nEEEEPD2En 口 : n.n MEEP3P3P3.i|r:D P3JTJH pajiTirT 口 marl pnarff!PQ.rfS下限温度2 .如图所示。此时温度为

21、38度,温度在规定范围内,绿灯指示,不报警RF1.r , .VQC :二 围E 阿HH2EEP2H.UP2JIM P2J9AIQ P2 JA' P2.7JUN P2JIAI9 m寓g R.HAiBpshfi? P9.*|rXD psjTnn P33FTTP3XFDPOari nJiRF!eeE3 .如图所示。此时温度为45度,超过上限温度,红灯指示并报警U1P2H.U P2 JI.UAAAAAAn 口£J 重丁 H,£ 尸 KKAKKKPIKnllrl i n a e EEEEEEEEra.iRMDrjjTRBphj'WTTRl.MrD pay” ri ji

22、 nr;Ra.nTD I 2 3 S4如图所示。此时温度为10度,低于下限温度,红灯指示并报电黑窑需装品常战0:;4 r HL I算JUNpan ro PS.ilFXD njTm mjiTITTparn pnari munH6 .实物制作6.1 电路板焊接一、元器件在电路板插装的要求:元器件在电路板插装的顺序是先低后高,先小后大,先轻后重,先易后难,先 一般元器件后特殊元器件,且上道工序安装后不能影响下道工序的安装。闹颤谚剑芈蔺。元器件插装后,其标志应向着易于认读的方向,并尽可能从左到右的顺序读出。有极性的元器件极性应严格按照图纸上的要求安装,不能错装。元器件在电路板上的插装应分布均匀, 排列

23、整齐美观,不允许斜排、立体交叉 和重叠排列;不允许一边高、一边低,也不允许引脚一边长、一边短。 仓嫄黯世嘱 珑言古纵膂鹫。二、插装元器件焊接规范:1、电阻器的插装:、看电阻器上的色环(高精度金属膜电阻器)或电阻器上的标示字符排列顺序 (高精度低温漂电阻器),确定电阻值是否正确,如有色环不全(字迹不清晰)或封装有破损的需更换器件;绽那螂娱wm蠲络遍、弯脚插装,根据插装孔的实际间距对比电阻器的引脚, 用银子夹住引脚平移 到合适位谿后快速将引脚弯下,以两引脚插装后能自行稳固为宜,同时使电阻离制板面高度为2mm左右;骁顾烽翳鼐彭翰膊。、插装时注意电阻器的正反方向,正向应为从左到右前四个色环之问间隙较小

24、, 与第五个色环间隙相对较大(高精度低温漂电阻器的正反判断和集成电路相同); 反之则为反向。正确的插装方式应为正向插装;底横暧障银编1孀凉。、若是纵向排列,则按色环排列,上面四个环间隙较小,第五个环与前四个色 环间隙较大(高精度金属膜电阻器)或电阻器上的表示字符为从上到下排列 (高 精度低;温漂电阻器)。金留诗浬艳损楼余世饕端黑2、电容的插装:、看电容上的文字标识,确定使用产品与器件表无误,如有封装损坏、字迹模 糊或断腿则需更换器件;、弯腿插装,根据插装孔的实际间距对比电容的引脚, 用银子夹住引脚平移到 合适位谿后快速将引脚弯下,以两引脚插装后能自行稳固为宜,同时使电容离印 制板面高度为2mm

25、左右;栉缎雕蜩海种瑶镂。、电容排列要保证其标识字方向一致, 便于观测。焊盘左右排列的电容应使标 识字面朝操作者,焊盘上下排列的电容应使标识字面向操作者左边方向。(电路板正面 向上) 辔惮楝刚殓撰瑶丽阉应。3、二极管的焊接正确辨认正负极后按要求装入规定位谿, 型号及标记要易看得见,焊接要求可参 考电阻的要求。4、集成电路器件的插装:、如器件引脚弯曲,则用银子夹住弯曲引脚所在面所有引脚轻轻捏合以矫正;、如有引脚端裂或断则视为器件损坏,不予使用需更换新器件;、在进行插装的时候要注意器件的正反, 面对器件时,器件上的标号字符应为 由左到右排列。6.2 电路板调试最小系统的电路不工作,首先应该确认电源电

26、压是否正常。用电压表测量接地 引脚跟电源引脚之间的电压,看是否符合电源电压,常用的是5V左右。接下来就是检测复位引脚的电压是否正常,EA引脚的电压要正常为5V左右。帆扬郦翩!辐 浸兴涣蔺。如果补焊电源后最小系统还是不能工作,有可能是AT89C52单片机坏掉了,重新选择一个AT89C52单片机焊接。如果是工作但是不能按需要的功能执行,也 可用更换AT89C52单片机方法调试,但在此之前可以选择检查对应的模块是否有 焊接问题,若没有再进行更换。 爵叁fit言内烬忧毁厉饿警。7 .小结这次设计,首次动手自己设计电路。把以往所学的理论知识投入到实际应用 当中,加强了对课本上面知识的了解。在设计过程中,

27、针对测温电路这方面,研 究了很长一段时间。一开始的选择是采用传统的热电阻, 然后采集对应温度下的 电流和电压,通过A/D电路进单片机处理来得出温度。这种方案的精度虽然高很 多,测温范围也广,但是电路的设计复杂了很多,在编程方面也复杂了很多。后 来参考相关资料,最终选定了以DS18B20乍为温度传感器来设计测温电路,通过 补偿提高精度。在设计过程中,遇到了最大的问题就是对单片机芯片不熟。 各端 口的作用搞不清,在设计过程中需要不断翻书查看。 通过这样,加固了对以前所 学知识的了解。经过两个星期的设计,通过不断翻查资料,不断学习,终于完成 了这次的设计,并成功仿真。不仅提高了我们的学习兴趣,也让我

28、真正懂得,要 理论联系实际,对于以前学习的东西,如果不真正自己动手做一回,是很难真正 弄懂的,只有自己认认真真动手做一回,学以致用,才能算是真正搞懂。则觎惬靠痪K晖园栋洸。附录1.参考文献1高伟.单片机原理及应用M.北京:国防工业出版社,2008年.2蔡朝阳.单片机控制实习与专题制作M.北京:北航出版社,2006年.3范力旻.单片机原理及应用技术.电子工业出版社.4胡文金杨健.单片机应用技术实训教程.重庆大学出版社.5杨加国.单片机原理与应用及C51程序设计.清华大学出版社,2006年.6胡汉才.单片机原理与接口技术M.北京:清华大学出版社,1998年.7郭培源.电子电路及电子器件.高等教育出

29、版社,2003年.8张齐朱宁西.单片机应用系统设计实验(C51).电子工业出版社,2013年.2.原理图3 .元器件清单厅P名称数量规格型号1电阻1047012电阻54.7k3电阻13k41电阻110k15电阻11k6电容1100uf7电容110uf8电容1104pf9电容122pf101三极管58550111按键412DC电源座子113晶振112M14LED发光二极管2红色15LED发光二极管1绿色16数码管117温度传感器1DS18B20 118蜂鸣器119单片机1Stc89c5120芯片座于1Dip4021万能板14 .软件程序Main.h#ifndef MAIN_H_#define M

30、AIN_H_#include<reg51.h>#define uchar unsigned char#define uint unsigned intvoid delay1m(uint x);/ 延时函数声明void smg_scan();/显示函数声明uint read_temperature();读取温度数据函数声明void convert(uint dat);/ 转换函数声明void alarm_function();/ 报警函数声明#endif18B20.C#include"main.h"#include<intrins.h>#define

31、nops(); _nop_(); _nop_(); _nop_(); _nop_(); / 定义空指令 胀鳗弹奥秘舔户挛钮聪。sbit DQ = P2A3;/18b20 数据端sbit red=P2A1;bit flag;温度正负标记,0正,1负/= 时基为 1ms 的延时函数void delay1ms(uint a)while(a-);/=18b20复位函数=BW 峭寿朗诵帮废捕叫void rst_18b20()bit flag = 1;while(flag) while(flag) DQ = 1; delay1ms(1); DQ = 0;/拉低总线 delay1ms(50);DQ = 1;

32、delay1ms(6);flag = DQ;)delay1ms(40);flag = -DQ;)DQ = 1;)/= 写一字节=void write_byte(uchar dat)(uchar i;for(i = 0;i < 8;i+) (DQ = 1;_nop_();DQ = 0;nops(); /4usDQ = dat & 0x01;delay1m(6);dat>>=1;)DQ = 1;)/= 读一字节= uchar read_byte()(uchar dat,i;for(i = 0;i < 8;i+) (DQ = 1;_nop_();dat >>

33、;= 1;DQ = 0;nops(); /4usDQ = 1;/释放总线准备读nops(); /4usif(DQ)dat |= 0x80;delay1m(6);)DQ = 1;return(dat);)/=读出温度高低八位= uint read_temperature() uchar a,b;uint temp;rst_18b20();/复位 18B20write_byte(0xcc);/ 跳过 ROMwrite_byte(0x44);/ 启动温度转换delay1m(1);延时等待rst_18b20();/复位 18B20write_byte(0xcc);/ 跳过 ROMwrite_byte(

34、0xbe);/ 发读命令a = read_byte(); 彳氐字节b = read_byte();/高字节temp=(b<<8)|a;if(0=(temp&0x8000)flag=0;/ 正else if(0x8000=(temp&0x8000)flag=1;/ 负temp=temp+1;temp=temp*0.0625*10+0.5;保留一位小数,4舍5入,扩大10倍,显示时加个小数点 禀 虚媛赈维跻脓扩案。return(temp);Main.C上限要大于下限,上限最大120 C,下限最小1C/温度测量范围15c -42C,负温度时最高位显示“”,正温度时直接显示

35、温度#include"main.h"#define led P0/数码管段选sbit s1=P1A0;sbit s2=P1A1;sbit s3=P1A2;sbit s4=P1A3;/ 调整,+ ,-,确定,按下调整键进入上限设置,延时一小会自动进入下限设置隔篁境鞋噩规呜旧指sbit red=P2Al;sbit green=P2A0;/上下限指示或者报警指示sbit wei4=P2A7;sbit wei3=P2A6;sbit wei2=P2A5;sbit wei1=P2A4;位选 com4-coml 渤氯唠麓茯SIsbit alarm=P2A2;蜂鸣器控制端uchar cod

36、e display13 = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff,0x7f);/数码管驱动信号 0-9,-,灭,点钢抽影魁T荣产涛BB蔺。uchar buf4=10,10,10,10; 数码管显示数据缓存,初始显示 高位-低位慨I财悔触乐鹏烬解暗。uint dat;/温度数据缓存假设得到的是 1234显示时123.4uchar num=0;/上下限调整标记,1上限,2下限 uint down=5,up=25;/ 下上限初始值 5C-25 C , extern bit flag;正负温度标记,0正,1负 void

37、main() uchar i;down*=10;up*=10;/扩大方便显示 dat=read_temperature();/ 读温度 delay1m(600);while(1) dat=read_temperature();/ 读温度 convert(dat);/ 转换数据 smg_scan();显示 alarm_function();/ 报警 if(s1=0) delay1m(3); if(s1=0) num+;alarm=1;进入上下限设置要关蜂鸣器 while(!s1);等待按键弹起 if(num=1)上限设置 convert(up);num=2;red=0;green=1; do s

38、mg_scan(); if(s2=0)/ + delay1m(3); if(s2=0) up+; if(up>1200)up=250; while(!s2);/等待按键弹起 convert(up); else if(s3=0)/ delay1m(3);if(s3=0)up-;if(up<=down)up=250; while(!s3);/等待按键弹起 convert(up);while(s4);/ 确定alarm=0;delay1m(500);alarm=1;red=1;/延时一小会蜂鸣器提示,进入下限设置 !饱兖争音旨癞别演。if(num=2)下限设置convert(down);num=0;green=0;red

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论