内容发布更新时间 : 2024/11/20 3:21:36星期一 下面是文章的全部内容请认真阅读。
接电源方式,其VDD端用3V~5.5V电源供电。
图3(a) 寄生电源工作方式
图3(b) 外接电源工作方式
四、系统软件设计
DS18B20的一线工作协议流程是:初始化→ROM操作指令→存储器操作指令→数据传输。其工作时序包括初始化时序、写时序和读时序
初始化时序
写时序
读时序
3个子程序:INIT为初始化子程序,WRITE为写(命令或数据)子程序,READ为读数据子程序,所有的数据读写均由最低位开始。 INI11:CLRDAT
DJNZR2,INI11;主机发复位脉冲持续3μs×200=600μs SETBDAT;主机释放总线,口线改为输入 MOVR2,#30
IN12:DJNZR2,INI12;DS18B20等待2μs×30=60μs CLRC
ORLC,DAT;DS18B20数据线变低(存在脉冲)吗? JCINI10;DS18B20未准备好,重新初始化 MOVR6,#80 INI13:ORLC,DAT
JCINI14;DS18B20数据线变高,初始化成功
DJNZR6,INI13;数据线低电平可持续3μs×80=240μs SJMPINI10;初始化失败,重来 INI14:MOVR2,#240
IN15:DJNZR2,INI15;DS18B20应答最少2μs×240=480μs RET
;------------------------ WRITE:CLREA
MOVR3,#8;循环8次,写一个字节 WR11:SETBDAT MOVR4,#8
RRCA;写入位从A中移到CY CLRDAT
WR12:DJNZR4,WR12 ;等待16μs
MOVDAT,C;命令字按位依次送给DS18B20 MOVR4,#20
WR13:DJNZR4,WR13 ;保证写过程持续60μs DJNZR3,WR11 ;未送完一个字节继续 SETBDAT RET
;------------------------ READ:CLREA
MOVR6,#8;循环8次,读一个字节 RD11:CLRDAT MOVR4,#4
NOP;低电平持续2μs SETBDAT;口线设为输入 RD12:DJNZR4,RD12 ;等待8μs MOVC,DAT
;主机按位依次读入DS18B20的数据 RRCA;读取的数据移入A MOVR5,#30 RD13:DJNZR5,RD13 ;保证读过程持续60μs DJNZR6,RD11
;读完一个字节的数据,存入A中 SETBDAT RET
;------------------------
主机控制DS18B20完成温度转换必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。必须先启动DS18B20开始转换,再读出温度转换值。假设一线仅挂接一个芯片,使用默认的12位转换精度,外接供电电源,可写出完成一次转换并读取温度值子程序GETWD。
GETWD:LCALLINIT MOVA,#0CCH
LCALLWRITE;发跳过ROM命令 MOVA,#44H
LCALLWRITE;发启动转换命令 LCALLINIT
MOVA,#0CCH;发跳过ROM命令 LCALLWRITE
MOVA,#0BEH;发读存储器命令 LCALLWRITE LCALLREAD MOVWDLSB,A
;温度值低位字节送WDLSB LCALLREAD MOVWDMSB,A
;温度值高位字节送WDMSB RET ??
子程序GETWD读取的温度值高位字节送WDMSB单元,低位字节送WDLSB单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到实际温度值。
五、结束语
DS18B20是目前最流行的单总线温度传感器之一。它的接口电路简单、可靠,因此咋温度检测系统以及测控网络中将会有广泛的应用前景。 【参考文献】
1.李广弟等.《单片机基础》修订本.北京航空航天大学出版社,2001
2.李朝青编.《单片机原理及接口技术》(简明修订版).北京航空航天大学出版社,1998 3.公茂法等.《单片机人机接口实例》.北京航空航天大学出版社,1998
4.冯克.《MCS-51单片机实用子程序及其应用实例》.黑龙江科学技术出版社,1990 5.王福瑞等.《单片微机测控系统设计大全》.北京航空航天大学出版社,1999 6.徐仁贵等.《单片微型计算机应用技术》.机械工业出版社,2001
7.杨恢先等.《单片机原理及应用》国防科技大学出版社,2003 8.李鸿等.《单片机原理及应用》.湖南大学出版社,2002
9.徐惠民等.《单片微型计算机原理、接口与应用》.北京邮电大学出版社,2001 10.杨欣荣等.《智能仪器原理、设计与发展》.中南大学出版社,2003
六、实习心得
经过这几天的努力,实习终于完成了。虽然我只是担任这次课程设计的部分主要工作,负责对DS18B20进行资料的查阅和部分程序编写。由于DS18B20与微机处理器间采用串行数据传送,因此,在对DS18B20进行程序编写时,必须严格保重读写时序,否则将无法读取测温结果。在DS18B20测温程序设计中,向DS18B20发出温度转换后,程序总要等待DS18B20的返回信号,一旦DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序将陷入死循环。这一点在进行DS18B20硬件连接和软件设计过程中给予了一定的重视。 整个设计通过了软件和硬件上的调试、仿真。我想这对于自己以后的学习和工作都会有很大的帮助的。在这次设计中遇到了很多问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程中也是我个人能力提升的过程。对于单片机设计,其硬件电路是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对单片机的结构很熟悉。因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。
给我印象最深的是要设计一个成功的电路,必须要有耐心,要有坚持的毅力。在整个电路的设计过程中,花费时间最多的是各个单元电路的连接及电路的细节设计上,如在多种方案的选择中,我们仔细比较分析其原理以及可行的原因。最后还是在老师的耐心指导下,使整个电路可稳定工作。实习过程中,我深刻的体会到在设计过程中,需要反复实践,其过程很可能相当烦琐,有时花很长时间设计出来的电路还是需要重做,那时心中未免有点灰心,有时还特别想放弃,此时更加需要静下心,查找原因。
总体来说,这次实践我受益匪浅。在摸索该如何设计电路使之实现所需功能的过程中,特别有趣,培养了我的设计思维,增加了实际操作能力。在让我体会到了设计电路的艰辛的同时,更让我体会到成功的喜悦和快乐。
最后感谢老师和我的组员们在这次设计中给于我的帮助和支持