(论文)温度纪录器最新优秀毕业论文资料搜集呕血奉献_第1页
(论文)温度纪录器最新优秀毕业论文资料搜集呕血奉献_第2页
(论文)温度纪录器最新优秀毕业论文资料搜集呕血奉献_第3页
(论文)温度纪录器最新优秀毕业论文资料搜集呕血奉献_第4页
(论文)温度纪录器最新优秀毕业论文资料搜集呕血奉献_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

温度记录器中文摘要DS18B20为主要元器件,该器件能对温度信号进行AD变换,直接形成数字式温度数据输出。DS18B20的测温范围为:-55+125,其分辨率可达0.0625。通过单片机技术可将DS18B20的温度数据读取出来,同时利用外部EEPROM 将大量温度数据存储起来(EEPROM采用AT24C512,AT24C512串行存储器可存储32700个温度数据)。这作品与目前市售的温度测试记录仪相比具有体积小、精度高、测量范围宽、记录数据量大、使用方便且成本低等优点。关键词:DS18B20、单片机、外部存储器、RS232串行通信、PC机AbstractThe DS18 B20 is main dollar spare part, that spare part can carry on A/D transformation to the temperature signal, becoming a numerical type temperature data to outputted directly.The DS18 B20s measuring scope is:-55 125 , its resolution can reach to 0.0625 .Pass a single slice machine technique can the DS18 B20 of the temperature data read, making use of exterior EEPROM to save a great deal of temperature data in the meantime.(the EEPROM adoption AT24 C512, the AT24 saving machine in C512 string line can save 32700 temperature datas)This work sells currently with city of temperature test record the instrument compare to have a physical volume small, the accuracy is high, the diagraph scope breadth, record data have great capacity, usage convenience and the cost low etc. advantage.Keyword:The DS18 B20, single slice machine, exterior saves a machine, the correspondence, PC machine of RS232 string line目录中文摘要1Abstract1目录21 引言32 总体设计概述32.1 作品产生背景32.2 硬件方面设计42.3 软件设计方面43 DS1820产品的原理及应用设计53.1 DS1820型单线智能温度传感器的原理53.2 单线总线系统的电路接法及通讯协议73.2.1 电路接法73.2.2 主CPU访问DS1820的工作流程83.3 DS18B20型单线可编程智能温度传感器113.3.1 DS18B20的性能特点113.3.2 DS18B20的使用注意事项124 AT24C512 存储器的功能及应用124.1 24C512存储器简介124.2 AT24C512 存储器的功能134.3 读存储器的部分程序说明145 调试过程175.1 硬件部分调试175.2 软件部分调试186 结束语18致 谢19参考文献19附录(一)汇编语言程序设计201 引言 温度采集记录在生活领域、医疗领域、科学研究、生产实践中均有着广泛应用,如测量病人体温、分析气温变化、控制某生产加工车间的温度等。所以温度的采集记录仪便成为现代生产、生活中不可缺少的设备之一。 目前市场上已有的温度采集记录仪为需经常换纸的跟纸式记录仪和采用热敏电阻传感器的普通温度仪,如常州热工仪表厂生产的XRZ-Cu50和 XRZ-Cu100采用的就是采用热电阻传感器,XRZ-Cu50的温度测量范围为:0150,XRZCu100的测量范围为十0100,这种温度记录仪精确度为1,价格为200元左右,体积约为200mm*200mm*180mm,只能显示即时温度,不可存储温度数据,体积较大;与欧陆公司合资的常州宏基仪器仪表厂生产的纸记录式温度计,该温度记录议采用在纸上绘制曲线的方法来记录温度数据,虽能把温度记录下来,但需要人工定时更换记录纸张,且价格较高,在30004000元之间。市场上也有部分无纸记录仪,采用液晶显示屏作为数据输出,但存在测试精度低、不便于存放大量温度数据、成本高的缺点。随着人们对产品质量要求的不断提高,生产加工设备机械化水平的不断完善,传统的温度测试仪在现代化生产中已不能满足要求了。针对以上情况我们设计开发了一种融数字温度传感器、单片机、PC机、外部存储器和串行通信于一体的掌上型温度采集、记录仪,从而达到体积小、重量轻、测试精度高、存储容量大、成本低、便于随身携带、随时可进行温度数据分析的掌上型温度采集记录仪,目前尚无与本作品同档次的温度采集、记录仪,具有较好的推广应用价值,属国内外首创。2 总体设计概述2.1 作品产生背景 由于温度采集记录在生活领域、医疗领域、科学研究、生产实践中均有着广泛应用,如测量病人体温、分析气温变化、控制某生产加工车间的温度等。目前市场上已有的温度采集记录仪为需经常换纸的跟纸式记录仪和采用热敏电阻传感器的普通温度仪,价格高、体积较大,而且精度低,也有部分无纸记录仪,采用液晶显示屏作为数据输出,但存在测试精度低、不便于存放大量温度数据、成本高的缺点,我们设计开发了一种融数字温度传感器、单片机、外部存储器于一体的掌上型温度采集记录仪,从而达到体积小、重量轻、测试精度高、存储容量大、成本低、便于随身携带、随时可进行温度数据分析的掌上型温度采集记录仪,具有较好的推广应用价值。 本作品是利用智能数字温度传感器DS18B20进行温度采集,DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进产品。DS18B20采集到的温度数据按采样间隔存入外部存储器 24C512中(24C512的容量为64KB,也可根据实际需要选取合适容量的外部存储器)。2.2 硬件方面设计 该作品具有极高的可靠性和稳定性,可工作于任何环境底下。电路原理图分为三部分:温度数据采集部分,即时温度显示驱动部分,温度数据存储部分。 (一)温度数据采集部分 DS18B20是智能型的数字温度传感器,通信方式为串行通信方式。其数据线与单片机的P1.1相连接。 (二)即时温度显示驱动部分 显示驱动方式按常规设计实施,选用高亮度发光LED器件显示。 (三)存储部分 基于便携式的目的,存储数据设计采用了AT24C512串行EEPROM器件,该器件体积小、功耗低,通信采用IIC串行通信协议,AT89C51的P1.3、P1.4和AT24C512的SCL和SDA相连实现存储功能的。 图1 硬件原理图2.3 软件设计方面 软件设计部分按功能主要分三大部分,具体如下所述: (一)主监控程序 单片机的主监控程序为:当监测到 ONTIME1和ONTIME2时作相应温度的存储、转换、发送处理,并负责即时温度的显示。 (二)定时中断程序 采用定时中断是为了隔一定时间让DS18B20采样一次,并把采样到的数据保存到EEPROM中。 (三)串行通信 当需要用EEPROM中的数据画出温度变化曲线进行分析时,就运用串行通信子程序完成数据发送任务。设计部分流程图如下:图2 程序流程框图3 DS1820产品的原理及应用设计3.1 DS1820型单线智能温度传感器的原理DS1820采用 3脚PR-35封装或8脚SOIC封装,IO为数据输入输出端(单线总线)它属于漏极开路输出,外接上拉电阻后,常态下呈高电平。UDD可供选用的外部+5V电源端,不用时需接地。GND为地,NC为空脚。主要包括7部分:寄生电源;温度传感器;64位激光(laser)ROM与单线接口;高速暂存器,即便笺式RAM,用于存放中间数据;TH触发寄存器和TL触发寄存器,分别用来存储用户设定的温度的上、下限tH、tL值;存储与控制逻辑;8位循环冗余码(CRC)发生器。下面分别介绍各部分的工作原理。1寄生电源 寄生电源由二极管VD1、VD2和寄生电容C所组成。电源检测电路用于判定供电方式并输出相应的逻辑电平(“0”表示用寄生电源供电,“1”表示用外部电源供电),以便高速暂存器能够读出数据和电平。采用寄生电源供电时UDD端需接地,DS1820就从单线总线上获取电源。当I/O线为高电平时VD1导通,VD2截止,除向DS1820供电外,还把部分电能储存在C中。当I/O线为低电平时,VD1截止,改由C上的电压UC继续向DS1820供电。该寄生电源有两个显著优点:第一,检测远程温度时无须本地电源;第二,在缺少正常电源时也能读ROM。使用寄生电源时应注意,在温度转换期间CPU应使I/O线保持高电平。若使用外部电源UDD,就通过VD2向器件供电,此时VD1截止。N片DS182 0与单片机的接线,R为上拉电阻,典型值可取5.1k或4.7k。主CPU和DS1820所用的电源电压,分别用UCC、UDD表示,下同。现将单片机的 P1.0端接单线总线,加总线驱动电源后,理论上总线最多可挂248片DS1820。单片机依次发出操作指令,各片DS1820即可在200500ms之内完成温度转换。2原理在DS1820内部测温电路中温度系数振荡器用于产生稳定的频率f0,高温度系数振荡器则相当于T/f转换器,能将被测温度t转换成频率信号f0图中还隐含着计数门,当计数门打开时,DS 1820就对低温度系数振荡器产生的时钟脉冲f0进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定。每次测量前,首先将-55所对应的基数分别置入减法计数器、温度寄存器中。在计数门关闭之前若计数器已减至零,温度寄存器中的数值就增加0.5。然后,计数器依斜率累加器的状态置入新的数值,再对时钟计数,然后减至零,温度寄存器值又增加0.5。只要计数门仍未关闭,就重复上述过程,直至温度寄存器达到被测温度值。这就是DS1820的测温原理。斜率累加器能对振荡器的非线性予以补偿,提高测量精度。 需要指出,温度值本应为9位(其中,符号占一位)但因符号位又被扩展成高8位,故实际以16位补码的形式读出。其中高8位代表符号,“0”表示t0,“1”表示t0;低8位则以0.5LSB(最低有效位)的形式表示温度值。 测量华氏温度(0F)需进行下述换算: t(0F)95t()32 (2-1-1) DS1820型单线智能温度传感器典型的测温误差在070范围内,DS 2 0的上、下限测温误差分别为+0.5、-0.5,而典型产品的误差仅为0.2 5。3 64位激光ROM 芯片内部有经过激光修正的ROM,内含64位ROM编码,包括系列产品(高8位)、产品序号(中间48位)和 CRC编码(低8位)。编码格式如下: 图34高速暂存器(简称暂存器)它由便笺式 RAM、非易失性电擦写 EERAM所组成,后者用来存储 tH和tL值。数据先写入RAM,经校验后再传给EERAM。便笺式RAM占9个字节,第0、1字节是测量出的温度信息,第2、3字节分别是tH和tL值,第4、5字节不用。第6、7字节为计数寄存器,可用于提高温度分辨力。第8字节用来存储上述8字节的循环冗余校验码。详见图4。 暂存器的命令集见表4-1-3。6条命令分别为温度转换、读暂存器、写暂存器、复制暂存器、重新调出EERAM、读电源供电方式。 图4 DS18B20内部RAM分配表 5初始化 对DS1820的操作是首先进行初始化,然后执行ROM操作命令,再执行暂存器操作命令,最后完成数据处理。6报警信号 在完成温度转换之后,DS 2 0就把测得的温度值t同tH和tL值作比较。若ttH或 t tL,则将该器件的报警标志,并对主CPU发出的报警搜索命令作出响应。因此可用多片DS1820同时测量温度并进行报警搜索。一旦某个测温点越限,主CPU用报警搜索命令即可识别正在报警的DS1820,并且读出其序号,不必考虑其他未报警的DS1820。7循环冗余校验码(CRC)的产生 在64位激光ROM的最低位8位字节中存在CRC。主CPU根据ROM的前56位来计算CRC值,并存入DS1820中的CRC值进行比较,以判断主CPU接受到的 ROM的前56位来计算CRC值,并与存入DS1820中的CRC值进行比较,以判断主CPU接受到的ROM数据是否正确。 CRC的函数表达式为 CRCX8X5X31 (2-1-4)此外,DS1820尚需按照式(4-1-2)所规定的格式,为暂存器的数据产生一个8位CRC,送给主CPU,以确保暂存器的数据传送无误。3.2 单线总线系统的电路接法及通讯协议 单线总线是一种具有一个总线主机(亦称主CPU)和一个或多个从机(从属器件)的系统,DS1820起从机的作用。下面分别介绍单线总线的电路接法及通信协议。3.2.1 电路接法 根据定义,单线总线只有一根线,这意味着总线上的每一个器件只能分时驱动单线总线,并要求每个器件必须具有漏极开路输出或三态输出的特性。DS1820的单线接口 I/O端就属于漏极开路输出。TX、RX分别表示发送与接受。在单线总线上必须接上拉电阻,其电阻阻值为 5k(标称值可取5.1k或4.7K)。当单线总线上挂有多个从属器件时,亦称之为多点总线。 单线总线在空闲状态下呈高电平。操作单线总线时,必须从空闲状态开始。单线总线加低电平的时间超过480 us时,总线上所有的器件均复位。 在主CPU发出复位脉冲之后,从属器件就发出应答脉冲(PRESENCE PULSE),来通知主CPU它已做好了接受数据和命令的准备工作。3.2.2 主CPU访问DS1820的工作流程 主CPU经过单线接口访问DS1820的工作流程为:对DS 1820进行初始化ROM操作命令存储器(包括便笺式 RAM和 EERAM)操作命令数据处理。主CPU对ROM操作完毕,即发出控制操作命令,使DS1820完成温度测量并将测量结果存入高速暂存器中,然后读出此结果。1初始化 单线总线上所有处理过程均从初始化开始。初始化包括首先由主CPU发出一个复位脉冲,然后由从属器件发出应答脉冲,通知主CPU。初始化时主CPU首先发出一个复位信号,将单线总线上所有DS1820复位;然后释放单线总线,改成接受状态,单线总线被上拉电阻R拉成高电平。在检测到次上升延后,DS1820需要等待1560 s才向主CPU发出响应脉冲。初始化过程的时序波形如图5所示。此后便可对ROM、RAM进行操作。 图5 DS18B2 0的初始化复位2对ROM的5种操作命令 一旦主CPU检测到从属器件的存在,就可以发出ROM操作命令。所有ROM操作命均为8位(二进制)字长。主CPU对ROM的操作命令有以下5种: (1)读ROM命令(读ROM,约定代码为33H)。该命令允许主CPU读取DS1820中的8位产品系列编码、48位序列号以及8位的CRC。该命令适用于总线上只接一片DS1820的情况。当总线上挂有多片DS1820时禁止使用该命令,否则多片DS1820同时发送数据,必然会导致互相冲突。 (2)符合ROM命令(MATCH ROM,约定代码为55H)。 主CPU在发出“符合”ROM命令后,接着送出64位的ROM数据序列,从而使主CPU实现对单线总线上特定DS1820的寻址。只有与64位ROM序列严格相符的DS1820,才能对后续的存储器操作命令作出响应。所有与64位ROM序列不相符的DS1820将等待复位脉冲。该命令对于总线上挂有单个或多个器件的情况均适用。(3)搜索ROM命令(SEARCH ROM,约定代码为 F0H)。搜索ROM命令允许主CPU使用一种“消除法”(ELMINATION)来识别总线上所有DS1820的64位ROM编码,即完成整个系统的初始化工作。为以后对各个单线器件的操作做好准备。该部分也是对DS1820芯片进行软件编程的重点和难点之一。(4)跳过ROM命令(SKIP ROM,约定代码为CCH)。在单线总线系统中,该命令使用主CPU不必提供64位ROM编码就能访问各片DS1820。该命令主要用于向所有的DS1280同时发出温度转换命令,从而大大节省访问各器件的时间。但有一点必须注意,主CPU如果同时发出SKIP ROM命令之后,又发出了读存储器命令,那么由于多片DS1820同时向总线上提供数据且漏极开路状态下产生“线与”的结果,此时读出的数据已经没有实际意义了。(5)报警搜索命令(ALARM SEARCH,约定代码为ECH)。该命令的流程与搜索ROM命令的流程相同。仅在最近一次温度测量出现报警的情况下,DS1820才对该命令作出响应。报警的条件定义为温度超过上限(ttH),或者低于下限(ttL)。上电时,DS1820预置报警条件为设置状态,直到首次温度测量结果既不超过tH,也不低于tL时,报警信号才被解除。3.2.3 DS1820的通讯协议 DS1820有严格的通信协议来保证各位数据传输的正确性和完整性。通信协议规定了复位脉冲、应答脉冲、写0、写1、读0和读1等几种信号的时序。除了应答脉冲,其余信号均由主CPU控制。 在对DS1820进行ROM及RAM操作之前,主CPU首先发出一个复位脉冲(最小脉冲宽度为480s的低电平信号);然后主CPU便释放单线总线(I/O线),使之处于接受状态。单线总线经过上拉电阻被拉至高电平。当DS1820检测到I/O端的上升延后,就等待1560s,再向主CPU发出应答脉冲(60240s的低电平信号)。1存储器操作命令存储器操作命令共6条,具体如下:(1)度转换命令(CONVERT T)44H。令DS1820进行温度转换。如果主CPU在该命令之后为读时序,那么只要DS1820正忙于进行温度转换,即读得“0”;当温度转换完成时,DS1820则返回“1”。假如由寄生电源DS1820供电,主CPU在发出该命令后立即将单线总线拉成高电平,并且保持500ms时间,以便在温度转换期间给DS1820提供所需要的电源。(2)读暂存存储器(READ SCRATCHPAD)BEH。该命令为读暂存存储器9个字节的内容。从字节0开始读,直至读到字节8。主CPU可以在读暂存存储器期间发出一个复位脉冲来终止读操作。(3)写读暂存存储器(WRITE SCRATCHPAD)4EH。该命令发出后,主CPU送给DS1820的两个字节数据就分别写入 TH触发寄存器和TL触发寄存器中,顺序是先写TH,后写TL。主CPU也可以在写暂存存储器期间发出一个复位脉冲来终止写操作。(4)复制暂存存储器(COPY SCRATCHPAD)48H。该命令把触发器中的TH、TL字节分别复制到EERAM的TH、TL字节上。若主CPU发出该命令后又进行操作,只要DS1820正忙于复制,主CPU在发出该命令后就把单线总线拉到高电平,并保持10m s(5)重新调出EERAM(RECALL EERAM)B8H。该命令把是把存储器在EERAM温度触发器TH、TL内的数据重新调入暂存存储器的TH、TL字节。每次DS1820上电时也自动进行这种操作。因此,只要器件接通电源,暂存存储器器的TH和TL中已经有有效的数据供使用。若主CPU在发出该命令之后又进行操作,只要DS1820正忙于进行调出,主CPU就读得“0”(表示“忙碌”);完成调出操作后DS1820即返回“1”(表示“操作完毕”)。(6)读电源(READ P0WER SUPPLY)B4H。此项命令发送给DS1820之后,对主CPU发出的每一条读指令,DS1820都向主CPU提供电源方式信号“0”(表示由寄生电源供电)或者“1”(表示由外部电源供电)。2读写时序主CPU通过时序(亦称作“时间片”)来写入或读出DS1820中的数据。时序用于传输数据数据位和指定进行何种操作的命令字。(1)写时序。主CPU把I/O线(即单线总线,亦称数据线)从高电平拉至低电平时,作为一个写周期的开始。写时序包括两种类型:写1时序,写0时序。写1或写0时序必须保持至少60s,在两个写周期之间至少要有1s的恢复期。DS1820在IO线变为低电平后的1560s的时间内进行采样。若I/O线为高电平,即认为写入了一位1;若I/O线为低电平,即认为写入了一位0。写时序的波形如图6所示。主CPU在开始写1周期时,必须将I/O线拉至低电平,然后再释放,15s内将I/O线拉成高电平。主CPU在开始写0周期时,也应将I/O线拉至低电平,并保持 60s的时间。 图6 DS1820写操作时序(2)读时序。当主CPU将I/O线从高电平拉成低电平时,就作为一个读周期的开始,并且 I/O线保持低电平的时间至少为1s。DS1820的输出数据在读时序下降沿过后的15s内有效。在此期间,主CPU应释放I/O线,使之处于输入状态以便读取数据。经过15s后读时序结束,I/O线经外部上拉电阻又变成高电平。读取一位数据至少需要60 s时间,并且在两位数据之间至少要有1s的恢复期。 令初始化时间为TINT,电路的时间常数为TRC。主CPU的采样时间为TSAMPLE,高电平的阈值电压为UIH。要求TINT+ TRC+TSAMPLE15s。经过改进后,主CPU读一位数据的波形如图7所示。 采用尽量缩短TINT、TRC的周期并把主CPU采样期安排到末尾的方法,可以使总线有更充裕的稳定时间。 图7 DS18B20读操作时序3. 读写时间片这里讲的“时间片”(time slot)亦称时间间隙,简称时隙。该图对其他类型的单线智能温度传感器也适用。tslot代表时间片,tREC为恢复时间。TLOW0、TLOW1分别表示在写0、写1时单线总线保持低电平的时间。tRDV为读数据有效时间。tRSTL为复位信号的低电平时间。tPDHIGH、tPDLOW 分别表示应答信号的高、低电平时间。3.3 DS18B20型单线可编程智能温度传感器DS18B20是美国 DALLAS半导体公司继 DS1820之后最新推出的一种改进型产品。3.3.1 DS18B20的性能特点DS18B20在继承DS1820全部优点的基础上,主要做了如下改进:(1)供电电压范围扩大为3.0 5.5V。当UDD3.05.5V时,在-10+85范围内,可确保测量误差不超过0.5,在-55+125范围内,测量误差也不超过半。在DS1820中当电源电压跌落过多时,测量准确度要下降。(2)温度分辨力可编程。DS1820的数字温度输出只用9位二进制表示,分辨力固定为0.5。欲提高分辨力,只能靠软件计算来实现。而DS18B20的数字温度输出可进行912位的编程。在便笺式RAM的第五个字节是CONFIG寄存器,其格式如下: MS B代表最高有效位,LSB代表最低有效位。格式中的第04位在写操作时不予考虑,读出时总是“1”;第7位在写操作时不考虑,读出时为“0”。R0、R1是在可编程温度分辨力位。通过对这两位进行不同的编程,可设定不同的温度分辨力及最大转换时间,设定的分辨力愈高,所需要的温度-数据转换时间就愈长。因此,在实际应用中需要在分辨力与转换时间二者之间权衡考虑。在芯片出厂是R1和R0 均被置为“1”,既工作在12位模式下。DS 18B20分另工作在9位、10位、11位和12位模式下,所对应的分辨力依此为0.5、0.25、0.125、0.0625。当 DS18B20接受到温度转换命令(44H)后,开始启动转换,转换完成后的温度就以16位带符号扩展的二进制补码形式,存储在便笺RAM的第0,第1字节。在执行读便笺RAM命令后,可将这两个字节的温度值通过单线总线传送给主CPU,高位字节的符号代表温度值为正还是为负。显然,DS18B20与DS1820的温度字节定义不一致,当DS18B20的工作模式依此选择11位、10位和9位时,末尾为零的低位数就分别对应于一位、二位和三位。举例说明,当工作模式选择10位时,最低两位(即2-4位和2-3位)均为0,总有效位就变成10位。其中,数字位占9位,符号位也占一位。(3)DS1820进行9位温度转换所需时间的典型值为200ms,而DS18B20进行9位的温度转换仅需93.75ms。由此可见,DS18B20的转换速率也比DS1820有很大的提高。(4)内部存储器映射关系发生了变化。其中,第6字节的计数器余数值和第7字节中每度计数值,仅在DS1820进行高分辨力测温时才使用。DS18B20的内部存储器的映射关系如图 4-5-2所示,用 DS18B20测量温度时,因为通过编程的方法即可将DS18B20设定在高分辨力模式下,所以不再需要这两个值。但根据实际需要,在便笺式RAM和EERAM中加入 CONFIG字节。(5)具有电源反接保护电路。当电源电压的极性接反时,能保护DS18B20不会因发热而烧毁,但此时芯片无法正常工作。(6)DS18B20的引脚功能和内部框图与DS1820完全相同,但其体积比DS1820减小了一半。3.3.2 DS18B20的使用注意事项使用 DS18B20时应注意以下事项:(1)由于DS18B20的测温分辨力提高到12位,因此它对时序及电特性参数要求较高,需严格按照DS18B20的时序要求进行操作。(2)DS18B20作三线制应用时,应将UDD、I/O、GND端焊接牢固;作两线制应用时,应将UDD与GND连在一起焊牢。若UDD端漏焊或者虚焊,传感器就只能输出+85.0 的温度数据。(3)测温电缆线可采用带屏蔽层的4芯双绞线,其中两根线分别接信号线与地线,另两根线依此接UDD和地线,屏蔽层在源端单点接地。 4 AT24C512 存储器的功能及应用4.1 24C512存储器简介二进制I2C CMOS串行EEPROM 24系列存储器介绍:24C512是一种采用 CMOS工艺制成的 64K*8位引脚的串行的可用电擦除可编程只读存储器。自定义时写周期包括自动擦除时间不超过10ms,典型时间为5ms。而Microchip公司的串行EEPROM的擦除和写入1个字节数据的时间可缩短到1ms以下。串行EEPROM一般具有两种写入方式,一种是字节写人方式,还有一种页写入方式,允许在一个周期内同时对1字节到一页的若干字节进行编程写入,一页的大小取决于芯片内页寄存器的大小,不同公司的同一型号存储器的页寄存器可能是不一样的。例如 Atmel 的AT24C0101A02A的页寄存器为 4B8B8B,而 Microchip的 24C01A02A页寄存器都为2B,24AA01页寄存器为8B。擦除写入周期寿命一般已达到10万次以上,有的产品(例如 Microchip的 24AA01)已达到1000万次。片内写入的数据保存的寿命已达40年以上,有的产品(例如Atmel的AT24C01)已可保证达到100年以上。采用单一电源+5V0.1V,低功耗工作电流 lmA,备用状态时只有10A;三态输出,与TTL电平兼容。一般商业品工作温度范围为070,工业品为一40+85。这个系列的芯片有8引脚DIP(双列直插)封装、8引脚 SOIC(表面贴装)封装形式,一部分型号还有14引脚SOIC(表面贴装)封装形式。 器件型号为24XXXX和85XXX的芯片都是二线制I2C串行EEPROM芯片,24系列有硬件写保护脚WP,而85系列没有WP引脚。Atmel公司的AT24C164是一种8引脚2线可级联串行EEPROM芯片,这种芯片可以通过级联多达8片芯片把总容量扩展到128Kb,而用同两根输人和输出数据。 1特点说明: 24系列存储器是一种采用CMOS工艺制成的14位引脚的串行的可用电除的只读存储器。采用单一电源+5V供电,低功耗工作电流1mA,备用状态时只有10A;三态输出,与TTL电平兼容。 2引脚图: 图8 引脚图3引脚说明: 用于基本总线操作的引脚只有SCL和 SDA。其管脚定义如下: SCL串行时钟端。这个信号用于对输入和输出数据的同步,写入串行EEPROM的数据用其上升沿同步,输出数据用其下降沿同步。 SDA串行数据输入输出端。这是串行双向数据输入输出线,这个引脚漏极开路驱动,可以与任何数目的其他漏极开路或集电极开路的器件“线或”连接。WP写保护。这个引脚用于硬件数据保护功能,当其接地时,可以对整个存储器进行正常的读写操作;当其接电源VCC时,芯片就具有数据写保护功能,被保护部分因不同型号芯片而异。被保护部分的读操作不受影响,实际上这时被保护部分就可以作为串行只读存储器使用。 A0、A1、A2 片选或页面选择地址输入。 TEST 测试,用于对存储器的检测。VCC 电源电压接十SV。VSS 接地端。 NC 未连端。4.2 AT24C512 存储器的功能 24C系列支持I2C双向二线制串行总线及其传输规约,一般把传送数据到总线上的器件定义为发送器,接收数据的器件为接收器。串行EEPROM在系统中总是作为从机工作,总线必须由一片可以产生串行时钟(SCL)的主器件控制,通常这个主器件就是微处理器或微控制器,控制其总线访问和产生“启动”和“停止”信号。微处理器和EEPROM都可以作为发送器或接收器,在对EEPROM进行写操作时,微处理器是发送器,串行EEPROM是接收器,而在读操作时则相反。但是哪一种操作方式被激活是由微处理器确定。同一种芯片在总线上最多可接人的数目因片而宜,在多片组情况下哪一片被访问是由芯片地址输入 A2、A1、和A0选择。 1编程方式(写操作) 在这种方式下,微处理器发送EEPROM存储单元地址和一个字节数据至EEPROM。微处理器发出“启动”信号后,紧跟着送4位I2C总线器件特征编码1010和3位EEPROM芯片地址页地址XXX以及写状态的RW位(0)到总线上。这表示在接收到被寻址的EEPROM产生的一个应答位后,微处理器将跟着送一个字节的EEPROM存储单元地址的要写入的一个字节数据。所以由微处理器发送的下一个字节是EEPROM存储单元的地址,并将被写入EEPROM片内的地址指针。微处理器在接收到EEPROM收到存储单元地址后又一次产生的应答位之后,微处理器才发送数据字节,并把数据写入被寻址的存储单元。EEPROM再一次发出应答信号,微处理器收到此应答信号后,便产生“停止”信号。这个“停止”信号就激活内部定时编程周期,把接收到的位数据写入指定的EEPROM存储单元。在内部定时写入期间,所有的输人都无效,一直到写入操作完成后才能再进入新的编程周期。 图9 24C512 字节写入格式 2读操作: 串行EEPROM的读操作分两步进行:微处理器首先送一个“启动”信号,通过写操作设置EEPROMR芯片地址和EEPROM存储单元地址,在此期间相应位置会出产生必要的应答位。接着微处理器重新发送另一个“启动”信号和含读操作命令(R/W=1)的EEPROM芯片地址,EEPROM发出应答信号后,要寻址存8单元的数据就从SDA线上输出。 读操作三种:读当前地址存储单元的数据、读指定地址单元的数据、读连续存储单元的数据。 在这主要介绍读当前地址单元数据这一方法。 串行EEPROM内部数据存储单元地址计数器记录当前操作地址,这个地址是在上一次读或写操作时最后一个被访问存储单元的下一个单元的地址值,只要芯片不断电,这个地址在操作中就一直保持有效。在读操作方式下,其地址“滚动循环”是指从最后一页存储器的最后一个存储单元循环转入第一页存储器的第一个存储单元。值得注意的是,在写操作方式下,其地址“滚动循环”是指从当前页存储器的最后一个存储单元转人同一页存储器的第一 个存储单元。 一旦含有被设置成R/W的EEPROM芯片地址输人,并由EEPROM发出应答信号,当前地址所指向存储单元的数据就被串行输出。微处理器在读完一帧数据后,发送非应答信号,即送入逻辑1,接着需要发送一个“停止”信号。4.3 读存储器的部分程序说明 该作品中的温度数据为2字节的补码格式,一个温度数据占用2字节,所以直接编写2字节同时写入相邻地址单元的于程序,该程序中,入口参数如下:R1R0为地址的人口地址,R2R3为数据的人口地址WRITE24为写2个数据子程序,READ24为读2个数据子程序。SCL BIT P1.3 ;定义管脚SDA BIT P1.4 ;定义管脚WRITE24:CLR SCL ;ADDR(IN EEPROM)RIRO,DATAR3RZ SETB SDA ;(RIRO)RZ SETB SCL ;(RIRO1)R3 CLR SDA ;起动信号 MOV A,#OAOH ACALL WRA MOV A,R1 ACALL WRA ;写高字节地址数据 MOV A,RO ACALL WRA ;写低字节地址数据 MOV A,R2 ACALL WRA ;写 R2 到存储器中 CLR SCL CLR SDA SETB SCL SETB SDA ;停止信号 ACALL DMS MOV A,RO ADD A,#01H MOV RO,A MOV A,R1 ADDC A,#00H MOV R1,A ;改变地址指针 CLR SCL SETB SDA SETB SCL CLR SDA ;起动信号 MOV A,#OAOH ACALL WRA MOV A,R1 ACALL WRA MOV A,RO ACALL WRA MOV A,R3 ACALL WRA ;写 R3至馆储器中 CLR SCL CLR SDA SETB SCL SETB SDA ;i止信号 ACALL DMS RETWRA: MOV R4,#08HWR: CLR SCL RLC A MOV SDA,C SETB SCL DJNZ R4,WR ;写一个字子程序 CLR SCL SETB SDA SETB SCL JB SDA,ERRORI ;gMg RETERRORI: SETB FO RETREAD24: CLR SCL ;读取串行总线上的数据 SETB SDA SETB SCL CLR SDA ;M动信号 MOV A,OAOH ACALL WRA MOV A,R1 ACALL WRA ;字高字节地址数据 MOV A,RO ACALL WRA ;写低 字节地址数据 CLR SCL SETB SDA SETB SCL CLR SDA ;起动信号 MOV A,#OA1H ACALL WRA ;写人控制字 ACALL RDA MOV R2,A ;读取一个数据到 R2中去 CLR SCL CLR SDA SETB SCL SETB SDA ;停止信号 MOV A,RO ADD A,#01H MOV RO,A MOV A,R1 ADDC A,#00H MOV A,R1 ;改变地址指针 CLR SCL SETB SDA SETB SCL CLR SDA ;M动信号 MOV A,#OAOH ACALL RRA MOV A,R1 ACALL WRA MOV A,RO ACALL WRA CLR SCL SETB SDA SETB SCL CLR SDA ;M动信号 MOV A,#OA1H ACALL WRA ;g人控0字节 ACALL RDA MOV R3,A ;读取一个字节到R3中 RETRDA: MOV R3,08HRD: CLR SCL NOP NOP NOP MOV C,SDA RLC A SETB SCL DJNZ R3,RD ;读取一个字节数据 CLR SCL CLR SDA SETB SCL SETB SDA RET5 调试过程5.1 硬件部分调试 硬件是整个作品的基础,所有的工作必须依赖硬件电路的正常运行,在整个设计过程中,硬件的设计调试是一种重要的环节。对于硬件电路的调试我们主要由下面几个过程:1、晶振及复位电路 晶振是单片机工作的必要部分,要使整个器件正常工作,晶振电路必须正确。由于利用到串行通信,所以,将晶振频率设计为110592MHZ,另处还有30PF的电容两只。复位电路是由一只8.2K的电阻和 10F电容组成的简单型复位电路。2、数码显示电路 该作品能够显示即时温度数据,所在必须要有能正常工作的显示电路。显示电路是由LED数码管、驱动电路、拉高电阻组成。 显示部分为4位动态显示,数码管为共阴极4位数码管,共有12个管脚,其中8位用作字节码数据位,另外4位用作位选信号,也就是4位数码管的4个共阴极。由于数据管的工作电流较大,单片机不能直接进行驱动,所以使用到7407进行同向驱动,7404是一片6路同向驱动集成电路。我们只用到其中的4路。另外,要数码管能正常工作,还需要在阳极接入上拉电阻。整个数码显示是整个设计工作的开始

温馨提示

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

评论

0/150

提交评论