AVR单片机(ATmega16L)DS18B20温度传感器驱动程序

博主分享了在自学过程中遇到的挑战,使用AVR ATmega16L单片机驱动DS18B20温度传感器的详细历程。通过阅读英文原版datasheet,解决了程序编写时序错误的问题,最终实现温度正确显示。程序移植到AVR时遇到了I/O口方向设置错误,修正后成功运行。博主计划将程序移植到PIC单片机,并希望能帮助其他新手。
摘要由CSDN通过智能技术生成

  自学真难,随便碰到个问题,都要百度半天、一天、两天and so on......

  从开始写DS18B20的程序到现在已经四天了,还没有全部成功。以前写程序,参考的芯片资料都是中文的,感觉英语的看着头大,也看不懂,所以就没想着要去参考参考原厂的datasheet,看了两天的中文资料,这个看了写的程序不正确,马上再下一个,结果桌面上下的DS18B20的资料放了一大片,程序还是不正确。

  自感倍受打击,一个小小的DS18B20我都搞不定,我怎么去做复杂的项目?DS18B20,我跟你耗上了!于是非要和这小东西较较劲,别的不学了,不搞定DS18B20,我就来个持久战。

  在DALLAS网站上下个英文版的datasheet,从第一行开始看,看着看着,感觉非常惊奇,不像我当初想当然的觉得那么难理解啊,除了个别单词不认识,整体上能看出大概意思,装了个金山词霸,不会的单词马上查,发现也不是很费劲的事儿。以前打开个英文的datasheet,看着密密麻麻的英语句子,看都没看就觉得头大,以前实在是太先入为主了,自己还是太浮躁,没有静下心来,认真的看一看。决定以后下芯片资料,直接下原版datasheet。

  从头看手册,对照程序完整的看了一遍,发现原因就在写时序上,程序中写字节的函数中有一句:temp_h,与时序图不符,写0时序开始后、DS18B20采样前,并没有拉高数据线,把temp_h注释掉

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值