仿真圖proteus7.8及以上
程序編譯器:keil 4/keil 5
編程語言:C語言
設計編號:S0042
講解視頻
基于51單片機的智能電風扇控制系統(tǒng)proteus仿真設計
1.主要功能:
運用所學知識,制作一個 51單片機智能電風扇控制系統(tǒng)仿真設計
(1)3個獨立按鍵分別控制“自然風”、“睡眠風”、“常風”,(三者的區(qū)別是直流電機的停歇時間不同),并3個LED顯示出區(qū)別。
(2)每種類型風可以根據(jù)按下獨立按鍵次數(shù)分為4個檔的風力調(diào)節(jié),并在數(shù)顯管上顯示1,2,3,4。
(3)設計風扇的過熱保護,外接一個撥碼開關模擬過熱信號產(chǎn)生,當撥碼開關斷開時單片機采集到不穩(wěn)態(tài),風扇停止;當撥碼開關閉合時,風扇繼續(xù)運轉(zhuǎn)。
(4)具有室內(nèi)溫度檢測顯示功能。
具體電路實現(xiàn):
1.四位數(shù)碼管顯示室內(nèi)溫度和風扇檔位,前三位顯示溫度,后一位顯示風扇檔位。
2.使用DS18B20檢測溫度數(shù)據(jù),接到單片機的P3.3口
3.自然風,睡眠風,常風檔位通過三個LED燈顯示,分別接到P0.0,P0.1,P0.2
4.過熱保護裝置通過撥碼開關模擬,撥碼開關閉合,單片機P0.3口接地,引腳電位拉低。撥碼開關打開,引腳電位不確定,單片機檢測不到低電位默認不過熱。
5.通過L298控制直流電機,仿真使用示波器顯示脈沖寬度調(diào)制PWM,占空比越大,風扇轉(zhuǎn)動越快。
6.四個按鍵控制自然風,睡眠風,常風和風扇停止。按下按鍵可以完成對自然風,睡眠風,常風模式4個檔的風力調(diào)節(jié)
需注意仿真中51單片機芯片是通用的,AT89C51,AT89C52都是51單片機的具體型號,內(nèi)核是兼容的。無論stc還是at都一樣,引腳功能都是一樣的,程序也是一樣的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機芯片。
以下為本設計資料展示圖:
2.仿真
開始仿真
打開仿真工程,雙擊proteus中的單片機,選擇hex文件路徑,然后開始仿真。開始仿真夠風扇不轉(zhuǎn)動,需要按下檔位按鍵才工作。
風扇轉(zhuǎn)動的1檔最大轉(zhuǎn)速14.5,第二檔轉(zhuǎn)速最大轉(zhuǎn)速28.5,第三檔最大轉(zhuǎn)速41.5,第四檔最大轉(zhuǎn)速55.6。下面是各模式在4檔的仿真結(jié)果。
自然風4檔,溫度31度,風扇轉(zhuǎn)動的最高轉(zhuǎn)速是+55.6,轉(zhuǎn)動間隔時間0.2秒,自然風指示燈點亮,數(shù)碼管前三位顯示溫度31,后一位顯示風扇檔位4。
睡眠風4檔,溫度31度,風扇轉(zhuǎn)動的最高轉(zhuǎn)速是+55.6,轉(zhuǎn)動間隔時間0.8秒,睡眠風指示燈點亮,數(shù)碼管前三位顯示溫度31,后一位顯示風扇檔位4。
常風4檔,溫度31度,風扇轉(zhuǎn)動的最高轉(zhuǎn)速是+55.6,轉(zhuǎn)動間隔時間0.3秒,常風指示燈點亮,數(shù)碼管前三位顯示溫度31,后一位顯示風扇檔位4。
過熱保護
任何檔位或者模式下,撥碼開關斷開,過熱保護模式啟動,風扇停止轉(zhuǎn)動。
3. 原理圖
元件 型號 數(shù)量
單片機 AT89C51 1
電容 10uf 1
電容 30pf 2
晶振 12MHZ 1
電阻 10k 1
按鈕 4
溫度傳感器 DS18B20 1
排阻 10k 1
數(shù)碼管 4位共陰 1
電阻 1k 1
直流電機 5V 1
LED 黃色 3
電阻 100歐 3
排針 2P 1
電容 0.1uf 2
電容 100uf 2
穩(wěn)壓器 7805 1
4. 程序代碼
使用keil4或者keil5編譯,代碼有注釋,可以結(jié)合報告理解代碼含義。
主函數(shù)部分代碼
sbit k1=P2^3;//按鈕
sbit k2=P2^4;
sbit k3=P2^5;
sbit k4=P2^2;
sbit led1=P0^0;//LED
sbit led2=P0^1;
sbit led3=P0^2;
sbit out1=P2^6;//電機控制
sbit out2=P2^7;
sbit smg1=P3^4;//數(shù)碼管
sbit smg2=P3^5;
sbit smg3=P3^6;
sbit smg4=P3^7;
sbit heat=P0^3;//過熱
//數(shù)碼管編碼
uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar sec=0,time=0,mode=0;//系統(tǒng)變量
uchar miao=0,miao1=0,miao2=0,start=0;//間歇控制
uchar sudu=1;//檔位
uchar wait=0;
uchar time1=0;
uchar bei=0;//暫??刂?
uchar wendu=0;//溫度
//延時
void delay(uint i)
{
while(i--)
{
//輸出pwm
if(time1<99)
time1++;
else
time1=0;
if(start &&(miao<miao1))//啟動
{
out1=1;
if(time1<sudu*20)
{
out2=0;
}
else
{
out2=1;
}
}
else //停止
{
out2=1;
out1=0;
}
}
}
//主函數(shù)
void main()
{
uchar k=0;
out1=0;
TMOD|=0X01;//初始化定時器
TH0=0X3C;
TL0=0XB0;
ET0=1;//打開定時器0中斷允許
EA=1;//打開總中斷
TR0=1;//打開定時器
while(1)
{
//按鍵檢測
if(!k1 &&(k!=1))//自然風
{
k=1;
start=1;//啟動
led1=0;//指示燈
led2=1;
led3=1;
miao1=3;miao2=1;
if(mode!=1)
mode=1;
else
{
if(sudu<4)
sudu++;
else
sudu=1;
}
}
if(!k2 &&(k!=2))//睡眠風
{
k=2;
start=1;//啟動
led1=1;//指示燈
led2=0;
led3=1;
miao1=3;miao2=6;
if(mode!=2)
mode=2;
else
{
if(sudu<4)
sudu++;
else
sudu=1;
}
}
if(!k3 &&(k!=3))//常風
{
k=3;
start=1;//啟動
led1=1;//指示燈
led2=1;
led3=0;
miao1=3;miao2=2;
if(mode!=3)
mode=3;
else
{
if(sudu<4)
sudu++;
else
sudu=1;
}
}
if(!k4)//停止
{
start=0;
led1=1;//指示燈
led2=1;
led3=1;
mode=0;
}
if(k1 && k2 && k3)
k=0;
//顯示
P1=smgduan[wendu/10];smg1=0;delay(100);smg1=1;
P1=smgduan[wendu%10];smg2=0;delay(100);smg2=1;
P1=smgduan[sudu];smg4=0;delay(100);smg4=1;
}
}
5.設計報告
7508字設計報告,內(nèi)容包含設計框圖,引言,硬件設計介紹,軟件設計介紹,仿真調(diào)試,總結(jié)和參考文獻。
6. 設計資料內(nèi)容清單
資料設計資料包括仿真,程序代碼、講解視頻、功能要求、設計報告、軟硬件設計框圖等。
0、常見使用問題及解決方法–必讀?。。?!
1、仿真
2、程序代碼
3、功能要求
4、講解視頻
5、設計報告
6、框圖
7、原理圖
8、元器件清單
9、開題報告
10、結(jié)構(gòu)框圖
Altium Designer 軟件資料
KEIL軟件資料
Proteus軟件資料
單片機學習資料
答辯技巧
設計報告常用描述
鼠標雙擊打開查找更多51 STM32單片機課程畢業(yè)設計.url