微控制器系统设计和应用ppt课件_第1页
微控制器系统设计和应用ppt课件_第2页
微控制器系统设计和应用ppt课件_第3页
微控制器系统设计和应用ppt课件_第4页
微控制器系统设计和应用ppt课件_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、 刘燎原刘燎原 江苏建筑职业技术学院江苏建筑职业技术学院复习:复习:ADC0809ADC0809是典型的是典型的8 8位位8 8通道逐次逼近式通道逐次逼近式A/DA/D转换器,可模拟电压量实现分转换器,可模拟电压量实现分时转换为时转换为8 8位数字量。位数字量。Vref/Vin=2n/DVref/Vin=2n/D即即Vin/D=5/255Vin/D=5/255转换步骤:转换步骤:1.1.有有clockclock时钟信号典型值时钟信号典型值500KHZ500KHZ,周期,周期2us2us 用定时器用定时器0 0产生周期产生周期2us2us方波信号作为方波信号作为CLOCKCLOCK2.Start

2、2.Start、ALEALE有效有效, ,开场转换开场转换VinVin Start Start、ALEALE需求正脉冲,经过置需求正脉冲,经过置1 1或或0 0得到得到3.3.转换过程中,转换过程中,EOC=0;EOC=0;当转换终了时,当转换终了时,EOC=1.EOC=1.转换时间大约转换时间大约100us100us左左右右 利用查询等待方式,利用查询等待方式,while(eoc=0);while(eoc=0);4.4.转换终了后,设置转换终了后,设置OE=1OE=1后,才可以读取转换后的数字量后,才可以读取转换后的数字量 OE=1;m=P0; OE=0; OE=1;m=P0; OE=0;

3、5. 5.数字量送数码管显示数字量送数码管显示XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A11

4、24P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51X1CRYSTALC130pFC230pFC310uFR112345678161514131211109RN1300R410kR510kOUT121ADD B24ADD A25ADD C23VREF(+)12VREF(-)16IN31IN42IN53IN64IN75START6OUT58EOC7OE9CLOCK10OUT220OUT714OUT615OUT817OUT418OUT319IN228IN127IN026ALE22U2ADC0808RV11kQ1PN2907Q2PN2907234567891RP1RES

5、PACK-81.1.十六进制显示转化为十进制显示十六进制显示转化为十进制显示 unsigned char i,j; unsigned char i,j; i=m/51; i=m/51; j=m%51; j=m%51; j=j/5; j=j/5;2.带小数点显示的段值带小数点显示的段值举例阐明举例阐明带小数点共阴数码管:带小数点共阴数码管:+ 80H P1=sz1i+80H带小数点共阳数码管:带小数点共阳数码管:- 80H P1=sz1i-80H 温度计制温度计制造造(4学时学时)温度计温度计温度计电路温度计电路板板(2学时学时)学时安排:学时安排: 工程六工程六 数字温度计数字温度计 -学习学

6、习DS18B20模块模块 DS-18B20 数字温度传感器数字温度传感器 DS18B20是美国是美国DALLAS公司消费的公司消费的1-wire式单总线的数字温度传感式单总线的数字温度传感器。具有耐磨耐碰,体积小,线路简单,运用方便,大大提高了系统的抗器。具有耐磨耐碰,体积小,线路简单,运用方便,大大提高了系统的抗干扰性。适宜于恶劣环境的现场温度丈量。例如:冷冻库,粮仓,储罐,干扰性。适宜于恶劣环境的现场温度丈量。例如:冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温,汽车空调、冰箱、冷柜、以及中电讯机房,电力机房,电缆线槽等测温,汽车空调、冰箱、冷柜、以及中低温枯燥箱等。低温枯燥箱等。

7、 一、主要特点一、主要特点 1. 1-wire式式 只需一个端口即可实现和单片机的双向通讯图上只需一个端口即可实现和单片机的双向通讯图上DQ端,电路衔接简单端,电路衔接简单 单总线通常要求外接一个约为单总线通常要求外接一个约为 4.7K10K 的上拉电阻,这样,当总线闲的上拉电阻,这样,当总线闲置时其形状为高电平。置时其形状为高电平。 2.分辨率可以在分辨率可以在9-12位选择温度转换后的数字信号是位选择温度转换后的数字信号是9-12位位 3. 测温范围测温范围 55125,在在 -10+ 85C 范围内,精度为范围内,精度为 0.5C 。独一的序列号。独一的序列号 4.每个器件都有每个器件都

8、有 5.内部有温度上限、下限的报警设置,有报警功能内部有温度上限、下限的报警设置,有报警功能 6. 支持多点组网功能,多个支持多点组网功能,多个DS18B20可以并联在独一的三线上,实现多可以并联在独一的三线上,实现多点测温点测温 7.供电方式灵敏供电方式灵敏 ,可以外接电源,也可以经过内部寄生电路从数据线上获取可以外接电源,也可以经过内部寄生电路从数据线上获取电源电源27.0DQ2VCC3GND1U3DS18B20二、二、DS18B20管脚陈列管脚陈列DS18B20DS18B20的管脚陈列的管脚陈列1. GND1. GND为电源为电源 地;地;2. DQ2. DQ为数字信号输入输出端;为数字

9、信号输入输出端;3. VDD3. VDD为外接供电电源输入端为外接供电电源输入端在寄生电源接线方式时接地在寄生电源接线方式时接地外接电源任务方式外接电源任务方式 u两种供电方式:两种供电方式:三、三、DS18B20内部构造内部构造 如下图,主要由如下图,主要由4部分组成:部分组成: 64 位光刻位光刻 ROM 、温度传感器、温度传感器、温度报警触发器温度报警触发器TH和和TL、配置存放器。、配置存放器。1. 64 1. 64 位光刻位光刻ROMROM 64 64 位位ROMROM中存储的信息是出厂前被光刻好的,存储的主要是序列号。中存储的信息是出厂前被光刻好的,存储的主要是序列号。 64 64

10、 位光刻位光刻 ROM ROM 的陈列是:的陈列是: 开场开场 8 8 位地址:位地址:28H 28H 是产品类型标号,是产品类型标号, 接着的接着的 48 48 位是该位是该 DS18B20 DS18B20 本身的序列号,它可以看作是该本身的序列号,它可以看作是该DS18B20DS18B20的地的地址序列码,每个址序列码,每个DS18B20DS18B20的的6464位序列号均不一样位序列号均不一样 最后最后 8 8 位那么是前面位那么是前面 56 56 位的循环冗余校验码位的循环冗余校验码 CRC=X8+X5+X4+1 CRC=X8+X5+X4+1 。 由于每一个由于每一个 DS18B20

11、DS18B20 的的 ROM ROM 数据都各不一样,因此微控制器就可以经过单数据都各不一样,因此微控制器就可以经过单总线对多个总线对多个 DS18B20 DS18B20 进展寻址,从而实现一根总线上挂接多个进展寻址,从而实现一根总线上挂接多个 DS18B20 DS18B20 的目的目的。的。 2.温度传感器 DS18B20中的温度传感器完成对温度的丈量,把温度转换为对应的数字量9位或12位,出厂时默许12位,最高位是符号位。为了存放12位的数字量,用16位符号扩展的二进制补码方式表示来存放。 举例。该数字量和温度之间的对应转换格式,见以下图,其中S为符号位,即数据格式以0.0625/LSB方

12、式表达。 补码三个部分: 符号:高字节的高4位 整数:高字节的低4位、低字节的高4位 小数:低字节的低4位对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。例如:1.转换后的数字量12位,扩展为16位后为(十六进制):00C1H,那么对应的温度值应为:+12.0625 u 假设为负温度,如何计算?假设为负温度,如何计算?u 2.转换后的数字量转换后的数字量12位,扩展为位,扩展为16位后为位后为(十六进制十六进制):FF5EH,那么对应的温度值应为:那么对应的温度值应为:u -10.125 ;12位3.3.配置存放器配置存放器其中配置存

13、放器的格式如下:其中配置存放器的格式如下:最高位用于设置最高位用于设置DS18B20DS18B20在任务方式还是在测试方式。在在任务方式还是在测试方式。在DS18B20DS18B20出厂时出厂时该位被设置为该位被设置为0 0,任务方式,用户不要去改动。,任务方式,用户不要去改动。R1R1和和R0R0用来设置分辨率,如以下图所示:用来设置分辨率,如以下图所示:DS18B20DS18B20出厂时被设置为出厂时被设置为1212位位低五位不断都是低五位不断都是“1“1 配置存放器与分辨率关系表配置存放器与分辨率关系表 4.4.高速暂存存储器高速暂存存储器RAMRAM 高速暂存存储器由高速暂存存储器由9

14、 9个字节组成,见以下图个字节组成,见以下图. .转换所得的温度值以两个字节补码方式存放在高速暂存存储器的第转换所得的温度值以两个字节补码方式存放在高速暂存存储器的第0 0和第和第1 1个字节。单片机可经过单线接口读到该数据,读取时低位在前,高个字节。单片机可经过单线接口读到该数据,读取时低位在前,高位在后。位在后。u四、四、DS18B20的任务时序的任务时序u单线接口访问单线接口访问DS18B20的协议的协议 u 单片机对单片机对DS18B20操作:温度转换、读取温操作:温度转换、读取温度、存取报警上下限等。度、存取报警上下限等。u根据根据DS18B20的通讯协议,单片机每次访问的通讯协议,

15、单片机每次访问DS18B20都必需遵照以下顺序:都必需遵照以下顺序:u 初始化初始化18B20 ;u 发对发对ROM操作命令;操作命令;u 发对发对RAM操作命令:操作命令:u 相应操作。相应操作。u u 1. ROM1. ROM操作命令操作命令u 2. RAM操作命令操作命令DS18B20 的的RAM指令集指令集 3.3.温度的转换流程温度的转换流程DS18B20DS18B20进展一次温度的转换,那详细的操作就是:进展一次温度的转换,那详细的操作就是:(1)(1)、初始化、初始化18B20 (18B20 (主机作复位操作主机作复位操作) )(2)(2)、发对、发对ROMROM操作命令操作命令

16、( (主机写跳过主机写跳过ROMROM的操作的操作CCHCCH命令命令) )(3)(3)、发对、发对RAMRAM操作命令操作命令( (主机写转换温度的操作主机写转换温度的操作44H44H命令命令) ) 后面释放总线至少一秒,让后面释放总线至少一秒,让DS18B20DS18B20完成转换的操作。完成转换的操作。 整个操作的总线形状如以下图。整个操作的总线形状如以下图。4.4.读取读取RAMRAM内的温度数据流程内的温度数据流程详细的操作就是:详细的操作就是:(1)(1)、初始化、初始化18B20 (18B20 (主机作复位操作主机作复位操作) )(2)(2)、发对、发对ROMROM操作命令操作命

17、令( (主机写跳过主机写跳过ROMROM的操作的操作CCHCCH命令命令) )(3)(3)、发对、发对RAMRAM操作命令操作命令( (主机写读取主机写读取RAMRAM的操作的操作BEHBEH命令命令) )(4)(4)、随后主机依次读取、随后主机依次读取DS18B20DS18B20发出的从第发出的从第0 0一第一第8 8,共九个字节的数据。,共九个字节的数据。 假设只想读取温度数据,那在读完第假设只想读取温度数据,那在读完第0 0和第和第1 1个数据后就不再理睬后面个数据后就不再理睬后面DS18B20DS18B20发出的数据即可。同样读取数据也是低位在前的。发出的数据即可。同样读取数据也是低位

18、在前的。 整个操作的总线形状如以下图:整个操作的总线形状如以下图: 初始化DS18B20跳过ROM匹配开场温度转换转换终了了否?初始化DS18B20跳过ROM匹配读温度值终了开场YNDS18B20DS18B20温度丈量操作流程温度丈量操作流程u1.1.初始化初始化DS18B20DS18B20u2.2.发出跳过发出跳过ROMROM的操作的操作CCHCCH命令命令u3.3.发出温度转换发出温度转换44H44H命令命令u4.4.延时等待转换完延时等待转换完u5.5.初始化初始化DS18B20DS18B20u6.6.发出跳过发出跳过ROMROM的操作的操作CCHCCH命令命令u7.7.发出读温度发出读

19、温度BEHBEH命令命令u8.8.把温度两个字节从把温度两个字节从RAMRAM中读出,保管起来中读出,保管起来u9.9.读出的温度的数字量进展数据转换,送数码管显示读出的温度的数字量进展数据转换,送数码管显示u在以上流程中,反复用到初始化、写、读时序,我们先在以上流程中,反复用到初始化、写、读时序,我们先编程对应程序编程对应程序u五、五、DS18B20的根本操作的根本操作u 在以上的任务流程中,首先要初始化在以上的任务流程中,首先要初始化18B20,然后发各种命令以及数据传输都涉及到对然后发各种命令以及数据传输都涉及到对DS18B20的读写操作,所以共涉及到以下的读写操作,所以共涉及到以下3个

20、任个任务时序:务时序:u1.初始化操作初始化操作u2.写操作写操作 发命令发命令u3.读操作读操作 读温度读温度1.初始化时序初始化时序u DS18B20DS18B20的初始化的初始化u 1 1 先将数据线置高电平先将数据线置高电平“1“1。u 2 2 延时该时间要求的不是很严厉,但是尽能够的短一点延时该时间要求的不是很严厉,但是尽能够的短一点u 3 3 数据线拉到低电平数据线拉到低电平“0“0。u 4 4 延时延时750750微秒该时间的时间范围可以从微秒该时间的时间范围可以从480480到到960960微秒。微秒。u 5 5 数据线拉到高电平数据线拉到高电平“1“1。u 6 6 延时等待假

21、设初始化胜利那么在延时等待假设初始化胜利那么在1515到到6060毫秒时间之内产生一毫秒时间之内产生一个由个由DS18B20DS18B20所前往的低电平所前往的低电平“0“0。据该形状可以来确定它的存在,但是。据该形状可以来确定它的存在,但是应留意不能无限的进展等待,不然会使程序进入死循环,所以要进展超时应留意不能无限的进展等待,不然会使程序进入死循环,所以要进展超时控制。控制。u 7 7 假设单片机读到了数据线上的低电平假设单片机读到了数据线上的低电平“0“0后,还要做延时,其后,还要做延时,其延时的时间从发出的高电平算起第延时的时间从发出的高电平算起第5 5步的时间算起最少要步的时间算起最

22、少要480480微秒。微秒。u 8 8 将数据线再次拉高到高电平将数据线再次拉高到高电平“1“1后终了。后终了。u unsigned char presence;u init_ds18b02(void)/DS18B20初始化u uDQ=1;delay_8us(3);/延时约25微秒uDQ=0; delay_8us(80); /延时约650微秒 u uDQ=1; delay_8us(2);upresence = DQ;udelay_8us(20); /延时约170微秒u u DQ = 1; u return(presence);uuDS18B20DS18B20的写操作的写操作u1 1 数据线先置

23、低电平数据线先置低电平“0“0。u2 2 延时确定的时间为延时确定的时间为1515微秒,表示写周期开场。微秒,表示写周期开场。u3 3 按从低位到高位的顺序发送字节一次只发送一位。按从低位到高位的顺序发送字节一次只发送一位。u4 4 延时时间为延时时间为4545微秒。微秒。u5 5 将数据线拉到高电平。将数据线拉到高电平。u6 6 反复上反复上1 1到到6 6的操作直到一切的字节全部发送完为止。的操作直到一切的字节全部发送完为止。u7 7 最后将数据线拉高。最后将数据线拉高。假设主机想写假设主机想写0 0,那么拉低电平最少,那么拉低电平最少6060微秒直至写周期终了,然后释放总线为高电平。微秒

24、直至写周期终了,然后释放总线为高电平。u假设主机想写假设主机想写1 1,在一开场拉低总线电平,在一开场拉低总线电平1 1微秒后就释放总线为高电平,不断到写周期微秒后就释放总线为高电平,不断到写周期终了。终了。2. 2. 写时序写时序u void write_byte(unsigned char dat) /单片机向单片机向DS18B20写写 入一个字节数据,先低后高入一个字节数据,先低后高u uunsigned char i;ufor(i=0;i=1;uu 3.3.读时序读时序完成一个读时序过程,至少需求完成一个读时序过程,至少需求60us60us才干完成才干完成DS18B20的读操作的读操作

25、 1将数据线拉高将数据线拉高“1。2延时延时2微秒。微秒。3将数据线拉低将数据线拉低“0。4延时延时15微秒。微秒。5将数据线拉高将数据线拉高“1。6延时延时15微秒,对总线进展采样检测。微秒,对总线进展采样检测。7读数据线的形状得到读数据线的形状得到1个形状位,并进展数据处置。个形状位,并进展数据处置。8延时延时30微秒。微秒。u unsigned char read_byte(void)/单片机从单片机从DS18B20读出一个字读出一个字节数据节数据u uunsigned char i,dat;ufor(i=0;i=1; /一举两得一举两得uDQ=1;uif(DQ) /存储采样到的值存储采

26、样到的值udat|=0 x80;udelay_8us(4);uureturn dat;u 例:设计温度计,例:设计温度计,4位显示,位显示,1位小数点。位小数点。u程序流程程序流程初始化DS18B20跳过ROM匹配开场温度转换转换终了了否?初始化DS18B20跳过ROM匹配读温度值终了开场YNu1.1.初始化初始化DS18B20DS18B20u2.2.发出跳过发出跳过ROMROM的操作的操作CCHCCH命令命令u3.3.发出温度转换发出温度转换44H44H命令命令u4.4.延时等待转换完延时等待转换完u5.5.初始化初始化DS18B20DS18B20u6.6.发出跳过发出跳过ROMROM的操作

27、的操作CCHCCH命令命令u7.7.发出读温度发出读温度BEHBEH命令命令u8.8.把温度两个字节读出保管起来把温度两个字节读出保管起来u9.9.数据转换,送数码管显示数据转换,送数码管显示u每个步骤详细化:每个步骤详细化:u 1.1.初始化初始化DS18B20DS18B20u init_ds18b02(void) init_ds18b02(void);u 2.2.发出跳过发出跳过ROMROM的操作的操作CCHCCH命令命令u if(presence=0) /DS18B20 if(presence=0) /DS18B20初始化胜利初始化胜利u write_byte(0 xcc); write

28、_byte(0 xcc);u 3.3.发出温度转换发出温度转换44H44H命令命令uwrite_byte(0 x44); write_byte(0 x44); u 4.4.延时等待转换完延时等待转换完u delay_8us(500); delay_8us(500);u 5.5.初始化初始化DS18B20DS18B20u init_ds18b02(void) init_ds18b02(void)u 6.6.发出跳过发出跳过ROMROM的操作的操作CCHCCH命令命令u write_byte(0 xcc); write_byte(0 xcc);u 7.7.发出读温度发出读温度BEHBEH命令命令u

29、 write_byte(0 xBE); write_byte(0 xBE);u 8.8.把温度两个字节读出保管起来把温度两个字节读出保管起来u temp0=read_byte(); / temp0=read_byte(); /按顺序读出温度低按顺序读出温度低8 8位位u temp1=read_byte(); / temp1=read_byte(); /温度高温度高8 8位位 u /temp /temp是事先定义的数组,用于是事先定义的数组,用于存放读取的温度存放读取的温度u 9.9.数据转换,送数码管显示数据转换,送数码管显示u 如何数据转换?如何数据转换?u 假设读过来的温度数字量假设读过来

30、的温度数字量u temp0=0 x12 低低8位位u temp1=0 x04 高高8位位u 转换思绪:分别出温度的整数位、小数位转换思绪:分别出温度的整数位、小数位u 小数位小数位m: temp0的低的低4位位u 0010*0.0625=0.125=0.1四舍五入四舍五入u 同理推出从同理推出从0000-1111对应的四舍五入的温度小数值对应的四舍五入的温度小数值 u 0000*0.0625=0.0=0.0四舍五入四舍五入u 0001*0.0625=0.0625=0.1四舍五入四舍五入u 0010*0.0625=0.125=0.1四舍五入四舍五入u 0011*0.0625=0.1875=0.2四舍五入四舍五入u 0100*0.0625=0.25=0.3四舍五入四舍五入u u 1111*0.0625=0.9

温馨提示

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

评论

0/150

提交评论