久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
數碼管顯示溫度并控制電機正反轉程序
[打印本頁]
作者:
dai16508878
時間:
2016-6-2 11:28
標題:
數碼管顯示溫度并控制電機正反轉程序
介紹:DS18B20模塊程序文件,調用時請根據你所接的IO口不同修改dq的值
使用說明:調用時,只用調用ds18b20_read_temperature(uint16 *t)函數,返回值為所得溫度的10倍,
假設溫度16.1度,返回和值為161
作者:方正電子工作室
時間:20170323
*****************************************************************/
#include<reg52.h>
#include<intrins.h>
#include"common.h"
sbit dq = P3^0;
void delay(uint8 x)
{
while(x--);
}
/************************DS18b20初始化程序**********************
輸出參數:1 表示沒有檢測到DS18B20
0 表示檢測到DS18B20
****************************************************************/
bit ds18b20_init()
{
bit flag;
dq = 1;
delay(1);
dq = 0; //將總線拉低產生低電平復位脈沖并延時最小480us
delay(80);
dq = 1; //釋放總線
delay(7);
if(dq == 1) //DS18B20檢測上升脈動沖等待15-60us,將總線拉為電平,表明初始化成功,否則失敗,并持續60-240us
flag = 1;
else
flag = 0;
dq = 1; //將總線拉高
delay(20);
return flag; //返回初始化結果
}
/************************DS18b20讀一字節數據**********************
輸出參數:返回讀到的一個字節的數據
*****************************************************************/
void ds18b20_read_byte(uint8 *dat)
{
uint8 i;
dq = 1;
_nop_();
for(i=0;i<8;i++)
{
dq = 0; //起始信號
*dat >>= 1; //數據從高位讀取,保存讀到的數據
dq = 1; //總線釋放
_nop_();
_nop_();
if(dq == 1) //讀總線上數據,如果是1,將最高位置為1
*dat |= 0x80;
delay(8); //延時45us以上
dq = 1;
}
}
/************************DS18b20寫一字節數據**********************
輸入參數:需要寫入的一個字節數據
*****************************************************************/
void ds18b20_write_byte(uint8 dat)
{
uint8 i;
for(i=0;i<8;i++)
{
dq = 0; //起始信號
_nop_(); //延時2us
_nop_();
dq = dat & 0x01; //將低位數據放入總線
delay(10);
dq = 1;
dat >>= 1;
}
}
/************************DS18b20讀溫度**********************
輸出參數:讀取的溫度值
***********************************************************/
void ds18b20_read_temperature(uint16 *t)
{
uint8 TL,TH;
bit flag = 0;
if(ds18b20_init() == 1)
*t = 0x00;
else
{
ds18b20_write_byte(0xcc); //跳過ROM檢測
ds18b20_write_byte(0x44); //溫度轉換
ds18b20_init();
ds18b20_write_byte(0xcc); //跳過ROM檢測
ds18b20_write_byte(0xbe); //讀取溫度命令
ds18b20_read_byte(&TL);
ds18b20_read_byte(&TH);
if((TH & 0xf8) == 0xf8) //如果是負溫度
{
TH = ~TH;
TL = ~TL + 1;
if(TL == 0x00)
TH = TH + 1;
flag = 1;
}
*t = (uint16)(((TH & 0x07)<<4) | ((TL & 0xf0 )>>4)); //整數部分
*t = *t * 10 + (uint16)((TL & 0x0f)*10/16); //整數部分乘以10加上小數部分返回的數據為得到的溫度的10倍,一位小數
if(flag == 1)
*t = *t + 10000; //如果溫度大于10000表示為負溫度
}
}
作者:
Dailymaycry
時間:
2018-6-25 13:22
厲害了
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
自拍 亚洲 欧美 老师 丝袜
|
欧美一区二区
|
成人免费观看网站
|
a在线视频观看
|
精品一区二区三区在线观看国产
|
日本高清视频在线播放
|
国产精品久久国产精品
|
日本人麻豆
|
欧美黄在线观看
|
成年人在线
|
国产高清精品一区二区三区
|
在线看片国产
|
一区二区中文字幕
|
亚洲精品福利在线
|
呦呦在线视频
|
在线亚洲免费视频
|
久久久久久国产一区二区三区
|
亚洲福利片
|
国产精品久久久亚洲
|
国产午夜精品一区二区三区在线观看
|
日韩二区三区
|
成年人网站国产
|
国内久久
|
中文字幕av网
|
激情av免费看
|
成人av网站在线观看
|
伊人影院在线观看
|
日韩中文字幕在线
|
日韩尤物视频
|
亚洲国产成人精
|
在线精品一区二区
|
国产精品自产av一区二区三区
|
99精品久久
|
九九视频在线观看视频6
|
欧美在线精品一区
|
久久精品亚洲一区二区三区浴池
|
成人亚洲精品久久久久软件
|
夜久久
|
精品久久久久久久久久久久久久
|
国产精品国产成人国产三级
|
精品久久久久久亚洲综合网
|