“STM8 DS18B20温度传感器子程序”的版本间的差异
来自丢石头百科
(软件设计/*********************************************************************微 雪 电 子 WaveSharehttp://www.waveShare.net目 的: 建立DS18B20操作库目标系统: 基于STM8单片机应用软件: Cosmic CxSTM8说 明: ...) |
小 (文本替换 - 替换“www.waveshare.net”为“{{SERVERNAME}}”) |
||
第2行: | 第2行: | ||
<table border="0" cellpadding="0" cellspacing="0" style="color: rgb(72, 61, 139); font-family: Arial, 新宋体, 微软雅黑; font-size: 12px;" width="120"><tbody><tr><th align="center" bgcolor="#698192" class="white_12px_b" height="20" scope="col" style="color: rgb(255, 255, 255); line-height: 20px; font-family: Arial, Helvetica, sans-serif;">软件设计</th></tr></tbody></table> | <table border="0" cellpadding="0" cellspacing="0" style="color: rgb(72, 61, 139); font-family: Arial, 新宋体, 微软雅黑; font-size: 12px;" width="120"><tbody><tr><th align="center" bgcolor="#698192" class="white_12px_b" height="20" scope="col" style="color: rgb(255, 255, 255); line-height: 20px; font-family: Arial, Helvetica, sans-serif;">软件设计</th></tr></tbody></table> | ||
/********************************************************************* | /********************************************************************* | ||
− | 微 雪 电 子 WaveShare <a class="Blue_2_12px_" href="http:// | + | 微 雪 电 子 WaveShare <a class="Blue_2_12px_" href="http://{{SERVERNAME}}/" style="color: rgb(7, 66, 184);">http://www.waveShare.net |
目 的: 建立DS18B20操作库 | 目 的: 建立DS18B20操作库 |
2019年11月19日 (二) 09:22的版本
<tbody></tbody>
软件设计 |
---|
/********************************************************************* 微 雪 电 子 WaveShare <a class="Blue_2_12px_" href="http://wiki.diustou.com/" style="color: rgb(7, 66, 184);">http://www.waveShare.net 目 的: 建立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); }
- /