溫度感測器檢測溫度報警裝置
該專案有四項要求:
(1)檢測溫度
(2)檢測溫度超出限定溫度,啟動報警裝置
(3)報警裝置啟動時,跑馬燈進行工作,閃爍起來
(4)利用串列埠,實時傳輸溫度資料
下面是源**,執行是完全沒有問題的,若讀者有更佳的方式,希望可以交流一下.
delay.c
/*
*引數 :t(0 - 255)
*延時時間 :約2 * t + 12
*/void delay_us(unsigned char t)
void delay_ms(unsigned char t)
}// void delay_s(unsigned char t)
// // }
delay.h
#ifndef _delay_h_
#define _delay_h_
extern void delay_us(unsigned char t);
extern void delay_ms(unsigned char t);
// extern void delay_s(unsigned char t);
#endif
lcd.c
#include "./lcd/lcd.h"
#define lcdport p0
#define lcd_write_data 1
#define lcd_write_com 0
sbit rs = p2^4;
sbit rw = p2^5;
sbit e = p2^6;
void lcd_init()
void lcd1602_write(unsigned char byte,unsigned char flag)
else
rw = 0; //寫
e = 1; //選中lcd
lcdport = byte;
delay_us(5);
e = 0; //失能lcd
}void lcd_dis_char(unsigned char x, unsigned char y, unsigned char byte)
if(0 == y)
else
lcd1602_write(byte,lcd_write_data);
}/*顯示字串*/
void lcd1602_dis_str(unsigned char x, unsigned char y, unsigned char *str)
if(0 == y)
else
while(*str != '\0')
}void lcd_dis_self()
lcd.h
#ifndef __lcd1602_h__
#define __lcd1602_h__
#include "./delay/delay.h"
#include extern void lcd_init();
extern void lcd1602_write(unsigned char byte,unsigned char flag);
extern void lcd_dis_char(unsigned char x, unsigned char y, unsigned char byte);
extern void lcd1602_dis_str(unsigned char x, unsigned char y, unsigned char *str);
extern void lcd_dis_self();
#endif
uart.c
#include #include #include "./delay/delay.h"
void uart_init()
uart.h
#ifndef _uart_h_
#define _uart_h_
extern void uart_init();
// extern void uart_send_byte(unsigned char byte);
// extern void uart_send_str(unsigned char *s);
#endif
主函式:ds18b20.c
#include #include #include #include "./lcd/lcd.h"
#include "./delay/delay.h"
#include "./uart/uart.h"
#define ledport p1
sbit ds = p2^3;
sbit beep = p2^7;
bit ack = 0;
void ds_reset()
else
delay_us(200);
delay_us(100);
}void ds_send_byte(unsigned char byte)
delay_us(30);
}bit ds_read_bit()
unsigned char ds_read_byte()
return k;
}void main()
}ti = 1; //傳送中斷標誌位
printf("temperature is : %f\n",wendu);
}}
微控制器溫度感測器的想法
1.首先微控制器ad是多少位的,比如n位,那麼微控制器ad的最大值是2 n 1 2.串接感測器的電阻為r,感測器的電阻為rc 3.ad的值 val rc r rc 2 n 4.根據 商提供的溫度和電阻的匹配表,進行計算。溫度和電阻一般為非線性的,所以一般會用查表法來查詢溫度值 精度要求不高的情況下 ...
51微控制器 DS18B20溫度感測器
我是初學者,僅供參考微笑 include include include typedef unsigned char uint8 typedef unsigned int uint16 sbit dq p3 2 sbit smg3 p1 3 sbit smg2 p1 2 sbit smg1 p1 1...
51微控制器 溫度感測器DS18B20
溫度感測器是各種感測器中最常用的一種,早期使用的是模擬溫度感測器,如熱敏電阻,隨著環境溫度的變化,它的阻值也發生線性變化,用處理器採集電阻兩端的電壓,然後根據某個公式就可以計算出當前環境溫度。美國dallas半導體公司推出的數位化溫度感測器ds18b20採用單匯流排協議,即與微控制器介面僅需占用乙個...