单片机技术基础教程与实践-第8章 单总线、I2C总线与1602液晶.pdf
《单片机技术基础教程与实践-第8章 单总线、I2C总线与1602液晶.pdf》由会员分享,可在线阅读,更多相关《单片机技术基础教程与实践-第8章 单总线、I2C总线与1602液晶.pdf(49页珍藏版)》请在咨信网上搜索。
1、单片机技术基础教程与实践第8章单总线、12c总线与1602液晶8.1单总线8.L1单总线介绍单总线(1-Wire 是Maxim全资子公司Dallas的一项专有技术,与目前多数标准串行数 据通信方式,如SPLFC等不同,它采用单根信号线,既传输时钟,又传输数据,而且数据 传输是双向的,它具有节省I/O口线资源、结构简单、成本低廉、便于总线扩展和维护等诸 多优点。单总线采用简单的信令协议,通过一条公共数据线实现主机/主控制器与一个或多个从 机之间的半双工、双向通信,如图所示。作者:夏路易电子工业出版社所有在单总线主机/从机配置中,所有设备共享一条公共蜘制楝蜩躺播勒这条 单总线实现数据传输与供电。典
2、型的单总线主机包括一个漏极开路I/O口,通过电阻上拉至113V至5V电源。也 可以选用更完善的主控制器,这种控制器具有专用的线驱动器。单总线系统的另一个重要特性是:每个从机有一个唯一的、不能更改(ROM)的 64位光刻序列号(ID)。除了为终端产品提供唯一的电子ID外,64位ID还允许主机从 挂接在同一条总线上的许多从机芯片中选择一个,由此实现主、从机通信。单总线通信由主机启动、控制所有的数据传输。单总线通信波形与脉宽调制类似,数据位传输按照宽脉冲(逻辑1)或窄脉冲(逻 辑0)发送数据。总线主机(MS)首先发出“复位”脉冲启动通信过程,并通过该 脉冲同步整个总线系统。大多数单总线器件都支持两种
3、数据速率:15kbps的标准速率和Hlkbps的高速速 率。通信协议为自同步,并可接收数据位之间的较长延迟。作者:夏路易电子工业出版社所有、口心小土人女以4弹片机技术基础教程与实践 由主机发出的读写时间片开始时对 主机写0 I主机写1|主机读1|主机读0SS 1线芯片采样MS主机采样在没有专用总线主机的情况下,单片机可以产生单总线时序信号。对单片机系统要 求如下:(1)单片机的通信端口必须是双向的,其输出为漏极开路,且具有弱上拉。这也是所 有单总线的基本要求。2 单片机必须能产生标准速度单总线通信所需的精确延时和高速通信所需要的 0.25LIS延时。(3 通信过程不能被中断。作者:夏路易电子工
4、业出版社所有8.L2DS18B20工作原理单片机技术基础教程与实践1.DS18B20的特点单线数字温度传感器DS18B20器件的特点如下:1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条信号线即可实现单片机与 DS18B20的双向通讯。2 在使用中不需要任何外围元件。3 可用数据线供电,电压范围:3.05.5V。4 测温范围:-55125。测温分辨率为0.5。5 通过编程可实现912位的数字读数方式6 用户可自设定非易失性的报警上下限值。7)支持多点组网功能,多个DS18B20可以并联在三条线上,实现多点测温。8 负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作
5、。作者:夏路易电子工业出版社所有单片机技术基础教程与实践DS18B20T0-921T18T内部VDD64位 RCM 和单线接口VEDJ电源控制作者:夏路易电子工业出版社所有DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感魏揭楙皴第辘翱腾触发器TH和TL、配置寄存器。DS18B20的管脚排列如图8-3所示,其中DQ为数字信号输入/输 出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。1 64 b闪速ROM的结构如下:8b检验CRC48b序列号8b工厂代码(10H)MSB LSBMSB LSBMSB LSB在ROM中,开始是8位是产品类型的编号,接着是
6、每个器件的惟一的序号,共有48位,最 后8位是前56位的CRC校验码。可用ROM操作命令读出其内容。(2 内部存储器DS 18B20温度传感器的内部存储器格式如下:温度低位温度高位THTL配置保留保留保留8 位 CRCLSB MSB第1,2字节保存温度数值,第1字节为低位,第2字节为高位。第3,4字节锁存器TH和TL保存非易市失性温度报警数据,可通过软件写入用户报警上下限。作者:夏路易电子工业出版社所有第5字节是配置寄存器,其内容用于确定温度值的数字转换分到牌片网刖螭冏t按践埼 存器中的分辨率将温度转换为相应精度的数值。该字节各位的定义如下:TMR1R011111该寄存器低5位都是1,TM是测
7、试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为3用户不要去改动,R1和R0决定温度转换的精度位数,即 是来设置分辨率,如下表所示(DS18B20出厂时被设置为12位)。由表可知,设定的分辨率越高,所需要的温度数据转换时间就越长。R1R0分辨率最大温度转换时间(ms 00993.750110187.501011275.001112750.00第68字节未用,表现为全逻辑1;第9字节读出的是前面所有8个字节的CRC码,可用来保证通信正确。CRC的产生在64 b ROM的最高有效字节中存储有循环冗余校验码(CRC。处理器根据ROM的前56位来计算 CRC
8、值,并和存入DS18B20中的CRC值做比较,以判断主机收到的ROM数据是否正确。作者:夏路易电子工业出版社所有3.温度值格式单片机技术基础教程与实践当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩 展的二进制补码形式存储在内部存储器的第1,2字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.0625/LSB形式表示。温度值格式如下:位76543210低字23222122-12-22-32-4J字SSSSS262524可以知道,当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变换 为原码(在取补),再计算十进
9、制值。如下是一部分温度值对应表。温度()二进制十六进制+1250000 01111101 000007D0H+25.06250000 00011001 00010191H+0.50000 00000000 10000008H00000 00000000 00000000H-0.51111 11111111 1000FFF8H-25.06251111 11100110 1111FE6FH作意由路易UU 0%子工业出FC90H单片机技术基础教程与实践4.DS18B20与单片机的典型接口设计DS18B20与51单片机的接线如图所示。VDD上图是具有独立电源线的DS18B20接线图,由于数据线空闲时为
10、高电平,因此需要加一个 上拉电阻4.7kQ,另外2个脚分别接电源和地。下图是寄生电源供电方式,为保证在有效的DS18B20时钟周期内提供足够的电流,51单片 机的I/O口控制场效应管对单线总线上拉,当DS18B20处于写存储器操作和温度测量操作时,场效应管导通,使总线有强上拉,上拉开启时间最大为10 piso采用寄生电源供电方式时VDD和GND端均接地。作者:夏路易电子工业出版社所有8.L3软件设计 单片机技术基础教程与实践1.复位与读、写时序由于DS18B20是在一根I/O线上读写数据,对读写有着严格的时序要求,因此有通信协议 来保证各位数据传输的正确性和完整性。(1)DS18B20的复位时
11、序Tr 主机发出复位脉冲最小480口 s 最大960口 sVED,GN)主机的最短接收时间(480p s)rDS18B20应答(60-240p s)DS18B2冷待 15-60p s复位要求主CPU将数据线下拉500的 然后释放,DS18B20收到信号后等待16 60然左右,后发出602402低脉冲,主CPU收到此信号表示复位成功。作者:夏路易电子工业出版社所有单片机技术基础教程与实践(2)DS18B20的读时序对于DS18B20的读时序分为读0时序和读1时序两个过程。读时序是从单片机把单总线拉低之后,在15联之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个
12、读时序过程,至少需要60us才能完成。VED.GN)主机读0时间15|j s间隙 lu s主机读1时间115p s45p s45p s主机采样主机采样作者:夏路易电子工业出版社所有单片机技术基础教程与实践(3)DS18B20的写时序对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样10总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。上 主机写o时间 1最小6卬s 间隙最大 12O|J s kip
13、sw|_TLmin tye max i 间1一 15|j s f 15p s 1一 30|j s f f*DS1&2睐样时间 一 上主机写1时间 一32_隙 min tye max15p s 卜一 3 Op s-15|j s f DS18B2睐样时间 一作者:夏路易电子工业出版社所有单片机技术基础教程与实践2.操作命令介绍 1 ROM命令读ROM 33h 该命令允许从DS18B20芯片中读出8位编码、序列号和8位CRC码,总线上只有一个DS18B20 的时候才可用。匹配ROM命令(55h 该命令后跟64位ROM序列,可以在总线上找到一个唯一的DS18B20,只有这个匹配的芯片才 能响应随后的命
14、令,而所有不匹配的芯片都等待复位,总线上有1个或多个器件时,都可以使 用这个命令。跳过ROM命令(CCh 在总线上只有单芯片时,可以使用这条命令跳过ROM搜索,节省时间,如果有多个芯片,则 会发生数据冲突。搜索ROM命令(FOh 当不知道总线上有多少芯片和各芯片序列号时,这条命令采用排除法识别总线上的芯片的64 位编码。报警搜索命令(Ech 最近一次测温后,满足报警条件的芯片,将响应这条命令报警。作者:夏路易电子工业出版社所有 2 DS18B20的操作命令 单片机技术基础教程与实践1 写暂存器命令 4Eh 写入开始地址为TH(字节2,随后是TL(字节3 和配置字节(字节4,所有写入操作 必须在
15、DS18B20芯片复位之前完成。2 读暂存器命令 BEh 该命令从字节0开始,一直读完所有字节(字节8,如果只需要读取部分数据,则可以使 用复位命令终止。3 拷贝暂存器命令(48h 将暂存器内容拷贝到EEPROM中。4 启动温度转换命令(44h 启动总线上的DS 18B20进行温度转换。5 读EEPROM命令 B8h 将EEPROM内的数据读回暂存器6 读供电模式命令(B4h 若是寄生电源,芯片返回0,若是外部电源,返回1。作者:夏路易电子工业出版社所有8.1.4 DS18B20测量温度的例题单片机技术基础教程与实践例题8-1两位数码管显示DS18B20测量的温度。用独立电源向DS18B20芯
16、片供电,DS18B20芯片的信号线与51单片机的P3_7引脚相连。温层值的整数部分用两位数码管显示,小数部分用5个发光管显示,最高位数码管的小数点 显示负号。单片机时钟频率H.0592MHz。源程序如下:#include#include /本程序运行时钟为 11.0592MHZunsigned char code dispcode=0 xC050 xF950 xA450 xB0?0 x9950 x92?0 x8250 xF850 x8050 x90,0 x7c,0 x39,0 x5e,0 x79,0 x71,0 x00;整数部分译码表unsigned char code dispnum=0 x
17、fe90 xfd50 xfb90 xf7?0 xef,0 xdf,0 xbf,0 x7f,Oxff);/温度小数部分译码表unsigned char timecount;中 断次数变量unsigned char readdata2;保存温度值的数组unsigned char test 9testl 5testO;/保存温度值的中间变量sbit DQ=P3 A7;/DS18B20 的信号端bits靠夏路易/正负号标志电子工业出版社所有void delay(unsigned int i)延时函数 单片机技术基础教程与实践while(i);reset(void)/复位DS18B20的函数unsign
18、ed char x=0;DQ=1;delay(8);DQ=0;delay(80);DQ=1;delay(14);x=DQ;delay(20);)void writecommandtodsl8b20(unsigned char command)写字节至UDS18B20的函数 unsigned char i=0;fbr(i=8;i0;i)DQ=0;DQ=command&0 x01;delay(5);DQ=1;夏路昴 电子工业tB版社所有)unsigned char readdatafromds 18b20(void)/从DS18B20读取锥技术基石出教程与实践unsigned char i=0;u
19、nsigned char temp=0;fbr(i=8;i0;i)(DQ=0;temp=l;DQ=1;if(DQ)temp|=0 x80;delay(4);)return(temp);作者:夏路易电子工业出版社所有void main(void)主函数单片机技术基础教程与实践TMOD=OxO 1;定时/计数器0工作在模式1TH0=(65536-4000)/256;设置初值TL0=(65536-4000)%256;设置初值ETO=1;/允许定时器0中断EA=1;允许总中断TRO=1;/启动定时器0while(l)P1=dispcodetest/10;/Pl 口相连的数码管显示温度值高位PO=dis
20、pcodetest%10;/P0 口相连的数码管显示温度值低位P2=dispnum(test0&0 x0f)*10/32;/将温度值的小数部分送P2 口连接的发光管显示Pl_7=-sflag;/高位数码管的小数点显示负号,亮表示负制温度值)作者:夏路易电子工业出版社所有void tO(void)interrupt 1 using 0 定时/计数器0的中断服务幽羲片机技术基础教程与头践unsigned char result;TH0=(65536-4000)/256;/重置定时/计数器0的初值TL0=(65536-4000)%256;timecount+;中断次数每次增加1if(timecoun
21、t=150)当150次中断后,执行如下语句(timecount=0;清0中断次数reset();/复位DS18B20writecommandtodsl 8b20(0 xcc);发送跳过 ROM 搜索命令writecommandtods 18b20(0 xbe);/发送读命令readdata0=readdatafromdsl8b20();/读温度值低8位,高4位为整数部分,低4位为小数readdata 1=readdatafromds 18b20();/读温度值高8位,高5位为符号位,0表示正数1表示负数,低3位为温度值sflag=0;/判断正负号作者:夏路易电子工业出版社所有if(readda
22、tal&Oxf8)!=OxOO)如果高8位与OxfS相与不等于0娱极按印础脚为实践(sflag=l;/则是负温度值,是补码readdata 1=-readdata 1;/求高8 位反码readdataO=-readdataO;求低 8 位反码result=readdataO+l;低8位加 1,形成补码送变量resultreaddataO=result;形成补码送回原变量if(result255)/如果低 8 位大于 255readdatal+;/向高3 位进位testO=readdataO;将温度值低8位送变量test。testl=readdatal;/将温度值高8位送变量testltest=
23、(readdatal*256)+readdata0)/16;求整数部分的实际温度值reset();/复位 DS18B20writecommandtods 18b20(0 xcc);向 DS18B20 发送跳过 ROM 搜索命令writecommandtods 18b20(0 x44);启动下一次转换 作者:夏路易 电子工业出版社所有例题8-3 读ROM程序 单片机技术基础教程与实践该例程序为读DS18B20ROM的程序,购买回DS18B20芯片后,在安装到现场之前,应该将其ROM内容读出。该例中DS18B20的信号与51单片机的P3_7端相连。单片机时钟频率11.0592MHz o源程序如下:
24、#include“AT89X5LH”sbit DQ=P3 A7;定义通信端口void delay(unsigned int i)延 时函数while(i);InitDS 18B20(void)初始化 DS 18B20unsigned char x=0;DQ=1;DQ 复位delay(8);调用延时函数DQ=0;单片机将DQ电平拉低delay(80);调用延时函数,大于480usDQ=1;将DQ电平拉高delay(14);调用延时函数延时x=DQ;/稍做延时后如果x=0则初始化成功x=l则初始化失败delay(20);、作者:夏路易 电子工业出版社所有ReadOneChar(void)/读字节函
25、数unsigned char i=0;单片机技术基础教程与实践unsigned char dat=0;for(i=8;i0;i)DQ=0;dat=l;DQ=1;if(DQ)dat|=0 x80;delay(4);retum(dat);)WriteOneChar(unsigned char dat)写字节函数 unsigned char i=0;for(i=8;i0;i)DQ=0;DQ=dat&OxOl;delay(5);DQ=1;dat=l;一 作者:夏路易 电子工业出版社所有unsigned char code dispcode=0 xC050 xF950 xA450 xB050 x9950
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机技术基础教程与实践-第8章 单总线、I2C总线与1602液晶 单片机 技术 基础教程 实践 总线 I2C 1602 液晶
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【曲****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【曲****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。