ds18b20课程设计报告

2023-07-01

国民经济的快速发展下,越来越多的行业,开始通过报告的方式,用于记录工作内容。怎么样才能写出优质的报告呢?以下是小编收集整理的《ds18b20课程设计报告》,供大家参考,更多范文可通过本站顶部搜索您需要的内容。

第一篇:ds18b20课程设计报告

DS18B20温度传感器设计报告

传感器课程设计

专 业: 计算机控制技术

---数字温度计

年 级: 2011 级 姓 名: 樊 益 明

学 号: 20113042

指导教师: 刘 德 春

阿坝师专电子信息工程系

1. 引 言

1.1. 设计意义

在日常生活及工农业生产中,经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持。其缺点如下:

● 硬件电路复杂; ● 软件调试复杂; ● 制作成本高。

本数字温度计设计采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件,测温范围为-55~125℃,最高分辨率可达0.0625℃。

DS18B20可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的热点。

2 设计要求

2.1基本要求 1) 用LCD12232实现实时温度显示温度和自己的学号。 2) 采用LED数码管直接读显示。 2.2扩展功能

温度报警,能任意设定温度范围实现铃声报警;

33.1单片机89C52模块

单片机89C52是本设计中的控制核心,是一个40管脚的集成芯片构成。引脚部分:单片机引脚基本电路部分与普通设计无异,40脚接Vcc+5V,20脚接地。X1,X2两脚接12MHZ的晶振,可得单片机机器周期为1微秒。RST脚外延一个RST复位键,一端通过10K电阻接Vcc,一端通过10K电阻接地。AT89S52是一种低功耗、高性能的8位CMOS微控制器,具有8K的可编程Flash 存储器。使

资料准备 用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8K字节Flash,256字节RAM,32位I/O 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。P 0口接一个470的上拉电阻。P0口0~8脚接4位共阳数码管的段选,P2口0~4脚接4位共阳数码管的位选,P3.7接DS18B20采集信号。

3.2 DS18B20简介

DALLAS最新单线数字温度传感器DS18B20简介新的“一线器件”体积更小、适用电压更宽、更经济 Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20、 DS1822 “一线总线”数字化温度传感器 同DS1820一样,DS18B20也支持“一线总线”接口,测量温度范围为 -55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。DS1822的精度较差为± 2°C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。 DS18B20、 DS1822 的特性 DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色! DS1822与 DS18B20软件兼容,是DS18B20的简化版本。省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为±2°C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。 继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。3.3 温度传感器的工作原理

DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。 DS18B20测温原理:低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值,即为所测温度。

3.4 DS18B20中的温度传感器对温度的测量

高速暂存存储器由9个字节组成,其分配如表5所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在 高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。

温度数据值格式

下表为12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0, 这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际 温度。 例如+125℃的数字输出为07D0H,

实际温度=07D0H*0.0625=2000*0.0625=125℃。

例如-55℃的数字输出为FC90H,则应先将11位数据位取反加1得370H(符号位不变,也不作运算), 实际温度=370H*0.0625=880*0.0625=55℃。

可见其中低四位为小数位。

DS18B20温度与表示值对应表

3.5 DS18B20的内部结构

DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如下:

DQ为数字信号输入/输出端;

GND为电源地;

VDD为外接供电电源输入端(在寄生电源接线方式时接地)。

1) 64位的ROM 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。

2) DS18B20温度传感器的存储器

DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。

暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第

六、

七、八个字节用于内部计算。第九个字节是冗余检验字节。

3.6 DS18B20的时序

由于DS18B20采用的是单总线协议方式,即在一根数据线实现数据的双向传输,而对89C51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。

由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。

1) DS18B20的复位时序

2)DS18B20的读时序

对于DS18B20的读时序分为读0时序和读1时序两个过程。

对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。

3) DS18B20的写时序

对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。

对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。

4系统框架设计如下图所示:

按照系统设计功能的要求数字温度计总体电路结构框图如下图所示

5硬件设计

温度计采用AT89C51单片机作为微处理器,温度计系统的外围接口电路由晶振、LCD显示电路、复位电路、温度检测电路、LCD驱动电路。

温度计的工作过程是:初始化其接收需要检测的温度,并一直处于检测状态,并将检测到的温度值读取,并转化为十进制数值,通过LCD显示出来,再显示温度,方便用户来读数使用记录数据。

温度计系统的的硬件电路图如下图所示。

DS18B20测温和学号显示

6系统程序的设计

6.1主程序

主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值。温度测量每1s进行一次。

主程序流程图如图4.1.1所示。

初始化调用显示子程序1s到?YN初次上电?N读出温度值温度计算处理显示数据刷新Y发温度转换开始命令

主程序流程图

6.2读出温度子程序

读出温度子程序的主要功能是读出RAM中的9字节。在读出时须进行CRC校验,校验有错时不进行温度数据的改写。

读出温度子程序流程图如图4.2所示。

发DS18B20复位信号发跳过ROM命令CRC校验正确?发读取温度命令Y移入温度暂存器读取操作,CRC校验YNN结束9字节完?

6.3温度转换命令子程序

温度转换命令子程序主要是发温度转换开始命令。当采用12位分辨率时,转换时间大约为750ms。在本程序设计中,采用1s显示程序延时法等待转换的完成。 温度转换命令子程序图如图4.3所示。

发DS18B20复位uml发跳过ROM命令发温度转换开始命令

结束

6.4计算温度子程序

计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值的正负判断。

计算温度子程序流程图如图4.4所示。

开始计算小数位温度BCD值温度零下?N计算整数位温度BCD值Y置“+”标志温度值补码置“—”标志结束

6.5显示数据刷新子程序

显示数据刷新子程序主要是对显示缓冲器中得显示数据进行刷新操作,当最高数据显示位为0时,将符号显示位移入下一位。

显示数据刷新子程序流程图如图4.5所示。

7 设计总结

本设计利用89S51芯片控制温度传感器DS18B52,再辅之以部分外围电路实现对环境温度的控制,性能稳定,精度较高,而且扩展性很强。由于DS18B20支持单总线协议,我们可以将多个DS18B52并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B52通信,占用较少的微处理器的端口就可以实现多点测温监控系统。

我们在老师的指导下完成了基于DS18B20的数字温度计的设计和制作。在进行实验的过程中,我们了解并熟悉DS18B20、AT89C2051以及74LS244的工作原理和性能。并且通过温度计的制作,我们将电子技能实训课堂上学到的知识进行运用,并在实际操作中发现问题,解决问题,更加增加对知识的认识和理解。

第二篇:DS18B20学习总结

及其高精度温度测量的实现

1.1 DS18B20简介

DS18B20是美国DALLAS半导体公司生产的可组网数字式温度传感器. 主要由三个数据部件组成:64的激光ROM,温度灵敏原件,非易失性温度告警触发器TH和TL。 封装如图一:

图一 1.

2DS18B20的特点:

1. 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

2. DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现多点测温。 3. DS18B20在使用中不需要任何外围元件。

4. 测温范围-55℃~+125℃,固有测温分辨率0.5℃。 5. 测量结果以9位数字量方式串行传送。

内部结构框图如图二所示。

图二

2.1 访问温度计的协议:

(一)初始化

(二)ROM操作命令

(三)存贮器操作命令

(四)处理/数据

由热敏原件中晶振特性计算出所测的温度。 注意:复位操作如下图三

图三 必需要给DS18B20输入脉冲激活其复位功能。

DS18B20的驱动程序:

/*************************此部分为18B20的驱动程序*************************************/

#include #include sbit D18B20=P3^7; sbit error=P3^4; #define NOP() _nop_() /* 定义空指令 */ #define _Nop() _nop_() /*定义空指令*/ void TempDelay (unsigned char idata us); void Init18b20 (void); void WriteByte (unsigned char idata wr); //单字节写入 void read_bytes (unsigned char idata j); unsigned char CRC (unsigned char j); void GemTemp (void); void Config18b20 (void); void ReadID (void); void TemperatuerResult(void); bit flag; unsigned int idata Temperature; unsigned char idata temp_buff[9]; //存储读取的字节,read scratchpad为9字节,read rom ID为8字节 unsigned char idata id_buff[8];

unsigned char idata crc_data; unsigned char code CrcTable [256]={ 0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65, 157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220, 35, 125, 159, 193, 66, 28, 254, 160, 225, 191, 93, 3, 128, 222, 60, 98, 190, 224, 2, 92, 223, 129, 99, 61, 124, 34, 192, 158, 29, 67, 161, 255, 70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56, 102, 229, 187, 89, 7, 219, 133, 103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196, 154, 101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36, 248, 166, 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185, 140, 210, 48, 110, 237, 179, 81, 15, 78, 16, 242, 172, 47, 113, 147, 205, 17, 79, 173, 243, 112, 46, 204, 146, 211, 141, 111, 49, 178, 236, 14, 80, 175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209, 143, 12, 82, 176, 238, 50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, 45, 115, 202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139, 87, 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22, 233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168, 116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53};

void GetTemp() {

if(TIM==100)

{ TIM=0;

TemperatuerResult();

每隔 1000ms 读取温度。

void TemperatuerResult(void) {

p = id_buff;

ReadID();

//先确定是第几个DS18B20

Config18b20(); //配置DS18B20的报警温度和分辨度

Init18b20 ();

//复位)

WriteByte(0xcc);

//skip rom

WriteByte(0x44);

//Temperature convert

Init18b20 ();

//复位)

WriteByte(0xcc);

//skip rom

WriteByte(0xbe);

//read Temperature

p = temp_buff;

GemTemp(); //读取温度

}

void GemTemp (void) {

read_bytes (9);

if (CRC(9)==0) //校验正确

{

Temperature = temp_buff[1]*0x100 + temp_buff[0]; //

Temperature *= 0.0625;

Temperature /= 16;

TempDelay(1);

} } *Function:CRC校验 *parameter: *Return: *Modify: *************************************************************/ unsigned char CRC (unsigned char j) {

unsigned char idata i,crc_data=0;

for(i=0;i

crc_data = CrcTable[crc_data^temp_buff[i]];

return (crc_data); }

/************************************************************ *Function:向18B20写入一个字节 *parameter: *Return: *Modify:

void WriteByte (unsigned char idata wr) //单字节写入 {

unsigned char idata i;

for (i=0;i<8;i++)

{

D18B20 = 0;

_nop_();

D18B20=wr&0x01;

TempDelay(3);

//delay 45 uS //

5 _nop_();

_nop_();

D18B20=1;

wr >>= 1;

} }

/************************************************************ *Function:读18B20的一个字节 *parameter: *Return: *Modify: *************************************************************/ unsigned char ReadByte (void)

//读取单字节

unsigned char idata i,u=0;

for(i=0;i<8;i++)

{

D18B20 = 0;

u >>= 1;

D18B20 = 1;

if(D18B20==1)

u |= 0x80;

TempDelay (2);

_nop_();

}

return(u); } /************************************************************ *Function:读18B20 *parameter: *Return: *Modify: *************************************************************/ void read_bytes (unsigned char idata j) {

unsigned char idata i;

for(i=0;i

{

*p = ReadByte();

p++;

} } /************************************************************ *Function:延时处理 *parameter: *Return: *Modify: *************************************************************/ void TempDelay (unsigned char idata us) {

while(us--); } /************************************************************ *Function:18B20初始化 *parameter: *Return: *Modify: *************************************************************/ void Init18b20 (void) {

D18B20=1;

_nop_();

D18B20=0;

TempDelay(80);

//delay 530 uS//80

_nop_();

D18B20=1;

TempDelay(14);

//delay 100 uS//14

_nop_();

_nop_();

_nop_();

if(D18B20==0)

{flag = 1; error=0; }

//detect 1820 success!

else

{flag = 0; error=1; }

//detect 1820 fail!

TempDelay(20);

//20

_nop_();

_nop_();

D18B20 = 1; }

/************************************************************

向18B20写入一个字节 *parameter: *Return: *Modify: *************************************************************/ void WriteByte (unsigned char idata wr) //单字节写入 {

unsigned char idata i;

for (i=0;i<8;i++)

{

D18B20 = 0;

_nop_();

D18B20=wr&0x01;

TempDelay(3);

//delay 45 uS //5

_nop_();

_nop_();

D18B20=1;

wr >>= 1;

} }

/************************************************************

读18B20的一个字节

*/ unsigned char ReadByte (void)

//读取单字节 {

unsigned char idata i,u=0;

for(i=0;i<8;i++)

{

D18B20 = 0;

u >>= 1;

D18B20 = 1;

if(D18B20==1)

u |= 0x80;

TempDelay (2);

_nop_();

}

return(u); }

/************************************************************ 3.1.2

SPI数据线配置。

/*************************此部分为74HC595的驱动程序使用SPI总线连接*************************************/

#include #include

#define NOP()

_nop_()

/* 定义空指令 */ #define _Nop() _nop_()

/*?定义空指令*/ void HC595SendData(unsigned int SendVal);

//SPI IO sbit

MOSIO =P1^5; sbit

R_CLK =P1^6; sbit

S_CLK =P1^7; sbit

IN_PL =P3^4;

//74HC165 shift load

把数据加载到锁存器中 sbit

IN_Dat=P3^5;

//74HC165 output

数据移出 sbit

OE

=P3^6;

/********************************************************************************************************* ** 函数名称: HC595SendData ** 功能描述: 向SPI总线发送数据

*********************************************************************************************************/ void HC595SendData(unsigned int SendVal) {

unsigned char i;

for(i=0;i<16;i++)

{

if((SendVal<

else MOSIO=0;

S_CLK=0;

NOP();

NOP();

S_CLK=1;

}

R_CLK=0; //set dataline low

NOP();

NOP();

R_CLK=1; //片选

OE=0; }

3.1.

3试验数码管上显示温度

#include extern GetTemp();

//声明引用外部函数 extern unsigned int idata Temperature;

// 声明引用外部变量 void delay(unsigned int i);

sbit

LS138A=P2^2;

//管脚定义 sbit

LS138B=P2^3; sbit

LS138C=P2^4;

//此表为 LED 的字模, 共阴数码管 0-9 -

unsigned char code Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; unsigned long LedOut[5],LedNumVal; void system_Ini() {

TMOD|= 0x11;

TH1 = 0xD8;

//10

TL1 = 0xF0;

IE = 0x8A;

TR1 = 1 main() { unsigned char i;

system_Ini();

while(1)

{

GetTemp();

/********以下将读18b20的数据送到LED数码管显示*************/

LedNumVal=Temperature;

//把实际温度送到LedNumVal变量中

LedOut[0]=Disp_Tab[LedNumVal%10000/1000];

LedOut[1]=Disp_Tab[LedNumVal%1000/100];

LedOut[2]=Disp_Tab[LedNumVal%100/10]; //十位

LedOut[3]=Disp_Tab[LedNumVal%10];

//个位

for(i=0; i<4; i++)

{

P0 = LedOut[i] ;

switch(i)

{

//138译码

case 0:LS138A=0; LS138B=0; LS138C=0; break;

case 1:LS138A=1; LS138B=0; LS138C=0; break;

case 2:LS138A=0; LS138B=1; LS138C=0; break;

case 3:LS138A=1; LS138B=1; LS138C=0; break;

}

delay(100);

}

P0 = 0;

} }

//延时程序

void delay(unsigned int i) {

char j;

for(i; i > 0; i--)

for(j = 200; j > 0; j--); } 4.1 讨论DS18B20的自动报警功能实现。

DS18B20只是一个测温元件,所谓的报警功能要通过程序由单片机来实现。

DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节的存储器,头2个字节包含测得的温度信息,第3和第4字节TH(报警温度上限)和TL(报警温度下限)的拷贝。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。第

6、

7、8字节保留未用。要实现报警,完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较(当然要自己编程序)。若T>TH或T

第三篇:DS18B20的各个ROM命令

1、 Read ROM[33H]

2、 Match ROM[55H]

这个是匹配ROM命令,后跟64位ROM序列,让总线控制器在多点总线上定位一只特定的DS18B20。只有和64位ROM序列完全匹配的DS18B20才能响应随后的存储器操作。所有和64位ROM序列不匹配的从机都将等待复位脉冲。这条命令在总线上有单个或多个器件时都可以使用。

3、Skip ROM[0CCH]

这条命令允许总线控制器不用提供64位ROM编码就使用存储器操作命令,在单点总线情况下,可以节省时间。如果总线上不止一个从机,在Skip ROM命令之后跟着发一条读命令,由于多个从机同时传送信号,总线上就会发生数据冲突(漏极开路下拉效果相当于相“与”)

4、Search ROM[0F0H]

当一个系统初次启动时,总线控制器可能并不知道单线总线上有多个器件或它们的64位编码,搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。

5、Alarm Search[0ECH]

这条命令的流程和Search ROM相同。然而,只有在最近一次测温后遇到符合报警条件的情况,DS18B20才会响应这条命令。报警条件定义为温度高于TH或低于TL。只要DS18B20不掉电,报警状态将一直保持,知道再一次测得的温度值达不到报警条件。

6、Write Scratchpad[4EH]

这个命令向DS18B20的暂存器TH和TL中写入数据。可以在任何时刻发出复位命令来中止写入。

7、Read Scratchpad[0BEH]

这个命令读取暂存器的内容。读取将从第1个字节开始,一直进行下去,直到第9(CRC)字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。

8、Copy Scratchpad[48H]

这个命令把暂存器的内容拷贝到DS18B20的E2ROM存储器里,即把温度报警触发字节存入非易失性存储器里。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又忙于把暂存器拷贝到E2存储器,DS18B20就会输出一个0,如果拷贝结束的话,DS18B20则输出1。如果使用寄生电源,总线控制器必须在这条命令发出后立即启动强上拉并保持10ms。

9、Convert T[44H]

这条命令启动一次温度转换而无需其他数据。温度转换命令被执行,而后DS18B20保持等待状态。如果总线控制器在这条命令之后跟着发出时间隙,而DS18B20又忙于做时间转换的话,DS18B20将在总线上输出0,若温度转换完成,则输出1,。如果使用寄生电源,总线控制必须在发出这条命令后立即启动强上拉,并保持500ms以上时间。

10、Recall E2

这条命令把报警触发器里的值拷贝回暂存器。这种拷贝操作在DS18B20上电时自动执行,这样器件一上电,暂存器里马上就存在有效的数据了。若在这条命令发出之后发出读数据隙,器件会输出温度转换忙的标识:0为忙,1为完成。

11、Read Power Supply[0B4H]

若把这条命令发给DS18B20后发出读时间隙,器件会返回它的电源模式:0为寄生电源,1为外部电源。

第四篇:《3DS MAX》课程设计总结

2009--2010年第一学期

艺术系

3DS MAX课程设计总结

樊继

艺术系艺术设计教研室

2009年9月

《3DS MAX》课程设计总结

樊继

《计算机辅助2》这门课主要是针对3Dmax进行学习和操作,其实在大一大二的时候有初步的接触,但由于长时间不联系,又从新回到了原点,对此对这三周的课程进行一个总结和学习的心得体验

好奇期:初期,出于好奇而初涉MAX时,眼前汪洋一片,不知从何涉足。花掉重金,盲目购入大量3DSMAX书籍,以为凭着刻苦钻研,成为三维动画大师还不是易如反掌?岂知读过这些书后,才知书的水准参差不齐。读后仍然不得要领。幸运的话可得业内友人指点,从中选出几本适宜的书细读,才开始上路。

经验1:不要浪费银子盲目购书,选准好的图书会事半功倍。

兴趣期:在初识MAX后,兴趣大增,急于想尽快揭开MAX神秘的面纱,出现急功近利的倾向。什么都想看看,什么都想学学,制作出个小玩艺,便沾沾自喜,逢人便显示,企图赢得人们赞赏。口中自谦为菜鸟,心中却很自豪。最终进入“万金油”的阶段,即样样通,样样松,用现代语说就是菜鸟。

经验2:沉下心,多学习,尽量缩短菜鸟期

沮丧期:渡过了“菜鸟期”便进入沮丧期。此时,MAX像无底深渊,令人越陷越深,愈学愈难,看看人家高手制作的作品,对比自己的拙作,大感自惭形秽!于是信心倍失,随即产生另寻新欢的念头。

经验3:多实践,练题海, 咬牙渡过沮丧期

理性期:像人类渡过痛苦的老年更年期一样,MAX初学者应仅快地从痛苦的沮丧期中解脱出来。一旦解脱,便会冷静下来总结经验,以利再战。总结经验,选定学习目标是最重要的。............。。。。。。。。。.................

经验总结3条:

(1)要根据自己的特长去决定自己学习MAX和应用MAX的目标。譬如,你的主业是建筑行业,熟悉建筑,那么就钻研建筑造型的MAX技术;如果你的专业是工业设计,那么你就围绕工业产品造型方面去深入MAX技术,决不可胡子眉毛一把抓。

(2)在此阶段要多读活材料,例如MAX技术论坛中的经验之谈的交流贴子、精彩的教材等,选用经典的高级教材,多参考大师的作品。

(3)要不断地实践。甚至同一个模型要重复地去做数遍,用不同的方法去作。俗话说:熟能生巧,在制作过程中,你有可能惊喜地发现一些新思路新方法,甚至MAX软件设计师事先并未想到的出奇效果。

5、成熟期:在这个阶段,技术已经比较成熟了,可以独挡一面了。在这个阶段最重要的是交流,因为一山更比一山高,别人的是思路或许可以给你很大启发。

所以我以后的学习中要加强对软件的操作能力,把理论与实际操作结合才能做出合格优秀的作品,为以后的工作打下坚实的基础。

第五篇:3DS MAX三维设计教学大纲

(48课时 学制1个半月)

一、基本概念与环境介绍(4课时)

1.3DMax基本概述,三维设计的基本思想和设计理念。

2.3DMax界面介绍,工具栏、菜单、视图区、视图控制区、动画播放控制区的讲解。

二、控制面板的讲解(8课时)

1.三维实体的控制和创建,扩展物体的创建与使用。 2.平面物体的创建、技巧及应用,各种对称物面的创建。

三、常用编辑器(4课时)

1.用户自定义面板、定义常用修改器。 2.拉伸、弯曲、旋转、编辑网格、曲线等命令。

四、布尔运算介绍(4课时)

布尔运算的种类和方式,三维实体的布尔运算,平面线框造型后的布尔运算。

五、物体的放样(4课时)

1.放样物的模式(面、路径),多重放样的使用技巧。 2.Path的百分比例控制及调整。

六、灯光及其运用(4课时)

1.灯光的种类、参数控制,几种常用灯光的使用及参数。 2.目标和自由相机的建立、如何建立一个特效相机视图。

七、材质编辑器(4课时)

1.材质的介绍、讲解及种类,贴图种类介绍。

2.色调、光照、亮度及有关参数的设置核心、要点讲解。

八、渲染(4课时)

1.建立室内、室外效果图模型。

2.设计和制作一般的室内、室外装饰效果图。

九、CAD、Photoshop与3D Max软件互用(8课时)

CAD建模及效果图形的模型建立;3D Max处理建模、材质、灯光效果; PhotoShop后期处理外观、室内效果图,添加生机和环境绿化。

十、综合实例讲解与作品设计(4课时)

室内、室外效果图的设计与制作

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:第2期总第94期下一篇:sbs3unit1同步练习