南工程微控制器課設 溫度感測器溫度檢測專案

2021-07-22 23:26:43 字數 3310 閱讀 5722

溫度感測器檢測溫度報警裝置

該專案有四項要求:

(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採用單匯流排協議,即與微控制器介面僅需占用乙個...