教学课件单片机创新开发教程ch19 使用单总线

上传人:仙*** 文档编号:222708897 上传时间:2023-07-12 格式:PPTX 页数:34 大小:3.20MB
收藏 版权申诉 举报 下载
教学课件单片机创新开发教程ch19 使用单总线_第1页
第1页 / 共34页
教学课件单片机创新开发教程ch19 使用单总线_第2页
第2页 / 共34页
教学课件单片机创新开发教程ch19 使用单总线_第3页
第3页 / 共34页
资源描述:

《教学课件单片机创新开发教程ch19 使用单总线》由会员分享,可在线阅读,更多相关《教学课件单片机创新开发教程ch19 使用单总线(34页珍藏版)》请在装配图网上搜索。

1、教材配套PPT正版可修改课件教学课件单片机创新开发教程ch19使用单总线单片机创新开发教程-基于STC8吴险峰第19章 使用单总线单总线也是目前广泛使用的一种通信手段。本章通过常用单总线模块的程序编写,熟悉其工作流程。1.情境导入2.学习目标3.相关知识4.项目设计5.项目实现6.知识拓展7.强化练习19.1情境导入小白:“单片机是不是可以用一根线来通信?”小牛:“当然可以,这种通信方式我们称为单总线,数据和控制都在同一根线完成,可以节省IO资源。但是传输速率不如I2C和SPI。”小白:“嗯,那请给我讲讲单总线的使用吧。”19.2 学习目标【知识目标】1.学习单总线的理论知识。2.学习单总线常

2、用模块。3.理解单总线协议。【能力目标】1.能进行WS2812彩灯模块编程。2.能进行DHT11温湿度传感器模块编程。3.能进行18B20测温模块编程。19.3 相关知识l19.3.1.单总线技术l19.3.2.RGB彩灯模块l19.3.3.DHT11模块l19.3.4.18B20模块19.3 相关知识19.3.1.单总线技术单总线就是将地址线、数据线、控制线合为一根信号线,具有节省I/O资源,结构简单、成本低廉、便于总线扩展维护等优点。单总线说的是数据线,有的传感器甚至将VCC电源线也集成到了单总线里,称为“寄生模式”,这使得接线更加简单。显然,节约I/O资源是要付出代价的。首先传输速率有影

3、响,不适合密集数据和大数据传输。另外软件编程要复杂一些,毕竟数据和控制都是复用同一线路。另外,不同于I2C和SPI标准协议,单总线主要是指物理层面。不同的传感器的协议是不一样的,需要根据其数据手册的时序说明来编写代码。本章介绍常用的几个单总线模块,包括WS2812彩灯模块、DHT11温湿度传感器和D18b20温度传感器。19.3 相关知识19.3.2.RGB彩灯模块WS2812只需一根信号线就能控制灯带上所有LED。多个灯带间可以通过串联轻松延长。在30Hz的刷新频率下,一根信号线能够控制至多500个LED。如图19-1所示,数据协议采用单线归零码的通讯方式。像素点在上电复位以后,DIN端接受

4、从控制器传输过来的数据,首先送过来的24bit数据被第一个像素点提取后,送到像素点内部的数据锁存器,剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点,每经过一个像素点的传输,信号减少24bit。像素点采用自动整形转发技术,使得该像素点的级联个数不受信号传送的限制,仅受限信号传输速度要求。其图形化指令如表19-1所示。常用指令图形化指令实例1.初始化RGB的控制引脚和总共RGB灯数量2.设置第几个灯显示指定RGB颜色值3.设置第几个灯显示下拉框内常用颜色和亮度19.3 相关知识19.3.3.DHT11模块DHT11数字温湿度传感器,是一款含有已校准数字信号输出

5、的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为该类应用中,在苛刻应用场合的最佳选择。产品为4针单排引脚封装,连接方便。19.3 相关知识19.3.3.DHT11模块DHT

6、11检测到主机的开始、延时信号后,要进行响应,首先是响应信号(一定时间的低电平),然后是延时准备输出信号(一定时间的高电平),然后每隔固定时间的低电平(间隔信号),具体的数据是不同间隔时间的(高电平)代表0和1,信号传输完成后,DHT11拉低电平。其图形化指令如表19-2所示。常用指令图形化指令实例1.初始化DHT11的控制引脚2.设置读取温度3.设置读取湿度19.3 相关知识19.3.4.18B20模块18B20数字温度计提供9到12bit分辨率的温度测量,可以通过可编程非易失性存储单元实现温度的下限和上限报警。18B20采用单总线协议与上位机进行通信,只需要一根信号线和一根地线。此外它还可

7、以工作在寄生模式下,直接通过信号线对芯片供电,从而不需要额外的供电电源。18B20采用DALLAS半导体公司的单总线协议。每个18B20都有一个全球唯一的64位序列号,可以将多个18B20串联在同一跟单总线上进行组网,只需要一个处理器就可以控制分布在大面积区域中的多颗18B20。这种组网方式特别适合HVAC环境控制,建筑、设备、粮情测温和工业测温以及过程监测控制等应用领域。其图形化指令如表19-3所示。常用指令图形化指令实例1.初始化18B20的控制引脚2.设置读取温度19.4 项目设计WS2812彩灯模块电路如图19-2所示,6颗彩灯串联接在P45引脚上。如图19-3所示,DHT11模块接的

8、是P4_6引脚,其中管脚1接电源,管脚4接地。如图19-4所示,18B20模块接的是芯片的P4_7引脚,其中管脚1接地,管脚3接电源。19.4 项目设计任务1操作WS2812彩灯模块#defineRGB_PIN_MODE P4M1&=0 x20;P4M0|=0 x20;/推挽输出voidrgb_init()RGB_PIN_MODE;/推挽输出voidrgb_show(uint8num,uint8r,uint8g,uint8b)rgb_rst();rgb_hal_delay(30);rgb_set_color(num,r,g,b);WS2812彩灯模块的C关键代码分析如下。主程序其实就两个相关函

9、数。voidrgb_init();voidrgb_show(uint8num,uint8r,uint8g,uint8b);进入rgb.h头文件分析函数内容。19.4 项目设计任务1操作WS2812彩灯模块rgb_rst()和rgb_set_color(num,r,g,b)这两个函数继续追踪。voidrgb_init();voidrgb_show(uint8num,uint8r,uint8g,uint8b);/=/描述:复位./参数:none./返回:none./=voidrgb_rst()RGB_PIN=0;delay50us();/=/描述:设置指定点的显示颜色./参数:第几个RGB灯,R值

10、,G值,B值./返回:none./=voidrgb_set_color(uint8num,uint8r,uint8g,uint8b)uint8i;for(i=0;iRGB_NUMLEDS;i+)_rgb_buf_Rnum=r;/缓冲_rgb_buf_Gnum=g;_rgb_buf_Bnum=b;for(i=0;iRGB_NUMLEDS;i+)rgb_write(_rgb_buf_Gi,_rgb_buf_Ri,_rgb_buf_Bi);/发送显示显然,核心代码在发送显示的rgb_Write()函数里,继续分析。19.4 项目设计任务1操作WS2812彩灯模块/=/描述:发送24位数据./参数:绿

11、色8位,红色8位,蓝色8位./返回:none./=voidrgb_write(uint8G8,uint8R8,uint8B8)unsignedintn=0;/发送G8位EA=0;for(n=0;n8;n+)if(G8&0 x80)=0 x80)rgb_set_up();elsergb_set_down();G8=1;/发送R8位for(n=0;n8;n+)if(R8&0 x80)=0 x80)rgb_set_up();elsergb_set_down();R8=1;/发送B8位for(n=0;n8;n+)if(B8&0 x80)=0 x80)rgb_set_up();elsergb_set_d

12、own();B8=1;EA=1;19.4 项目设计任务1操作WS2812彩灯模块#defineRGB_PIN_MODEP4M1&=0 x20;P4M0|=0 x20;/推挽输出voidrgb_init()RGB_PIN_MODE;/推挽输出voidrgb_show(uint8num,uint8r,uint8g,uint8b)rgb_rst();rgb_hal_delay(30);rgb_set_color(num,r,g,b);/=/描述:1码,高电平850ns低电平400ns误差正负150ns./参数:none./返回:none./=voidrgb_set_up()RGB_PIN=1;/经过

13、逻辑分析仪调试的延时_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();RGB_PIN=0;/=/描述:0码,高电平400ns低电平850ns误差正负150ns./参数:none./返回:none./=voidrgb_set_down()RGB_PIN=1;/经过逻辑分析仪调试的延时_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

14、_nop_();RGB_PIN=0;再追踪一次,可以看到RGB彩灯的单总线编码了。致此我们就把这种单总线的协议分析清楚了。这个相对来说比较简单,就是单向传输,而且没有地址码,比起后面的18B20单总线协议要简单很多。虽然逻辑简单,但是单总线对延时要求非常严格,如果代码要移植到其他单片机,需要用逻辑分析仪调试延时。后面的DHT11和18B20模块单总线协议更加复杂,限于篇幅我们就不进行层层分析了。大家可以自行研究。其实用经典51一样可以驱动这些模块,唯一需要注意的就是延时,这是单总线译码的关键。19.4 项目设计任务2OLED轮流显示温度和湿度OLED轮流显示温度和湿度的图形化编程如图19-6所

15、示。DHT11每次读需要间隔2s,不然数据会出错。其C语言代码我们在本章程序实现部分再详细分析。19.4 项目设计任务318B20实验18B20实验的图形化编程如图19-7所示,设置18B20读取温度,并用数码管显示。本任务没有提供C代码,因为相关协议和寄存器设置全部都封装在底层了。大家可以进一步研究。19.5 项目实现19.5.1开发板功能演示开发板任务演示步骤的和前章基本类似,为避免重复略去。19.5 项目实现19.5.2.Proteus仿真实例 Proteus包含包含DHT11,我们就以此为例演示其仿真流程。,我们就以此为例演示其仿真流程。1.绘制绘制DHT仿真图仿真图 DHT仿真电路图

16、如图仿真电路图如图19-8所示,仿真的所示,仿真的DHT11的默认值分别是的默认值分别是80(代表湿度(代表湿度80%)和温度)和温度27(代表温度(代表温度27),采用单总),采用单总线方式图表,由线方式图表,由DATA端口连接端口连接STC15单片机的单片机的P4.6,和图,和图19-3的的DHT11实际电路一致。实际电路一致。2.修改修改任务任务2代码代码由于原任务由于原任务2对应的对应的OLED显示屏暂时没有对应规格器件,我们改用串口方式实现。修改代码如图显示屏暂时没有对应规格器件,我们改用串口方式实现。修改代码如图19-9所示。所示。19.5 项目实现19.5.2.Proteus仿真

17、实例#defineDHT11_DQP4_6#defineDHT11_DQ_MODEP4M1&=0 x40;P4M0&=0 x40;/P4_6双向IO口#includeuint32 sys_clk=24000000;/设 置 PWM、定 时 器、串 口、EEPROM频率参数#includelib/twen_board.h#includelib/UART.h#includelib/dht11.h#include#includelib/delay.huint8temp=0;uint8humid=0;voidputchar(charc)if(c=n)uart_putchar(UART_1,0 x0d)

18、;uart_putchar(UART_1,0 x0a);elseuart_putchar(UART_1,(uint8)c);voidsetup()twen_board_init();/天问51初始化uart_init(UART_1,UART1_RX_P30,UART1_TX_P31,9600,TIM_1);/初始化串口dht11_init();voidloop()temp=dht11_read_temp();printf_small(温度:%d,temp);/DHT11连续读取操作需要间隔2秒delay(2000);humid=dht11_read_humidity();printf_smal

19、l(humid:%dn,humid);/DHT11连续读取操作需要间隔2秒delay(2000);voidmain(void)setup();while(1)loop();19.5 项目实现19.5.2.Proteus仿真实例串口打印方式输出在第串口打印方式输出在第12章使用串口中也提到过。这次结合具体例子就更方便理解其图形化编程对应的章使用串口中也提到过。这次结合具体例子就更方便理解其图形化编程对应的C语言语句。我们语言语句。我们需要加入需要加入stdio.h头文件,同时需要用头文件,同时需要用putchar()来识别()来识别“n”转义字符。另外串口打印和串口中断无关,只要初始化了转义字符

20、。另外串口打印和串口中断无关,只要初始化了就可以调用,不用一定要打开串口中断。另外初始化函数隐藏了产生波特率的定时器中断,但是主程序没有显示,需要注就可以调用,不用一定要打开串口中断。另外初始化函数隐藏了产生波特率的定时器中断,但是主程序没有显示,需要注意。意。采用开发板通过天问采用开发板通过天问Block串口监视器的结果如图串口监视器的结果如图19-10所示。由于真实环境存在干扰,会显示部分乱码,尤其是中文字所示。由于真实环境存在干扰,会显示部分乱码,尤其是中文字符。建议输出还是用英文字符比较好。符。建议输出还是用英文字符比较好。然后我们将程序进行仿真,默认然后我们将程序进行仿真,默认24M

21、主频。设置虚拟终端串口打印输出。仿真结果如图主频。设置虚拟终端串口打印输出。仿真结果如图19-11所示。仿真显然不存在干扰,所示。仿真显然不存在干扰,输出中文字符也不影响。但是仿真数据都是错误的(单片机和嵌入式应用开发常用输出中文字符也不影响。但是仿真数据都是错误的(单片机和嵌入式应用开发常用255作为错误代码返回值)。作为错误代码返回值)。为了能够仿真成功,我们需要对仿真单总线进行分析。而为了能够仿真成功,我们需要对仿真单总线进行分析。而proteus中,对总线分析需要用到的工具是图表中,对总线分析需要用到的工具是图表Graph。19.5 项目实现19.5.2.Proteus仿真实例3.图表

22、图表Graph的使用的使用在前面第在前面第8章定时器的使用中,我们介绍了虚拟示波器章定时器的使用中,我们介绍了虚拟示波器Oscilloscope的使用。示波器分析波形非常直观,也能简单测量。的使用。示波器分析波形非常直观,也能简单测量。但是其主要功能是查看某个瞬时的波形,对于一段时间的波形分析不方便。而且界面不能全屏显示,对于长时间段的时序但是其主要功能是查看某个瞬时的波形,对于一段时间的波形分析不方便。而且界面不能全屏显示,对于长时间段的时序分析功能有限。分析功能有限。图表是图表是Proteus的另一类仿真工具。我们前面所有的仿真属于交互式仿真,能看到器件运行效果,注重结果。图表仿真则的另一

23、类仿真工具。我们前面所有的仿真属于交互式仿真,能看到器件运行效果,注重结果。图表仿真则是将电路的各种数据(数字、电压、阻抗等)生成图表进行分析,方便了解电路的过程。是将电路的各种数据(数字、电压、阻抗等)生成图表进行分析,方便了解电路的过程。Proteus中图表功能很多,包括中图表功能很多,包括模拟电路、数字电路、混合电路、频率分析、噪声分析等等,这里主要讲针对总线的时序分析应用。模拟电路、数字电路、混合电路、频率分析、噪声分析等等,这里主要讲针对总线的时序分析应用。(1)设置图表设置图表鼠标单击左边的鼠标单击左边的“图表模式(图表模式(Graph Mode)”工具栏,在出现的工具栏,在出现的

24、GARPHS(图表)选项框里选择(图表)选项框里选择“DIGITAL”(数字),(数字),在绘图区用鼠标拖动画出一个在绘图区用鼠标拖动画出一个“DIGITAL ANALYSIS”(数字电路分析)窗口,如图(数字电路分析)窗口,如图19-12所示。所示。19.5 项目实现19.5.2.Proteus仿真实例(2)为为DHT11添加电压探针添加电压探针如图如图19-13所示,我们为电路的所示,我们为电路的DHT11数据端口,也就是单片机相连的数据端口,也就是单片机相连的P4.6口,增加电压探针。口,增加电压探针。(3)将探针加入图表跟踪对象将探针加入图表跟踪对象如图如图19-14所示,在图表快捷菜

25、单中选择所示,在图表快捷菜单中选择“Add Traces”(快捷键(快捷键Crtl+T),在弹出的),在弹出的“Add Transient Trace”(增加暂(增加暂时跟踪对象)对话框里,选择时跟踪对象)对话框里,选择“Probe P1”为为P4.6探针。探针。19.5 项目实现19.5.2.Proteus仿真实例(4)图表仿真图表仿真在图表快捷菜单中选择在图表快捷菜单中选择“Simulate Graph”仿真图表(快捷键为仿真图表(快捷键为Space空格键),将探针作为图表的数据源仿真运行,空格键),将探针作为图表的数据源仿真运行,此时图表出现波形,为了便于观察,图表快捷菜单选择此时图表出

26、现波形,为了便于观察,图表快捷菜单选择“Maxmize(Show Window)”最大化显示窗口,系统默认显示最大化显示窗口,系统默认显示出探针出探针P4.6一个周期内的完整波形,如图一个周期内的完整波形,如图19-15所示。所示。(5)结合代码分析结合代码分析首先查看修改任务首先查看修改任务2的关键代码。的关键代码。voidsetup()twen_board_init();/天问51初始化uart_init(UART_1,UART1_RX_P30,UART1_TX_P31,9600,TIM_1);/初始化串口dht11_init();19.5 项目实现19.5.2.Proteus仿真实例继续

27、到天问继续到天问Block的库函数的库函数dht111.h中跟踪中跟踪dht11_init()。/=/描述:DHT11初始化./参数:none./返回:识别到DHT11返回0,否则返回1./=uint8dht11_init()DHT11_DQ_MODE;/设置P4.6为准双向口DHT11_DQ=1;/初始化P4.6为高电平dht11_rst();returndht11_check();/=/描述:DHT11复位./参数:none./返回:none./=voiddht11_rst()DHT11_DQ=0;/主机发送开始工作信号delay(20);/延时18ms以上DHT11_DQ=1;delay

28、40us();/=/描述:等待DHT11的回应./参数:none./返回:超时返回1,否则返回0./=uint8dht11_check()uint8retry=0;while(DHT11_DQ&retry=100)return1;elseretry=0;while(!DHT11_DQ&retry=100)return1;return0;19.5 项目实现19.5.2.Proteus仿真实例(6)测量波形测量波形图图表表提提供供了了方方便便的的测测量量功功能能,只只要要鼠鼠标标单单击击起起始始点点1,然然后后按按下下Crtl键键后后单单击击结结束束点点2,就就会会测测量量出出两两点点的的时时长长

29、,并并在在窗窗口口右右下下角角显显示示数数值值。如如图图19-16所所示示,两两个个高高电电平平之之间间的的低低电电平平持持续续时时间间是是13.4ms。显显然然没没有有达达到到18ms的的要要求求。那那么么这个是不是这个是不是DHT11不响应的主要原因呢?不响应的主要原因呢?从dht11_rst()复位函数看出,DHT11是将P4.6从高电平拉到低电平,持续20ms后再拉高,然后设置了40s延时等待DHT11的反馈。按照库文件注释描述,P4.6从高电平拉到低电平,至少持续18ms以上。从dht11_check()可以看出,DHT11没有反馈,超时了返回1。那么通过仿真的波形有没有达到18ms

30、的要求设置呢?19.5 项目实现19.5.2.Proteus仿真实例4.调整仿真系数调整仿真系数显然是仿真条件和真实条件出现了偏差,在代码中库函数显然是仿真条件和真实条件出现了偏差,在代码中库函数dht11_rst()设定的是设定的是20ms,但是仿真条件下,但是仿真条件下delay(20)函数函数只有只有13.4ms。库函数都是经过测试的,参数不能更改。而这些延时函数又是在库函数中调用,没有办法在主函数更改。库函数都是经过测试的,参数不能更改。而这些延时函数又是在库函数中调用,没有办法在主函数更改。如何处理呢?如何处理呢?既然仿真程序不能更改,我们就只能更改仿真的器件配置参数,让其能响应软件

31、的功能达到仿真效果。就像我们第一既然仿真程序不能更改,我们就只能更改仿真的器件配置参数,让其能响应软件的功能达到仿真效果。就像我们第一章论述的例子,在章论述的例子,在RC复位电路中的电阻应该是较大值,但是只有设成较小值才能达到仿真效果。复位电路中的电阻应该是较大值,但是只有设成较小值才能达到仿真效果。打开打开DHT11的属性设置对话框,如图的属性设置对话框,如图19-17所示。我们发现其中一项所示。我们发现其中一项“Time Select Low”(时间选择低电平)的默认值(时间选择低电平)的默认值是是18ms,和前面库函数,和前面库函数dht11_rst()定义一致。看来这个值就是定义一致。

32、看来这个值就是dht11_rst()要求的效果。我们现在将其改为要求的效果。我们现在将其改为13ms,刚好,刚好在我们前面测量的在我们前面测量的13.4ms的范围之内。的范围之内。19.5 项目实现19.5.2.Proteus仿真实例5.仿真成功仿真成功再次运行仿真,我们得到了正确的仿真结果,如图再次运行仿真,我们得到了正确的仿真结果,如图19-18所示。所示。现在的图表仿真如图现在的图表仿真如图19-19所示。读者可以结合此图和库函数代码,对所示。读者可以结合此图和库函数代码,对DHT11单总线协议进行全面分析,提升器件协议单总线协议进行全面分析,提升器件协议解析和编程能力。解析和编程能力。

33、(a)DHT11复位低电平还是13.4ms,但后面有了传输数据(b)传输数据放大(传输40位数据帧,高位在前)19.5 项目实现19.5.2.Proteus仿真实例6.难点难点剖析剖析其实我们也不见得一定要改变其实我们也不见得一定要改变DHT11的仿真参数。从第的仿真参数。从第8章定时器我们知道仿真的章定时器我们知道仿真的STC15单片机的时间通过示波器测量单片机的时间通过示波器测量还是很准确的。那我们可不可以改变单片机的主频达到效果呢?按照现在实际还是很准确的。那我们可不可以改变单片机的主频达到效果呢?按照现在实际STC8单片机在单片机在24M主频下,其主频下,其20ms的延时的延时相当于仿

34、真相当于仿真STC15单片机单片机24M主频下主频下13.4ms的延时,那么仿真的延时,那么仿真STC15单片机如果工作在单片机如果工作在12M主频的情况下,其延时是不主频的情况下,其延时是不是应该达到是应该达到26.8ms,这样就满足了,这样就满足了DHT11的持续低电平的持续低电平18ms以上才能开启单总线服务的时间?以上才能开启单总线服务的时间?仿真图表如图仿真图表如图19-20所示。显然所示。显然DHT11仿真正常。仿真正常。(a)DHT11复位低电平复位低电平26.8ms,后面有了传输数据,后面有了传输数据(b)传输传输数据放大(传输数据放大(传输40位数据帧,高位在前)位数据帧,高

35、位在前)19.5 项目实现19.5.2.Proteus仿真实例不过,串口的输出变成了乱码,如图不过,串口的输出变成了乱码,如图19-21所示。分析其原因,串口的波特率和主频相关,大家可以结合第所示。分析其原因,串口的波特率和主频相关,大家可以结合第12章串口仔章串口仔细体会。细体会。其他任务仿真均可依照以上图表仿真分析方式处理。简单理解,这里图表就相当于现实中的电路逻辑分析仪。其应用其他任务仿真均可依照以上图表仿真分析方式处理。简单理解,这里图表就相当于现实中的电路逻辑分析仪。其应用更偏向于数字电路的时序逻辑分析,并不关注信号本身的波形结构。相对来说,现实中的示波器虽也能测量整个信号的波更偏向

36、于数字电路的时序逻辑分析,并不关注信号本身的波形结构。相对来说,现实中的示波器虽也能测量整个信号的波形,从中分析出信号的异常和干扰,但无法长时间记录信号的时序逻辑,在分析时序逻辑方面能力较弱。将图表仿真和示形,从中分析出信号的异常和干扰,但无法长时间记录信号的时序逻辑,在分析时序逻辑方面能力较弱。将图表仿真和示波器结合,基本上就可以解决很多仿真难题了。波器结合,基本上就可以解决很多仿真难题了。19.6.知识拓展【科普】18B20测温工作原理l18B20虽然只是一个简单的温度传感器,但却蕴含了很多创新。l与传统简单的热敏电阻相比,18B20测温方式要复杂。18B20通过对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。从电路来说,热敏电阻需要进行ADC,效率不如18B20。而18B20直接以数字方式传输,除了减少模数转换外,还大大提高了系统的抗干扰能力。l18B20可以单总线挂多个串联测温,拓扑结构简单。而热敏电阻不能串联测温,需要更多IO口资源。所以简单测温用热敏电阻有成本优势,但是大面积部署多个测温点,就不如18B20了。l【思考与启示】l1.18B20和热敏电阻相比有哪些区别?l2.如何对已有的传感器进行模式创新?19.7强化练习1.实现彩灯流水灯功能。2.根据DHT数据手册理解其测温程序。谢谢观看

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!