STM8 DS18B20温度传感器子程序

发布者:知者如渊最新更新时间:2020-06-29 来源: eefocus关键字:STM8  DS18B2  0温度传感器 手机看文章 扫描二维码
随时随地手机看文章

软件设计

/*********************************************************************

目 的: 建立DS18B20操作库

目标系统: 基于STM8单片机 

应用软件: Cosmic CxSTM8 

*********************************************************************/


void _delay_us(u8 us)

{

while(--us);

}


//-----复位-----

void resetOnewire(void) 

{

OUT_DQ();

CLR_DQ();

_delay_us(750);

SET_DQ();

_delay_us(100);

IN_DQ(); 

//while(GET_DQ());

while(!(GET_DQ()));

SET_DQ();

}


//-----读数据-----

u8 rOnewire(void)

{

u8 data=0,i=0;

for(i=0;i<8;i++)

{

data=data>>1;

OUT_DQ();

CLR_DQ();

IN_DQ();

if(GET_DQ()) data|=0x80;

else while(!(GET_DQ()));

_delay_us(60);

}

return(data);

}

//-----写数据-----

void wOnewire(u8 data)

{

u8 i=0;

OUT_DQ();

for(i=0;i<8;i++)

{

CLR_DQ();

if(data&0x01)

{

SET_DQ();

}

else

{

CLR_DQ();

}

data=data>>1;

_delay_us(60);  //65

SET_DQ();

}

}


//-----DS18B20转换温度-----

void convertDs18b20(void) 

resetOnewire(); 

wOnewire(0xcc); 

wOnewire(0x44); 

}

//------------DS18BB0读温度----------

u8 readTemp(void) 

u8 temp1,temp2;

convertDs18b20();

resetOnewire(); 

wOnewire(0xcc); 

wOnewire(0xbe);

temp1=rOnewire(); 

temp2=rOnewire(); 

temp2=temp2<<4;

temp1=temp1>>4;

temp2|=temp1;

return (temp2&0x7F);

}


关键字:STM8  DS18B2  0温度传感器 引用地址:STM8 DS18B20温度传感器子程序

上一篇:STM8 LCD602显示子程序
下一篇:STM8 AT24CXX使用I2C接口读写

推荐阅读最新更新时间:2024-11-10 17:36

STM8库编程笔记之时钟管理
STM8库函数学习笔记之时钟管理 相关函数: void CLK_DeInit(void); void CLK_HSECmd(FunctionalState NewState); void CLK_HSICmd(FunctionalState NewState); void CLK_LSICmd(FunctionalState NewState); void CLK_CCOCmd(FunctionalState NewState); void CLK_ClockSwitchCmd(FunctionalState NewState); void CLK_FastHaltWakeUpCmd(FunctionalState New
[单片机]
IAR调试stm8的优化设置
本来想使用iar的debug功能,通过st-link调试stm8板子,查看一下变量的值,结果死活看不到结果有变化,一直显示不可用,当时我就纳闷了,这他娘的是咋回事? 没办法,上网搜吧,于是发现,原来是跟编译的优化级别有关系,默认的优化级别是low,把它改成None,然后单步就能看到变量的值了。 调整完优先级就可以看到变量的值了。
[单片机]
STM8建立IAR工程
STM8是意法半导体公司出的增强型八位单片机,性能比51单片机强大,而且价格便宜,在商业应用中很受欢迎 在STM8的开发工程中主要有两种开发工具链.第一是使用IAR开发环境,第二十使用cosmic+sttoolset工具链,因为工作和自身的原因,这两种工具连都有幸使用过,接下来会写一套基于固件库的STM8学习笔记 另外,先使用固件库作为学习模版 建立STM8工程分为几步 1. 建立工作空间,然后建立工程 2. 添加源代码分组, 3. 工程配置 4. 加入库文件 添加之后的文件如下 选择芯片型号STM8S208R8,添加.H文件路径 编译,提示不通过 提示没有没有ADC1 TIM5
[单片机]
<font color='red'>STM8</font>建立IAR工程
IAR STM8串口printf输出
IAR用printf输出与keil设置不太一样,首先当然先要包含头文件 stdio.h ,然后改写putchar函数 int putchar(int c) { while ((UART2_SR&0x80)==0x00); UART2_sendchar((u8)c); return (c); } 在Options中将Library Configuration改成Full 在Library Options中将Printf formatter改成Large即可。
[单片机]
STM8 时钟
时钟控制器功能强大而且灵活易用。其目的在于使用户在获得最好性能的同时,亦能保证消耗的功率最低。用户可独立地管理各个时钟源,并将它们分配到CPU或各个外设。主时钟和CPU时钟均带有预分频器。具有安全可靠的无故障时钟切换机制,可在程序运行中将主时钟从一个时钟源切换到另一个时钟源。抗电磁干扰时钟配置寄存器,STM8为了避免由电磁干扰造成的对应用程序误写操作或系统挂起,大多数关键的时钟配置寄存器都有一个互补寄存器与之相对应。系统将会自动检测这些关键寄存器与其互补寄存器之间是否匹配。如果不匹配,则产生一个EMS复位,从而使应用程序恢复到正常操作。详情请参见时钟寄存器描述。 主时钟源: 1-24MHz高速外部晶体振荡器(HSE)
[单片机]
<font color='red'>STM8</font> 时钟
STM8单片机定时器驱动的深度解析
上一节给大家介绍了基于标准库STM8单片机GPIO的驱动,本节课主要给大家介绍一下STM8定时器的驱动。 我们先打开STM8L10x单片机的规格书,简单的了解一下STM8L10X单片机的定时器功能。 如果所示,STM8L10x单片机共有3个定时器,分别是TIM2、TIM3、TIM4. 其中TIM2和TIM3是16位的基本定时器,TIM4是8位定时器。 因TIM2和TIM3是16位,所以定时时间更长,功能更加强大,所以我们今天主要给大家介绍一下TIM2和TIM3; 我们以TIM2为例给大家介绍一下定时器功能。 STM8打开标准库文件夹,打开定时器例程 如上图所示,是标准库中定时器2的例程。 我们打开TIM2文件夹
[单片机]
<font color='red'>STM8</font>单片机定时器驱动的深度解析
STM8 CPU寄存器描述
简介 STM8S是基于8位框架结构的微控制器,其CPU内核有6个内部寄存器,通过这些寄存器可高效 地进行数据处理。STM8S的指令集支持80条基本 20种寻址模式,而且CPU的6个内部寄 存器都拥有可寻址的地址。如果想了解全部STM8S指令集,请参考STM8 微控制器家族编程手册 (PM0044)。 CPU寄存器 在图1所示的编程模型中可以看到6个CPU寄存器。在一个中断发生后,寄存器以图2所示顺序入栈,它们以相反的顺序出栈。如果需要的话,中断服务程序可使用POP和PUSH指令来对之进行操作。 CPU寄存器描述 累加器(A) 累加器是一个8位通用目的寄存器,用于保存算术运算、逻辑运算以及数据操作的操作数及结果。 索引寄存
[单片机]
<font color='red'>STM8</font> CPU寄存器描述
STM8与汇编语言(12)--EEPROM应用
在单片机的应用系统中,经常会用到EEPROM,用来保存一些掉电后仍然需要保存的数据。传统的方法是在单片机外再加一个EEPROM芯片,这种方法除了增加成本外,也降低了可靠性。现在,许多单片机芯片公司也都推出了集成有小容量EEPROM的单片机,降低了成本,提高了可靠性。 STM8单片机芯片内部也集成有EEPROM,容量从640字节到2K字节。最为关键的是,在STM8单片机中,访问EEPROM就向访问常规的内存一样,非常方便。EEPROM的地址空间与内存是统一编址的,地址从004000H开始,大小根据不同的芯片型号而定。 如果我们要读出EEPROM中的第一个单元的内容,则只要执行LD A,$4000这条指令,就可以将EEPROM
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved