求微控制器控制溫度感測器lcd顯示溫度值溫度達到

2022-01-05 15:53:36 字數 3253 閱讀 1767

1樓:爬行的山羊

既然是老師不知道任務,教師用的實驗板都有燒錄功能,或者老師可以把你解決。

ds1820是個數字溫度感測器,lcd1602是液晶顯示。這個我可以幫助你搞定的

2樓:匿名使用者

程式需要燒錄到開發板,那麼寫**時就需要按照這個開發板的電路來寫,因為關係到一些資源的分配,電路圖也沒提供……

這個問題應該問了兩次了吧,這樣問問題誰能給你**。

3樓:

這是溫度感測器的程式

#include

#include

sbit d18b20=p3^7;

#define nop() _nop_() /* 定義空指令 */

#define _nop() _nop_() /*定義空指令*/

void tempdelay (unsigned char idata us);

void init18b20 (void);

void writebyte (unsigned char idata wr); //單位元組寫入

void read_bytes (unsigned char idata j);

unsigned char crc (unsigned char j);

void gemtemp (void);

void config18b20 (void);

void readid (void);

void temperatuerresult(void);

bit flag;

unsigned int idata temperature;

unsigned char idata temp_buff[9]; //儲存讀取的位元組,read scratchpad為9位元組,read rom id為8位元組

unsigned char idata id_buff[8];

unsigned char idata *p,tim;

unsigned char idata crc_data;

unsigned char code crctable [256]=;

*function:延時處理

*parameter:

*return:

*modify:

void tempdelay (unsigned char idata us)

*function:18b20初始化

*parameter:

*return:

*modify:

void init18b20 (void)

*function:向18b20寫入一個位元組

*parameter:

*return:

*modify:

void writebyte (unsigned char idata wr) //單位元組寫入

*function:讀18b20的一個位元組

*parameter:

*return:

*modify:

unsigned char readbyte (void) //讀取單位元組

return(u);

*function:讀18b20

*parameter:

*return:

*modify:

void read_bytes (unsigned char idata j)

;byte code dis2 = ;

byte code dis3 = ;

byte code dis4 = ;

/****************延時函式************************/

delay(int ms)}}

/****************側忙函式************************/

bool lcd_bz()

/****************寫命令函式************************/

lcd_wcmd(byte cmd)

lcd_pos(byte pos)

/****************寫資料函式************************/

lcd_wdat(byte dat)

lcd_init()

/****************主函式************************/

main()

lcd_pos(0x40);//設定顯示位置為第二行第1個字元

i = 0;

while(dis2[ i ] != '\0')

delay(800);//控制停留時間

lcd_wcmd(0x01);//清除lcd的顯示內容

delay(1);

lcd_wcmd(0x04);//向左移動游標

lcd_pos(15);//設定顯示位置為第一行的第16個字元

i = 0;

while(dis3[ i ] != '\0')

lcd_pos(0x4f); //設定顯示位置為第二行的第16個字元

i = 0;

while(dis4[ i ] != '\0')

delay(800); //控制停留時間

lcd_wcmd(0x01); //清除lcd的顯示內容

delay(200); //控制兩屏轉換時間}}

報警可以很容易設計就不寫了,報警溫度都要自己慢慢設計,有了這些就很容易了,自己在努力下吧

4樓:匿名使用者

貌似樓下的回道都很到位 我只能說這個難度不大 有問題可以交流下

ds18b20溫度感測器和lcd1602液晶顯示和按鍵設定上下限溫度,超過時led及蜂鳴器報警的程式嗎 20

5樓:cindere鞡

你好:這是我用pic的**寫的ds溫度報警程式,可手動設定溫度報警上下限,隨時可設,使用lcd12864顯示,蜂鳴器提示溫度高或低。

給你參考下吧。

希望我的回答能幫助到你。

6樓:匿名使用者

只有累死的程式,沒有完全你這個要求的

使用溫度感測器ds18b20設計一溫控系統,當溫度超過35度或低於20度時,led紅燈閃爍,蜂鳴器發出報警聲。

7樓:

這是你的興趣我很願意幫助你,如果是你的任務就算了

求 微控制器控制的16路彩燈彙編源程式

位為1時亮燈 其實原理就是單i o口的移位處理,只不過是要銜接處理start mov a,80h mov p0,0 mov p1,0 rlp0 處理p0口rl a mov p0,a acall delay jnb acc.7,rlp0 mov p0,0 rlp1 處理p1口rl a mov p1,a...

51微控制器以動態顯示方式控制LED顯示器的工作原理

利用人眼的視覺暫停效應,在短時間內掃描,人眼看到的就是不閃爍的數字顯示 c51微控制器數碼管動態顯示工作原理是什麼?數碼管要正常顯示,就要用驅動電路來驅動數碼管的各個段碼,從而顯示出我們要的數字,因此根據數碼管的驅動方式的不同,可以分為靜態式和動態式兩類。1 數碼管如果是8位的話,一般是由靜態工作方...

51微控制器控制左右的LED燈,不知道譯碼器怎麼能控制這麼多的呢?還有地址線又是什麼呢

這個其實懂led電子顯示屏的就知道。一般用hc595或mbi5026等串轉並的晶片,通過規律的陣列方式使用,組成一個單元板模組,然後要多少塊板接多少塊板,選擇能支援的控制卡提供訊號就行了。單元板常用的半戶外的ph10是32 16個點的,共512個點,用16個595晶片 每個帶4 8陣列的led燈 1...