資源簡介
通過單片機采集外界溫度值,并根據采集到的溫度調整電機的轉速,里面包含有電路圖,程序圖,簡單易懂,非常實用

代碼片段和文件信息
#include?
#include?
//#include?
sbit?LCD_RS=P2^0;//定義引腳
sbit?LCD_RW=P2^1;
sbit?LCD_E=P2^2;
#define?LCD_Data?P0
#define?Busy????0x80?//用于檢測LCD狀態字中的Busy標識
void?WriteDataLCD(unsigned?char?WDLCD);
void?WriteCommandLCD(unsigned?char?WCLCDBuysC);
unsigned?char?ReadDataLCD(void);
unsigned?char?ReadStatusLCD(void);
void?LCDInit(void);
void?DisplayOneChar(unsigned?char?X?unsigned?char?Y?unsigned?char?DData);
void?DisplayListChar(unsigned?char?X?unsigned?char?Y?unsigned?char?code?*DData);
void?Delay5Ms(void);
void?Delay400Ms(void);
unsigned?char?code?uctech[]?=?{“1111.taobao.co“};
unsigned?char?code?net[]?=?{“Happy?every?day!“};
void?main(void)
{
?Delay400Ms();?//啟動等待,等LCD講入工作狀態
?LCDInit();?//LCM初始化
?Delay5Ms();?//延時片刻(可不要)
?DisplayListChar(0?0?uctech);
?DisplayListChar(0?5?net);
?ReadDataLCD();//測試用句無意義
?while(1);
}
//寫數據
void?WriteDataLCD(unsigned?char?WDLCD)
{
?ReadStatusLCD();?//檢測忙
?LCD_Data?=?WDLCD;
?LCD_RS?=?1;
?LCD_RW?=?0;
?LCD_E?=?0;?//若晶振速度太高可以在這后加小的延時
?LCD_E?=?0;?//延時
?LCD_E?=?1;
}
//寫指令
void?WriteCommandLCD(unsigned?char?WCLCDBuysC)?//BuysC為0時忽略忙檢測
{
?if?(BuysC)?ReadStatusLCD();?//根據需要檢測忙
?LCD_Data?=?WCLCD;
?LCD_RS?=?0;
?LCD_RW?=?0;?
?LCD_E?=?0;
?LCD_E?=?0;
?LCD_E?=?1;?
}
//讀數據
unsigned?char?ReadDataLCD(void)
{
?LCD_RS?=?1;?
?LCD_RW?=?1;
?LCD_E?=?0;
?LCD_E?=?0;
?LCD_E?=?1;
?return(LCD_Data);
}
//讀狀態
unsigned?char?ReadStatusLCD(void)
{
?LCD_Data?=?0xFF;?
?LCD_RS?=?0;
?LCD_RW?=?1;
?LCD_E?=?0;
?LCD_E?=?0;
?LCD_E?=?1;
?while?(LCD_Data?&?Busy);?//檢測忙信號
?return(LCD_Data);
}
void?LCDInit(void)?//LCM初始化
{
?LCD_Data?=?0;
?WriteCommandLCD(0x380);?//三次顯示模式設置,不檢測忙信號
?Delay5Ms();?
?WriteCommandLCD(0x380);
?Delay5Ms();?
?WriteCommandLCD(0x380);
?Delay5Ms();?
?WriteCommandLCD(0x381);?//顯示模式設置開始要求每次檢測忙信號
?WriteCommandLCD(0x081);?//關閉顯示
?WriteCommandLCD(0x011);?//顯示清屏
?WriteCommandLCD(0x061);?//?顯示光標移動設置
?WriteCommandLCD(0x0C1);?//?顯示開及光標設置
}
//按指定位置顯示一個字符
void?DisplayOneChar(unsigned?char?X?unsigned?char?Y?unsigned?char?DData)
{
?Y?&=?0x1;
?X?&=?0xF;?//限制X不能大于15,Y不能大于1
?if?(Y)?X?|=?0x40;?//當要顯示第二行時地址碼+0x40;
?X?|=?0x80;?//?算出指令碼
?WriteCommandLCD(X?0);?//這里不檢測忙信號,發送地址碼
?WriteDataLCD(DData);
}
//按指定位置顯示一串字符
void?DisplayListChar(unsigned?char?X?unsigned?char?Y?unsigned?char?code?*DData)
{
?unsigned?char?ListLength;
??ListLength?=?0;
?Y?&=?0x1;
?X?&=?0xF;?//限制X不能大于15,Y不能大于1
?while?(DData[ListLength]>=0x20)?//若到達字串尾則退出
??{
???if?(X?<=?0xF)?//X坐標應小于0xF
????{
?????DisplayOneChar(X?Y?DData[ListLength]);?//顯示單個字符
?????ListLength++;
?????X++;
????}
??}
}
//5ms延時
void?Delay5Ms(void)
{
?unsigned?int?TempCyc?=?5552;
?while(TempCyc--);
}
//400ms延時
void?Delay400Ms(void)
{
?unsigned?char?TempCycA?=?5;
?unsigned?int?TempCycB;
?while(TempCycA--)
?{
??TempCycB=7269;
??while(TempCycB--);
?};
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-04-11?19:56??基于紅外感應的溫控轉速型風扇設計資料\
?????目錄???????????0??2017-04-20?22:55??基于紅外感應的溫控轉速型風扇設計資料\1602廠家說明書+例子程序\
?????文件??????356922??2017-03-22?16:22??基于紅外感應的溫控轉速型風扇設計資料\1602廠家說明書+例子程序\LCD1602A-5V廠家說明書.pdf
?????目錄???????????0??2017-04-20?22:55??基于紅外感應的溫控轉速型風扇設計資料\1602廠家說明書+例子程序\例程-LCD1602(請使用keil?uvision3或以上版本打開)\
?????文件????????3189??2017-04-09?23:48??基于紅外感應的溫控轉速型風扇設計資料\1602廠家說明書+例子程序\例程-LCD1602(請使用keil?uvision3或以上版本打開)\1602.c
?????文件????????7972??2017-04-09?23:48??基于紅外感應的溫控轉速型風扇設計資料\1602廠家說明書+例子程序\例程-LCD1602(請使用keil?uvision3或以上版本打開)\1602.OBJ
?????文件????????6705??2017-04-09?23:48??基于紅外感應的溫控轉速型風扇設計資料\1602廠家說明書+例子程序\例程-LCD1602(請使用keil?uvision3或以上版本打開)\LCD1602
?????文件????????1147??2017-04-09?23:48??基于紅外感應的溫控轉速型風扇設計資料\1602廠家說明書+例子程序\例程-LCD1602(請使用keil?uvision3或以上版本打開)\LCD1602.hex
?????文件??????????51??2017-04-09?23:48??基于紅外感應的溫控轉速型風扇設計資料\1602廠家說明書+例子程序\例程-LCD1602(請使用keil?uvision3或以上版本打開)\LCD1602.lnp
?????文件????????1013??2012-04-12?16:21??基于紅外感應的溫控轉速型風扇設計資料\1602廠家說明書+例子程序\例程-LCD1602(請使用keil?uvision3或以上版本打開)\LCD1602.opt.bak
?????文件?????????260??2017-04-20?22:55??基于紅外感應的溫控轉速型風扇設計資料\1602廠家說明書+例子程序\例程-LCD1602(請使用keil?uvision3或以上版本打開)\LCD1602.plg
?????文件????????2115??2012-02-11?13:49??基于紅外感應的溫控轉速型風扇設計資料\1602廠家說明書+例子程序\例程-LCD1602(請使用keil?uvision3或以上版本打開)\LCD1602.Uv2.bak
?????文件???????75219??2017-04-20?22:55??基于紅外感應的溫控轉速型風扇設計資料\1602廠家說明書+例子程序\例程-LCD1602(請使用keil?uvision3或以上版本打開)\LCD1602.uvopt
?????文件???????13243??2017-04-10?00:40??基于紅外感應的溫控轉速型風扇設計資料\1602廠家說明書+例子程序\例程-LCD1602(請使用keil?uvision3或以上版本打開)\LCD1602.uvproj
?????文件????????1015??2012-02-11?13:49??基于紅外感應的溫控轉速型風扇設計資料\1602廠家說明書+例子程序\例程-LCD1602(請使用keil?uvision3或以上版本打開)\LCD1602_Opt.Bak
?????文件????????1861??2008-04-02?16:30??基于紅外感應的溫控轉速型風扇設計資料\1602廠家說明書+例子程序\例程-LCD1602(請使用keil?uvision3或以上版本打開)\LCD1602_Uv2.Bak
?????文件???????75193??2017-04-10?17:28??基于紅外感應的溫控轉速型風扇設計資料\1602廠家說明書+例子程序\例程-LCD1602(請使用keil?uvision3或以上版本打開)\LCD1602_uvopt.bak
?????文件????????5115??2002-04-16?14:32??基于紅外感應的溫控轉速型風扇設計資料\1602廠家說明書+例子程序\例程-LCD1602(請使用keil?uvision3或以上版本打開)\STARTUP.A51
?????文件????????9055??2007-03-18?22:23??基于紅外感應的溫控轉速型風扇設計資料\1602廠家說明書+例子程序\例程-LCD1602(請使用keil?uvision3或以上版本打開)\Text1.c
?????文件?????2063705??2011-02-24?15:46??基于紅外感應的溫控轉速型風扇設計資料\DS18b20cn.pdf
?????目錄???????????0??2017-04-20?22:56??基于紅外感應的溫控轉速型風扇設計資料\HC-SR501模塊新資料\
?????目錄???????????0??2017-04-20?22:56??基于紅外感應的溫控轉速型風扇設計資料\HC-SR501模塊新資料\HC-SR501模塊\
?????文件??????717709??2015-12-01?11:43??基于紅外感應的溫控轉速型風扇設計資料\HC-SR501模塊新資料\HC-SR501模塊\HC-SR501人體感應模塊.pdf
?????文件???????48047??2013-06-05?12:42??基于紅外感應的溫控轉速型風扇設計資料\HC-SR501模塊新資料\HC-SR501模塊\原理圖.png
?????文件???????44473??2013-06-05?13:21??基于紅外感應的溫控轉速型風扇設計資料\HC-SR501模塊新資料\HC-SR501模塊\參考電路.jpg
?????文件???????25600??2017-04-14?00:04??基于紅外感應的溫控轉速型風扇設計資料\HC-SR501模塊新資料\HC-SR501模塊\熱釋電傳感器基本知識和使用中的常見問題.wps
?????文件?????1141248??2017-04-10?13:37??基于紅外感應的溫控轉速型風扇設計資料\L298N_電機驅動模塊_程序書.doc
?????文件???????90867??2017-04-20?00:17??基于紅外感應的溫控轉速型風扇設計資料\作品電路設計圖.png
?????文件???????51354??2017-04-20?22:44??基于紅外感應的溫控轉速型風扇設計資料\基于紅外感應的溫控轉速型風扇電路設計圖.pdf
?????目錄???????????0??2018-04-03?23:50??基于紅外感應的溫控轉速型風扇設計資料\控制程序\
?????文件???????18069??2017-04-20?22:53??基于紅外感應的溫控轉速型風扇設計資料\控制程序\1
............此處省略20個文件信息
- 上一篇:fluent UDF馬世虎翻譯版
- 下一篇:維盟AC控制器
評論
共有 條評論