資源簡介
利用DS18B20溫度傳感器檢測溫度,再根據溫度的變化改變風扇的轉速。
也可以利用按鍵實現手動控制風扇轉速。
也可以利用按鍵實現手動控制風扇轉速。

代碼片段和文件信息
#include?“reg52.h“?
#define?uchar?unsigned?char?
#define?uint?unsigned?int?
#define?Disdata??P0?????????//?段碼入口?
sbit?DQ=P3^4; //?溫度輸入口?
sbit?BUZ=P2^0;
sbit?BUZ1=P3^7;
sbit?DC1=P2^2;? //直流電機輸入口
sbit?DC2=P2^3;???
sbit?KEY1=P2^4;
sbit?KEY2=P2^5;??
sbit?KEY3=P2^6;??????????
uint?temp;??? ????//?variable?of?temperature??定義一個變量?
char?tem1=35tem2=0;??????????????
uchar?flag1flag=0timer=0flag3=1;????????????????//?定義一個標志標志溫度是負還是正1為負0為正?
sbit?DIN=P0^7;??????????????//?小數點控制??
#define??discan??P1?????????//?數碼管位選掃描?
uchar?h;????????????????????//?定義變量?
unsigned?char?code?table[]={0xc00xf90xa40xb00x990x920x820xf80x800x900xff0xbf};??
//共陽數碼管段碼表???????????“0“??“1“??“2“??“3“??“4“??“5“??“6“??“7“??“8“??“9“?“滅“??“-“?
unsigned?char?code?table1[]={0x400x790x240x300x190x120x020x780x000x10};//帶小數點的編碼?
//共陽數碼管帶小數點段碼表????“0“??“1“??“2“??“3“??“4“??“5“??“6“??“7“??“8“??“9“??
uchar?data?temp_data[2]={0x000x00};//讀出溫度暫放?
uchar?data?Dis_play[5]={0x000x000x000x000x00};//顯示單元數據,共4個數據和一個運算暫用?
uchar?code?ditab[16]={0x000x010x010x020x030x030x040x040x050x060x060x070x080x080x090x09};?
//小數部分對應十進制???“0“??“1“??“2“??“3“??“4“??“5“??“6“??“7“??“8“??“9“??“A“??“B“??“C“??“D“??“E“??“F“?
uchar?code?scan_con[4]={0x010x020x040x08};????//列掃描控制字?
uchar?data?temp_wea[]={0x000x00};
/***************************************/?
/*????????延時子程序???????????????????*/?
/***************************************/?
?void?delay(uint?i)??????//delay????
???{?
??????while(i--);?
???}?
/************************************************/?
/*??????????初始化ds18b2子函數*?????????????????*/?
/************************************************/?
?void?Init_DS18B20(void)?
??{?
?????uchar?x=0;?
?????DQ?=?1;???????????????//DQ復位?
?????delay(8);?????????????//稍做延時?
?????DQ?=?0;???????????????//單片機將DQ拉低?
?????delay(80);????????????//精確延時?大于?480us?
?????DQ?=?1;???????????????//拉高總線?
?????delay(14);?
?????x=DQ;?????????????????//稍做延時后?如果x=0則初始化成功?x=1則初始化失敗?
?????delay(20);?
??}?
/*************************************************/?
/*??????????????讀字節子函數?????????????????????*/?
/*************************************************/?
?ReadOneChar(void)?
??{?
?????uchar?i?=?0;?
?????uchar?dat?=?0;?
???for?(i=8;i>0;i--)?
????{?
??????DQ?=?0;??????????????//?給脈沖信號?
??????dat>>=1;?????????????//?數據右移一位?
??????DQ?=?1;??????????????//?給脈沖信號?
??????if(DQ)???????????????//?DQ為1?
??????dat|=0x80;??????????//?讀出數據?
??????delay(4);????????????//?延時?
?????}?
???return(dat);?
??}?
/*************************************************/
/*???????????????定時器0初始化 ?*/
/*************************************************/?
void?timer0_init(void)
{
TMOD=0x01;???????????????//定時器0工作于方式1
TH0=(65536-100)/256;
TL0=(65536-100)%256;
TR0=1;
ET0=1;
EA=1;
}
/*************************************************/?
/*???????????????寫字節子函數????????????????????*/?
/*************************************************/?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????129290??2012-04-09?20:39??溫控風扇\Backup?Of?原理圖.DBK
?????文件?????128823??2012-04-09?20:05??溫控風扇\Last?Loaded?原理圖.DBK
?????文件?????132725??2012-04-10?21:46??溫控風扇\原理圖.DSN
?????文件???????1054??2012-07-31?13:01??溫控風扇\原理圖.PWI
?????文件??????14339??2012-04-18?21:17??溫控風扇\溫控風扇
?????文件??????10532??2012-04-18?21:16??溫控風扇\溫控風扇.c
?????文件???????3493??2012-04-18?21:17??溫控風扇\溫控風扇.hex
?????文件?????????33??2012-04-18?21:17??溫控風扇\溫控風扇.lnp
?????文件??????22497??2012-04-18?21:17??溫控風扇\溫控風扇.LST
?????文件??????22579??2012-04-18?21:17??溫控風扇\溫控風扇.M51
?????文件??????16950??2012-04-18?21:17??溫控風扇\溫控風扇.OBJ
?????文件????????156??2012-07-31?09:44??溫控風扇\溫控風扇.plg
????.......?????55230??2012-07-31?09:44??溫控風扇\溫控風扇.uvopt
?????文件??????13248??2012-03-06?21:24??溫控風扇\溫控風扇.uvproj
????.......?????55232??2012-06-26?11:29??溫控風扇\溫控風扇_uvopt.bak
?????文件??????????0??2012-03-06?21:22??溫控風扇\溫控風扇_uvproj.bak
?????目錄??????????0??2012-07-31?13:01??溫控風扇
-----------?---------??----------?-----??----
???????????????606181????????????????????17
- 上一篇:豆瓣電影爬蟲、豆瓣電影推薦系統
- 下一篇:STM8S_PWM_LED呼吸燈
評論
共有 條評論