藍橋杯 簡易溫度採集與控制裝置

2021-09-16 19:51:52 字數 3492 閱讀 8762

簡易溫度採集與控制裝置

簡易溫度採集與控制裝置

**********/

#include #include #define uint unsigned int

#define uchar unsigned char

sbit a1 = p3^0;

sbit a2 = p3^1;

sbit a3 = p3^2;

sbit a4 = p3^3;

sbit b1 = p4^4;

sbit b2 = p4^2;

sbit b3 = p3^5;

sbit b4 = p3^4;

uint wendu,count;

uchar yi,er,san,si,wu,liu,qi,ba;

uchar model,set,flag,qujian,num,max,min,max1,max2,min1,min2;

uchar shuma = ;

void display();

void set_wendu();

//void allinit()

//void delay_ms(uint z)

//void keyscan()

if(b2==0)

if(b3==0)

// if(b4==0)

// ///

a2=0;a1=a3=a4=1;

b1=b2=b3=b4=1;

if(b1==0)

if(b2==0)

if(b3==0)

// if(b4==0)

// ///

a3=0;a1=a2=a4=1;

b1=b2=b3=b4=1;

if(b1==0)

if(b2==0)

if(b3==0)

// if(b4==0)

// ///

a4=0;a1=a2=a3=1;

b1=b2=b3=b4=1;

if(b1==0)

if(b2==0)

if(b3==0)

// if(b4==0)

// }

//void timer0init(void)

//void main()}//

void exter0() interrupt 1

//void set_wendu()

wendu = get_wendu();

if(wendu>max) //溫度區間2

}else

p2=0xa0;p0=0x10;

yi=10;er=2;san=10;

si=11;wu=11;liu=11;

qi=wendu/10;ba=wendu%10;

} else if(wendu=160) //160 * 5 = 800;

}else

p2=0xa0;p0=0x00;

yi=10;er=0;san=10;

si=11;wu=11;liu=11;

qi=wendu/10;ba=wendu%10;

} else //溫度區間1

}else

yi=10;er=1;san=10;

si=11;wu=11;liu=11;

qi=wendu/10;ba=wendu%10;

} }// else if(model==1)

else if(set==101)

if(num==5)

else if(num==1)

else if(num==2)

else if(num==3)

else if(num==4)

if(num==0)

else if(num==1)

else if(num==2)

else if(num==3)

else if(num==4)

max = max1*10+max2;

min = min1*10+min2;

if(min>max)

else }}

//void display()

onewire.h

#ifndef _onewire_h

#define _onewire_h

#include "stc15f2k60s2.h"

#include "intrins.h"

#define ow_skip_rom 0xcc

#define ds18b20_convert 0x44

#define ds18b20_read 0xbe

//ic引腳定義

sbit dq = p1^4;

//函式宣告

void delay_onewire(unsigned int t);

void write_ds18b20(unsigned char dat);

bit init_ds18b20(void);

unsigned char read_ds18b20(void);

unsigned int get_wendu();

#endif

onewire.c

/*

程式說明: 單匯流排驅動程式

軟體環境: keil uvision 4.10

硬體環境: ct107微控制器綜合實訓平台

日 期: 2011-8-9

*/#include "onewire.h"

//單匯流排延時函式

void delay_onewire(unsigned int t)

//ds18b20晶元初始化

bit init_ds18b20(void)

//通過單匯流排向ds18b20寫乙個位元組

void write_ds18b20(unsigned char dat)

delay_onewire(5);

}//從ds18b20讀取乙個位元組

unsigned char read_ds18b20(void)

delay_onewire(5);

} return dat;}//

unsigned int get_wendu()

個人見解,感謝閱讀。

基於15微控制器簡易溫度採集 藍橋杯

在乙個寒假的準備中,15微控制器各個模組應經有了乙個充分的認識,對其內部原理以及程式控制已經熟練掌握,在距離省賽藍橋杯不到10天的時間裡,每天練習一套省賽模擬題,來提高各個模組的綜合應用。此次省賽試題中主要使用了ds1302和ds18b20兩個模組,整套題難度算中上吧。本題難度在於溫度採集時間設定和...

簡易溫度採集系統(藍橋杯微控制器)十分穩定

閱讀完全文後,我首先會有乙個大概的框架,分別為三個方面 1.要用的模組 2.介面的顯示 3.細節部分 按鍵 led之類 首先我貼上stcisp 的範例程式的定時器和smg,自己再稍加修改,完成smg管模組的初始化 顯示1234567 保證smg模組不出錯。然後我會開始寫按鍵程式,無論是三行 還是狀態...

藍橋杯 讀溫度

讀溫度使用的是ds18b20晶元,該晶元通過單匯流排one wire協議和微控制器進行通訊,在比賽的時候會提供onewire.c和onewire.h兩個檔案。完整 會放在最後,下面講解如何編寫讀取溫度的程式。跳過rom操作指令 啟動溫度轉化 開始讀取暫存器的資料 新增到onewire.c中 unsi...