- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机应用器件原理
(2) DS18S20的内部结构 包括寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高速暂存器(内含便笺式RAM)、用于存储用户设定的温度上下限值TH和TL的触发器、存储与控制逻辑、8位循环冗余校验码(CRC)发生器共8部分。 (5)读操作 读操作有立即地址读、指定地址读、指定地址连续读三种方式。 a. 立即地址读方式 AT24C02的地址计数器内容为最后操作字节的地址加1,也就是说如果上次读/写的操作地址为N,则立即读的地址为从地址N+1开始,如果N=255则计数器将翻转到0,且继续输出数据,AT24C02接收到器件地址、R/W*位置1信号,首先发送一个应答信号,然后发送一个8位字节数据,主器件不需发送一个应答信号但要产生一个停止信号。 b. 指定地址读方式 单片机发送启动信号后,先发送含有芯片地址的写操作的控制字,AT24C02应答后,再发送1个字节的指定单元的地址,AT24C02应答后再发送1个含有芯片地址的读操作控制字,此时如果AT24C02做出应答,被访问单元的数据就会按SCL信号同步出现在SDA线上,供单片机读取。 c. 指定地址连续读方式 指定地址连续读方式与读地址控制与指定读地址方式相同。单片机收到每个字节数据后要做出应答,只有AT24C02检测到应答信号后,其内部的地址寄存器就自动加1指向下一单元,并顺序将指向的单元的数据送到SDA线上。 当需要结束读操作时,单片机接收到数据后,在需要应答的时刻发送一个非应答信号,接着再发送一个终止信号即可。 2. AT24C02与单片机的接口与编程 AT24C02与AT89S51单片机的接口电路如图所示。P1.7与IC卡的SDA(AT24C02的5脚)相连,P1.6与SCL(6脚)相连,P1.5与WP(7脚)相连。如对电路和时序改进,还可读写加密卡等。 #include reg51.h #include intrins.h #define uchar unsigned char #define unit unsigned int #define Addwr 0xa0; /*0xa0为写入的存储器单元的地址*/ #define AddRd 0xa1; /*0xa1为读出的存储器单元的地址*/ sbit SDA=P1^7; sbit SCL=P1^6; sbit WP=P1^5; /*模拟I2C*//*硬件写保护*/ void Start(void) { …… } /*起始位函数*/ void Stop(void) { …… } /*终止位函数*/ void Ack(void) { …… } /*应答位函数*/ void NoAck (void) { …… } /*非应答位函数*/ void send(uchar Data) {/*发送数据函数*/ uchar BitCounter=8; /*发送的位数控制*/ uchar temp; /* temp为临时变量*/ do { temp=Data;; SCL=0;_Nop( ); if((temp0x80)==0x80)) /*如果最高位是1*/ {SDA=1;}else{SDA=0;} SCL=1; temp=Data1;/*发送的数据左移1位*/ Data=temp; BitCounter--; }while(BitCounter); SCL=0; } void Read(void) { /*读入1字节数据,并返回该字节值*/ uchar temp=0; uchar temp1=0;uchar BitCounter=8; SDA=1; do { SCL=0;_Nop( ); SCL=1;_Nop( ); if(SDA){temp=temp|0x01;} /* 如果SDA=1 temp的最低位置1 */ else{temp=temp0xfe;}/ /*否则 temp的最低位清0*/ if(BitCounter-1) {temp1=temp1;temp=temp1;} BitCounter--; } while(BitCounter); return(temp); } void WriteROM (uchar Data[],uchar Address, uchar Num) { /*向存储器写数据*/ uchar i; uchar *PData; PData=Data; for(i=0;iNum;i++) { Start( ); /*发送起始信号*/ send(0xa0); /*发送写从器件地址的控制字节*/ Ack( ); /*应答*/ send(Address,+i
您可能关注的文档
最近下载
- 信号与系统课件9.pptx VIP
- 购物中心丶商场开业工作计划倒排表.pdf VIP
- 《2024 3618-T-339 电动汽车动力蓄电池在役检测技术规范》知识培训.pptx VIP
- TB10180-2016 铁路防雷及接地工程技术规范(TB 10180-2016).pdf VIP
- 19K112 金属、非金属风管支吊架(含抗震支吊架).docx VIP
- 民航乘务员基础教程第二章34课.ppt VIP
- 王村煤矿井田开拓设计说明书.doc VIP
- GB 50150-2016 电气装置安装工程电气设备交接试验标准.docx VIP
- 窗台板工程施工工艺.docx VIP
- 胎教故事100个必读.pdf VIP
文档评论(0)