用FPGA做数字温度计实验,LCD1602一直显示0,求DS18B20的正确写法!!
答案:1 悬赏:0
解决时间 2021-04-18 05:28
- 提问者网友:听门外雪花风
- 2021-04-17 15:37
用FPGA做数字温度计实验,LCD1602一直显示0,求DS18B20的正确写法!!
最佳答案
- 二级知识专家网友:梦中风几里
- 2021-04-17 16:49
这个东东最难弄的就是时间了,我也弄了几个小时才搞定....把时间弄对了,再有问题就是程序本身的问题了,先别用lcd来显示,先用数码管或led等来检测读出来的数据,等ds18b20这块解决了在去弄lcd显示 DQ = 1 ; //拉高总线,产生复位脉冲,释放总线(要求16~60us) for(i=0;i<=4;i++){}//40us 其实应该是60us以上,不是40us presence = DQ ; //读存在脉冲。如果=0 器件存在,初始化成功;=1 器件不存在,初始化失败 for(i=0;i<=9;i++){}//100us DQ = 1 ; 上面延时应该是240us以上 void write_ds18b20(unsigned int n) ..... DQ =n&0x01; //取传递过来的函数的最低位,并发送出去 for(i=0;i<=6;i++){}; 保证这个延时在30us以上 unsigned int read_ds18b20(void) ...... if(DQ) u|=0x80;//控制器采样,若采样位为1,则将dat相应的位置1,否则将由第一句的移位置0 for(i=0;i<=9;i++){}; 保证延时在60us以上 unsigned int get_temp(void) { ...... 最后最好再延时200us左右 }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯