久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
msp430開發板溫度傳感器DS18B20控制程序,顯示環境溫度
[打印本頁]
作者:
weizhong993
時間:
2018-1-17 18:21
標題:
msp430開發板溫度傳感器DS18B20控制程序,顯示環境溫度
/********************************************************************
//DM430-L型開發板溫度傳感器DS18B20控制程序,顯示環境溫度,未校準
//將溫度的個位顯示在LED8上,觸摸傳感器LED燈會變化,測試參考用
//DS18b20的C語言驅動程序,讀取當前環境溫度,顯示精度達0.1度,溫度范圍0-99度
//DS18B20 詳細引腳功能描述1、GND 地信號;2、DQ數據輸入出引腳。開漏單總線接口引腳。當被用在寄生電源下
//也可以向器件提供電源;3、VDD可選擇的VDD 引腳。當工作于寄生電源時,此引腳必須接地。
//DS18B20 的使用方法。DS18B20 采用的是1-Wire 總線協議方式
//即在一根數據線實現數據的雙向傳輸,數據腳接在P17上
********************************************************************/
#include <msp430x14x.h>
#include "Config.h"
uint temp_value;
uint temp,A1,A2,A3; //定義的變量,顯示數據處理
//*************************************************************************
// 初始化IO口子程序
//*************************************************************************
void Port_Init()
{
LED8DIR = 0xFF; //設置IO口方向為輸出
LED8 = 0xFF; //P2口初始設置為FF
}
//*************************************************************************
// DS18B20初始化
//*************************************************************************
unsigned char DS18B20_Reset(void) //初始化和復位
{
unsigned char i;
DQ_OUT;
DQ_CLR;
delay_us(500); //延時500uS(480-960)
DQ_SET;
DQ_IN;
delay_us(80); //延時80uS
i = DQ_R;
delay_us(500); //延時500uS(保持>480uS)
if (i)
{
return 0x00;
}
else
{
return 0x01;
}
}
//*************************************************************************
// DS18B20讀一個字節函數
//*************************************************************************
unsigned char ds1820_read_byte(void)
{
unsigned char i;
unsigned char value = 0;
for (i = 8; i != 0; i--)
{
value >>= 1;
DQ_OUT;
DQ_CLR;
delay_us(4); //*延時4uS
DQ_SET;
DQ_IN ;
delay_us(10); //*延時10uS
if (DQ_R)
{
value|=0x80;
}
delay_us(60); //*延時60uS
}
return(value);
}
//*************************************************************************
// 向18B20寫一個字節函數
//*************************************************************************
/*DS18B20字節寫入函數*/
void ds1820_write_byte(unsigned char value)
{
unsigned char i;
for (i = 8; i != 0; i--)
{
DQ_OUT;
DQ_CLR;
delay_us(4); //延時4uS
if (value & 0x01)
{
DQ_SET;
}
delay_us(80); //延時80uS
DQ_SET; //位結束
value >>= 1;
}
}
//*************************************************************************
// 發送溫度轉換命令
//*************************************************************************
/*啟動ds1820轉換*/
void ds1820_start(void)
{
DS18B20_Reset();
ds1820_write_byte(0xCC); //勿略地址
ds1820_write_byte(0x44); //啟動轉換
}
//*************************************************************************
// DS8B20讀取溫度信息
//*************************************************************************
unsigned int ds1820_read_temp(void)
{
unsigned int i;
unsigned char buf[9];
DS18B20_Reset();
ds1820_write_byte(0xCC); //勿略地址
ds1820_write_byte(0xBE); //讀取溫度
for (i = 0; i < 9; i++)
{
buf[i] = ds1820_read_byte();
}
i = buf[1];
i <<= 8;
i |= buf[0];
temp_value=i;
temp_value=(uint)(temp_value*0.625); //不是乘以0.0625的原因是為了把小數點后一位數據也轉化為可以顯示的數據
//比如溫度本身為27.5度,為了在后續的數據處理程序中得到BCD碼,我們先放大到275
//然后在顯示的時候確定小數點的位置即可,就能顯示出27.5度了
return i;
}
//*************************************************************************
// 溫度數據處理函數
//*************************************************************************
void data_do(uint temp_d)
{
uint A2t;
A1=temp_d/100; //分出百,十,和個位
A2t=temp_d%100;
A2=A2t/10;
A3=A2t%10;
}
//***********************************************************************
// 主程序
//***********************************************************************
void main(void)
{
uchar j;
WDT_Init(); //看門狗初始化
Clock_Init(); //時鐘初始化
Port_Init(); //端口初始化,用于控制IO口輸入或輸出
DS18B20_Reset(); //復位D18B20
while(1)
{
ds1820_start(); //啟動一次轉換
ds1820_read_temp(); //讀取溫度數值
data_do(temp_value); //處理數據,得到要顯示的值
for(j=0;j<200;j++)
{
//Display_DS18B20(A1,A2,A3); //顯示溫度值,用戶外擴顯示器件后可用
LED8 = A2; //將溫度的個位顯示在LED8上,觸摸傳感器LED燈會變化
}
}
}
復制代碼
作者:
zyluglugl
時間:
2021-11-14 10:23
有沒有低功耗的例子
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
米奇7777狠狠狠狠视频
|
日本久久久久久
|
av特级毛片
|
一级aaaaaa毛片免费同男同女
|
国产成人精品一区二三区在线观看
|
中文字字幕一区二区三区四区五区
|
爱爱免费视频
|
在线视频三区
|
亚洲精品一区在线观看
|
国产成人高清
|
а_天堂中文最新版地址
|
国产亚洲成av人在线观看导航
|
91精品国产欧美一区二区成人
|
午夜www
|
国产九九九
|
皇色视频在线
|
欧美激情精品久久久久久变态
|
亚洲国产精品激情在线观看
|
日韩免费视频
|
91久久精品
|
色精品视频
|
a在线观看
|
午夜电影网站
|
成人精品国产免费网站
|
九一视频在线播放
|
91看片网
|
一区二区三区高清不卡
|
中文字幕视频网
|
亚洲在线视频
|
成人免费视频观看
|
毛片电影
|
人人性人人性碰国产
|
日韩av高清
|
国产亚洲精品久久yy50
|
国产精品成人一区
|
japanhd成人
|
国产在线播放一区二区三区
|
国产中文字幕在线
|
欧美a在线看
|
日韩av免费在线观看
|
国产亚洲精品一区二区三区
|