问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

求帮忙写个程序!!!要求写在问题补充里

提问网友 发布时间:2023-10-20 06:01
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
1个回答
热心网友 回答时间:2024-05-16 18:40
#include"reg51.h"
  #include"d1820.h"
  int t;
  uint num;
  uchar dat; //读写数据变量
  uchar a=0;
  uchar b=0;
  float tep=0; //读一个温度时的温度转换中间间
  uchar data tempbuf[4]=0;//温度字型显示中间变量
  /******************************************************
  函数名称:delay(uint num)
  返回值:无
  参数:uint num 颜色数据值
  作用:延时
  *******************************************************/
  void delay(uint num)
  {
  while(num--);
  }
/******************************************************
  函数名称:void Init_DS18B20(void)
  返回值:无
  参数:无
  作用:初始化18B20
  *******************************************************/
  void Init_DS18B20(void)
  {
  char x=0;
  DQ=1;
  delay(10);//稍作延时
  DQ=0;
  delay(80);//延时>480us 540us
  DQ=1; //拉高总线 15-60us
  delay(20);
  x=DQ;//读总线状态 为0复位成功,为1则不成功
  delay(30);
  DQ=1;//释放总线
  }
  /******************************************************
  函数名称:uchar ReadOneChar(void)
  返回值:uchar dat
  参数: 无
  作用:读1820一个字节
  *******************************************************/
  uchar ReadOneChar(void)
  {
  uchar i;
  uchar dat=0;
  for(i=0;i<8;i++)
  {
  DQ=0;
  dat>>=1;
  DQ=1;//给脉冲
  if(DQ) {dat|=0x80;}//读1 /// 读0右移处理
  delay(8);//15us内读完一个数
  }
  return(dat);
  }
  /******************************************************
  函数名称:void WriteOneChar(uchar dat)
  返回值:无
  参数: uchar dat
  作用:写1820一个字节
  *******************************************************/
  /////****写DS18B20***///写0 60us读完,写1 30us 内读完
  void WriteOneChar(uchar dat)
  {
  uchar i=0;
  for(i=0;i<8;i++)
  {
  DQ=0;
  DQ=dat&0x01;//写所给数据最低位
  delay(10); ///////////
  DQ=1;//给脉冲
  dat>>=1;
  }
  delay(8);
  }
  /******************************************************
  函数名称:int ReadOneTemperature(void)
  返回值:int t
  参数: 无
  作用:读温度值
  *******************************************************/
  int ReadOneTemperature(void) ////////***读取温度值***********///// 每次读写均要先复位
  {
  Init_DS18B20();
  WriteOneChar(0xcc);//发跳过ROM命令
  WriteOneChar(0x44);//发读开始转换命令
  Init_DS18B20();
  WriteOneChar(0xcc);//发跳过ROM命令
  WriteOneChar(0xbe);//读寄存器,共九字节,前两字节为转换值
  a=ReadOneChar(); //a存低字节
  b=ReadOneChar(); //b存高字节
  t=b;
  t<<=8;//高字节转换为10进制
  t=t|a;
  tep=t*0.0625;//转换精度为0.0625/LSB
  t=tep*10+0.5;//保留1位小数并四舍五入****后面除10还原正确温度值)
  return(t);
  }
  /******************************************************
  函数名称:uint Temperaturepro(void)
  返回值:void
  参数: void
  作用:温度处理
  *******************************************************/
  void Temperaturepro(void)
  {
  int temp;
  temp=ReadOneTemperature();
  tempbuf[3]=temp/1000; //百位
  tempbuf[2]=temp/100%10;//十位
  tempbuf[1]=temp%100/10; //个位
  tempbuf[0]=temp%10; //小数
  }

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

西安理工和西北农林科技大学的水文水资源工程哪个更好?14 100分,先给30,最后追加70. 求水生植物对富营养化元素... 西安理工大学水利水电学院水文水资源专业每年招多少人 西安理工水文水资源专硕怎么样2 郑州大学西亚斯国际学院的杰出校友4 孩子上小学一年级,下学期上小学二年级了,想给她订份报纸,请问哪种报纸... 请问怎样学日语会快? 基本的脸部护理需要什么?12 禁用虚拟内存(完全)1 中国男篮国家队主教的练翻译员是谁?6 石榴花可以吃吗?要怎么做才可以吃?19 急!!!急!!!急!!!西安理工大学的水文学及水资源硕士专业... 推荐手机,要可以玩微信,拍照可以,声音可以,电池可以的1000左右的,不怎... 怎么在西瓜视频中录手机游戏视频? 关闭了页面文件为什么还有“虚拟内存太低”的警告? 宁波泽瑞环保科技有限公司怎么样? 郭维盛的个人观点 ...前面老师讲过断路的时候,路端电压等于电源电动势, 电脑开机一会儿没任何提示直接关机,像断电一样,电源键也不亮了,然后把... 一年改2次的办法 金杯阁瑞斯9座2.0排量的耗油状态35 欧博信型号 iusai x3 开不起机怎么办 一亩地可种植多少棵樱桃,成熟后每棵可产多少斤149 08年金杯阁瑞斯9座,蓝牌车,转让后过户还是蓝牌吗?23 我的手机是欧博信8800,原本只因电池充不满,八月二十交给售后,售后又说... 北京现代名图不能启动并且无法识别智能钥匙64 电脑是16G内存,120G固态,有必要关闭虚拟内存和页面文件...1 配一把北京现代名图车钥匙要多少钱,我是两把钥匙都丢了要把车子...10 韩剧《成均馆绯闻》好看吗?刘亚仁演的角色怎么样?9 无菌盘有效时间不能超过几个小时4 找一本关于魔法的小说,一开始主角就是个强大的魔法师3 你是怎样看待中巴友谊赛的打架事件? ...物理化学,求帮助,我找不到这个百度网盘资源,求分享! 宁波浩泽环保科技有限公司怎么样? 宁波泽象环保科技有限公司怎么样?1 宁波锦泽环保科技有限公司怎么样? 实验室封口膜会污染室内质控吗 乐视手机2有什么版本的,那个更好有什么区别49 ...是不是和插座无关 而是和墙上那个3孔和2孔的插座有关? 西瓜视频的游戏领域创作者怎么获得?30
Top