- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机MCS单片机接口技术简介
④在DS18B20测温程序设计中,当向DS18B20发出温度转换命令后,程序总要等待Dsl8820的返回信号。这样,一旦某个DS18B20接触不好或断线,在程序读该DSl8B20时就没有返回信号,从而使程序进入死循环。因此,在进行DSl8B20硬件连接和软件设计时,应当加以注意。 ⑤如果单片机对多只DS18B20进行操作,需要先执行读ROM命令,逐个读出其序列号,然后再发出匹配命令,就可以进行温度转换和读/写操作了。单片机只对一只DS18B20进行操作,一般不需要读取ROM编码以及匹配ROM编码,只要用跳过ROM命令,就可以进行温度转换和读/写操作。 温度传感器DS18B20驱动程序软件包 由于DS18B20的驱动过程象LCD驱动一样,都是程式化的程序软件,所以为方便使用将其编成名为DS18B20_drive.h的软件包文件。 DS18B20_drive.h具体内容如下: #define uchar unsigned char #define uint unsigned int sbit DQ=P1^3; //定义DSl8820端口DQ uchar yes0; /********以下是延时函数********/ void Delay(uint num) { while( --num); } /******以下是DSl8820初始化函数。若返回值为0,则DSl8820正常;若返回值为1,则不正常 Init DSl8820( ) { DO=l; //DQ复位 Delay(8); //延时 DQ=0; //单片机将DQ拉低 Delay(90); //精确延时大于480扯s DQ=1; //拉高总线 Delay(8); yes0=DQ; //如果=0,则初始化成功;=1,则初始化失败 Delay(100); DQ=1; return(yes0); // } 返回信号。若yes0为0,则存在; 若yes0为1,则不存在。 /********以下是读1字节函数********/ ReadOneByte( ) { uchar i=0; uchar dat=0; for(i=8;i0;i--) { DQ=0; dat=1; DQ=1; if(DQ) dat |=Ox80; Delay(4); } return(dat); } /********以下是写1字节函数********/ WriteOneByte(uchar dat) { uchar i=0: for(i=8;i0;i--) { DQ=0: DQ=dat0x01; Delay(5); DQ=1; dat=1: } } 7.9.4 DS18B20温度检测及显示应用举例 1. 设计要求 用AT89C51控制DS18B20,读取数据、并对DS18B20转换后的数据进行处理,转换成实际温度值;并通过1602型LCD显示。 2. 系统硬件原理图 根据设计要求,在Proteus ISIS编辑环境中绘制Proteus电原理图,如图所示。 详见第七章范例: S18B20温度检测及显示应用举例 * 第七章 51单片机的接口技术 7.9 新型串行接口芯片及其接口技术 传统的单片机外围扩展接口采用并行方式,即单片机与外围器件用8根数据线进行数据交换,再加上一些地址线和一些控制线,占用了大量的单片机I/O口。这不仅造成单片机资源的浪费,甚至会影响单片机其他功能的实现。因此近年来,越来越多的新型外围器件采用了串行接口,绝大多数单片机应用系统的外围扩展接口也从并行方式过渡到串行方式。 7.9.1 I2C总线器件及其接口技术 I2C总线是Inter IC Bus(内部集成电路总线)的缩写,是Phulips公司研发的一种双向二线制总线,用于单片机及其外围设备,是近年来应用较多的串行总线之一。I2C总线的优点是简单、有效,并且占用的空间非常小,减少了电路板的空间以及芯片引脚的数量,降低了互联成本。总线
文档评论(0)