目 录 1 设计任务与要求... 4 2设计方案... 4 1 设计思路... 4 3 单片机AT89S52. 7 3.2定时器/计数器... 8 3硬件电路设计... 11 4 主要参数计算与分析... 13 5软件设计... 13 6调试过程... 15 7结论... 15 8附录... 15 9参考文献... 15
1 设计任务与要求 传统的温度传感器系统大都采用放大、调理、A/D转换,转换后的数字信号送入计算机处理,处理电路复杂、可靠性相对较差,占用计算机的资源较多。DS18B20是一线制数字温度传感器,它可将温度信号直接转换成串行数字信号送给微处理器,电路简单,成本低,每一只DS18B20内部的ROM存储器都有唯一的64位系列号,在1根地址/信号线上可以挂接多个DS18B20,易于扩展,便于组网和多点测量。 需要考虑以下3个方面: (1)温度传感器芯片的选择; (2)单片机和温度传感器的接口电路设计; (3)控制温度传感器实现温度信息采集以及数据传输的软件[1]
2设计方案 号的温度信息,必须通过温度传感器。传统的温度测量多以热敏电阻作为温度传感器。但是,热敏电阻的可靠性较差、测 量温度精度低,而且还需经A/D转换成数字信号后才能由单片机进行处理。因此,使用数字温度传感器可简化硬件设计、 方便单片机读取数据、节约成本。 2 数字温度传感器DS18B20 2.1 DS18B20的结构与性能 DS18B20采用Dallas公司的单总线数据通信方式专有技术,单根信号线既传输时,又可双向传输数据,占用I/O口资源少,结构简单,成本低廉,便于总线扩展和维护。DS18B20采用3引脚TO-92,小体积封装形式,内部使用在板(ON2BOARD)专利技术,全部传感元件及转换电路集成在形如一只三极管的集成电路内。3个管脚中,GND是地信号;DQ是数据输入/输出引脚,开漏单总线接口引脚,当被用在寄生电源下,也可以向器件提供电源;VDD是可选择的VDD引脚,当工作于寄生电源时,此引脚必须接地。DS18B20的测量温度范围为-55~+125℃,在-10~+85℃范围内,精度为±0.5℃,可将程序设定9~12位的分辨率。DS18B20的内部存储器包括1个高速暂存RAM和1个非易失性的、可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL以及结构寄存器。暂存存储器包含8个连续字节,前2个字节是测得的温度信息,第1个字节的内容是温度的低八位,第2个字节是温度的高八位。第3个和第4个字节是TH、TL的易失性拷贝,第5个字节是结构寄存器的易失性拷贝,这3个字节的内部在每一次上电复位时被刷新。第6、7、8个字节用于内部计算。第9个字节是冗余检验字节。操作DS18B20应遵循以下顺序:初始化、ROM操作命令、暂存器操作命令。初始化:总线上的所有操作要初始化,MCU先发复位信号,之后,DS18B20发出在线信号,并等待接受命令。ROM操作命令:MCU收到DS18B20在线信号后,发送4个ROM操作命令中的一个,这些命令字均为8位(最低位在前):①读命令(33H)。通过该命令MCU可以读出DS18B20的ROM中8位系列产品代码、48位产品序列号和8位CRC码。读命令仅用在单个DS18B20在线情况,当多于一个时由于DS18B20为开漏输出将产生线与,从而引起数据冲突。②选择定位命令(55H)。多片DS18B20在线时, MCU发出该命令和1个64位数列,DS18B20内部ROM与主机数列一致,响应主机发送的寄存器操作命令,其他DS18B20等待复位。该命令也可以用在单片DS18B20情况。③跳过ROM序列号检测命令(CCH)。对于单片DS18B20在线系统,该命令允许MCU跳过ROM序列号检测而直接对寄存器操作,从而节省时间。对于多片DS18B20系统,该命令将引起数据冲突。④查询命令(F0H)。当系统初建时,MCU可能不知道总线上有多少设备及各自的64位序列号,用该命令可以做到这点。⑤报警查询命令(ECH)。该命令操作过程同ROM查询命令,但是,仅当上次温度测量值已置位报警标志(由于高于TH或低于TL时),DS18B20才响应该命令,如果DS18B20处于上电状态,该标志将保持有效,直至遇到下列两种情况:本次测量温度发生变化,测量值处于TH、TL之间:TH、TL改变,温度值处于新的范围之间,设置报警时要考虑到EERAM中的值。存储器操作命令:①写入(4EH)。用此命令把数据写入寄存第二至第四字节,从第二字节(TH)开始。复位信号发出之前必须把这3个字节写完。②读出(BEH)。用此命令读出寄存器中的内容,从第一字节开始,直到读完第九字节,如果仅需要寄存器中部分内容,MCU可以在合适时刻发送复位命令结束该过程。③复制(48H)。用该命令把暂存器 第二至第四字节转存到DS18B20的EERAM中,如果DS18B20是由信号线供电,主机发出此命令后,总线必须保证至少10 ms的上拉,当发出命令后,主机发出读时序来读总线,如果转存正在进行,读结果为0,转存结束为1。④开始转换(44H)。DS18B20收到该命令后立刻开始温度转换,不需要其它数据。此时DS18B20处于空闲状态,当温度转换正在进行时,MCU读总线将收到0,转换结束为1。如果DS18B20是由信号线供电,M发出此命令后必须立即提供至少相应于分辨率的温度转换时间的上拉。⑤回调(B8H)。执行该命令把EERAM中的内容 回调到寄存器TH、TL和设置寄存器单元,DS18B20上电时能自动回调,因此,设备上电后TH、TL存在有效数据。该命令发出后,如果MCU跟着读总线,读到0意味着忙,1为回调结束。⑥读电源标志(B4H)。MCU发出命令后读总线,DS18B20将发送电源标志,0为信号线供电,1为外接电源。根据DS18B20的通讯协议, MCU控制DS18B20完成温度转换要经过3个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,对DS18B20进行预定的操作。复位要求MCU将数据线下拉500μs,然后放,DS18B20收到信号后等待16~60μs,发出60~240μs的存在低脉冲,主CPU收到此信号表示复位成功。由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格地保证读写时序,否则将无法读 取测温结果。DS18B20的通讯协议定义了初始化时序、读时序、写时序的时序。所有时序都是将MCU作为主设备,DS18B20作为从设备。而每一次命令和数据的传输都是从MCU主动启动写时序开始,如果要求DS18B20回送数据,在进行写命令后,MCU需启动读时序完成数据接收。数据和命令的传输都是低位在先。对DS18B20的读时序分为读0时序和读1时序2个过程。对于DS18B20的读时序是从主机把单总线拉低之后,在15 s之内释放单总线,以让DS18B20把数据传输到单总线上。DS18B20完成1个读时序过程至少需要60μs。 DS18B20的写时序分为写0时序和写1时序。DS18B20对于写0时序和写1时序的要求不同,当写0时序时,单总线要被拉低至少60μs,保证DS18B20能够在15~45μs之间正确地采样I/O总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15μs之内释放单总线。
学术论文网Tag:代写论文 毕业论文 毕业设计 |