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

2021-09-12 13:32:48 字數 2445 閱讀 5962

在乙個寒假的準備中,15微控制器各個模組應經有了乙個充分的認識,對其內部原理以及程式控制已經熟練掌握,在距離省賽藍橋杯不到10天的時間裡,每天練習一套省賽模擬題,來提高各個模組的綜合應用。

此次省賽試題中主要使用了ds1302和ds18b20兩個模組,整套題難度算中上吧。本題難度在於溫度採集時間設定和採集溫度的逐一讀取。我在程式設計中,使用了乙個陣列和兩個索引的方法,將採集的溫度逐一儲存,然後再通過另乙個索引將其讀出。這個方法比較容易理解並且**不易出錯。在乙個就是定時器的使用。本實驗使用了乙個定時器0,就很好的解決了一大堆延時問題。整個**中沒有使用while()函式來進行延時,因為使用過程中while()會慢慢地拖垮整個系統,導致系統定時不准。這個實驗對定時的要求還是挺高的,所以一次也不使用while()延時!

讀取溫度檢測數值!

#include "stc15f2k60s2.h"	 

#include "onewire.h"

#include "ds1302.h"

#define u8 unsigned char

unsigned char code smg_du=;

unsigned char code smg_wei=;

#define key p3

#define no_key 0xff //?????????

#define key_state0 0 //?ж????????

#define key_state1 1 //??????????

#define key_state2 2 //???

unsigned char key_scan()

break;

case key_state1:

if(key_temp==no_key)

else

key_state=key_state2;

}break;

case key_state2:

if(key_temp==no_key)

break;

} return key_value;

}void timer_init(void) //1ms

bit key_flag;

bit blink_flag;

bit temp_caiji_flag;

bit real_temp_flag;

bit led_flag;

bit led_blink_flag;

u8 one_display[8];

u8 two_display[8];

u8 temp_caiji[10];

u8 three_display[8];

u8 mode;

u8 set_time=1;

u8 jiajia;

u8 shi,fen,miao;

u8 temp_time;

u8 temp_caiji_inedx;

u8 real_inedx;

void main(void)

else

}if(key_flag) //10ms

if(jiajia==0)

if(jiajia==1)

if(jiajia==2)

if(jiajia==3)

}break;

case 5:

if(mode==0)

break;

case 6:

led_flag=0;

real_inedx++;

if(real_inedx==10)

break;

case 7:

mode=0;

set_time=1;

real_inedx=0;

temp_caiji_inedx=0;

break;} }

}}void timer0() interrupt 1 using 1

if(led_flag)

else

} }else

if(mode==1)

else

} }if(smg_count==3) //3ms

if(mode==1)

if(mode==2)

p2=0xc0;p0=smg_wei[i];p2=0;

i++;

if(i==8) i=0;

} if(temp_caiji_flag==1) }

}

基於51微控制器的溫度採集系統

下面是一張原理圖 源 如下 include define uint unsigned int define uchar unsigned char include typedef bit bool sbit io p1 1 口線定義 sbit bee p1 0 sbit rs p2 5 sbit r...

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

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

微控制器藍橋杯準備 溫度模組

51微控制器的溫度模組 main.c include reg52.h 標頭檔案 include ds18b20.h 溫度模組驅動 include intrins.h 移位操作標頭檔案 sfr auxr 0x8e unsigned char discode 數碼管顯示位元組碼 unsigned cha...