水温检测报警毕业论文.docx

上传人:哈尼dd 文档编号:3954580 上传时间:2019-10-11 格式:DOCX 页数:31 大小:523.94KB
返回 下载 相关 举报
水温检测报警毕业论文.docx_第1页
第1页 / 共31页
水温检测报警毕业论文.docx_第2页
第2页 / 共31页
水温检测报警毕业论文.docx_第3页
第3页 / 共31页
水温检测报警毕业论文.docx_第4页
第4页 / 共31页
水温检测报警毕业论文.docx_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《水温检测报警毕业论文.docx》由会员分享,可在线阅读,更多相关《水温检测报警毕业论文.docx(31页珍藏版)》请在三一文库上搜索。

1、摘 要本设计采用的主控芯片是宏晶科技的STC89C52单片机,数字温度传感器是DALLAS公司的DS18B20。本设计用数字传感器DS18B20测量温度,测量精度高,传感器体积小,使用方便。所以本次设计的数字温度计在工业、农业、日常生活中都有广泛的应用。单片机技术已经广泛应用社会生活的各个领域,已经成为一种非常实用的技术。51单片机是最常用的一种单片机,而且在高校中都以51单片机教材为蓝本,这使得51单片机成为初学单片机技术人员的首选。本次设计采用的STC89C52是一种flash型单片机,可以直接在线编程,向单片机中写程序变得更加容易。本次设计的数字温度计采用的是DS18B20数字温度传感器

2、,DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。本设计根据设计要求,首先设计了硬件电路,然后绘制软件流程图及编写程序。本设计属于一种多功能温度计,温度测量范围是-55到125。温度值的分辨率可以被用户设定为9-12位,可以设置上下限报警温度,当温度不在设定的范围内时,就会启动报警程序报警。本设计的显示模块是用四位一体的数码管动态扫描显示实现的。在显示实时测量温度的模式下还可以通过查询按键查看设定的上下限报警温度。 关键词:单片机、数字温度计、DS18B20、STC89C52Abstract

3、This design adopts the main control chip is macrocrystalline STC89C52 single-chip computer technology, digital temperature sensor DS18B20 is DALLAS company. This design USES digital temperature sensor DS18B20 measurement, high measuring precision, sensors, small volume, easy to use. So the design of

4、 digital thermometer in industry, agriculture, daily life has a wide range of applications.Single chip microcomputer technology has been widely used in the all fields of social life, has become a very useful technique. 51 single chip microcomputer is the most commonly used one kind of single chip mi

5、crocomputer, and in the colleges and universities in teaching materials based on 51 single-chip microcomputer and this makes 51 single chip microcomputer of choice for beginners microcontroller technology personnel. This design USES the microcontroller STC89C52 is a flash type, can be directly onlin

6、e programming, it easier to write programs to the single chip microcomputer. The design of digital thermometer USES DS18B20 digital temperature sensor, DS18B20 is a network of high precision digital temperature sensor, since it has the distinct advantage of the single bus, enables users to easily as

7、semble a sensor network, and can make multi-point temperature measurement circuit is simple and reliable.This design according to the design requirements, first, design the hardware circuit, and software flow chart and program. This design belongs to a kind of multi-functional thermometer, temperatu

8、re measurement range is - 55 to 125 . The resolution of the temperature can be set by the user for 9-12, you can set the upper and lower alarm temperature, when the temperature is beyond the scope of the set, the alarm will start alarm procedures. The design of the display module is made of four int

9、egrated digital tube dynamic scanning display. The display mode of real-time measurement of temperature can be controlled by the query button to see alarm temperature setting of upper and lower limits.Keywords: single chip microcomputer, digital thermometer DS18B20, STC89C52目 录摘 要错误!未定义书签。ABSTRACT-

10、2 -第1章 绪 论错误!未定义书签。1.1 本论文的背景和意义错误!未定义书签。1.2 本论文的主要方法和研究进展错误!未定义书签。1.3 本论文的主要内容错误!未定义书签。1.4 本论文的结构安排错误!未定义书签。第2章 各章题序及标题小2号黑体错误!未定义书签。2.1 各节点一级题序及标题小3号黑体错误!未定义书签。2.1.1 各节的二级题序及标题4号黑体错误!未定义书签。2.2 页眉、页脚说明错误!未定义书签。2.3 段落、字体说明错误!未定义书签。2.4 公式、插图和插表说明错误!未定义书签。结 论错误!未定义书签。致 谢错误!未定义书签。参考文献错误!未定义书签。附 录 1 标题错

11、误!未定义书签。附 录 2 标题错误!未定义书签。1 系统总体方案及硬件设计1.1设计要求:()基本要求 具有实时获取水温功能; 能够自动判断实际温度是否达到限值,并自动报警控制继电器;( 2 ) 创新要求 用户能够通过按键根据自己情况设置限值并保存起来;1.2 各模块选择与论证1.2.1.控制模块本设计采用STC89C52芯片作为硬件核心,该芯片采用Flash ROM,内部具有8KB ROM存储空间,相对于本设计而言程序存储空间完全够用。89C52是INTEL公司MCS-51系列单片机中基本的产品,它采用ATMEL公司可靠的CMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HC

12、MOS产品。它结合了CMOS的高速和高密度技术及CMOS的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统,属于89C51增强型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能,适合于类似马达控制等应用场合。89C52内置8位中央处理单元、512字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。此外,89C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据

13、,时钟振荡停止,同时停止芯片内其它功能。89C52有PDIP(40pin)和PLCC(44pin)两种封装形式。1.2.2.显示模块的选择与论证方案一:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较合适,如采用在显示数字显得太浪费,成本较高,所以不采用该方案。方案二:采用LED数码管动态扫描显示,LED数码管价格适中,而却对于显示数字比较合适,控制方式简单,电路只需添加一个三极管驱动电路就可以实现显示。方案三:采用LCD1602液晶显示屏,液晶显示功能强大,可以显示2*16个字母或数字或者自定义字符,价格也比较合理,需要的接口只需要9根就可以完成。成本相对比较

14、高,对于本设计显示内容的不多采用该方案显得有点大材小用。因此综合上述最终决定采用数码管动态扫描方式作为显示。1.2.3.温度传感器模块选择与论证方案一:使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行A/D转换。此设计方案需用A/D转换电路,增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大的测量误差。方案二:采用模拟温度传感器AD590,该传感器的输出电流会随温度的变化而变化,从而需要设计电路转换成电压的变化,进而通过A/D转换后接到单片机中,这种方法固然麻烦,而却费用比较高,而却在电流

15、电压转换和A/D转换中会产生误差。方案三:采用数字式防水型温度传感器DS18B20,此类传感器为数字式传感器而且仅需要一条数据线进行数据传输,易于与单片机连接,可以去除A/D模块,降低硬件成本,简化系统电路。另外,数字式温度传感器还具有测量精度高、测量范围广等优点。所以最终我们采用数字防水型DS18B20作为温度采集芯片。1.2.4 编程语言的选择和论证对于指令系统兼容MCS51系列的单片机,其较为常用的编程语言有C和汇编语言。C语言是一种结构化编程语言,可产生压缩代码。C语言在硬件结构上仅要求对单片机存储器等硬件结构有初步了解,寄存器分配,不同存储器寻址及数据类型等细节可由编译器管理。C语言

16、程序本身并不依赖于机器硬件系统,基本上不做修改就可以在不同种类的单片机之间相互移植。程序可划分为不同函数,结构规范,可读性强。C语言提供的库包含许多标准子程序,具有很强的数据处理能力。C语言作为一种方便、容易掌握的语言得到了广泛的应用,是目前单片机编程中应用最多的语言之一。汇编语言同样在单片机编程中得到了广泛的应用,其具有简单实用,控制灵活,实时性强,程序效率高等特点。汇编语言有着极强的硬件控制能力,用其它的高级语言所无法控制的软硬件细节,在汇编语言中都可以实现,但是编程复杂。综合考虑,软件的设计语言选择C语言。1.2.5 调节模块介绍调节模块是由四个按键接地后直接接单片机的I/O口完成的。当

17、按键没有按下时单片机管脚相当于悬空,默认下为高电平,当按键按下时相当于把单片机的管脚直接接地,此时为低电平。程序设计为低电平触发。1.2.5 继电器模块介绍继电器模块是由由一个PNP型的三极管9015驱动。当输入低电平时三极管导通,继电器吸合,从而控制外围器件。1.2.6 报警模块介绍报警模块是由一个PNP型的三极管9015驱动的5V蜂鸣器,和一个加一限流电阻的发光二极管组成的。报警时蜂鸣器间歇性报警,发光二极管闪烁。2.系统的硬件设计与实现2.1 系统总体设计框图由于DS18B20数字温度传感器具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠,所以

18、在该设计中采用DS18B20数字温度传感器测量温度。 温度计电路设计总体设计框图如图2-1所示,控制器采用单片机STC89C52,温度传感器采用DS18B20,显示采用4位LED数码管,报警采用蜂鸣器、LED灯实现,按键用来设定报警上下限温度并将设置好的值保存在STC89C52的EEPROM中(具有掉电保护功能)。数码管显示STC89C52主控芯片DS18B20温度采集蜂鸣器报警按键调节限值LED灯提示图2-1 温度计电路总体设计框图2.2 系统硬件概述本系统所设计的数字温度计采用的是DS18B20数字温度传感器测温,DS18B20直接输出的就是数字信号,与传统的温度计相比,具有读数方便,测温

19、范围广,测温准确,上下限报警功能。其输出温度采用LED数码管显示,主要用于对测温比较准确的场所。该设计控制器使用的是51单片机STC89C52,STC89C52单片机在工控、测量、仪器仪表中应用还是比较广泛的。测温传感器使用的是DS18B20,DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。显示是用4位共阴极LED数码管实现温度显示,LED数码管的优点是显示数字比较大,查看方便。蜂鸣器用来实现当测量温度超过设定的上下限时的报警功能。2.3 主要单元电路的设计2.3.1单片机主控制模块的设计

20、STC89C52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3, MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端. 如图-2 所示图-2 主控制系统 2.2.2 DS18B20电路设计如图-3所示。采用数字式温度传感器DS

21、18B20,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用0.7与DS18B20的I/O口连接加一个上拉电阻,Vcc接电源,Vss接地。图-3 DS18B20温度采集DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。DS18B20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3

22、.05.5v;零待机功耗;温度以9或12位二进制数字表示;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; DS18B20采用3脚TO92封装或8脚SO或SOP封装,其其封装形式如图4所示。图4 DS18B20的封装形式DS18B20的64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。DS18B20温度传感器的内部存储器

23、还包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM。高速暂存RAM的结构为8字节的存储器,结构如图5所示。图5 DS18B20的高速暂存RAM的结构头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率,DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值,该字节各位的定义如表2-1所示。表2-1:配置寄存器D7 D6 D5 D4 D3 D2 D1 D0TMR1R011111配置寄存器的低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS1

24、8B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率,“R1R0”为“00”是9位,“01”是10位,“10”是11位,“11”是12位。当DS18B20分辨率越高时,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读

25、数据时低位在先,高位在后,数据格式以0.0625LSB形式表示。当符号位s0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位s1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。输出的二进制数的高5位是符号位,最后4位是温度小数点位,中间7位是温度整数位。表2-2是一部分温度值对应的二进制温度数据。表2-2 DS18B20输出的温度值温度值二进制输出十六进制输出+1250000 0111 1101 000007D0h+850000 0101 0101 00000550h+25.06250000 0001 1001 00010191h+10.1250000 0

26、000 1010 001000A2h+0.50000 0000 0000 10000008h00000 0000 0000 00000000h-0.51111 1111 1111 1000FFF8h-10.1251111 1111 0101 1110FF5Eh-25.06251111 1110 0110 1111FF6Fh-551111 1100 1001 0000FC90hDS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。若TTH或TTL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索

27、。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。2.2.3 显示电路设计显示电路是由四位一体的共阴数码管进行显示的,数码管由三极管9015驱动。四位一体的共阴数码管的管脚分布图如图6所示。图6 四位一体的共阴数码管管脚分布图显示电路的总体设计如图7所示。图7 显示电路2.2.4 按键电路设计按键电路是用来实现调节设定报警温度的上下限和查看上下报警温度的功能。电路原理图如图8所示。图8 按键电路原理图2.2.5 报警电路设计报警电路是在测量温度大于上限或小于下限时提供报

28、警功能的电路。该电路是由一个蜂鸣器和一个红色的发光二极管组成,具体的电路如图9所示。图9 报警电路原理图2.2.6 继电器模块介绍继电器模块是由由一个PNP型的三极管9015驱动。当输入低电平时三极管导通,继电器吸合,从而控制外围器件。电路图如图10所示:图10 继电器电路图3 软件设计3.1 DS18B20程序设计3.1.1 DS18B20传感器操作流程根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤: 每一次读写之前都要对DS18B20进行复位操作 复位成功后发送一条ROM指令 最后发送RAM指令这样才能对DS18B20进行预定的操作。复位要求主C

29、PU将数据线下拉500s,然后释放,当DS18B20收到信号后等待1660s左右,后发出60240s的存在低脉冲,主CPU收到此信号表示复位成功。DS18B20的操作流程如图3-1所示。如图3-1 DS18B20的操作流程3.1.2 DS18B20传感器的指令表DS18B20传感器的操作指令如表3-1所示。传感器复位后向传感器写相应的命令才能实现相应的功能。表3-1 DS18B20的指令表指 令指令代码功 能读ROM0x33读DS1820温度传感器ROM中的编码(即64位地址)符合 ROM0x55发出此命令之后,接着发出 64 位 ROM 编码,访问单总线上与该编码相对应的 DS1820 使之

30、作出响应,为下一步对该 DS1820 的读写作准备。搜索 ROM0xF0用于确定挂接在同一总线上 DS1820 的个数和识别 64 位 ROM 地址。为操作各器件作好准备。跳过 ROM0xCC忽略 64 位 ROM 地址,直接向 DS1820 发温度变换命令。适用于单片工作。告警搜索命令0xEC执行后只有温度超过设定值上限或下限的片子才做出响应。温度变换0x44启动DS1820进行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节RAM中。读暂存器0xBE读内部RAM中9字节的内容写暂存器0x4E发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后

31、,是传送两字节的数据。复制暂存器0x48将RAM中第3 、4字节的内容复制到EEPROM中。重调 EEPROM0xB8将EEPROM中内容恢复到RAM中的第3 、4字节。读供电方式0xB4读DS1820的供电模式。寄生供电时DS1820发送“ 0 ”,外接电源供电 DS1820发送“ 1 ”。3.1.3 DS18B20传感器的初始化时序DS18B20传感器为单总线结构器件,在读写操作之前,传感器芯片应先进性复位操作也就是初始化操作。DS18B20的初始化时序如图10所示。首先控制器拉高数据总线,接着控制器给数据总线一低电平,延时480s,控制器拉高数据总线,等待传感器给数据线一个60-240s

32、的低电平,接着上拉电阻将数据线拉高,这样才初始化完成。图10 DS18B20初始化时序3.1.4 DS18B20传感器的读写时序 1.写时序DS18B20传感器的读写操作是在传感器初始化后进行的。每次操作只能读写一位。当主机把数据线从高电平拉至低电平,产生写时序。有两种类型的写时序:写“0”时序,写“1”时序。所有的时序必须有最短60s的持续期,在各个写周期之间必须有最短1s的恢复期。在数据总线由高电平变为低电平之后,DS18B20在15s至60s的时间间隙对总线采样,如果为“1”则向DS18B20写“1”, 如果为“0”则向DS18B20写“0”。如图3-2的上半部分。对于主机产生写“1”时

33、序时,数据线必须先被拉至低电平,然后被释放,使数据线在写时序开始之后15s内拉至高电平。对于主机产生写“1”时序时,数据线必须先被拉至低电平,且至少保持低电平60s。2.读时序在数据总线由高电平变为低电平之后,数据线至少应保持低电平1s,来自DS18B20的输出的数据在下降沿15s后有效,所以在数据线保持低电平1s之后,主机将数据线拉高,等待来自DS18B20的数据变化,在下降沿15s之后便可开始读取DS18B20的输出数据。整个读时序必须有最短60s的持续期。如图11的下半部分。读时序结束后数据线由上拉电阻拉至高电平。图11 DS18B20传感器的读写时序3.1.5 DS18B20获取温度程

34、序流程图DS18B20的读字节,写字节,获取温度的程序流程图如图12所示。图12 DS18B20程序流程图3.2 显示程序设计显示电路是由四位一体的数码管来实现的。由于单片机的I/O口有限,所以数码管采用动态扫描的方式来进行显示。程序流程图如图13所示。图13 显示程序流程图3.3 按键程序设计按键是用来设定上下限报警温度的。具体的程序流程图如图14所示。图14 按键程序流程图四. 系统测试4.1硬件测试温度检测的电路系统比较简单,对于焊接方面更是不可轻视,庞大的电路系统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交线较多,对于各种锋利的引脚要注意处理,否则会刺被带有包皮的导线,

35、则会对电路造成短路现象。在本设计调试中遇到了很多的问题。回想这些问题只要认真多思考都是可以避免的,以下为主要的问题:(1) 在硬件设计好后把软件程序写好后下载进单片机后数码管不显示。经过自己检测电路发现电路连接都没有发现问题,反复检查程序也没有发现问题,心想是不是P0口驱动能力不强,可是想已经加上拉电阻了。经过查阅资料发现排阻具有方向,将排阻焊锡来换一下方向,重新上电后果然显示了。所以对于有方向的元器件焊接需要特别的注意。4.2软件测试电子成年历是多功能的数字型,可以看当前日期(阴、阳历),时间,还有温度的仪器。电子成年历功能很多,所以对于它的程序也较为复杂,所以在编写程序和调试时出现了相对较

36、多的问题。最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件。在软件的调试过程中主要遇到的问题如下:1.数码管动态显示时发现只会显示一个数字。经过检查程序发现数码管动态扫描显示时延时不够,通过改大延时解决了问题。4.3 测试结果结论经过多次的反复测试与分析,可以对电路的原理及功能更加熟悉,同时提高了设计能力与及对电路的分析能力.同时在软件的编程方面得到更到的提高,对编程能力得到加强.同时对所学的知识得到很大的提高与巩固.五 设计体会经过将近一个月的设计、焊接、编程、调试,我们终于完成了数字温度计的设计,基本能够达到设计要求,而且还设计了一些其他功能,比可以开启或消除按键音功能,开机

37、动画功能,查看报警上下限温度功能。此次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我们所学到的知识运用到实践中去。在大学课堂的学习只是给我们灌输专业知识,而我们应把所学的知识应用到我们现实的生活中去。这次的设计不仅使我们将课堂上学到的理论知识与实际应用结合了起来,而且使我们对电子电路、电子元器件、印制电路板等方面的知识有了更进一步的认识,同时在软件编程、焊板调试、相关调试仪器的使用等方面得到较全面的锻炼和提高,为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的基础。此次单片机设计也为我们以后进行更复杂的单片机系统设计提供了宝贵的经验。在本次设计的过程中,

38、我们遇到不少的问题,刚开始焊好的板子下不进去程序,经过一再仔细的检查,才发现是在下载口处出了问题,由于焊盘口比较小,排针插不进去,最后使了很大力气才插进去,插进去后才发现坏了,结果在去排针的时候把焊盘给去下来了,最后只能在旁边将下载口引了出来。还有就是文章中提到的蜂鸣器驱动问题等等。经过此次的硬件制作与调试,锻炼了我们的动手实践能了。本次设计的另一个重点就是软件程序的设计,其中需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论,有些东西是很难理解的,更谈不上掌握。通过此次的综合设计,我们初步掌握了单

39、片机系统设计的基本原理。充分认识到理论学习与实践相结合的重要性,对于书本上的很多知识,不但要学会,更重要的是会运用到实践中去。在以后的学习中,我们会更加注重实践方面的锻炼,多提高自己的动手实践能力。致谢词 姓名:XX参考文献【1】 朱定华,戴淑萍,单片机微机原理与应用M,清华大学出版社.2003【2】 刘勇 编 数字电路 电子工业出版社 2004【3】 陈正振 编 电子电路设计与制作 广西交通职业技术学院信息工程系 2007【4】 杨子文 编 单片机原理及应用 西安电子科技大学出版社 2006【5】 王法能 编 单片机原理及应用 科学出版社 2004【6】 谭浩强.C程序设计(第三版).北京:

40、清华大学出版社,2005.7 【7】 余发山,王福忠.单片机原理与应用技术.徐州:中国矿业大学出版社,2008.6 【8】 求是科技.单片机典型模块设计实例导航.北京:人民邮电出版社,2005.5 【9】 求是科技.8051系列单片机C程序设计完全手册.北京:人民邮电出版社,2006.4 【10】 于永,戴佳,刘波.51单片机C语言常用模块与综合系统设计实例精讲(第2版).北京:电子工业出版社,2008.10 附录一:原理图附录二:程序Mian.c:#include#include #include#include#define uchar unsigned char#define uint

41、unsigned int/*灯、蜂鸣器、按键引脚定义*/sbit led_shang = P32;sbit led_xia = P33;sbit relay = P35;sbit buzz = P26;sbit key_set = P12;sbit key_jia = P11;sbit key_jian = P10;/*全局变量定义*/uchar Temperature_up,Temperature_down;/存储温度上、下限值uint set_f; /设置模式标志位/*毫秒延时函数*/void delayms(uint ms)unsigned char i=100,j;for(;ms;ms

42、-)while(-i)j=10;while(-j);/*按键检测函数*/void scan(void)/设置键,不支持连按if(key_set=0)delayms(7);if(key_set=0)led_shang=1;/关闭上限报警灯led_xia=1;/关闭下限报警灯buzz=1; /关闭蜂鸣器relay=1;/关闭继电器set_f+;if(set_f=3)set_f=0;EEPROM_delete(0x2002);/擦除扇区EEPROM_write(0x2002,Temperature_up);/写入上限值数据保存EEPROM_delete(0x2202); /擦除扇区EEPROM_wr

43、ite(0x2202,Temperature_down);/写入下限值保存if(set_f=1) /选择设置、显示上限值display2(Temperature_up/1000,Temperature_up%1000/100,Temperature_up%100/10,Temperature_up%10);if(set_f=2) /选择设置、显示下限值display2(Temperature_down/1000,Temperature_down%1000/100,Temperature_down%100/10,Temperature_down%10);while(!key_set);/检测按键

44、松开/加值键,支持连按if(key_jia=0&set_f!=0)delayms(7);if(key_jia=0&set_f=1)/设置上限值Temperature_up+; /上限自加if(Temperature_up125)Temperature_up=125;display2(Temperature_up/1000,Temperature_up%1000/100,Temperature_up%100/10,Temperature_up%10);/显示if(key_jia=0&set_f=2)/设置下限值Temperature_down+; /下限自加if(Temperature_down125)Temperature_down=125;display2(Temperature_down/1000,Temperature_down%1000/100,Temperature_down%100/10,Temperature_down%10);/显示/减值键,支持连按if(key_jian=0&set_f!=0)delayms(7);if(k

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

当前位置:首页 > 其他


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