




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
衢州学院水温智能控制系统设计说明书课题名称:基于单片机的水温智能控制系统 专业名称: 10电气自动化 学生班级: 2 学生姓名: 侯飞 指导教师: 顾能华 基于单片机水温智能控制系统摘要: 随着微机测量和控制技术的迅速发展与广泛应用,以单片机为核心的温度采集与控制系统的研发与应用在很大程度上提高了生产生活中对温度的控制水平。本设计以保质、节能、安全和方便为基准设计了一套水温控制系统,能实现温度的自动调节及其控制。整个系统核心为单片机STC12C5A60S2。外部电路有DS18B20温度检测电路,按键输入电路, 12864显示电路,加热电路和降温电路。单片机通过来自DS18B20的温度信号与自身设定的温度值进行比较然后控制外围电路进行相应的操作。关键词:单片机STC12C5A60S2,DS18B20,12864显示电路,加热电路,降温电路目录1 前言2 设计任务及要求2.1 设计任务2.2 设计要求3 课程设计方案及器材选用分析3.1 设计总体方案3.1.1 方案论证3.1.2 方案二的总体设计框图3.2器材选用分析3.2.1 STC12C5A60S2单片机介绍3.2.2 DS18B20温度传感器3.2.3时钟电路和复位电路3.2.4 温度控制电路3.2.5 显示电路3.3 软件设计3.3.1 主程序3.3.2 DS18B20程序3.3.3 12864程序4 硬件电路的设计主电路5 调试性能及分析参考文献附录: 1 前言目前,单片机已经在测控领域中获得了广泛的应用,它除了可以测量电信以外,还可以用于温度、湿度等非电信号的测量,能独立工作的单片机温度检测、温度控制系统已经广泛应用很多领域。单片机是一种特殊的计算机,它是在一块半导体的芯片上集成了CPU,存储器,RAM,ROM,及输入与输出接口电路,这种芯片称为:单片机。由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便的优点,使它迅速的得到了推广应用,目前已成为测量控制系统中的优选机种和新电子产品中的关键部件。单片机已不仅仅局限于小系统的概念,现已广泛应用于家用电器,机电产品,办公自动化用品,机器人,儿童玩具,航天器等领域。本次课程设计,就是用单片机实现温度控制,传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性差,测量温度准确率低,而且必须经过专门的接口电路转换成数字信号才能由单片机进行处理。本次采用DS18B20数字温度传感器来实现基于51单片机的数字温度计的设计。温度控制模块采用电热棒半导体制冷片,精度比较高。但是单片机通过继电器来控制,给系统带来了诸多不便。不仅使精度下降而且控制过程是机械接触,温度连续性不是很好。 2 设计任务及要求2.1 设计任务现代社会生活中,多功能的数字温度计可以给我们的生活带来很大的方便;支持“一线总线”接口的温度传感器简化了数字温度计的设计,降低了成本;以美国MAXIM/DALLAS半导体公司的单总线温度传感器DS18B20为核心,以国产的STC12C5A60S2为控制器设计的DS18B20温度控制器结构简单、测温准确、具有一定控制功能的智能温度控制器。此次设计,就是用单片机实现温度控制,传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性差,测量温度准确率低,而且必须经过专门的接口电路转换成数字信号才能由单片机进行处理。本次采用DS18B20数字温度传感器来实现基于51单片机的数字温度计的设计。2.2 设计要求设计一个基于单片机的DS18B20数字温度计。课程设计要求: 5V供电; 温度采集采用DS18B20; 4位LED显示; 设计温度控制器原理图,并用proteus进行仿真;设计和绘制软件流程图,用C语言进行程序编写;焊接硬件电路,进行调试。3 课程设计方案及器材选用分析3.1设计总体方案提及到温度的检测,我们首先会考虑传统的测温元件有热电偶和热电阻,而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试也复杂,制作成本高。因此,本数字温度计设计采用智能温度传感器DS18B20作为检测元件,测温范围为-55C至+125C,最大分辨率可达0.0625C。DS18B20可以直接读出被测量的温度值,而采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。按照系统设计功能的要求,确定系统由三个模块组成:主控制器STC12C5A60S2,温度传感器DS18B20,驱动显示电路,外围控制电路。总体电路框图如下:主控制器STC12C5A60S2驱动显示电路及温度控制电路DS18B20图3.1 系统总体框图3.1.1方案论证方案一:由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。所以,他的设计理论不符合本次设计的方案要求,应继续考虑另一可行方案。方案二:进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。因此,从以上两种方案很容易看出,方案二,电路比较简单,软件设计也比较简单,故采用了方案二。3.1.2方案二的总体设计框图温度计电路设计总体设计方框图如图1所示,控制器采用单片机STC12C5A60S2,温度传感器采用DS18B20,用12864实现温度显示,加热棒和制冷片控制温度。DS18B20 采用3 脚PR-35 封装或8 脚SOIC 封装。主 控 制 器12864显 示单片机复位时钟振荡温 度 传 感 器报警点按键调整温度控制图3.2总体设计方框图主控制器:单片机STC12C5A60S2具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。检测电路:采用DS18B20显示电路:显示电路采用12864液晶显示。温度控制:加热棒作为加热装置,制冷片为C1206。3.2选用器材的分析3.2.1 STC12C5A60S2单片机介绍1. STC12C5A60S2STC12C5A60S2系列1T单片机简介 STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。1.增强型8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统80512.工作电压:STC12C5A60S2系列工作电压:5.5V- 3.3V(5V单片机)STC12LE5A60S2系列工作电压:3.6V- 2.2V(3V单片机)3.工作频率范围:0 - 35MHz,相当于普通8051的 0420MHz4.用户应用程序空间8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K字节.5.片上集成1280字节RAM6.通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口) 可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏 每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55mA7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器 可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片8.有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM)9. 看门狗10.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地)11.外部掉电检测电路:在P4.6口有一个低压门槛比较器 5V单片机为1.32V,误差为+/-5%,3.3V单片机为1.30V,误差为+/-3%12.时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内) 1用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟 常温下内部R/C振荡器频率为:5.0V单片机为:11MHz15.5MHz 3.3V单片机为: 8MHz12MHz 精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准13.共4个16位定时器 两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器 做串行通讯的波特率发生器 再加上2路PCA模块可再实现2个16位定时器14. 2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟15.外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块, Power Down模式可由外部中断唤醒, INT0/P3.2, INT1/P3.3, T0/P3.4, T1/P3.5, RxD/P3.0, CCP0/P1.3(也可通过寄存器设置到P4.2 ), CCP1/P1.4 (也可通过寄存器设置到P4.3)16. PWM(2路)/PCA(可编程计数器阵列,2路) -也可用来当2路D/A使用 -也可用来再实现2个定时器 -也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持)17.A/D转换, 10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)18.通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口19. STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3)20.工作温度范围:-40 - +85(工业级) / 0 - 75(商业级)21.封装:PDIP-40,LQFP-44,LQFP-48 I/O口不够时,可用2到3根普通I/O口线外接 74HC164/165/595(均可级联)来扩展I/O口, 还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。3.2.2 DS18B20温度传感器1. DS18B20的特点本设计的测温系统采用芯片DS18B20,DS18B20是DALLAS公司的最新单线数字温度传感器,它的体积更小,适用电压更宽,更经济。实现方法简介DS18B20采用外接电源方式工作,一线测温一线与STC89C51连接,测出的数据放在寄存器中,将数据经过BCD码转换后送到LED显示。DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现位的数字值读数方式。DS18B20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.05.5;零待机功耗;温度以或位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。DS18B20的管脚排列如图2-3-1所示。64位光刻ROM是出厂前被光刻好的,它可以看作是该DS18B20的地址序列号。不同的器件地址序列号不同。 C64 位ROM和单线接口高速缓存存储器与控制逻辑温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器Vdd 图3.3 DS18B20的内部结构图3.4 DS18B20的引脚分布图64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器和,可通过软件写入户报警上下限。DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为字节的存储器,结构如图2-3-2所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如下图所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和0决定温度转换的精度位数,来设置分辨率。图3.5 DS18B20的字节定义DS18B20高速暂存器共9个存存单元,如表所示:表3-1 DS18B20的引脚分布图序号 寄存器名称 作 用 序号 寄存器名称 0 温度低字节 以16位补码形式存放 4、5 保留字节1、2 1 温度高字节 6 计数器余值 2 TH/用户字节1 存放温度上限 7 计数器/ 3 HL/用户字节2 存放温度下限 8 CRC 以12位转化为例说明温度高低字节存放形式及计算:12位转化后得到的12位数据,存储在18B20的两个高低两个8位的RAM中,二进制中的前面5位是符号位。如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625才能得到实际温度。 高8位 S S S S S 26 25 24 低8位 23 22 21 20 2-1 2-2 2-3 2-4 表3-2 DS18B20的字节存放表由下图可以看到,Dsl8820的内部存储器是由8个单元组成,其中第0、1个存放测量温度值,第2、3分别存放报警温度的上下限值,第4单元为配置单元,5、6、7单元在DSl8820这里没有被用到。对于第4个寄存器,用户可以设置温度转换精度,系统默认12bit转换精度,相当于十进制的00625,其转换时间大约为750磷。具体见表2-4-1。图3.6 内部存储器结构图表3-3 温度精度配置R1R0转换精度(16进制)转换精度(十进制)转换时间009bit0.593.75ms0110bit0.25187.5ms1011bit0.125375ms1112bit0.0625750ms 由表3-3可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625LSB形式表示。当符号位S0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2-4-2是一部分温度值对应的二进制温度数据。表3-4 温度精度配置温度/二进制表示十六进制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90HDS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。若TTH或TTL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在55所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。 另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。 由于DS18B20采用的“一线总线”结构,所以数据的传输与命令的通讯只要通过微处理器的一根双向Io口就可以实现。DSl8B20约定在每次通信前必须对其复位,具体的复位时序如图2-4-2所示。 图3.7 复位时序图 图2-4-3中所示,tRSTL为主机发出的低电平信号,本文中有AT89S52提供,tRSTL的最小时延为,然后释放总线,检查DSl8B20的返回信号,看其是否已准备接受其他操作,其中tPDHIGH时间最小为,最长不能超过,否则认为DS18B20没有准备好,主机应继续复位,直到检测到返回信号变为低电平为止。表3-5 DS18B20的ROM操作指令操作指令33H55HCCHF0HECH含义读ROM匹配ROM跳过ROM搜索ROM报警搜索ROM表3-6 DS18B20的存储器操作指令操作指令4EHBEH48H44HD8HB4H含义写读内部复制温度转换重新调出读电源主机一旦检测到DS18B20的存在,根据DS18B2的工作协议,就应对ROM进行操作,接着对存储器操作,最后进行数据处理。在DS18B20中规定了5条对ROM的操作命令。见表2-4-3。主机在发送完ROM操作指令之后,就可以对DS18B20内部的存储器进行操作,同样DS18B20规定了6条操作指令。见表2-4-4。 DS18B20的读、写时序图见图2-4-3。图3.8 DS18B20的读写时序图2. DS18B20的使用方法由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将图3.9 DS18B20的复位时序图3.10 DS18B20的读时序图3.11 DS18B20的写时序主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。DS18B20的写时序,对于DS18B20的写时序仍然分为写0时序和写1时序两个过程,对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单线。3.2.3 时钟电路和复位电路单片机工作时间基准是由时钟电路提供的,在单片机的XTAL1和XTAL2两个管脚接一个晶振及两个电容就构成单片机的时钟电路,电路中电容器C1和C2对振荡频率有微调作用,本次设计选择11.0592MHZ。单片机的RST管脚为主机提供了一个外部复位信号输入口。复位信号时高电平有效,高电平持续时间为2个机器周期以上。单片机的复位方式可由手动复位完成。时钟电路及复位电路如图2-1所示: 图2-1 时钟及复位电路 时钟电路及复位电路3.2.4 温度控制电路控制电路图一降温模块芯片型号:C1206供电范围:额定电压DC12V 最大电压15V最大电流:6A(请选用6A开关电源)最大功率:72W(请良好散热)内部阻值:2.53.0(环境温度231,1kHZ Ac测试)最大温差:75(单层已经是最高)外形尺寸:40*40*3.8mm装配压力:85N/cm2外部引线:150mm(量大可定)工作环境:温度范围 -5583(过高的环境温度将直接影响制冷效率)封装工艺:四周标准704硅橡胶密封包装标准:泡沫盒包装,存放条件 环境温度-1040存放条件:-4060二加热模块本模块采用的是12V50W的防水型加热棒,温度上升比较快并且稳定。3.2.5 显示电路一、液晶显示模块概述12864A-1汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。主要技术参数和显示特性:电源:VDD 3.3V+5V(内置升压电路,无需负压);显示内容:128列 64行显示颜色:黄绿显示角度:6:00钟直视LCD类型:STN与MCU接口:8位或4位并行/3位串行配置LED背光多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等二、模块引脚说明128X64 引脚说明引脚号引脚名称方向功能说明1VSS-模块的电源地2VDD-模块的电源正端3V0-LCD驱动电压输入端4RS(CS)H/L并行的指令/数据选择信号;串行的片选信号5R/W(SID)H/L并行的读写选择信号;串行的数据口6E(CLK)H/L并行的使能信号;串行的同步时钟7DB0H/L数据08DB1H/L数据19DB2H/L数据210DB3H/L数据311DB4H/L数据412DB5H/L数据513DB6H/L数据614DB7H/L数据715PSBH/L并/串行接口选择:H-并行;L-串行16NC空脚17/RETH/L复位 低电平有效18NC空脚19LED_A-背光源正极(LED+5V)20LED_K-背光源负极(LED-OV)逻辑工作电压(VDD):4.55.5V电源地(GND):0V工作温度(Ta):060(常温) / -2075(宽温)三、接口时序模块有并行和串行两种连接方法(时序如下):8位并行连接时序图MPU写资料到模块MPU从模块读出资料2、串行连接时序图串行数据传送共分三个字节完成:第一字节:串口控制格式 11111ABC A为数据传送方向控制:H表示数据从LCD到MCU,L表示数据从MCU到LCD B为数据类型选择:H表示数据是显示数据,L表示数据是控制指令 C固定为0第二字节:(并行)8位数据的高4位格式 DDDD0000第三字节:(并行)8位数据的低4位格式 0000DDDD串行接口时序参数:(测试条件:T=25 VDD=4.5V) 3.3软件设计3.3.1 主程序void main(void) /display1(); a=0; initinal(); /调用LCD字库初始化程序 delayms(100); while(1) setT();display2();delayms(2);if(swenduwendu) BEEP=1;LED1=1;LED2=1; JIA1=0;JIA2=0; if(swendu0;i-) DQ = 0; / 给脉冲信号 dat=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; de0(4); return(dat);/写一个字节WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; de0(5); DQ = 1; dat=1; delay1(4);/读取温度t_em(void)unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=ReadOneChar();b=ReadOneChar();t=b;t=8;t=t|a;tt=t*0.0625;t= tt*100+0.05; /放大10倍输出并四舍五入-此行没用return(t);3.3.3 12864程序/*/* 液晶初始化-字库 */*/void initinal(void) /LCD字库初始化程序 delay(40); /大于40MS的延时程序 PSB=1; /设置为8BIT并口工作模式 delay(1); /延时 RES=0; /复位 delay(1); /延时 RES=1; /复位置高 delay(10); TransferData(0x30,0); /Extended Function Set :8BIT设置,RE=0: basic instruction set, G=0 :graphic display OFF delay(100); /大于100uS的延时程序 TransferData(0x30,0); /Function Set delay(37); /大于37uS的延时程序 TransferData(0x08,0); /Display on Control delay(100); /大于100uS的延时程序 TransferData(0x10,0); /Cursor Display Control光标设置 delay(100); /大于100uS的延时程序 TransferData(0x0C,0); /Display Control,D=1,显示开 delay(100); /大于100uS的延时程序 TransferData(0x01,0); /Display Clear delay(10); /大于10mS的延时程序 TransferData(0x06,0); /Enry Mode Set,光标从右向左加1位移动 delay(100); /大于100uS的延时程序 /*/* 液晶初始化-图形 */*/void initina2(void) /LCD显示图片(扩展)初始化程序 delay(40); /大于40MS的延时程序 PSB=1; /设置为8BIT并口工作模式 delay(1); /延时 RES=0; /复位 delay(1); /延时 RES=1; /复位置高 delay(10); TransferData(0x36,0); /Extended Function Set RE=1: extended instruction delay(100); /大于100uS的延时程序 TransferData(0x36,0); /Extended Function Set:RE=1: extended instruction set delay(37); /大于37uS的延时程序 TransferData(0x3E,0); /EXFUNCTION(DL=8BITS,RE=1,G=1) delay(100); /大于100uS的延时程序 TransferData(0x01,0); /CLEAR SCREEN delay(100); /大于100uS的延时程序 /*/* 液晶初始化 */*void init() E=0; TransferData(0x38,0); TransferData(0x0c,0); TransferData(0x06,0); TransferData(0x01,0); TransferData(0x80,0); */*/* 函数声明 汉字显示 */*/void lcd_mesg(unsigned char code *adder1)unsigned char i; TransferData(0x80,0); /Set Graphic Display RAM Address delay(100);for(i=0;i32;i+) TransferData(*adder1,1); adder1+; TransferData(0x90,0); /Set Graphic Display RAM Address delay(100);for(i=32;i64;i+) TransferData(*adder1,1); adder1+;/*/* 函数声明 */*/void TransferData(char data1,bit DI) /传送数据或者命令,当DI=0是,传送命令,当DI=1,传送数据. WRD=0; RS=DI; delay(1); P0=data1; E=1; delay(1); E=0; /*/* 函数声明 图片显示 */*/void DisplayGraphic(unsigned char code *adder) int i,j;/*显示上半屏内容设置 for(i=0;i32;i+) / TransferData(0x80 + i),0); /SET 垂直地址 VERTICAL ADD TransferData(0x80,0); /SET 水平地址 HORIZONTAL ADD for(j=0;j16;j+) TransferData(*adder,1); adder+; /*显示下半屏内容设置 for(i=0;i32;i+) / TransferData(0x80 + i),0); /SET 垂直地址 VERTICAL ADD TransferData(0x88,0); /SET 水平地址 HORIZONTAL ADD for(j=0;j16;j+) TransferData(*adder,1); adder+; 4 硬件电路的设计5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 婚姻解除及财产分割赔偿详细协议范本
- 上市公司离职协议书范本及股权激励解除条款
- 科技公司员工保密与知识产权归属及竞业限制协议
- 专业物流公司运输经理聘用合同及服务质量承诺合同
- 试卷04【综合检测】八年级下册期中专项复习(解析版)
- 青蛙买泥塘课件大纲
- 数学概率课件模板
- 消气防知识培训
- 黏土手工面包课件
- 老山羊请客课件
- DL-T 5190.1-2022 电力建设施工技术规范 第1部分:土建结构工程(附条文说明)
- 海飞丝销售策划书模板
- YYT 1244-2014 体外诊断试剂用纯化水
- 工程技术研究中心(重点实验室)可行性研究报告
- 城市轨道交通综合监控系统整套课件汇总完整版电子教案(全)
- DB32-T 4063-2021建筑工程施工质量鉴定标准-(高清现行)
- 部编版五年级上册第一单元集体备课
- 史上最全FMEA教材详解
- 3养殖水环境及控制(1)ppt课件
- 《普通物理学(第7版)》全套教学课件1434页
- 竖井滑模施工组织设计
评论
0/150
提交评论