ds18b20学习总结

2023-06-02

总结对于个人的成长而言,是我们反思自身、了解自身、明确目标的重要方式,通过编写的总结报告,我们可以在工作回顾中,寻找出自身的工作难点,掌握自身的工作优势,更加明确自身的发展方向。今天小编给大家找来了《ds18b20学习总结》,希望对大家有所帮助。

第一篇:ds18b20学习总结

基于AVR的DS18b20程序

//说明:单片机ATmega16的18B20程序。调这个18B20程序问题主要出现在延时部分,即单片机实际输出的延时与设定不符。//后面为别人精确延时,我用自己的单片机通过示波器重新测量实际延时。建议调延时用示波器先看看。我用的晶振12M,但延时根本就与理论不符。其中480us的延时要在480us与960us之间,选取550us比较合适,一般都这么选。 最后一句话:DS18B20的程序很多,模块基本相似,调不出来就是因为延时问题,示波器是必备工具,否则很盲目。

#include

#define uchar unsigned char

#define uchar unsigned char

#define uint unsigned int

//------------------------//

//.....18B20........

void init_1820(void)

{

int Flag_1820Error;

uchar i;

uint j=0;

PORTD|=(1<<7);//PORTC|=(1<<7);

PORTD&=~(1<<7);//PORTC&=~(1<<7);

for(i=0;i<8;i++)delay(180);//delay_60us();//480us以上

PORTD|=(1<<7);//PORTC|=(1<<7);

DDRD&=~(1<<7);//DDRC&=~(1<<7);//

delay(40);//delay_15us();//15~60us

delay(40);//delay_15us();

Flag_1820Error=0;

while(PIND&(1<<7)

{ delay(180);//delay_60us();

j++;

if(j>=18000){Flag_1820Error=1;break;}

}

DDRD|=(1<<7);//DDRC|=(1<<7);//PORTC7 is OUTPUT

PORTD|=(1<<7);//PORTC|=(1<<7);

for(i=0;i<4;i++)delay(180);//delay_60us(); //240us

}

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

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

void write_1820(uchar x)

{

uchar m;

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

{

if(x&(1<

{

PORTD&=~(1<<7);//PORTC&=~(1<<7);delay_5us(); //5usPORTD|=(1<<7);//PORTC|=(1<<7); //write"1"delay(40);//delay_15us(); //15~45usdelay(40);//delay_15us();delay(40);//delay_15us();

}

else

{

PORTD&=~(1<<7);//PORTC&=~(1<<7);delay_15us();//15us

delay(40);//delay_15us(); //write"0"delay(40); //delay_15us(); //15~45usdelay(40);//delay_15us();

PORTD|=(1<<7);//PORTC|=(1<<7);

}

PORTD|=(1<<7);// PORTC|=(1<<7);

}

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

uchar read_1820(void)

{

uchar temp,k,n;

temp=0;

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

{

PORTD&=~(1<<7);//PORTC&=~(1<<7);

delay(13);//delay_5us();

PORTD|=(1<<7);//PORTC|=(1<<7);

delay(13);//delay_5us();

DDRD&=~(1<<7);//DDRC&=~(1<<7);//"PINC7 is INPUT"k=(PIND&(1<<7));//k=(PINC&(1<<7)); //读数据,从低位开始if(k)

temp|=(1<

else

temp&=~(1<

delay(40);//delay_15us();//45us

delay(40);//delay_15us(); delay(40);//delay_15us();

DDRD|=(1<<7);//DDRC|=(1<<7);//

}

return (temp);

}

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

float read_temperature(void)

{

float temp;////////////

uchar teml=0,temh=0;

unsigned long t=0;

init_1820();//复位18b20write_1820(0xcc);// 发出转换命令write_1820(0x44);

//Delay_nms(100);

init_1820();

write_1820(0xcc);//发出读命令write_1820(0xbe);

teml=read_1820();//读数据byte1temh=read_1820();//byte2

t=temh;

t=t<<8; t=t|teml; temp=t*0.0625*260/286; return(temp); /*if(temh&0xf8)sign=0; else sign=1; if(sign==0){temh=255-temh;teml=255-teml;}temh=temh<<4;

temh|=(teml&0xf0)>>4;

}

//再在主程序中调用一下read_temperature(void),读取温度。 teml=teml&0x0f; teml=(teml*10)/16; tempval=temh;e[0]=tempval/100; tempval=temh;e[1]=(tempval/10)%10; tempval=temh;e[2]=tempval%10; tempval=teml;e[3]=tempval;*/

第二篇: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的工作原理和性能。并且通过温度计的制作,我们将电子技能实训课堂上学到的知识进行运用,并在实际操作中发现问题,解决问题,更加增加对知识的认识和理解。

第三篇:2011基于18B20温度传感器论文

基于单片机18B20的温度计设计

摘要:文章主要介绍有关18B20温度传感器的应用及有关注意事项,经典接线原理图。 1. 引言:

温度传感器的种类众多,在应用与高精度、高可靠性的场合时DALLAS(达拉斯)公司生产的DS18B20温度传感器当仁不让。超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得DS18B20更受欢迎。对于我们普通的电子爱好者来说,DS18B20的优势更是我们学习单片机技术和开发温度相关的小产品的不二选择。了解其工作原理和应用可以拓宽您对单片机开发的思路。

2. DS18B20的主要特征:  * 全数字温度转换及输出。  * 先进的单总线数据通信。  * 最高12位分辨率,精度可达土0.5摄氏度。  * 12位分辨率时的最大工作周期为750毫秒。  * 可选择寄生工作方式。  * 检测温度范围为–55°C ~+125°C (–67°F ~+257°F)  * 内置EEPROM,限温报警功能。  * 64位光刻ROM,内置产品序列号,方便多机挂接。  * 多样封装形式,适应不同硬件系统。 3. DS18B20引脚功能:

•GND 电压地 •DQ 单数据总线 •VDD 电源电压

4. DS18B20工作原理及应用:

DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。在讲解其工作流程之前我们有必要了解18B20的内部存储器资源。18B20共有三种形态的存储器资源,它们分别是:

ROM 只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。数据在出产时设置不由用户更改。DS18B20共64位ROM。

5. 控制器对18B20操作流程:

1、 复位:首先我们必须对DS18B20芯片进行复位,复位就是由控制器(单片机)给DS18B20单总线至少480uS的低电平信号。当18B20接到此复位信号后则会在15~60uS后回发一个芯片的存在脉冲。

2、 存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在15~60uS后接收存在脉冲,存在脉冲为一个60~240uS的低电平信号。至此,通信双方已经达成了基本的协议,接下来将会是控制器与18B20间的数据通信。如果复位低电平的时间不足或是单总线的电路断路都不会接到存在脉冲,在设计时要注意意外情况的处理。

3、 控制器发送ROM指令:双方打完了招呼之后最要将进行交流了,ROM指令共有5条,每一个工作周期只能发一条,ROM指令分别是读ROM数据、指

定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。ROM指令为8位长度,功能是对片内的64位光刻ROM进行操作。其主要目的是为了分辨一条总线上挂接的多个器件并作处理。诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的ID号来区别,一般只挂接单个18B20芯片时可以跳过ROM指令(注意:此处指的跳过ROM指令并非不发送ROM指令,而是用特有的一条“跳过指令”)。ROM指令在下文有详细的介绍。

4、 控制器发送存储器操作指令:在ROM指令发送给18B20之后,紧接着(不间断)就是发送存储器操作指令了。操作指令同样为8位,共6条,存储器操作指令分别是写RAM数据、读RAM数据、将RAM数据复制到EEPROM、温度转换、将EEPROM中的报警值复制到RAM、工作方式切换。存储器操作指令的功能是命令18B20作什么样的工作,是芯片控制的关键。

5、 执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。如执行温度转换指令则控制器(单片机)必须等待18B20执行其指令,一般转换时间为500uS。如执行数据读写指令则需要严格遵循18B20的读写时序来操作。数据的读写方法将有下文有详细介绍。 6. DS28B20芯片ROM指令表

Read ROM(读ROM)[33H] (方括号中的为16进制的命令字) Match ROM(指定匹配芯片)[55H] Skip ROM(跳跃ROM指令)[CCH] Search ROM(搜索芯片)[F0H] Alarm Search(报警芯片搜索)[ECH] 7. DS28B20芯片存储器操作指令表:

Write Scratchpad (向RAM中写数据)[4EH] Read Scratchpad (从RAM中读数据)[BEH] Copy Scratchpad (将RAM数据复制到EEPROM中)[48H] Convert T(温度转换)[44H] Recall EEPROM(将EEPROM中的报警值复制到RAM)[B8H] Read Power Supply(工作方式切换)[B4H] 8.写程序注意事项

DS18B20复位及应答关系

每一次通信之前必须进行复位,复位的时间、等待时间、回应时间应严格按时序编程。

DS18B20读写时间隙:

DS18B20的数据读写是通过时间隙处理位和命令字来确认信息交换的。 写时间隙:

写时间隙分为写“0”和写“1”,时序如图7。在写数据时间隙的前15uS总线需要是被控制器拉置低电平,而后则将是芯片对总线数据的采样时间,采样时间在15~60uS,采样时间内如果控制器将总线拉高则表示写“1”,如果控制器将总线拉低则表示写“0”。每一位的发送都应该有一个至少15uS的低电平起始位,随后的数据“0”或“1”应该在45uS内完成。整个位的发送时间应该保持在60~120uS,否则不能保证通信的正常。 读时间隙:

读时间隙时控制时的采样时间应该更加的精确才行,读时间隙时也是必须先由主机产生至少1uS的低电平,表示读时间的起始。随后在总线被释放后的15uS

中DS18B20会发送内部数据位,这时控制如果发现总线为高电平表示读出“1”,如果总线为低电平则表示读出数据“0”。每一位的读取之前都由控制器加一个起始信号。注意:必须在读间隙开始的15uS内读取数据位才可以保证通信的正确。 在通信时是以8位“0”或“1”为一个字节,字节的读或写是从高位开始的,即A7到A0.字节的读写顺序也是如图2自上而下的。

9.接线原理图:

本原理图采用四位数码管显示,低于100度时,首位不显示示例27.5,低于10度时示例为9.0,低于零度时示例为-3.7。

结束语:基于DS18B20温度测量温度准确,接线简单,易于控制,加以扩展可以应用到各种温度控制和监控场合。

参考文献:

DALLAS(达拉斯)公司生产的DS18B20温度传感器文献

程序:

#include

#define uchar unsigned char #define uint unsigned int

sbit sda=P1^7; sbit dian=P0^7;//小数点显示 uint tem;

uchar h; uchar code tabw[4]={0xf7,0xfb,0xfd,0xfe};//位选 uchar code tabs[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf};//数码管数据

//

0

4 5 6

8 9

- uchar code ditab[16]= {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09}; //查表显示小数位 ,1/16=0.0625,即当读出数据为3时,3*0.0625=0.1875,读出数据为3时对应1,查表显示1,为4时显2 uchar data temp[2]={0};//高位数据与低位数据暂存 uchar data display[5]={0};//显示缓存

void delay(uchar t)//t为1时延时小于5us { while(t--); } void delay1()//4us {} void delays(uchar m)//1ms { uchar i,j; for(i=0;i

for(j=0;j<110;j++); } void reset()//初始化 { uchar x=1; while(x) {

while(x)

{

sda=1;

sda=0;

delay(50);//延时500us以上

sda=1;

delay(5);//等待15us-60us

x=sda;

}

delay(45);

x=~sda; }

sda=1; } void write_s(uchar temp)//写入一个字节 { uchar i; for(i=0;i<8;i++) {

sda=1;

sda=0;

delay1();

sda=temp&0x01;

delay(6);

temp=temp/2; } sda=1; delay(1); } uchar read_s()//读出一个字节的数据 { uchar m=0,i; for(i=0;i<8;i++) {

sda=1;

m>>=1;

sda=0;

delay1();

sda=1;

delay1();

if(sda)

m=m|0x80;

delay(6); } sda=1; return m; } uint read_1820()//读出温度 { reset(); delay(200); write_s(0xcc);//发送命令

write_s(0x44);//发送转换命令

reset(); delay(1); write_s(0xcc);

write_s(0xbe); temp[0]=read_s(); temp[1]=read_s(); tem=temp[1]; tem<<=8; tem|=temp[0]; return tem; } void scan_led()//数据显示—数码管 { uchar i; for(i=0;i<4;i++) {

P0=tabs[display[i]];

P1=tabw[i];

delays(7);

if(i==1)

dian=0;

P1=tabw[i];

delays(2); } } void convert_t(uint tem)//温度转换{ uchar n=0; if(tem>6348) {

tem=65536-tem;

n=1; } display[4]=tem&0x0f; display[0]=ditab[display[4]];

display[4]=tem>>4;

display[3]=display[4]/100;

display[1]=display[4]%100;

display[2]=display[1]/10;

display[1]=display[1]%10; if(!display[3]) {

display[3]=0x0a; } if(!display[2])

display[2]=0x0a; if(n)

// 取百位数据暂存

// 取后两位数据暂存// 取十位数据暂存

{

n=0;

display[3]=0x0b; } } void main() { delay(0); delay(0); delay(0); P0=0xff; P1=0xff; for(h=0;h<4;h++)//初始化为零

{

display[h]=0; } reset(); write_s(0xcc); write_s(0x44); for(h=0;h<100;h++)//显示0保持

scan_led(); while(1) {

convert_t(read_1820());//读出并处理

scan_led();//显示温度

} }

第四篇:3ds max学习体会

进入重庆大学,大一的整个学习中,一直未曾真正理解自己学习的专业是哪些方面。软件工程数字媒体,这个名字对于当时大一的我来说,即熟悉又陌生,熟悉是因为自己要学习的专业就是这方面,陌生则因为对这个专业的了解少之又少。随着学习知识的不断深入,渐渐的对数字媒体这个专业有了进一步的理解。

大二这个学期一开始,我们就学习了计算机绘图,3ds max。而对3ds max的学习让我找到了学习的兴趣。

从一开始的第一节课,老师让我们自己弄3ds max。当时,这个3ds max软件,对于从来都没有接触过这方面软件的我来说,是那么的陌生,同时我又对这个软件充满了好奇。看着一些游戏,动画,海报中那些场景,那些角色的形象是那么的逼真生动,不禁感叹这个软件功能的强大。同时,学习这个软件也让我感到兴奋,骄傲。想着今后自己能做出这些场景,这些角色,就更加激励自己去学习3ds max的热情。刚刚接触3ds max,只是对里面的功能键都按过了一遍,同时也能利用里面的一些多边形建出了一些简单的立体模型,也就是一些简单的长方体,球形和立柱体等等。同时也掌握了各个视角图,和一些简单的移动,旋转,放大功能等。但是,刚刚接触3ds max,还是有太多太多的不懂,于是,我便自主的学习3ds max。

为了主动去学习到3ds max中的知识,我跑到了图书馆,从中选到了两本3ds max的书,把书借了回来。之后,我便主动的去学习3ds max,利用自习的时间 ,有时甚至利用到了选修课的时间,去阅

读3ds max的书籍,理解里面的知识,然后回到宿舍,打开电脑,利用电脑实际操作。通过操作电脑,我更加深入的理解了3ds max中的功能。那时学习3ds max掌握的知识进步很快。我了解了3ds max的一般制作过程,设置场景,建立对象模型,使用材质,放置灯光及摄影机,设置场景动画,渲染场景。同时,我也掌握了基本的多边形建模。实验课上,老师介绍的几种建模方法,我都能更好的理解,并能实际应用上。如,多边形的建模,样条线的链接及处理,以及放样,布尔操作,车削,挤出等等。同时 ,接过了老师布置的作业,利用3ds max制作出校园的模型。而我们组选择了制作东大门到缙湖这部分。而后,我们对这块校区进行了照相了解,并开始了我们的制作。

在校园模型的制作中,从建模,修改,到贴图,修改,我们遇到了许多问题。针对这些问题,我又借了一些不同方面的3ds max的书,从建模到渲染,我不断的学习新知识解决问题,我从中体会到了大量3ds max制作的思想,掌握了多种不同的建模方法。如,多边形建模,高级建模,及贴材质等。如今,这个学期已将要结束,我们的东大门到缙湖这段3ds max的校园模型制作也完成了。如今,看着自己做出来的东西,感到很欣慰,感到自己的学习收到了成果。通过实际动手操作制作校园模型,也让我更加深入的掌握了3ds max的多种功能,同时领会到了许多在工程制作中的一些思想。

我想,学习了3ds max,不仅仅只是让我们掌握3ds max中的功能,制作出一些场景,角色,而更多的是通过这种学习,培养了我们自主学习的能力,同时也让我们体会到了软件工程中一些工程制作的

流程,及其中的一些思想 。

第五篇:3ds Max总结

1) 菜单栏:每个菜单栏的名称表明其用途。单击某个菜单命令,即可弹出相应的下拉菜单,

用户可以从中选择要执行的命令

2) 视图区:视图区是系统界面中面积最大的区域,是主要的工作区,系统默认设置为4

个视图

3) 动画播放控制区:主要用来进行动画的播放控制以及动画时间的控制

4) 视图导航控制区:主要用于控制各视图的显示状态,可以方便移动和缩放各视图

5) 选择菜单栏中的【自定义】/【显示UI】/【显示浮动工具栏】命令,可以显示全部浮动

工具栏。再次选择该命令,就可以关闭所有浮动工具栏。

6) 修改物体颜色时最好不要选用白色与黑色,因为系统默认白色为当前被选择物体的颜

色,黑色为被冻结物体的颜色。

7) 【自动栅格】功能可以使新创建的物体直接附于某物体表面,在使用后应注意及时取消

其勾选状态,否则在以后创建物体时会有诸多不便。要想取消该勾选状态,必须激活任意几何无体按钮,然后才能操作。

8) 克隆复制功能是对选择的物体进行原地复制,复制的新物体与原物体重合,然后通过变

换工具将复制的物体移动到新的位置,也可以在原地进行修改,通常利用克隆复制功能制作同心物体。

9) 复制:将当前选择的物体进行复制,个物体之间互不相关。

10) 实例:以原物体为模板,产生一个相互关联的复制物体,改变其中一个物体参数的同时

也会改变另外一个物体的参数。

11) 参考:以原物体为模板,产生单向的关联复制物体,原物体的所有参数变化都将影响复

制物体,而复制物体在关联分界线以上所做的修改将不会影响原物体。

12) 在进行镜像复制物体时,镜像轴是根据当前激活视图的屏幕坐标而定的。因此在不同的

窗口中做镜像时所选的镜像轴会有区别。

13) 如果在旋转状态下设置了新的坐标系统,那么在改变操作系统时,如转换为移动状态,

参考坐标系窗口的选项就会发生变化。因此在进行操作时,最好确认参考坐标系窗口中名称为“Donut01”。

14) 快速对齐与多方位对齐比较,快速对齐工具实际上是多方位对齐工具的简化版,它只使

用了多方位对齐中的三方位轴心点对齐功能更为强大,用途更为广泛。

15) 克隆并对齐工具可以在复制物体的同时,将其对齐到所失去的目标物体上,这些目标物

体可以使一个,也可以是几个,可以是有序的,也可以是无序的。

16) 当一个植物对象处于非选择状态时,系统只将其显示为半透明的植物树冠形态。

17) 【弯曲】修改功能主要用于对物体进行弯曲处理,通过对其角度、方向和弯曲轴向的调

整,可以得到各种不同的弯曲效果。

18) 在使用弯曲修改时,应注意原始物体要拥有足够的分段值,否则将无法得到正确的结果。

19) 【锥化】修改功能是通过缩放物体的两端而产生锥形轮廓,同时还可以生成光滑的曲线

轮廓。

20) 【晶格】修改功能可以根据网格物体的结构化。线框的交叉点转化为球形节点物体,线

框转化为连接的圆柱形支柱物体,常用语制作钢架结构的效果展示。

21) 【FFD】(自由变形)修改功能可以通过少量的控制点来改变物体的形态,产生柔和的

变换效果。

22) 【澡波】修改命令是对物体表面的节点进行随即变动,是表面变得起伏不规则,常用于

制作复杂的地形,水面等。

23) 【效果】设置产生影响效果的轴向。这个参数的轴向会随【主轴】的变化而变化。

24) 简述布尔运算中并、交、差集的含义。

25) 并集:结合两个物体,减去相互重叠的部分。

26) 交集:保留两个物体相互重叠的部分,不想交的部分删除。

27) 差集:用的第一个被选择物体减去第二个物体相互重叠的部分,剩余第一个物体其余的

部分。

28) 许多修改器都提供限制功能,在使用过程中应注意几点:

29) 1正确放置中心子物体的位置;2上限值大于等于0 ; 3下线值小于等于0

30) 成功进行布尔运算有几种可行的方法?

31) 1适当增加物体表面的段数2将物体转换为“可编辑多边形”物体

32) 二维图形创建面板中的【开始新图形】选项默认是勾选的,表示没建立一个曲线,都作

为一个新的独立的线型,如果取消勾选,那么建立的多条曲线都将作为一个线型对待。

33) 二维图形一般是由点、线段、线型等元素组成的

34) 临时捕捉的含义就是在作图时需要对某一点临时捕捉一次,这需要配合键盘上的shift

键来完成。

35) 在二维图形中,除了曲线可以直接在其原始层进行编辑外,其它曲线必须添加编辑样条

线命令才能进行修改。

36) 简述2维、2.5维、3维捕捉的含义:

37) 2维捕捉:只捕捉当前视图中栅格平面上的曲线和无厚度的表面造型,对于有体积造型

的则无效,通常用于平面图形的捕捉。

38) 2.5维捕捉:这是一个介于二维与三维空间的捕捉设置,不但可以捕捉到当前平面上的

点、线等,也可以捕捉到三维空间中的物体在当前平面上的投影。

39) 3维捕捉:直接在三维空间中捕捉所有类型的物体。

40) 自动焊接与焊接的区别:

41) 前者是将一个节点移动到另外一个节点上进行焊接,而后者是将两个节点同时移动进行

焊接【点曲面】有矩形点阵列构成的曲面,这些点都依附在曲面上

42) 【CV曲面】也称为可控点曲面,由具有控制能力的点组成的曲面,这些点不存在于曲

面上,但对曲面有控制能力。

43) 物体的固有色称为漫反射色,它决定着物体表面的纹理和颜色

44) 【UVW贴图】贴图坐标命令用于对物体表面制定贴图坐标,确定材质如何投射到物体

的表面。

45) 简述【Blinn】【金属】【各向异性】的含义:

46) 【Blinn】以光滑的方式进行表面渲染,易表现冷色坚硬的材质

47) 【金属】专用于金属材质的制作,可以提供金属的强烈反射效果

48) 【各向异性】适用于椭圆形表面,适用于毛发、玻璃或磨沙金属模型的高光设置

49) 简述UVW贴图坐标的含义:

50) 用于对物体表面指定贴图坐标,以确定材质如何投射到物体的表面,当为物体施加了该

贴图坐标后,它便会自动覆盖以前的坐标指定,包括建立时的坐标指定。

51) 【倍增】参数用来控制灯光的照射强度,值越大,光照强度越大。

52) 【聚光区/光束】值适用于光线完全照射的范围,在此范围内物体受到全部光线的照射

53) 【衰减区/区域】值适用于设置光线完全不照射的范围,在此范围内将不受任何光线的

影响

54) 体积光特效:光想穿过带有烟雾或尘埃的空气时,会形成有体积感的光束,跟据这一原

理,体积光具有被物体阻挡的特性,形成光芒投射效果。

55) 镜头光斑特效:镜头特效的来源是现实生活中的摄影机,由于镜头具有光学棱镜特性,

因而形成了镜头光环和耀斑现象。镜头光斑的组成非常复杂,一个完整的镜头光斑是由

光晕、光环、二级光斑、射线、星光、条纹光组成的。

56) 注视约束:功能用于约束一个物体的方向,是该物体总是注视着目标物体,同时它还会

锁定物体的旋转角度,使物体的一个轴点朝向目标物体。

57) 交互式全景浏览:全景浏览功能是将一个场景看做成一个方体,利用一个定位的摄影机

向6个方向分别拍摄六张照片,然后在自动拼合成一幅完整的图像,从而模拟在摄影机点向四周全景浏览的效果,该功能适用于虚拟浏览。

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【ds18b20学习总结】相关文章:

我写ds18b20总结06-02

ds18b20程序07-30

ds18b20简单介绍06-02

ds18b20资料及程序06-16

ds18b20温度检测控制06-21

ds18b20详细中文资料06-21

ds18b20完整测试程序06-21

ds18b20课程设计报告06-21

ds18b20温度控制器06-16

ds18b20温度传感器06-17

上一篇:整治校园周边环境方案下一篇:1月思想汇报