历史上的今天
返回首页

历史上的今天

今天是:2024年11月14日(星期四)

正在发生

2019年11月14日 | ds18b20 温度模块串口显示简单代码

2019-11-14 来源:eefocus

今天晚上没事干编了一个极简的一个小程序,虽然简单但是还是很稳定的,连接也很简单,用最小系统板p0.0口接上ds18b20模块就可以了

#include
#include
#include
#include "DS18B20.h"
#define OSC 11059200            //晶振频率
#define BAUDRATE 9600    //波特率

void main(void)
{

       unsigned int i;
       unsigned char tmph,tmpl;
       Temp t;
       unsigned char strTemp[8];    //显示到屏幕的温度数据
                           //开背光
       TMOD = 0x21;                  //选择方式2作为波特率发生
       SCON = 0x50;                   //串口方式1,允许中断
       PCON |= 0x80;                  //SMOD=1
       TL1 = 256 -(OSC/12/16/BAUDRATE);
       TH1 = 256 -(OSC/12/16/BAUDRATE);
       TR1 = 1;                                  //启动定时器
       TI = 1;                                   //TI有效
//检测DS18B20温度传感器是否存在并复位传感器
       if(DSReset())
           printf("rTemp sensor ResetOK!");
       else  printf("rTemp Sensor Notready!");
           
    while(1){
        
          DSReset();                             //复位传感器
          Delay(1);
          DSWriteByte(SkipROM);                  //跳读 省时
          DSWriteByte(StartConvert);             //温度转换
          for(i=0;i<40000;i++); 
          DSReset();
          Delay(1);
          DSWriteByte(SkipROM);
          DSWriteByte(ReadMemory);   //读RAM程序
          tmpl = DSReadByte();
          tmph = DSReadByte();
          printf("rnTemperature code HI=%02bX,LO=%02bX ",tmph,tmpl);
          DSReadTemp(&t);
//准备输出到显示屏的数据
        strTemp[0]=t.z/10+0x30;     //十位
        strTemp[1]=t.z%10+0x30;     //个位
        strTemp[2]='.';             //小数点
        strTemp[3]=t.x/1000+0x30;   //十分位
        strTemp[4]=(t.x/100)%10+0x30; //百分位
                strTemp[5]=(t.x/10)%10+0x30;//千分位
                strTemp[6]=t.x%10+0x30;            //万分位 
        strTemp[7]='C';
              if(t.z>=30)
              printf("nWarning!!!Temperature= %d.%04d ",t.z,t.x) ;  //大于30度温度警告
              else
        printf("rnTemperature = %d.%04d",t.z,t.x);

}
}


串口助手显示选9600波特率

串口助手显示选9600波特率

实物连接,其实就一根线

实物连接,其实就一根线


推荐阅读

史海拾趣

eLED.com Corp公司的发展小趣事

作为一家有影响力的企业,eLED.com Corp始终关注社会责任的履行。公司积极参与各类公益活动,关注教育、环保和扶贫等领域。通过捐款捐物、志愿服务等方式,eLED.com Corp为社会做出了积极的贡献。此外,公司还注重员工培训和福利待遇的提升,努力为员工创造一个良好的工作环境和发展空间。通过这些举措的实施,eLED.com Corp不仅赢得了社会的广泛赞誉和支持,还为企业的发展注入了新的动力。

Gemmy Electronics Co Ltd公司的发展小趣事
电路中的元件损坏、接线错误或外部环境潮湿等都可能导致电路短路,影响捕鼠器的正常工作。
Advanced Energy公司的发展小趣事

Advanced Energy公司成立于1981年,总部位于美国科罗拉多州的丹佛市。在成立之初,AE公司便专注于电源技术的研发与创新。当时,电子行业的电源技术正处于快速发展阶段,AE公司凭借其前瞻性的技术视野和扎实的研发实力,迅速在市场中崭露头角。公司不断推出具有创新性的电源产品,满足了当时电子行业对高效、稳定电源的需求,逐渐在行业内建立了良好的声誉。

C&K公司的发展小趣事

进入千禧年代,C&K因其卓越的市场表现和技术实力被ITT Industries收购。虽然成为了ITT的开关部门,但C&K仍然保留了自己的品牌名称。这一举措既保证了C&K能够继续享有ITT的资源支持,又使得C&K能够保持其独特的品牌文化和市场定位。

睿赫(crechip)公司的发展小趣事

在公司的快速发展过程中,睿赫公司高度重视团队建设和人才培养。公司建立了一套完善的人才选拔和培养机制,吸引了一批优秀的电子工程师和技术人才加入。同时,公司还注重员工的职业发展和福利待遇,为员工提供了广阔的发展空间和良好的工作环境。

通过团队建设和人才培养,睿赫公司的研发团队逐渐壮大,创新能力也得到了极大的提升。这使得公司能够在激烈的市场竞争中保持领先地位,不断推出具有竞争力的新产品。

芯邦(Chipsbank)公司的发展小趣事

为了进一步扩大业务规模,提升研发实力,芯邦科技于2023年成功在上交所科创板上市,并计划募资6亿元用于投建移动存储控制芯片等项目。这一举措不仅为芯邦提供了更多的资金支持,也为其未来的发展奠定了坚实的基础。

问答坊 | AI 解惑

关于ucosii在stm32上的移植

关于这个移植到问题好像pm了版主好多次,于是我决定还是发帖一记吧,谢谢之前daichen版主的帮助的。但还有问题。 移植完毕后,在测试OSStartHighRdy函数是否成功时,出现很多警告信息: 1)单步调试进入OS_CORE.C中的指令ptcb = OSTCBFreeList;&n ...…

查看全部问答>

IT 学生解惑真经

不知这个可以发在这不?不行的话麻烦斑竹移动一下,呵呵 在校的 IT 学生有几百万 都在为如何如何学习才能找到工作、融入社会而迷 惑 我们需要的不是灵丹妙药 而是一本让你少走几年弯路的 IT 学生解惑真经 这是一部写给在校计算机专业学生 ...…

查看全部问答>

nios2手把手的入门资料

希望感兴趣的朋友下载资料后,看了过后,有任何疑问提出来大家讨论!…

查看全部问答>

学习单片机的一点心得体会

很多朋友都在学习单片机或是想学单片机,但在看了一些资料后,要么感到不知道学的什么,要么找不到下一步的学习方法,这都很正常,因为单片机的学习是一项综全性知识的结果。那么怎样学习单片机,怎么样学好单片机是我们关心的,通过我本人的学习过 ...…

查看全部问答>

关于c++ 研发mobile手机outlook电子邮件的研发

关于c++  研发mobile手机outlook电子邮件的研发 1,如何实现选择mail帐号 2,发送指定邮件的功能 以下是我的代码,能把相关信息插入到邮件,但没有发信人的帐号选择.这个功能如何实现? 代码如下: BOOL LanchSymtemEmailEditor(TCHAR *TP ...…

查看全部问答>

关于ce6下6410平台矩阵式键盘驱动中的几点疑问

关于ce6下6410平台矩阵式键盘驱动中的几点疑问 目前在看键盘驱动,不过其中有几个地方看的不太明白 希望各位大师帮忙解答一下: 1.在中断处理线程中irq = IRQ_KEYPAD;查了一下#define IRQ_KEYPAD  32,此处是系统规定好的,还是?另外 ...…

查看全部问答>

wince开发用C++还是C#好

不熟悉C++ 想用C# 可是发现网上的例子教程都是C++的 一看就头疼 还有如何学习开发UI呢…

查看全部问答>

大侠帮忙:EBOOT问题

当EBOOT正常时, 部分显示信息如下: Download BIN file information: ----------------------------------------------------- [0]: Base Address=0x80038000  Length=0x19f40 ------------------------------------------------ ...…

查看全部问答>

TI团购芯片用PCB免费赠送---纯属个人行为

1、板子情况: 下面这个帖子是刚收到PCB时发的, https://bbs.eeworld.com.cn/thread-330579-1-1.html 尺寸:10cm x 35mm   2、板上资源: 见下图。   为了尽量使用PCB面积,除了用作IC试验外,加了LCD转接部分,因为好多人做 ...…

查看全部问答>

FPGA学习——数码管之时钟设计

设计一个秒表,分辨率为0.01s,分三个位,分钟位,秒位,毫秒位,前两个是六十进制,后一个是一百进制,写四个文件,一个分频文件,一个10进制计数器,一个六进制计数器,一个数码管的显示文件,实验要用到两个频率,一个时钟频率,产生0.01s的时钟 ...…

查看全部问答>