我写过DS18b20 程序,也写过DS18b20的读一写一程序。我写过DS18B20的程序,1、怎么从DS18B20中读出数据
各种单片机的阅读程序,DS18B20有六个控制命令:温度转换44H启动DS18B20进行温度转换;阅读注册read读寄存器9位二进制数字写寄存器4EH复制寄存器TH和TL字节48H将寄存器TH和TL字节写入E2RAM复位e 2 ramb 8h;将寄存器TH和TL字节写入E2RAMTL字节读取电源模式B4H启动DS18B20向主CPU d18 b 20发送电源模式信号,初始化(1)首先将数据线设置为高电平“1”。
(4)延时750微秒(这个时间的时间范围可以是480到960微秒)。(5)数据线被拉至高电平“1”。(6)延时等待(如果初始化成功,将在15到60ms内产生DS18B20返回的低电平“0”。根据这种状态可以确定其存在,但需要注意的是不能无限期等待,否则程序会进入无限循环,所以需要进行超时控制)。
2、有关温度报警器的 程序,有关DS18B20的 程序已写好,求助有关蜂鸣器报警和温...本设计中的测温加热控制系统以AT89S52单片机为核心部件,加上温度采集电路、键盘及显示电路、加热控制电路和超限报警电路。采用单总线数字温度传感器DS18B20、行列式键盘和动态显示,采用易于控制的固态继电器作为加热控制的开关器件。这项工作不仅可以实时显示当前温度,还可以对温度进行控制,使其达到用户所需的温度,并在此温度下保持恒定。
基于模糊控制理论的控制算法使控制精度完全满足一般社会生产的要求。通过系统软硬件设计的合理规划,发挥单片机集成众多系统级功能单元的优势,在不减少功能的情况下有效降低硬件成本,系统易于操作。实验表明,该温度控制系统可以达到0.2℃的静态误差,0.45℃的控制精度和0.83%的超调量,因此该设计具有较高的可靠性和稳定性。
3、基于AT89C51单片机和DS18B20温度传感器、LCD1602液晶显示的高精度数字温...4、DS18B20如何实现报警
首先,DS18B20的报警在总线多搜的应用中对一个单片机意义不大(可以直接通过软件报警)。通过WriteSpad写入告警值后,经过温度转换后,通过两次读取和一次写入就可以找到处于告警状态的芯片的ROMID,根据ROMID与地理位置的映射关系就可以确定哪个位置温度超过了告警值。DS18B20只是一个测温元件,所谓的报警功能是通过程序单片机实现的。
暂存RAM的结构是一个8字节存储器,前2个字节包含测量的温度信息,第3和第4个字节th(报警温度上限)和TL(报警温度下限)的副本。第五个字节是配置寄存器,其内容用于确定温度值的数字转换分辨率。字节6、7和8保留未使用。要实现报警,在温度转换完成后,将测得的温度值与RAM中th和TL字节的内容进行比较(当然要补程序)。
5、急盼:我在做一个数字温度计,用的是DS18B20,80C51,LM016L10分钟。我遇到一个学长想做这个。然后我谈好价格,最后几百快钱卖给了他。整套的东西,其实这个东西并不难。时机就是发一个脉冲,等一下再发一个脉冲。然后发送ROM命令和RAM命令,然后按时间顺序发送。没关系。多读书。大三的时候我花了一个星期才写完。程序多到贴不完。自己看看DS18B20的中文资料。不懂就多读几遍,总有一天会懂的。
6、DS18B20采集温度 程序求翻译要一行一行啊完成你程序 below中未翻译的部分#defineDQP3_4//定义DS18B20总线I/O/* * * * * Delay程序* * */void Delay _ ds18b 20。//num不等于零,延迟继续减1 }/* * * *初始化ds18b 20 * * */void init _ ds18b 20(void){ unsigned charx 0;//定义复位成功标志DQ1//DQ复位Delay _ ds18b 20(8);//稍微延迟DQ0//单片机将DQ下拉到Delay _ ds18b 20(80);//精确延时,大于480usDQ1//上拉总线Delay _ ds18b 20(14);//延时30 ~ 60 usxdq//稍微延迟后,如果x0,初始化成功,x1,初始化失败。delay _ ds18b 20(20);//延迟约120us}/* * * *读取一个字节* * * */unsigned hareadedonechar(void){ unsigned chari 0;//为定义无符号的读取变量。
7、写出DS18b20的读一和写一 程序,用汇编语言/* * * * * * *ds18b20读取一个字节* * * * * * * * * */unsigned hareadedonechar(void){ uchi 0;//为循环uchardat0定义I;//读取(i8的8位数据;I > 0;I)//8个周期{ DQ0//拉下DQ总线开始读取序列dat > > 1;//dat左移一个DQ1//释放DQ总线if(DQ)// If DQ1,执行dat | 0x80;(0x80表示第7位为1,如果DQ为1,即读取数据为1,dat的第7位置1,然后dat>>1,循环结束8次,dat为读取数据)//DQ0,跳过dat|0x80即可;delay _ 18b 20(4);//延迟完成读取序列,然后读取下一个数据} return(dat);//返回读取的dat } DQdat
文章TAG:ds18b20 ram 程序 ds18b20写ram程序