資源簡介
我們于本周進行了硬件類課程設計,我們的選題是DS18B20溫度傳感器設計。通過基于MCS-51系列單片機AT89C51和DS18B20溫度傳感器檢測溫度,熟悉芯片的使用,溫度傳感器的功能。數碼顯示管的使用,C語言的設計,并把我們這一年所學的數字和模擬電子技術、檢測技術、單片機應用等知識,通過理論聯系實際,從題目分析、電路設計調試、程序編制調試到傳感器的選定等這一完整的實驗過程,培養了學生正確的設計思想,使學生充分發揮主觀能動性,去獨立解決實際問題,以達到提升學生的綜合能力、動手能力、文獻資料查閱能力的作用,為畢業設計和以后工作打下一個良好的基礎。

代碼片段和文件信息
/*******************************************
**?????????溫度傳感器設計溫控系統?????????**
**???????STC89C52RC+DS18B20+LCD12864??????**
**?????????作者:九江學院?周遠明??????????**
**????????完成日期:2015年04月01日????????**
********************************************/
#include
#define?uchar?unsigned?char
#define?uint?unsigned?int
sbit?sda_24c02=P2^0;//串行數據輸入/輸出端
sbit?scl_24c02=P2^1;//串行時鐘輸入端
sbit?DQ=P2^2;?//溫度傳感器?I/O?口
sbit?U1s=P2^7;//段位鎖存
sbit?U2s=P2^6;//位選鎖存
sbit?data_595si=P1^0;//595數據輸入口 ???
sbit?clk_595srck=P1^4;//595數據寫進移位寄存器時鐘輸入口
sbit?e_595rck=P2^3;//595移位寄存器,數據送輸出的時鐘
sbit?PSB_12864=P1^3;//串/并方式控制
sbit?RST_12864=P1^5;//復位
sbit?led_d=P0^2;//led燈引腳定義
sbit?led_z=P0^1;//led燈引腳定義
sbit?led_g=P0^0;//led燈引腳定義
sbit?CS_12864=P2^5;
sbit?SID_12864=P2^6;
sbit?SCLK_12864=P2^4;
sbit?S1=P3^7;//定義按鍵
sbit?S2=P3^6;//定義按鍵
sbit?S3=P3^5;//定義按鍵
sbit?S4=P3^4;//定義按鍵
#define?keyL_A?S1//按鍵-左加
#define?keyL_S?S2//按鍵-左減
#define keyR_A?S3//按鍵-右加
#define?keyR_S?S4//按鍵-右減
long?int?temperature=0;
int?temp_Ltemp_H; //初始溫度值*10后的值
uchar?code?dis1[16]={“????溫控系統????“};
uchar?code?dis2[16]={“The?Contr?Range:“};
int?temp;//定義整型溫度數據變量
float?f_temp;//定義浮點型溫度數據變量
/*----------------延時函數部分-----------------------*/
void?delayms(uint?xms)//延時單位ms
{
uint?i;
for(;xms>0;xms--)
{
for(i=0;i<=110;i++)
{
;
}
}
}
void?delayus(uint?xus)//單位微妙us
{
while(xus)
{
xus--;
}
}
void?delay_ds18b20(uint?time)
{
?????uint??ij;
?for(i=0;i for(j=0;j<1;j++);
}
/*----------------初始化板子部分-----------------------*/
void?write_data_74hc595(uchar?da)//寫字節給74hc595芯片
{
uint?i;
e_595rck=0;//先置低電平為得到上升沿做準備
for(i=1;i<=8;i++)
{
clk_595srck=0;//先置于低電平為得到上升沿做準備
data_595si=da&0x80;//送一位最高位
da<<=1;//左移動一位去掉已送的原先數據的最高的那一位,右邊自動添零
clk_595srck=1;//置高電平,使得到一上升沿把數據中的最高的一位送入緩存寄存器中
}
e_595rck=1;//置為高電平得到上升沿把緩存寄存器中的數據送到數據口(即把8位數據送出)
data_595si=0;//把數據輸入口置為零,和單片機硬件接口有關
}
void?initboard(void)
{
U1s=1;
U2s=1;
P0=0x00;//關閉所有數碼管,避免驅動電壓不夠
U1s=0;
U2s=0;
write_data_74hc595(0x40);//開通發光二極管的使能端
P1=0xff;//關閉所有發光二極管,避免驅動電壓不夠
write_data_74hc595(0x00);//關閉發光二極管的使能端
}
/*----------------DS18B20溫度傳感器處理部分-----------------------*/
uchar?reset_ds18b20()
{
???uchar?presence;
???DQ=0;
???delay_ds18b20(29);??????//延時480?-?960??us
???DQ=1; ??
???delay_ds18b20(3);??????//延時?15?-?60???us
???presence=DQ;
???delay_ds18b20(25); ??//延時?60?-?240??us
???return(presence);
}
?uchar?read_bit_ds18b20()
{
uchar?i;
DQ=1;
delay_ds18b20(1);
DQ=0;
DQ=1;
for(i=0;i<3;i++);
return(DQ);
}?
void?write_bit_ds18b20(uchar?dat)
{
DQ=0;????????//置0?無需延時
if(dat==1)
??DQ=1;
delay_ds18b20(1); ?//延時?60?-?120??us
DQ=1;
delay_ds18b20(1); ?//延時?1?-?∞??us
}
void?write_byte_ds18b20(uchar?dat)
{
?????uchar?ij;
?for(i=0;i<8;i++)
?{
?????j=((dat>>i)&0x01);
?write_bit_ds18b20(j);
?}
}??
uchar?read_byte_ds18b20()
{
uchar?dat=0;
uchar?i;
for(i=0;i<8;i++)
?{
???if(read_bit_ds18b20())
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????????0??2015-04-05?10:32??DS18B20娓╂帶緋葷粺錛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨錛?
?????文件???????27404??2015-04-04?20:55??DS18B20娓╂帶緋葷粺錛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨錛?DS18B20娓╂帶緋葷粺錛堟恫鏅朵覆琛岋級
?????文件???????11555??2015-04-04?20:55??DS18B20娓╂帶緋葷粺錛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨錛?DS18B20娓╂帶緋葷粺錛堟恫鏅朵覆琛岋級.c
?????文件????????8063??2015-04-04?20:55??DS18B20娓╂帶緋葷粺錛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨錛?DS18B20娓╂帶緋葷粺錛堟恫鏅朵覆琛岋級.hex
?????文件?????????102??2015-04-04?20:55??DS18B20娓╂帶緋葷粺錛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨錛?DS18B20娓╂帶緋葷粺錛堟恫鏅朵覆琛岋級.lnp
?????文件???????25121??2015-04-04?20:55??DS18B20娓╂帶緋葷粺錛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨錛?DS18B20娓╂帶緋葷粺錛堟恫鏅朵覆琛岋級.LST
?????文件???????40052??2015-04-04?20:55??DS18B20娓╂帶緋葷粺錛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨錛?DS18B20娓╂帶緋葷粺錛堟恫鏅朵覆琛岋級.M51
?????文件???????31806??2015-04-04?20:55??DS18B20娓╂帶緋葷粺錛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨錛?DS18B20娓╂帶緋葷粺錛堟恫鏅朵覆琛岋級.OBJ
?????文件????????5863??2015-04-04?21:00??DS18B20娓╂帶緋葷粺錛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨錛?DS18B20娓╂帶緋葷粺錛堟恫鏅朵覆琛岋級.plg
?????文件???????55732??2015-04-04?21:00??DS18B20娓╂帶緋葷粺錛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨錛?DS18B20娓╂帶緋葷粺錛堟恫鏅朵覆琛岋級.uvopt
?????文件???????13492??2015-04-01?00:45??DS18B20娓╂帶緋葷粺錛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨錛?DS18B20娓╂帶緋葷粺錛堟恫鏅朵覆琛岋級.uvproj
?????文件???????55732??2015-04-04?19:53??DS18B20娓╂帶緋葷粺錛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨錛?DS18B20娓╂帶緋葷粺錛堟恫鏅朵覆琛岋級_uvopt.bak
?????文件???????????0??2015-03-31?20:49??DS18B20娓╂帶緋葷粺錛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨錛?DS18B20娓╂帶緋葷粺錛堟恫鏅朵覆琛岋級_uvproj.bak
?????文件????????6376??2009-05-07?14:37??DS18B20娓╂帶緋葷粺錛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨錛?STARTUP.A51
?????文件???????14048??2015-04-04?20:55??DS18B20娓╂帶緋葷粺錛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨錛?STARTUP.LST
?????文件?????????749??2015-04-04?20:55??DS18B20娓╂帶緋葷粺錛堟恫鏅?姝h礋娓╁害+鏁版嵁淇濆瓨錛?STARTUP.OBJ
評論
共有 條評論