人工智能时钟温度计.doc

上传人:精*** 文档编号:875838 上传时间:2024-03-04 格式:DOC 页数:34 大小:721.21KB
下载 相关 举报
人工智能时钟温度计.doc_第1页
第1页 / 共34页
人工智能时钟温度计.doc_第2页
第2页 / 共34页
人工智能时钟温度计.doc_第3页
第3页 / 共34页
人工智能时钟温度计.doc_第4页
第4页 / 共34页
人工智能时钟温度计.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、一、课程设计目的、任务和内容要求温度控制在日常生活及工业领域应用相当广泛,比如温室、水池、发酵缸、电源等场所的温度控制。而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防止发生意外。针对此问题,本系统设计的目的是实现一种可连续高精度调温的温度控制系统,它应用广泛,功能强大,小巧美观,便于携带,是一款既实用又廉价的控制系统。数字式温度计的设计在现实生活中具有一定的深远的意义。本课程设计的任务就是设计一个人工智能的控制系统,具有时钟显示,温度过限报警,实时温度显示等功能。具体设计任务如下: 1了解点阵的功能及其相关知识学习; 2写出本课程的设计方案;3讨论修改相应的硬件电路

2、;4零件的采集与电路的焊接;5电路调试与包装;6写设计报告。设计要求:1.一般情况下,基本测温范围为-50-1102.测温精度误差小于0.53.LCD液晶直读显示日期与实时时间4.可以任意设定温度的上下限并可实现过限报警功能 二、进度安排第1天: 选择课题,论证设计方案;第2至3天: 硬件设计并做仿真;第4至5天: 安装工艺设计,购买元器件;第6至9天: 按安装工艺和调试工艺分步安装、焊接、调试,电路修改,总调;第10天: 软件设计与安装;第11至13天:撰写课程设计报告;第14天: 课程设计答辩、演示、验收。三、主要参考文献1张琳娜,刘武发.传感检测技术及应用.中国计量出版社,19992马忠

3、梅 籍顺心 张凯 马 岩. 单片机的C语言应用程序设计-修订版.北京航空航天大学出版社,1998.103胡汉才.单片机原理及接口技术.清华大学出版社,19964李志全等.智能仪表设计原理及应用.国防工业出版社,1998.65李朝青.单片机原理及接口技术.北京航空航天大学出版社,1998.10.156李广弟.单片机基础.北京航空航天大学出版社,19987阎石.数字电子技术基础.北京航空航天大学出版社,20068李建忠.单片机原理及应用.国防工业出版社,20029黄河.基于DS18B20的单总线数字温度计.国防工业出版社,2002 指导教师签字: 年 月 日目 录摘 要IIIABSTRACTIII

4、1 课题背景11.1 系统设计11.2 总体方框图11.3 基本要求12 设计方案简述22.1 DS18B20数字温度传感器22.1.1 DS18B20的性能特点22.1.2 DS18B20的管脚分布22.1.3 DS18B20的内部结构和工作方式32.2飞思卡尔单片机52.3 1602型LCD62.3.1 1602型LCD的特性62.3.2 1602型LCD的操作控制63 详细设计73.1 温度采集模块73.2 单片机控制系统73.3 温度和时间显示模块83.4 软件设计83.4.1 DS18B20的温度采集程序93.4.2 系统主程序134 设计结果及分析154.1 测试环境及工具154.

5、2 测试方法和测试结果155 总结16参考文献17附录一 系统总电路图18附录二 系统源代码18摘 要传统温度计通常利用热胀冷缩现象为设计的依据,因此这种方法无论从设计原理还是视觉读数都有很大的误差。本次课程设计以DS18B20作为数字温度传感器,其具有线性优良、读取方便、性能稳定、灵敏度高、抗干扰能力强、使用方便等优点,可以大大提高测量温度的精度,使用飞思卡尔MC9S08QG8单片机控制,布线紧凑,能够满足各项测温需求。在测量温度的同时,还能显示时间,为温度的数字化存储、监测、传输、处理奠定了很好的基础。设计小巧,携带方便,并可以应用于冰箱、空调器等日常生活中温度的测量和控制。关键词:温度计

6、;DS18B20;MC9S08QG8AbstractTraditional thermometer usual use expand with heat and contract with cold phenomenon for design basis, therefore this method regardless of all has the very big error from the principle of design or the visible reading. This curriculum designs by DS18B20 took the digital tem

7、perature sensor, it has the linearity finely, the read convenient, the performance stable, the high sensitivity, a merits and so on easy to operate, may enhance the survey temperature greatly the precision, the use Freescale MC9S08QG8 monolithic integrated circuit design, the wiring is compact, can

8、meet each temperature measurement need. During survey temperature, but also can demonstrate the time, was the temperature digitization saves, the monitor, the transmission, processing has laid the very good foundation. Designs exquisitely, the carry home is convenient, and may apply in the refrigera

9、tor, the air-conditioner and so on in the daily life the temperature survey and the control.Keywords: Thermometer; DS18B20; MC9S08QG8291 课题背景1.1 系统设计本课程设计的任务是设计和制作一个人工智能数字温度计。由于在生产生活中都有很多领域需要测量温度,所以温度计的好坏即测量灵敏度,测温范围,稳定度以及实用性和适用性就显得尤为重要。传统温度计通常利用固体、液体、气体受温度的影响而热胀冷缩等的现象为设计的依据,因此这种方法无论从设计原理还是视觉读数都有很大的误

10、差。本次课程设计以DS18B20作为数字温度传感器,其具有线性优良、性能稳定、灵敏度高、抗干扰能力强、使用方便等优点,可以大大提高测量温度的精度,并可以广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和控制。1.2 总体方框图现将系统模块总体设计框图列于下图1中: 单片机控制系统LCD显示模块复位电路内部时钟温度过限报警 温度采集模块按键控制电路 图1总体设计方框图1.3 基本要求1 使用飞思卡尔单片机设计,使用DS18B20作为数字温度传感器;2 能够较准确的测量温度并核算误差;3 能够显示时间,系统错误代码等信息;2 设计方案简述2.1 DS18B20数字温度传感器DS18B20温度传感

11、器是美国DALLAS半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式。可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。 2.1.1 DS18B20的性能特点DS18B20从功能和技术的角度来说有以下性能特点:l 采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位)l 测温范围为-55

12、至+125,测量分辨率最小为0.0625l 内含64位经过激光修正的只读存储器ROMl DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内l 适配各种单片机或系统机l 测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力l 用户可分别设定各路温度的上、下限l 适应电压范围宽,3.05.5V,在寄生电源方式下可由数据线供电2.1.2 DS18B20的管脚分布独特的一线接口,只需要一条口线通信 多点能力,简化了分布式温度传感应用 无需外部元件 可用数据总线供电,电压范围为3.0 V至5.5 V

13、无需备用电源 测量温度范围为-55至+125,华氏相当于是-10至+85范围内精度为0.5。 其引脚排列见图2和表1。序号名称引脚功能描述1Vcc可选择的Vcc引脚。当工作于寄生电源时,此引脚必须接地。2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3GND地信号。1 2 3图2 DS18B20的管脚分布图 表1 DS18B20的管脚分布说明2.1.3 DS18B20的内部结构和工作方式DS1820主要包括寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高速暂存器(内含便笺式RAM),用于存储用户设定的温度上下限值的TH和TL触发器存储与

14、控制逻辑、8位循环冗余校验码(CRC)发生器等七部分内部,其内部结构框图如图3所示。C64 位ROM和单线接口高速缓存存储器与控制逻辑温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器Vdd 图3 DS18B20内部结构64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码。温度报警触发器TH和TL,可通过软件写入户报警上下限。 DS18B20温度传感器与单片机的接口电路DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,单片

15、机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。本实验采用第一种。DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在

16、-55所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍关闭就重复上述过程,直到温度寄存器值大致等于被测温度值。由于DS18B20的单线通讯功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行,操作协议为:初始化DS18B20发复位脉冲写R

17、OM功能指令发存储器操作命令处理数据。DS18B20有六条控制命令如表2所示:指 令 约定代码 操 作 说 明 温度转换44H 启动DS18B20进行温度转换 读暂存器BEH 读暂存器9个字节内容 写暂存器4EH 将数据写入暂存器的TH、TL字节 复制暂存器48H 把暂存器的TH、TL字节写到E2RAM中 重新调E2RAMB8H 把E2RAM中的TH、TL字节写到暂存器TH、TL字节 读电源供电方式B4H 启动DS18B20发送电源供电方式的信号给主CPU 表2 DS18B20的控制指令2.2飞思卡尔单片机本次课程设计的飞思卡尔系列的8位单片机MC9S08QG8,它是飞思卡尔新一代8位单片机,

18、主要针对少管脚、低电压及低功耗应用。MC9S08QG体积虽小,但具有极高的集成度,它改写了低端器件的定义。其引脚图如下所示:图4 MC9S08QG8引脚图飞思卡尔的HCS08内核低引脚数,小型封装,8位微控制器。设备与芯片上的电路低电压闪存可编程电压低至1.8V,并负担所有HCS08系列的标准功能微控制器,包括等待模式和多个站模式。该功能完成强大的模拟功能,一套完整的串行模块,温度传感器和强大的内存选项。其主要有以下特点:l 高达20 MHz的HCS08系列CPU(10 MHz总线频率) 100 ns最小指令执行时间 l 提供高性能,即使在低电压也能电池供电的应用水平 l HC08指令增加了B

19、GND指令设置 l 向后对象代码的兼容性与68HC08,68HC05使现有的代码库仍然可以使用 l 允许高效,紧凑的模块编码 l 支持多达32个中断/复位源 l 允许软件的灵活性和优化 l 低功耗振荡器模块(XOSC)软件 l 可选择晶体或陶瓷谐振器,31.25kHz至38.4 kHz或1MHz至16 MHz的,并支持高达20 MHz的外部时钟源输入32kHz振荡器,提供低功耗选项 系统要求计时功能(即时间和日期)而在低功耗模式12个双向输入/输出(I/O的)线l 只有一个输入和一个输出只有一行 输出10毫安每包为60 mA最大电流I/O允许直接驱动LED的其他电路几乎完全消除了外部驱动器并降

20、低系统成本 。2.3 1602型LCD本温度计的读数的显示是通过1602型LCD实现的,其具有微功耗、体积小、显示内容丰富、超薄轻巧的特点,常用在袖珍式仪表和低功耗应用系统中。2.3.1 1602型LCD的特性1602型LCD归纳起来有以下6大特点:l +5V电压,对比度可调l 内含复位电路l 提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能l 有80字节显示数据存储器DDRAMl 内建有192个5X7点阵的字型的字符发生器CGROMl 8个可由用户自定义的5X7的字符发生器CGRAM2.3.2 1602型LCD的操作控制1602液晶模块内部的字符发生存储器(CGROM)已经

21、存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如A。以下是1602的16进制ASCII码表地址:读的时候,先读左边那列,再读上面那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42。3 详细设计3.1 温度采集模块 温度采集模块的核心即是温度传感器DS

22、18B20,其接线方法和引脚排列已在上文详述。因此可以设计出图5所示温度采集模块电路图。图5 温度采集模块本次设计所采用的温度传感器为Dallas半导体公司的数字化温度传感器,它是世界上第一片支持“一线总线”接口的温度传感器。“一线器件”体积更小、适用电压更宽、更经济。并且分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DSl8B20数字温度计提供9位(二进制)温度读数,指示器件的温度信息经过单线接口送入DSl8B20或从DSl8B20送出,因此从主机CPU到DSl8B20仅需一条线,当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩

23、展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625LSB形式表示。当符号位S0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。3.2 单片机控制系统根据飞思卡尔系列的8位单片机MC9S08QG8的特点和接线图,可得单片机控制系统的电路图如图6所示,这样便实现了对DS18B20的信息采集、反馈以及对LCD的控制。图6 单片机控制模块3.3 温度和时间显示模块温度显示和时间显示都主要是通过1602型LCD实现,1602型L

24、CD采用标准的16脚接口,其中: 第1脚:VSS为电源地 第2脚:VDD接5V电源正极 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enable)端。 第714脚:D0D7为8位双向数据端。 第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。显示电路是使用的LCD1602液晶显示,

25、这种显示最大的优点就是使用字符型显示,可以显示两行,第一行显示日期与当前时间,第二行显示当前温度,当DS18B20出现显示错误时第二行温度不显示会出现错误提示,此款液晶功耗低,操作方便,显示相当清晰。从而得到图7图7 显示模块电路图3.4 软件设计本章从设计思路、软件系统框图出发,先介绍整体的思路后,再逐一分析各模块程序算法的实现,最终编写出满足任务需求的程序。3.4.1 DS18B20的温度采集程序DS18B20器件要求采用严格的通信协议,以保证数据的完整性。该协议定义了几种信号类型:复位脉冲,应答脉冲时隙;写0,写1时隙;读0,读1时隙。与DS18B20的通信,是通过操作时隙完成单总线上的

26、数据传输。发送所有的命令和数据时,都是字节的低位在前,高位在后。该模块的系统流程图为图8 温度采集模块的系统流程图DS18B20的初始化1.先将数据线置高电平“1”。2.延时(该时间要求的不是很严格,但是尽可能的短一点)3.数据线拉到低电平“0”。4.延时750微秒(该时间的时间范围可以从480到960微秒)。5.数据线拉到高电平“1”。6.延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。7.若CPU读到了数据线上的低电平“0”后,还要做延时,

27、其延时的时间从发出的高电平算起(第5步的时间算起)最少要480微秒。8.将数据线再次拉高到高电平“1”后结束。DS18B20初始化程序为:void Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ复位 Delay_DS18B20(8); /稍做延时 DQ = 0; /单片机将DQ拉低 Delay_DS18B20(80); /精确延时,大于480us DQ = 1; /拉高总线 Delay_DS18B20(14); x = DQ; /稍做延时后,如果x=0则初始化成功,x=1则初始化失败 Delay_DS18B20(20);DS18B20的写操作

28、1.数据线先置低电平“0”。2.延时确定的时间为15微秒。3.按从低位到高位的顺序发送字节(一次只发送一位)。4.延时时间为45微秒。5.将数据线拉到高电平。6.重复上1到6的操作直到所有的字节全部发送完为止。7.最后将数据线拉高。DS18B20的写程序为void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; Delay_DS18B20(5); DQ = 1; dat=1; DS18B20的读操作1.将数据线拉高“1”。2.延时2微秒。3.将数据线拉低“0”

29、。4.延时15微秒。5.将数据线拉高“1”。6.延时15微秒。7.读数据线的状态得到1个状态位,并进行数据处理。8.延时30微秒。DS18B20的读程序为unsigned char ReadOneChar(void) unsigned char i=0; unsigned char dat = 0; for (i=8;i0;i-) DQ = 0; / 给脉冲信号 dat=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; Delay_DS18B20(4); return(dat);3.4.2 系统主程序首先要根据系统的总体功能和键盘设置选择一种最合适的监控程序结构,然后根

30、据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。采用C语言编写代码, 鉴于篇幅限制及DS18B20 的应用已经规范和成熟, 本文仅就主程序流程图和显示子程序流程图及其代码进行说明。主程序流程图主程序通过调用温度采集子程序完成温度数据采集, 然后调用温度转换子程序转换读取温度数据,调用显示子程序进行温度显示和判断温度数据。下面给出流程图初始化调用显示子程序N1S到?YY初次上电N读出温度值温度计算处理显示数据刷新发温度转换开始命令图9 系统流程图主程序调用四个子程序,分别是温度采集程序、温度显示程序、温度处理程序和数据存储程序。温度采集程序:对温度芯片送过来的数据进行处理,进行判断

31、和显示。显示程序:向LCD的显示送数,控制系统的显示部分。系统详细程序见附录二。根据上述硬件设计和软件设计,制作出成果,如图所示:图10 实物图4 设计结果及分析4.1 测试环境及工具测试温度:20-100摄氏度。(模拟不同温度值环境)测试仪器及软件:数字万用表,标准温度计20-100摄氏度。4.2 测试方法和测试结果使系统运行,观察系统硬件检测是否正常(包括单片机控制系统,键盘电路,显示电路,温度测试电路等)。系统自带测试表格数据,观察显示数据是否相符合即可。采用温度传感器和温度计同时测量水温变化情况,目测显示电路是否正常。并记录温度值,与实际温度值比较,得出系统的温度指标。得到下表结果标准

32、温度()测试温度()测量相对误差(%)20.0119.252.29885125.1025.320.87649435.0235.501.37064539.9839.950.82541345.0044.752.11111150.0250.050.05997655.0155.581.03617559.9260.100.80106865.0064.851.15384699.2098.102.116935平均相对误差: 1.265051表3 温度测试结果由此可知该数字温度计的误差在1%左右。因此可标注-55+1251.3,并且高温没有使误差明显变大5 总结维持两周的课程设计已结束,设计制作的多功能温度计

33、也已完成,挺有收获的。首先要弄懂如何使用飞思卡尔单片机和DS18B20温度传感器,然后设计了硬件的电路,最后写程序实现了软件的设计。在调试过程中也发现和解决了好些问题。 经过此次课程设计,我真正体会到要理论联系实际,把我们所学的理论知识用到实际当中,通过多动手去提高自己的技能,光靠理论不动手是提高不了的。还有,程序一定要多看多模仿着写才有提高。总之,此次课程设计不仅巩固了单片机方面的理论知识,同时也提高的自己的动手能力、分析问题和解决问题的能力。 参考文献1张琳娜,刘武发.传感检测技术及应用.中国计量出版社,19992马忠梅 籍顺心 张凯 马 岩. 单片机的C语言应用程序设计-修订版.北京航空

34、航天大学出版社,1998.103胡汉才.单片机原理及接口技术.清华大学出版社,19964李志全等.智能仪表设计原理及应用.国防工业出版社,1998.65李朝青.单片机原理及接口技术.北京航空航天大学出版社,1998.10.156李广弟.单片机基础.北京航空航天大学出版社,1998.7阎石.数字电子技术基础.北京航空航天大学出版社,2006.8李建忠.单片机原理及应用.国防工业出版社,20029黄河.基于DS18B20的单总线数字温度计.国防工业出版社,200210 程志明. 信号采集系统的设计与实现D. 北京:北京工业大学,2001. 11 俞谢琼. 多点温度测量系统及其在建筑方面的应用J.

35、森林工程 . 200712 彭泓. 汪玉凤. 粮仓温湿度智能控制系统J. 中国科技信息 , 2006 13 曹会国. 设施栽培环境检测与控制的研究J. 安徽农业科学 , 2006 14 曾为民, 亓协民. DS18B20在通用多点温度测控系统中的应用J. 农机化研究 , 200415童诗白,华程英.模拟电子技术基础(第四版)M.北京:高等教育出版社,2009.16吴辉,邓亚峰,张绪鹏等.电磁谐振式无线供电技术的性能研究J.机电信息,2011,24:141-142. 附录一 系统总电路图图附一 系统总电路图附录二 系统源代码#include /* for EnableInterrupts mac

36、ro */#include derivative.h /* include peripheral declarations */#define uchar unsigned char#define uint unsigned int#define RS PTAD_PTAD0#define RW PTAD_PTAD1#define E PTAD_PTAD2#define DQ PTAD_PTAD3uint miao,fen,xiaoshi;uint time,flag,tltemp,count;uchar tab= 12-6-19 00:00:00;uchar table1=0123456789

37、-;uchar error=DS18B20 ERROR;uchar table2=WENDU:;uchar User=0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00;void MCU_INIT(void) / 单片机初始化 ICSC1=0x04; ICSC2=0x40; ICSTRM=0xa8; SOPT1=0x42; SOPT2=0x00;void delayms(uint x) /延时函数 uint i,j; _RESET_WATCHDOG(); for(i=x;i0;i-) for(j=110;j0;j-);void write_com(uchar com

38、) RS=0; RW=0; delayms(5); PTBD=com; delayms(10); E=1; delayms(10); E=0; void write_date(uchar date) RS=1; RW=0; E=0; PTBD=date; delayms(10); E=1; delayms(10); E=0;/*初始化函数*/void TIMER_INI(void) ICSC2_BDIV = 0; MTIMCLK_PS = 8; /时钟频率/256 MTIMCLK_CLKS = 0; /定时器时钟为总线时钟 MTIMMOD = 252; /设置模数 MTIMSC = 0x60;

39、 /使能定时器中断 void init() uchar num; E=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); for(num=0;num16;num+) write_date(tabnum); delayms(2); void write_sfm(uint add,uint date) uint shi,ge; shi=date/10; ge=date%10; write_com(0x80+0x08+add); write_date(0x30+shi); write_date(0x30+ge)

40、; uchar INIT_DS18B20() uchar flg; PTADD=0x0f; DQ=1; for(time=0;time8;time+); DQ=0; for(time=0;time800;time+); DQ=1; for(time=0;time40;time+); PTADD=0x07; flg=DQ; for(time=0;time800;time+); return(flg);uchar Readchar(void) uchar i; uchar dat; for(i=0;i8;i+) PTADD=0xff; DQ=1; asm(NOP); asm(NOP); asm(N

41、OP); asm(NOP); DQ=0; asm(NOP); asm(NOP); asm(NOP); asm(NOP); DQ=1; for(time=0;time=1; PTADD=0x07; if(DQ=1) dat|=0x80; else dat|=0x00; for(time=0;time32;time+); return(dat);void Writechar(uchar dat) uchar i; for(i=0;i8;i+) PTADD=0xff; DQ=1; asm(NOP); asm(NOP); asm(NOP); asm(NOP); DQ=0; DQ=dat&0x01; for(time=0;time40;time+); DQ=1; for(time=0;time=1; for(time=0;time16;time+);void display_error(void) uchar i; write_com(0x80+0x40); i=0; while(errori!=0) write_date(errori);i+;delayms(40); void Readyread(void) INIT_DS18B20(); Writechar(0xcc); Writechar(0x44); del

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业论文

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922