1.簡介
自動窗簾控制系統(tǒng)核心采用的是單片機(jī)STC89C52,其次利用了光照傳感器、按鍵、顯示屏以及信號調(diào)理電路等外圍電路,使整個(gè)系統(tǒng)在各模塊的配合下可實(shí)現(xiàn)半自動控制、自動控制、定時(shí)控制等功能。 其主要功能有6個(gè),分別為:
1.手動控制:該功能是根據(jù)用戶的需求通過按鍵進(jìn)行窗簾的開關(guān),此功能可以使窗簾的開閉處于任何一種狀態(tài);
2.光照自動控制:系統(tǒng)可以根據(jù)用戶設(shè)定的光照強(qiáng)度值通過感光器采集光照自動開關(guān)窗簾; 3.時(shí)間控制:此功能是根據(jù)用戶設(shè)定的時(shí)間一次性開關(guān)窗簾,并顯示當(dāng)前溫度。
4.溫度報(bào)警系統(tǒng):可以自行設(shè)置溫度報(bào)警溫度。
5.時(shí)間顯示及鬧鐘系統(tǒng):可以自行設(shè)置鬧鐘時(shí)間。
6.手動自動控制按鍵隨時(shí)切換
2.硬件設(shè)計(jì)
自動窗簾控制系統(tǒng)的構(gòu)成主要由STC89C52單片機(jī)最小系統(tǒng)、蜂鳴器報(bào)警電路、電源模塊、按鍵電路、LCD1602液晶顯示電路、步進(jìn)電機(jī)驅(qū)動電路、DS1302時(shí)鐘電路、光照檢測模塊和溫度檢測電路組成。 其系統(tǒng)框圖如圖:
(1)光照檢測電路
窗簾自動控制系統(tǒng)的光控功能是可以根據(jù)光照的強(qiáng)弱來自動控制窗簾的開閉的,因此需要用到光照傳感元器件,在本設(shè)計(jì)中采用了光敏電阻,并和一個(gè)常規(guī)電阻串聯(lián)在一起,根據(jù)光線的變化改變光敏電阻的分壓值,然后通過ADC0832數(shù)模轉(zhuǎn)換芯片傳輸給單片機(jī),經(jīng)過單片機(jī)處理后在液晶上顯示。 電路圖如圖:
(2)燈光驅(qū)動電路
燈光電路使用了3個(gè)LED燈作為光源,采用了三極管作為LED燈開關(guān)的控制芯片,同時(shí)也對驅(qū)動電流進(jìn)行放大,以達(dá)到LED燈工作電流的要求。 原理圖如圖:
(3)步進(jìn)電機(jī)驅(qū)動電路
本系統(tǒng)的設(shè)計(jì)目的為了高效控制步進(jìn)電機(jī)的轉(zhuǎn)動,因此需要將單片機(jī)發(fā)出的脈沖轉(zhuǎn)化為步進(jìn)角度,才能控制步進(jìn)電機(jī)轉(zhuǎn)動,我們在這里采用ULN2003作為步進(jìn)電機(jī)的驅(qū)動芯片,其作用為增強(qiáng)單片機(jī)的驅(qū)動能力。 其工作原理為:根據(jù)單片機(jī)引腳的輸出狀態(tài),使ULN2003與單片機(jī)連接的四個(gè)管腳中每時(shí)刻只有一個(gè)管腳處于導(dǎo)通狀態(tài)(采用單拍方式對步進(jìn)電機(jī)控制),其他管腳處于斷開狀態(tài)。 這樣就使得與ULN2003連接的步進(jìn)電機(jī)只有一個(gè)引出端導(dǎo)通。 驅(qū)動原理圖如圖:
(4)按鍵電路
按鍵在單片機(jī)應(yīng)用系統(tǒng)中能實(shí)現(xiàn)向單片機(jī)輸入數(shù)據(jù),傳送命令等功能,是人工干預(yù)單片機(jī)的主要手段。 本設(shè)計(jì)中的按鍵采用獨(dú)立按鍵式,共有五個(gè)。 其中S2是自動和手動切換鍵,S3是設(shè)置退出鍵,S4是手動反轉(zhuǎn)和設(shè)置參數(shù)減鍵,S5是手動正轉(zhuǎn)和設(shè)置參數(shù)加鍵,S6是參數(shù)設(shè)置鍵。 電路圖如圖:
(5)DS1302時(shí)鐘電路
本設(shè)計(jì)采用DS1302時(shí)鐘芯片為系統(tǒng)提供時(shí)鐘源,它通過串行方式與單片機(jī)進(jìn)行數(shù)據(jù)傳送,能夠向單片機(jī)提供包括秒、分、時(shí)、日、月、年等在內(nèi)的實(shí)時(shí)時(shí)間信息,并可對月末日期、閏年天數(shù)自動進(jìn)行調(diào)整; 電路如圖:
電路圖中,Vcc1為后備電源,Vcc2為主電源。 VCC1在單電源與電池供電的系統(tǒng)中提供低電源并提供低功率的電池備份。 VCC2在雙電源系統(tǒng)中提供主電源,在這種運(yùn)用方式中VCC1連接到備份電源,以便在沒有主電源的情況下能保存時(shí)間信息以及數(shù)據(jù)。
(6)總體電路圖
3.軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)主要有幾部分組成,主要分為主程序和各個(gè)模塊子程序。
(1)主程序設(shè)計(jì)
主程序構(gòu)成無限循環(huán),主要完成單片機(jī)初始化,關(guān)中斷,菜單顯示內(nèi)容初始化,按鍵掃描,電機(jī)運(yùn)行,計(jì)時(shí)等功能。 流程圖如圖:
代碼:
void main()
{
init_eepom(); //初始化EEPROM
init_1602(); //lcd1602初始化
init_1602_dis_csf(); //lcd1602初始化顯示
init_ds1302_io(); //初始化ds1302Io
init_time0(); //初始化定時(shí)器
menu_1_break(); //菜單初始界面
init_ds1302(); //ds1302初始化
temperature1 = read1_temp(); //讀溫度1
delay_1ms(650);
while(1)
{
key(); //按鍵程序
if(key_can < 10)
{
key_with();
}
shoudong_kaiguan(); //手動開關(guān)窗簾
if(flag_200ms == 1)
{
flag_200ms = 0;
temperature1 = read1_temp(); //讀溫度1 環(huán)境溫度
if(temperature1 >= 99)
temperature1 = 99;
zinengchuanglian_dis(); //智能窗簾處理函數(shù)
guanxian = ad0832read(1,0) * 9.0 / 255;
if((menu_1 == 0))
{
read_time(); //讀時(shí)間
init_1602_ds1302(); //顯示時(shí)鐘
write_sfm_18b20(2,13,temperature1); //顯示溫度
write_sfm1(2,0,guanxian); //顯示溫度
if(guanxian <= guanxian_set)
LED=0;
else
LED=1;
if(temperature1 >= t_high)
beep = ~beep; //溫度報(bào)警 ,蜂鳴器報(bào)警
else
beep = 1;
}
}
bujindj(); //步進(jìn)電機(jī)函數(shù)
}
}
(2)步進(jìn)電機(jī)驅(qū)動程序設(shè)計(jì)
步進(jìn)電機(jī)程序設(shè)計(jì)主要實(shí)現(xiàn)的功能為判斷旋轉(zhuǎn)方向; 按順序傳送控制脈沖; 判斷所要求的控制步數(shù)是否傳送完畢。 程序流程圖如圖:
代碼:
void bujindj() //步進(jìn)電機(jī)函數(shù)
{
static uchar i;
if(flag_z_f != 0)
{
if(flag_z_f == 1) //開
{
if(bjdj_value >= 254)
{
flag_z_f = 0;
bjdj_value = 254;
P2 = P2 & 0xf0; //讓4個(gè)IO口都不輸出
write_eepom(); //保存
}else
bjdj_value ++;
}
if(flag_z_f == 2) //關(guān)
{
if(bjdj_value <= 1)
{
flag_z_f = 0;
bjdj_value = 1;
P2 = P2 & 0xf0; //讓4個(gè)IO口都不輸出
write_eepom(); //保存
}else
bjdj_value --;
}
for(i=0;i<4;i++) //4相
{
if(flag_z_f == 1) //開
P2=zheng[i];// & (P2 | 0xf0); //
else if(flag_z_f == 2)//關(guān)
P2=fan[i];// & (P2 | 0xf0); //
delay_uint(500); //改變這個(gè)參數(shù)可以調(diào)整電機(jī)轉(zhuǎn)速
}
}
}
-
單片機(jī)
+關(guān)注
關(guān)注
6035文章
44554瀏覽量
634621 -
控制系統(tǒng)
+關(guān)注
關(guān)注
41文章
6604瀏覽量
110576 -
STC89C52
+關(guān)注
關(guān)注
41文章
330瀏覽量
82041 -
步進(jìn)電機(jī)
+關(guān)注
關(guān)注
150文章
3109瀏覽量
147443 -
驅(qū)動電路
+關(guān)注
關(guān)注
153文章
1529瀏覽量
108492
發(fā)布評論請先 登錄
相關(guān)推薦
評論