程式的測試是為了實現下一步讀取多個 DS18B20 溫度感測器而做,總線接上一個 DS18B20,祇需要向 DS18B20 發出 Read ROM (33h) 指令,接收從 DS18B20 發出至總線的數據,簡單讀取 DS1820 溫度感測器內 ROM 中的編碼(即 64位元位址),然後將數據轉換成 ASCII Code,顯示在 LCD 1602 屏上。
18F4550 + DS18B20 電路圖 |
單個 DS18B20 ROM 的序列號讀取程式 |
主程式:
void main(void)
{
char LCD_name[] ="BWS DS18B20 v1.1";
char LCD_name2[]=" ";
char temp,x;
TRISA = 0b00000001; // Setup RA0=Input RA1=Output
TRISB = 0b00100000; // Setup RB5=Input
// Initialise LCD
OpenXLCD(FOUR_BIT&LINES_5X7); // Init the LCD Display
while(BusyXLCD());
WriteCmdXLCD(BLINK_OFF & CURSOR_OFF );
while(BusyXLCD());
stdout = _H_USER; // Redirect I/O to LCD
LcdSetLine1(); // Put cursor on start of line 1
putsXLCD(LCD_name); // Display text
read_romcode_18B20();
for (x=0; x<8 span="span" x="x">8>
bin2Hex(glb_Buf[x]);
LCD_name2[x*2]=glb_Buf2[0];
LCD_name2[x*2+1]=glb_Buf2[1];
}
LcdSetLine2(); // Put cursor on start of line 2
putsXLCD(LCD_name2); // Display Code
while(1)
}
|
Read ROM 副程式:
void read_romcode_18B20(void) {
int n;
reset_ow();
write_byte_ow(0x33); //Read ROM Code
for (n=0;n<8 glb_buf="glb_buf" n="n" read_byte_ow="read_byte_ow" span="span">8>
}
|
Binary Convert to Hexdecimal 副程式:
void bin2Hex(unsigned char Temp)
{
unsigned char x,y,z;
unsigned char hex_value;
unsigned char hex_base;
z=128;
hex_value = 0;
hex_base = 8;
for (x=0; x<4 span="span" x="x">4>
if ((z & Temp) > 0){
hex_value = hex_value+hex_base;
}
z = z >> 1;
hex_base = hex_base/2;
}
if (hex_value < 10) hex_value=hex_value+48;
else hex_value = hex_value+55;
glb_Buf2[0]= hex_value;
hex_value = 0;
hex_base = 8;
for (x=0; x<4 span="span" x="x">4>
if ((z & Temp) > 0){
hex_value = hex_value+hex_base;
}
z = z >> 1;
hex_base = hex_base/2;
}
if (hex_value < 10) hex_value=hex_value+48;
else hex_value = hex_value+55;
glb_Buf2[1]= hex_value;
return;
}
|
測試中的單個DS18B20試驗板 |
編號
|
序列號 (Silicon Series Number)
|
31
|
28 5A 51 3A 04 00 00 6A
|
32
|
28 5E BE 38 04 00 00 04
|
33
|
28 A2 73 3A 04 00 00 C2
|
34
|
28 BA 5B 3A 04 00 00 FE
|
35
|
28 10 5F 2E 04 00 00 44
|
40
|
28 EA 35 88 03 00 00 8F
|
41
|
28 DE B3 88 03 00 00 E9
|
相關網址:
※ DIY - PIC:18F4550 DS18B20 ROM 的序列號介紹 (一百五十)
※ DIY - PIC:18F4550 單個 DS18B20 ROM 的序列號讀取程式 (一百五十一)
※ DIY - PIC:18F4550 + DS18B20 溫度感測器線 + 4mm 插頭 (一百五十二)
※ DIY - PIC:18F4550 多個 DS18B20 ROM 的序列號讀取方式 (一百五十三)
※ DIY - PIC:18F4550 多個 DS18B20 ROM 的序列號讀取程式 (一百五十四)
※ DIY - PIC:18F4550 多個 DS18B20 Data Logger 資料記錄儀 + PS/2 鍵盤 (一百五十五)
※ DIY - PIC:18F4550 多個 DS18B20 Data Logger 資料記錄儀 + RS232 (一百五十六)
※ DIY - PIC:18F4550 多個 DS18B20 Data Logger 資料記錄儀 (一百五十七)
相關網址:
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 機殼設計 (一百三十八)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 機殼加工 (一百三十九)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 面背板組裝 (一百四十)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 系統底板 (一百四十一)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 底板組裝 (一百四十二)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 系統組裝 (一百四十三)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 附件加工 (一百四十四)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 充電池 (一百四十五)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 鋰離子電池 (一百四十六)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 充電板 (一百四十七)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 充電板組裝 (一百四十八)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 藍屏 LCD 1602 (一百四十九)
※ DIY - PIC:18F4550 DS18B20 ROM 的序列號介紹 (一百五十)
※ DIY - PIC:18F4550 單個 DS18B20 ROM 的序列號讀取程式 (一百五十一)
※ DIY - PIC:18F4550 + DS18B20 溫度感測器線 + 4mm 插頭 (一百五十二)
※ DIY - PIC:18F4550 多個 DS18B20 ROM 的序列號讀取方式 (一百五十三)
※ DIY - PIC:18F4550 多個 DS18B20 ROM 的序列號讀取程式 (一百五十四)
※ DIY - PIC:18F4550 多個 DS18B20 Data Logger 資料記錄儀 + PS/2 鍵盤 (一百五十五)
※ DIY - PIC:18F4550 多個 DS18B20 Data Logger 資料記錄儀 + RS232 (一百五十六)
※ DIY - PIC:18F4550 多個 DS18B20 Data Logger 資料記錄儀 (一百五十七)
相關網址:
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 機殼設計 (一百三十八)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 機殼加工 (一百三十九)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 面背板組裝 (一百四十)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 系統底板 (一百四十一)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 底板組裝 (一百四十二)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 系統組裝 (一百四十三)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 附件加工 (一百四十四)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 充電池 (一百四十五)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 鋰離子電池 (一百四十六)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 充電板 (一百四十七)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 充電板組裝 (一百四十八)
※ DIY - PIC:18F4550 Data Logger 資料記錄儀 – 藍屏 LCD 1602 (一百四十九)
2012年 12月 4日 天氣報告
氣溫:17.5度 @ 22.10
相對濕度:百分之 97%
天氣:微雨
沒有留言:
張貼留言