历史上的今天
返回首页

历史上的今天

今天是:2024年11月25日(星期一)

正在发生

2021年11月25日 | stm8的18b20温度显示程序

2021-11-25 来源:eefocus

单片机源程序如下:

  1. #include"stm8s.h"

  2. #include"Cry12864.h"

  3. #include"temp.h"

  4. #include"tim1.h"

  5. void LcdDisplay(int temp) ;

  6. uint a;

  7. void main( void )

  8. { CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//内部时钟1分频16m

  9.   Ini_Lcd();//液晶初始化

  10.   Tim1_Init();//时钟初始化

  11.   while(1)

  12.   {LcdDisplay(Ds18b20ReadTemp());

  13.   }



  14. }  

  15.   

  16. /*******************************************************************************

  17. * 函数名         : LcdDisplay()

  18. * 函数功能                   : LCD显示读取到的温度

  19. * 输入           : v

  20. * 输出                  : 无

  21. *******************************************************************************/


  22. void LcdDisplay(int temp)          //lcd显示

  23. {

  24.    

  25.           unsigned char datas[] = {0, 0, 0, 0, 0}; //定义数组

  26.         float tp;  

  27.         if(temp< 0)                                //当温度值为负数

  28.           {

  29.                   Write_Cmd(0x80);                //写地址 80表示初始地址

  30.                 Write_Data('-');                  //显示负

  31.                 //因为读取的温度是实际温度的补码,所以减1,再取反求出原码

  32.                 temp=temp-1;

  33.                 temp=~temp;

  34.                 tp=temp;

  35.                 temp=tp*0.0625*100+0.5;       

  36.                 //留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点

  37.                 //后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就

  38.                 //算由?.5,还是在小数点后面。


  39.           }

  40.         else

  41.           {                       

  42.                   Write_Cmd(0x80);                //写地址 80表示初始地址

  43.                 Write_Data('+');                 //显示正

  44.                 tp=temp;//因为数据处理有小数点所以将温度赋给一个浮点型变量

  45.                 //如果温度是正的那么,那么正数的原码就是补码它本身

  46.                 temp=tp*0.0625*100+0.5;       

  47.                 //留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点

  48.                 //后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就

  49.                 //算加上0.5,还是在小数点后面。

  50.         }

  51.         datas[0] = temp / 10000;

  52.         datas[1] = temp % 10000 / 1000;

  53.         datas[2] = temp % 1000 / 100;

  54.         datas[3] = temp % 100 / 10;

  55.         datas[4] = temp % 10;


  56.         Write_Cmd(0x82);                  //写地址 80表示初始地址

  57.         Write_Data(0x30+datas[0]); //百位


  58.        

  59.         //LcdWriteCom(0x83);                 //写地址 80表示初始地址

  60.         Write_Data(0x30+datas[1]); //十位


  61.         //LcdWriteCom(0x84);                //写地址 80表示初始地址

  62.         Write_Data(0x30+datas[2]); //个位


  63. ……………………



推荐阅读

史海拾趣

Gem Asia Enterprise Co Ltd公司的发展小趣事

随着全球对环保问题的日益关注,Gem Asia积极响应号召,将环保理念融入企业发展中。公司投入大量资源研发绿色电子产品和生产工艺,减少了对环境的影响。同时,Gem Asia还建立了完善的废旧电子产品回收体系,实现了资源的循环利用。这些举措不仅提升了企业的社会形象,还为企业带来了长期的经济效益和社会效益。

EMMICRO公司的发展小趣事

EMMICRO公司自创立之初,就致力于在电子微芯片领域进行技术创新。公司研发团队不断突破技术瓶颈,成功研发出具有高性能、低功耗的芯片产品,填补了市场的空白。通过不断的创新和技术迭代,EMMICRO的芯片产品在市场上赢得了广泛的认可,并逐渐树立起品牌的知名度和影响力。

Broadband公司的发展小趣事

面对竞争激烈的电子市场,EMMICRO公司制定了精准的市场拓展策略。公司根据市场需求和客户需求,不断调整产品结构和市场定位,积极开拓新的销售渠道和合作伙伴。同时,公司还加大了对新兴市场的投入和布局,通过差异化竞争策略,成功打开了多个新的市场领域。

DSP Group Inc公司的发展小趣事

随着技术的不断进步和市场需求的增长,DSP Group开始将业务扩展到半导体领域。公司推出了一系列高性能、低功耗的DSP芯片,广泛应用于移动通信、智能家居、汽车电子等领域。这一举措不仅进一步巩固了DSP Group在DSP领域的领先地位,还为公司带来了可观的收益和市场份额。

General Instrument公司的发展小趣事
如果保护器的工作参数没有正确设置,可能导致其在正常电压范围内误判为过欠压状态。
Coors Components Inc公司的发展小趣事

随着电子行业的不断发展,智能化、绿色化成为了行业的新趋势。Coors Components Inc公司敏锐地捕捉到这一趋势,加大了对智能电子产品和环保材料的研发力度。通过不断推出符合市场需求的新产品,公司成功抓住了行业发展的机遇,实现了快速发展。

问答坊 | AI 解惑

电源问题

电源问题,555是干吗的????…

查看全部问答>

请问用C#如何调用CE6.0的默认gprs网络连接

我想写一个CE程序,上面有拨号和挂断两个按钮,用来操作gprs连接,而且cmwap还要用代理,请问在C#中如何实现。最好能详细一点,我是个初学者。先谢谢各位前辈了!…

查看全部问答>

支持横竖屏切换的.Net Micro Framework模拟器

从.Net Micro Framework V3.0开始,就一直期待美国团队能推出横竖屏切换功能的模拟器,但直到V4.0的推出也没有实现该功能。由于手头上的一些开发板带有的竖屏的LCD,所以离开开发板,开发相关界面就会难以调试,所以只好自行开发一个支持横竖屏切换 ...…

查看全部问答>

关于RAM使用量!

在WindwosCE中,有没有能够取得RAM总量,当前RAM使用量和使用率得API函数啊! 取得FalshROM的函数可以使用KernelIoControl 直接就全部取得了。 RAM方面应该有相应的函数吧! 请各位帮忙。 …

查看全部问答>

变频器基础知识18个问题------供初学者参考

1、什麽是变频器? 变频器是利用电力半导体器件的通断作用将工频电源变换为另一频率的电能控制装置。2、PWM和PAM的不同点是什麽? PWM是英文Pulse Width Modulation(脉冲宽度调制)缩写,按一定规律改变脉冲列的脉冲宽度,以调 ...…

查看全部问答>

那个4.99美元的M4的板子怎么还没发货

那个4.99美元的M4的板子怎么还没发货,各位都有收到的没啊…

查看全部问答>

关于 将运算放大器用作比较器 ——此举可行吗? 的疑惑

原文:TI信号链精品博文集锦——看一个TI老工程师如何驯服精密放大器---第一讲 看了好几遍,还是没看明白      第1讲     将运算放大器用作比较器 ——此举可行吗?      答案:不尽然,看 ...…

查看全部问答>

【晒样片】+ 教您如何选择一款合适的芯片

本帖最后由 hh376158101 于 2014-8-16 16:02 编辑 首先,先晒一下本次申请的样品,从申请,发货到收货只用了3天时间,这就是效率啊。这次我选择TI的汽车报警系统设计套件,正好与工作相关,可以参考借鉴。 下图为MSP430F2232单片机特写。 在T ...…

查看全部问答>

MXCHIP Open1081——mDNS

本帖最后由 qq849682862 于 2014-12-8 23:20 编辑 照理 先来段科普文 在局域网内,你要通过一台主机和其他主机进行通信,你需要知道对方的ip地址,但是有些时候,你并不知道对方的ip地址,因为一般使用DHCP动态分配ip地址的局域网内,各个主机的 ...…

查看全部问答>