基于51单片机的多路温度控制系统课程设计_第1页
基于51单片机的多路温度控制系统课程设计_第2页
基于51单片机的多路温度控制系统课程设计_第3页
基于51单片机的多路温度控制系统课程设计_第4页
基于51单片机的多路温度控制系统课程设计_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

智能化仪器仪表课程设计题 目基于51单片机的仓库温度控制系统学 院 机械工程学院专 业 测控技术与仪器学生姓名学号201年级2012级指导教师2015 年6月20日摘要:本设计为基于C52单片机的4路DS18B20、LCD1602显示、开关量控制系统,采用模块化、层次化设计。如今运用DS18B20数字式温度传感器测温度,省略模电转换,将数字信号直接送给单片机调用。采用LC1602液晶显示方式,使显示更加方便简介,接着使用单片机AT89C51I/O口交流电机开和关,构建了一个集显示、检测与控制于一体的单片机应用系统。此外,该系统自行设计了一个5V稳压电源,不仅可在220V交流中供电,而且能够接受5V电压直接供电。关键词:单片机;液晶显示;数字式温度传感器;开关量控制电路2目录3第一章绪论...........................................................................................................................................................11.1课题的研究背景...........................................................................................................................................11.2课题的研究内容及目标...............................................................................................................................11.3本文的结构组织...........................................................................................................................................1第二章系统方案设计及论证.....................................................................................................................................22.1总体方案设计................................................................................................................................................22.2方案比较与论证.............................................................................................................................................22.2.1采集电路............................................................................................................................................22.2.2处理器选择........................................................................................................................................32.2.3显示部分...........................................................................................................................................3第三章系统的电路设计与元器件介绍...................................................................................................................43.1系统的电路设计...........................................................................................................................................43.1.1最小系统电路...........................................................................................................................................43.1.2温度采集电路...........................................................................................................................................53.1.3控制系统电路...........................................................................................................................................53.1.4显示系统电路...........................................................................................................................................63.1.5报警电路...................................................................................................................................................63.2元器件介绍...................................................................................................................................................73.2.1单片机介绍...............................................................................................................................................73.2.1.1单片机主要性能...........................................................................................................................73.2.1.2单片机各引脚功能介绍...............................................................................................................73.2.1.3单片机特殊功能寄存器介绍.......................................................................................................83.2.2DS18B20简介............................................................................................................................................93.2.2.1DS18B20主要特性............................................................................................................................93.2.2.2DS18B20内部结构....................................................................................................................103.2.3LCD1602简介..........................................................................................................................................123.2.3.1LCD1602主要技术参数............................................................................................................123.2.4继电器简介.............................................................................................................................................14第四章系统软件设计...............................................................................................................................................154.1程序流程图.................................................................................................................................................154.2程序设计.....................................................................................................................................................164.2.1DS18B20的程序设计..................................................................................................................164.2.2LCD1602液晶的程序设计..........................................................................................................174.2.3主程序设计.................................................................................................................................1718附录一原理图...........................................................................................................................................................20附录二仿真图...........................................................................................................................................................21附录三程序代码.......................................................................................................................................................223第一章 绪论1.1 课题的研究背景通过课程设计,使学生进一步加深理解单片机的工作原理,通过实习制作掌握引入外部中断的方法及其中断服务程序的编程方法; 掌握定时器的使用及其中断服务程序的编写方法; 从而了解如何构成系统的主程序; 通过实习制作掌握单片机应用系统的制作工艺及调试方法, 进一步理解单片机系统设计及开发方法,从而使学生具备设计单片机应用系统的能力。1.2 课题的研究内容及目标基于单片机的4路温度采集控制系统,系统运行时,循环扫描显示对应的 DS18B20温度传感器的温度,为了显示清晰,要求循环逐次显示温度;每隔 10ms,采集一次温度;当温度高于20摄氏度后,单片机控制交流电机(电风扇)开始工作,当温度降到 20度以下,控制交流电机停止工作。交流电机的开关,采用继电器代替,所以单片机只需控制继电器的开断即可控制交流电机的工作与否。1.3 本文的结构组织本文的组织结构安排如下:第一章绪论,扼要阐明本课题的研究背景、研究目的、研究意义,以及要实现的目标。第二章系统设计方案及论证,通过分析论证,选出最合适的设计方案,介绍总体方案。第三章主要讲述整个体系硬件电路的设计及元器件的介绍,包括单片机的选择、各个器件的选择以及显示电路的设计。第四章是软件设计,基于前面的硬件系统,设计程序。1第二章 系统方案设计及论证2.1总体方案设计根据课题要求实现,该系统主要由采集系统、显示系统和控制系统组成,以 AT89C52单片机为核心,设计。图 2-1图:最小系统 显示系统报警系统AT89C52采集系统 控制系统图2-1系统图2.2方案比较与论证2.2.1采集电路方案一:使用传统温度传感器。传统的温度检测大多以热敏电阻为传感器,采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻可靠性差,测量温度准确率低,对于1摄氏度的信号是不适用的,还得经过专门的接口电路转换成数字信号才能由微处理器进行处理。对于这类传感器,使用起来较麻烦,但价格较便宜。方案二:使用数字式温度传感器。数字温度传感器使用集成芯片,采用单总线技术,其能够有效的减小外界的干扰,提高测量的精度,同时,它可以直接将被测温度转化成串行数字信号供微机处理,接口简单,使数据传输和处理简单化。部分功能电路的集成,使总体硬件设计更简洁,能有效地降低成本,搭建电路和焊接电路时更快,调试也更方便简单化,这也就缩短了开发的周期使用起来方便,但价格昂贵。经过比较,从系统技术参数要求和功能仿真方面考虑,数字式温度传感器比传统温度器功能更全面,使用时更方便,仿真时也更简便,故选用方案二。本次设计采用市面上运用较为广泛的数字式温度传感器——DS18B20。22.2.2处理器选择方案一:采用AT89C52单片机作为处理器,能达到要求,但其内存过小,处理精度较低,不是最好的选择;方案二:采用TI公司的各种单片机,虽然能很好的达到设计的要求,但其成本过高,且程序较复杂,不适宜与本次设计。通过对比,方案一的AT89C52的功能完全能够符合题目的各个部分和发挥部分的设计,故选用方案一2.2.3 显示部分方案一:采用LED数码管,其操作简单,显示直观。不仅程序的设计简易,而且对周围的环境要求很低,方便维护方案二:使用LCD液晶,它具有体积小、低功耗、显示丰富等优点。电路连接简单,价格比较高。总的来说,LCD液晶显示电路连接简单且能满足设计需求,又 LCD1602上课时学过,不需再单独学习其他 LCD显示程序编写要求,所以本设计选用 LCD液晶显示。3第三章 系统的电路设计与元器件介绍3.1 系统的电路设计整个设计的电路主要包括了最小系统电路、温度采集系统电路、控制系统电路及显示系统电路等几部分电路组成。最小系统电路晶振电路和复位电路与单片机连接构成最小系统电路,如图 3-1图3-1最小系统电路4温度采集电路图3-2温度采集电路控制系统电路图3-3控制系统电路5显示系统电路图3-4显示系统电路报警电路图3-5报警电路63.2 元器件介绍单片机介绍单片机主要性能AT89C52是由ATMEL公司生产的52单片机的一个型号。它具有高性能CMOS8位、低电压的优点,使用了该公司的高密度、非易失性存储技术生产,完美兼容 MCS-52指令系统,包括 8位中央处理器和 Flash存储单元,AT89C51功能强大、试用范围非常广。主要功能特性:引脚完全兼容MCS-52产品具有4K字节的可重擦写 Flash闪存1000次擦写周期 2 个读写中断口线全静态操作:0Hz-24MHz三级加密程序存储器128*4字节内部RAM 32可编程双向I/O线3个16位定时器/计数器2个外部中断源,共 6个中断源可编程串行UART通道低功耗的空间和掉电模式软件设置睡眠和唤醒功能单片机各引脚功能介绍AT89C52由40脚双列直插包装的 8位通用微处理器组成,使用常用的 C52内核,它主要用于会聚调整功能的控制。功能主要有对会聚主 IC内部寄存器、数据 RAM及外部接口等部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号 IR的接收解码及与主板 CPU通信等。·P0口:P0口是8位的漏极开路型双向的 I/O 口,即为地址/数据总线复用口。如果被当作输出口,每位可以吸收电流的形式驱动 8个TTL逻辑门电路,对端口 P0写“1”时,起作用变为高阻抗输入。当需要访问外部数据存储器或程序存储器时, 这组口线分时转换地址(低8位)和数据总线复用,期间可以激活内部上拉电阻。在 Flash 编程时,P0口负责接受指令7字节,但是在程序校验的时候,需要输出指令字节,校验时需要外接上拉电阻。·P1口:P1是一个带在内部上拉电阻的 8位的双向I/O 口,P1的输出缓冲级可驱动(吸取或输出电流)4个TTL逻辑门电路。对端口写“1”,经过里面的上拉电阻把端口拉至高电平,就可作输入口使用。作输入口用时,因为里面存在上拉电阻,某引脚被外部的信号拉低时会输出一个电流(IIL) 。与AT89C51不同之处是,P1.0和P1.1还有作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)的功能,Flash 编程和程序校验的时候,P1接收低8位地址。·P2口:P2是一个带有上拉电阻的8位双向的I/O口,P2的输出缓冲级能够驱动(吸收或输出电流)4个TTL逻辑门电路。将端口P2写“1”,通过内部的上拉电阻来港的高水平,此时,可作为输入,作为输入使用时,因为内部上拉电阻,如果某个引脚被外部信号拉低的时候就会输出一个电流(IIL) 。当访问外部程序存储器或 16位地址的外部数据存储器时, P2口送出高8位的地址数据。当访问8位地址的外部数据存储器时,P2口输出P2锁存器的内容。编程或检查,P2也获得了很高的地址和控制信号。·P3口:P3口是一组带有内部上拉电阻的 8位双向I/O 口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,此外,它的第二功能P3口还接收一些可以用于Flash闪速存储器编程与程序校验的控制信号才是最重要的。单片机特殊功能寄存器介绍·数据存储器:AT89C52有256个字节内部RAM,80H-FFH高128个字节与特殊功能寄存器(SFR)地址是重复的,虽然物理上分开,但是高 128字节的RAM与特殊功能寄存器的地址相同。当一条指令访问 7FH以上地址单元的时候,指令中使用不同的寻址方式, 即为究竟是访问高128字节RAM还是访问特殊功能寄存器是由寻址方式决定的。直接寻址方式对应的是访问特殊功能寄存器。·定时器0和定时器1:AT89C52的定时器0和定时器1的工作方式与AT89C51相同。·2定时器:定时器2是一个16位定时器/计数器。不仅仅可以当定时器用,而且可用作外部事件计数器,特殊功能的寄存器 T2CON的C/T2位负责选择它的工作方式。定时器 2一共有三种工作方式:捕获方式,向上或向下计数方式以及波特率发生器方式, T2CON的控制位来决定其工作方式。83.2.2DS18B20简介DS18B20温度传感器是美国达拉斯 (DALLAS)半导体公司推出的应用单总线技术的数字温度传感器[5]。该器件将半导体温敏器件、 A/D转换器、存储器等做在一个很小的集成电路芯片上。本设计中温度传感器之所以选择单线数字器件 DS18B20,是在经过多方面比较和考虑后决定的,主要有以下几方面的原因:(1)系统的特性:测温范围为 -55℃~+125℃,测温精度为士0.5℃;温度转换精度 9~12位可变,能够直接将温度转换值以 16位二进制数码的方式串行输出; 12位精度转换的最大时间为750ms;可以通过数据线供电,具有超低功耗工作方式。(2)系统成本:由于计算机技术和微电子技术的发展,新型大规模集成电路功能越来越强大,体积越来越小,而价格也越来越低。一支 DS18B20的体积与普通三极管相差无几,价格只有十元人民币左右。(3)系统复杂度:由于 DS18B20是单总线器件,微处理器与其接口时仅需占用 1个I/O端口且一条总线上可以挂接几十个 DS18B20,测温时无需任何外部元件,因此,与模拟传感器相比,可以大大减少接线的数量,降低系统的复杂度,减少工程的施工量。(4)系统的调试和维护:由于引线的减少,使得系统接口大为简化,给系统的调试带来方便。同时因为DS18B20是全数字元器件,故障率很低,抗干扰性强,因此,减少了系统的日常维护工作。DS18B20温度传感器只有三根外引线: 单线数据传输总线端口 DQ,外供电源线VDD,共用地线GND。DS18B20有两种供电方式:一种为数据线供电方式,此时 VDD接地,它是通过内部电容在空闲时从数据线获取能量,来完成温度转换,相应的完成温度转换的时间较长 [6]。这种情况下,用单片机的一个 I/O口来完成对 DS18B20总线的上拉。另一种是外部供电方式 (VDD接+5V),相应的完成温度测量的时间较短。3.2.2.1 DS18B20 主要特性DS18B20的引脚图如图 3-6所示。独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.0~5.5V;零待机功耗;温度以 9或12位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,9温度计不会因发热而烧毁,但不能正常工作。 DS18B20的引脚功能描述如表 3-1所示。图3-6DS18B20的引脚排列表3-1DS18B20引脚功能描述序号名称引脚功能描述1GND地信号2DQ数字输入输出引脚,开漏单总线接口引脚,当使用寄生电源时,可向电源提供电源3VDD可选择的VDD引脚,当工作于寄生电源时,该引脚必须接地3.2.2.2DS18B20内部结构DS18B20的内部框图如图 3-7所示。64位ROM存储器件独一无二的序列号。暂存器包含两字节(0和1字节)的温度寄存器,用于存储温度传感器的数字输出。暂存器还提供一字节的上线警报触发(TH)和下线警报触发(TL)寄存器(2和3字节),和一字节的配置寄存器( 4字节),使用者可以通过配置寄存器来设置温度转换的精度。暂存器的 5、6和7字节器件内部保留使用。第八字节含有循环冗余码( CRC)。10存储器和控制逻辑位和内部单线端口温度传感器暂存器上限触发电源探测下限触发位产生器图3-7DS18B20的内部框图该技术采用单根信号线,既可传输时钟,也能传输数据,而且是双向传输。适用于单主机系统,主机能够控制一个或多个从机设备,通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能释放该线,而让其他设备使用。单线通常要求外接一个 5K的上拉电阻,这样当该线空闲时,其状态为高电平。主机和从机之间的通讯分成三个步骤: 初始化单线器件、识别单线器件和单线数据传输 [7]。单线1—wire协议由复位脉冲、应答脉冲、写 0、写1、读0、读1,这几种信号类型实现,这些信号中除了应答脉冲其他都由主机发起,并且所有指令和数据字节都是低位在前。DS18B20直接将测量温度值转化为数字量提交给单片机,工作时必须严格遵守单总线器件的工作时序。表3-2部分温度值与DS18B20输出的数字量对照表温度值/℃数字输出(二进制)数字输出(十六进制)+125000001111101000007D0H+8500000101010100000550H+25.62500000001100100010191H+10.125000000001010001000A2H+0.500000000000010000008H000000000000000000000H-0.51111111111111000FFF8H-10.1251111111101101110FF5EH-25.6251111111101101111FF6FH-551111110010010000FC90H113.2.3LCD1602简介1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的 点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为 16X2,即可以显示两行,每行 16个字符液晶模块(显示字符和数字)。3.2.3.1 LCD1602主要技术参数管脚:1602采用标准的16脚接口,其中:1脚:GND为电源地2脚:VCC接5V电源正极3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。7~14脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。特性:3.3V或5V工作电压,对比度可调内含复位电路提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能有80字节显示数据存储器 DDRAM内建有192个5X7点阵的字型的字符发生器 CGROM8个可由用户自定义的 5X7的字符发生器CGRAM特征应用:12微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。操作控制注:关于E=H脉冲——开始时初始化 E为0,然后置E为1。字符代码0x00~0x0F为用户自定义的字符图形 RAM(对于5X8点阵的字符,可以存放 8组,5X10点阵的字符,存放 4组),就是CGRAM了。0x20~0x7F为标准的ASCII码,0xA0~0xFF为日文字符和希腊文字符,其余字符码(0x10~0x1F及0x80~0x9F)没有定义。以下是1602的16进制ASCII码表地址:读的时候,先读上面那行,再读左边那列,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。指令码:功能令:RR/DD6D5D4D3D2D1D0说明SW7清显示0000000001将DDRAM填满"20H",并且设定DDRAM的地址计数器(AC)到"00H"归位000000001*设定DDRAM的地址计数器(AC)到"00H",并且将游标移到开头原点位置;这个指令不改变DDRAM的内容显示开0000001DCB[D=1:整体显示ON],[C=1:游标关控制ON],[B=1:游标位置反白允许]指令进入模00000001I/DSI/D=1,光标或闪烁向右移动,AC增加式设置1。I/D=0,光标或闪烁向左移动,AC指令减少1,S整个显示移动光标或000001S/CR/L**光标或显示移位指令可使光标或显示显示移在没有读写数据的情况下,向左或向右位指令移动,指令不改变DDRAM的内容功能设00001DLNF**[DL=0/1:4/8位数据],[N=0/1,单行/双定行显示],[F=0/1,5*8/5*10点阵显示模式]设置0001ACACACACACACCGRAM地址设置指令设置CGRAMCGRA543210地址指针,M地址设定0010ACACACACACACDDRAM地址设置指令设置DDRAM地DDRA543210址。一行地址范围00H~4FH,两行13M地址DDRAM地址第一行00H~27H,第二行40H~67H,加上高2位,[一行:80H-A7H],[二行:C0H-E7H]读忙标01BACACACACACACACBF:忙标志位,BF=1,模块正在进行内志和地F6543210部操作,此时模块不接受任何外部指令址和数据。BF=0,模块可以接受外部的指令和数据;同时可以读出地址计数器(AC)的值。写10DD6D5D4D3D2D1D0将数据D7-D0写入到内部的RAMRAM7(DDRAM/CGRAM/IRAM/GRAM),将用指令户自定义的字符写入CGRAM中,D7~D5为000,D4~D0为5点的字模数据读11DD6D5D4D3D2D1D0从内部RAM读取数据RAM7D7——D0(DDRAM/CGRAM/IRAM/G指令RAM)继电器简介继电器(英文名称: relay)是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有 控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、 安全保护、转换电路等作用。电磁继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的。对于继电器的“常开、常闭”触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。继电器一般有两股电路,为低压控制电路和高压工作电路。其结构图如图3-8所示。14图3-8 电磁继电器结构图第四章 系统软件设计4.1 程序流程图在程序进行初始化后,开始反复执行如图 4-1所示流程的程序。15图4-1 程序流程图4.2 程序设计4.2.1 DS18B20的程序设计DS18B20的程序中主要包含以下函数:externvoidds18b20_init(void); // 初始化externunsignedchards18b20_readdata(void); // 读DS18b20的温度数据16externvoidds18b20_writecommand(unsignedcharcommand);//向DS18B20写命令字externvoidtemperature_process(unsignedchar,unsignedchar);//数值处理,把读回的温度分解成整数和小数部分,并转换成ASIC码xiaoshu_temp[5],zhen_temp[4];externunsignedchar*read_rom(void);//读DS18b20中ROMexternbitmatch_rom(unsignedchar*rom);//匹配ROM具体程序内容见附录三中。4.2.2LCD1602液晶的程序设计LCD1602的程序中主要包含以下函数:/****************************************************************功能:写LCD函数****************************************************************/voidLcd_Write(bitstyle,unsignedcharinput);/******************************************************************功能:LCD初始化*****************************************************************/voidLcd_Init(void);/******************************************************************功能:显示位置设置****参数:x-行;y-列******************************************************************/voidGotoXY(unsignedcharx,unsignedchary);/******************************************************************功能:LCD显示函数****参数:str-要显示的字符串指针******************************************************************/voidPrint(unsignedchar*str);voidprint_char(uchar);/******************************************************************功能:LCD清屏函数voidClrScreen(void);具体程序内容见附录三中。4.2.3 主程序设计在主程序中,实现了对温度的巡检,并把实时测到的温度显示在液晶显示屏上,在很多领域还是比较实用的。每一片DS18B20都有各自的固定的序列号,在仿真中,事先设定好各个DS18B20的序列号,将其写进程序中,依次进行匹配,从而实现巡检。主程序具体内容见附录三中。。17总结通过不懈的努力,终于完成了我的课程设计。在我开始做课程设计之前,我一直片面的觉得课程设计只是对大学这几年来所学的专业知识的简单的总结,但是在实践的过程中我发现我错了,因为课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的以一种提高。通过课程设计使我明白了我学到的知识只是知识宝库中的冰山一角,还有许多要学习18的地方。原来我总是感觉到已经把所有的东西都学到手了,什么都明白了,有些眼高手低。通过我在课程设计的实践过程,我懂得了活到老学到老这句名言的真正意义,学习是一个循序渐进的过程,不可能一蹴而就,不管是在以后的工作中、或者生活中都不能停止学习,不断的用知识武装自己,让自己全面发展,更能适应这个科技文化高速发展的世界。课程设计的过程,让我养成了独立思考的习惯,培养了我实在实际操作中动手的能力,我领悟到了在实践过程中摸索的困难与最终成功时的喜悦,这些对于我的信心或者是工作能力来说都是极大的鼓励与肯定,相信这些会对未来的工作和生活中有非常重要的影响。虽然我的课程设计是有些缺陷的,但我觉得在此过程中我收获了很多,最大的收获就是在生产实习的设计过程中所学到的财富,他会是我终身受益。在课程设计的过程中,我还深深体会到交流和相互讨论的重要性。向老师请教,就能够时刻确保在大的方向上我是朝对的方向走;与同学讨论,可以集思广益、可以迸发灵感,收获新方法。思想和信息的传递,确保了我的生产实习得以顺利完成。另外,我还总结出一个结论:知识要想实现其价值,必须由实践来完成!再次感谢老师和同学的指导。19附录一 原理图20附录二 仿真图21附录三 程序代码主程序#include<main.h>#include<18b20.h>#include<LCD.h>//#include<485.h>sbitwarning=P3^5;sbitgreenled=P3^6;//485 收发控制//ucharflag1; //signoftheresultpositiveornegativeucharj;inttemper[4];ucharcodestr4_sht11[]="max: min: ";sbitk1=P3^0;//setsbitk2=P3^1;//+sbitk3=P3^2;//-sbitsound=P1^7;charmax=40;charmin=10;ucharchange_flag;ucharflag;voiddelay(uintcount) //delay{uinti;while(count){i=200;while(i>0)i--;count--;}}voidserial_int(){TMOD=0X01;//t1 工作在方式 2TH0=0xF0;//2400BIT/STL0=0x0F;TR0=1;//打开计数器开始计数ET0=0;}22voidtimer_isr()interrupt1{TH0=0xF0;TL0=0x0F;sound=~sound;}voidkey1(){if(k1==0){change_flag++;if(change_flag>2)change_flag=0;}while(k1==0);}voidkey2(){if(k2==0){if(change_flag==1)max++;if(change_flag==2)min++;}while(k2==0);}voidkey3(){if(k3==0){if(change_flag==1)max--;if(change_flag==2)min--;}while(k3==0);}voidkey()//按钮{key2();key1();23key3();}voidmain(){uchari,a=1,b=1;warning=0;serial_int();greenled=1;lcd_init();for(i=0;i<4;i++){tmpchange(i);temper[i]=tmp(i);}display_1602();while(1){if(change_flag==0){if(a==1){b=1;a=0;write_lcdcom(0x01);//显示清屏display_1602();}tmpchange(j);for(i=0;i<100;i++){key();temper[j]=tmp(j);lcd_printf(j,temper[j],0xcd);//显示}j++;if(j>3)j=0;if(((temper[j]>max)||(temper[j]<min))&&(temper[j]<850)){warning=1;24greenled=0;//nn=0;EA=1;}else{EA=0;warning=0;greenled=1;}}else{key();if(b==1){a=1;b=0;write_lcdcom(0x01);//显示清屏write_lcdcom(0x80);//第一行lcd显示地址for(i=0;i<32;i++){write_lcddate(str4_sht11[i]);//显示table1中的字符}}elselcd_set(max,min);}}}LCD显示程序#include<main.h>#include<LCD.h>sbitlcdrs=P2^0;sbitlcdwr=P2^1;sbitlcden=P2^2;ucharcodestr1[]={0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00};// 温度图标ucharcodestr6_sht11[]="Thepresenttempis";//ucharcodestr4_sht11[]="max: min: ";//ucharcodestr2_sht11[]="temp=";25ucharcodestr7_sht11[]="NO. ";//清除没不要的显示voiddelay_1602(uintdelay_time)//延时函数{for(;delay_time>0;delay_time--);}voidwrite_lcdcom(uchardate)//写lcd1602命令{lcdwr=0;lcdrs=0;delay_1602(5);P0=date;lcden=1;delay_1602(5);lcden=0;}voidwrite_lcddate(ucharlcddate)//写1602数据{lcdwr=0;lcdrs=1;delay_1602(5);P0=lcddate;lcden=1;delay_1602(5);lcden=0;}voidlcd_init()//1602 初始化{write_lcdcom(0x38);//displaymode//write_lcdcom(0x38);//displaymode//write_lcdcom(0x38);//displaymodewrite_lcdcom(0x06);//显示光标移动位置write_lcdcom(0x0c);//显示开及光标设置write_lcdcom(0x01);//显示清屏}////////////////////////////voiddisplay_1602()//显示字符子函数{uchari;lcdwr=0;lcdrs=0;lcden=0;delay_1602(10);write_lcdcom(0x80);//第一行lcd显示地址26/**/ for(i=0;i<32;i++){write_lcddate(str6_sht11[i]);//显示table1中的字符}delay_1602(10);write_lcdcom(0xc0);//第二行LCD显示起始地址for(i=0;i<32;i++){write_lcddate(str7_sht11[i]);//显示table2中的字符}lcdwr=1;lcdrs=1;lcden=1;}voidlcd_printf(ucharnumber,uintx,ucharadd)//LCD 数据显示函数{ucharx1,x2,x3,x4;x1=x/1000;x2=x%1000/100;x3=x%100/10;x4=x%10;write_lcdcom(0xc4);write_lcddate(number+0x30);writ

温馨提示

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

评论

0/150

提交评论