RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于STC89C52單片機(jī)的自動窗簾控制系統(tǒng)設(shè)計(jì)

CHANBAEK ? 來源:電子應(yīng)用學(xué)習(xí)館 ? 作者:一只會飛的大魚兒 ? 2023-03-31 14:34 ? 次閱讀

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)總體電路圖

截圖20230301181746.png

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)速
    }
  }
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(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
收藏 人收藏

    評論

    相關(guān)推薦

    基于51單片機(jī)自動窗簾控制系統(tǒng)設(shè)計(jì)

    1.簡介自動窗簾控制系統(tǒng)核心采用的是單片機(jī)STC89C52,其次利用了光照傳感器、按鍵、顯示屏以及信號調(diào)理電路等外圍電路,使整個(gè)
    發(fā)表于 07-19 09:40

    基于STC89C52的智能全自動洗衣機(jī)控制系統(tǒng)設(shè)計(jì)

    的穩(wěn)定性、降低制造成本以及更方便的操作,設(shè)計(jì)了一種基于STC89C52單片機(jī)的全自動洗衣機(jī)控制系統(tǒng)。該
    發(fā)表于 09-10 07:05

    基于單片機(jī)STC89C52的搖搖棒

    基于單片機(jī)STC89C52的搖搖棒設(shè)計(jì),有電路圖和源程序
    發(fā)表于 11-23 14:38 ?28次下載

    基于STC89C52單片機(jī)的交通燈控制系統(tǒng)設(shè)計(jì)

    基于STC89C52單片機(jī)的交通燈控制系統(tǒng)設(shè)計(jì) 論文類
    發(fā)表于 12-14 15:44 ?168次下載

    基于STC89C52單片機(jī)控制的溫度控制系統(tǒng)課程設(shè)計(jì)

    基于STC89C52單片機(jī)控制的溫度控制系統(tǒng)
    發(fā)表于 01-06 17:00 ?152次下載

    單片機(jī)STC89C52程序

    單片機(jī)STC89C52源程序。
    發(fā)表于 01-11 18:16 ?112次下載

    基于STC89C52單片機(jī)的智能交通燈控系統(tǒng)設(shè)計(jì)

    基于STC89C52單片機(jī)的智能交通燈控系統(tǒng)設(shè)計(jì)
    發(fā)表于 02-22 11:37 ?107次下載

    基于STC89C52單片機(jī)的智能窗簾控制系統(tǒng)

    基于STC89C52單片機(jī)的智能窗簾控制,但沒有程序圖和連線圖。
    發(fā)表于 04-28 18:02 ?31次下載

    STC89C52單片機(jī)介紹

    STC89C52單片機(jī)介紹。
    發(fā)表于 05-20 13:55 ?257次下載

    基于單片機(jī)STC89c52 GSM的智能家居報(bào)警系統(tǒng)設(shè)計(jì)

    基于單片機(jī)STC89c52 GSM的智能家居報(bào)警系統(tǒng)設(shè)計(jì),分享給大家。
    發(fā)表于 05-05 08:40 ?81次下載

    基于STC89C52單片機(jī)控制系統(tǒng)設(shè)計(jì)

    本文主要介紹了基于STC89C52單片機(jī)控制系統(tǒng)設(shè)計(jì)。
    發(fā)表于 06-24 08:00 ?112次下載
    基于<b class='flag-5'>STC89C52</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>控制系統(tǒng)</b>設(shè)計(jì)

    使用STC89C52單片機(jī)設(shè)計(jì)無線溫度控制系統(tǒng)的資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用STC89C52單片機(jī)設(shè)計(jì)無線溫度控制系統(tǒng)的資料和提高變電運(yùn)行供電可靠性相關(guān)問題的思考免費(fèi)下載。
    發(fā)表于 01-17 11:18 ?19次下載
    使用<b class='flag-5'>STC89C52</b><b class='flag-5'>單片機(jī)</b>設(shè)計(jì)無線溫度<b class='flag-5'>控制系統(tǒng)</b>的資料免費(fèi)下載

    基于單片機(jī)STC89C52控制的智能小車簡介

    基于單片機(jī)STC89C52控制的智能小車簡介(單片機(jī)原理圖)-該文檔為基于單片機(jī)STC89C52
    發(fā)表于 07-22 14:21 ?68次下載
    基于<b class='flag-5'>單片機(jī)</b><b class='flag-5'>STC89C52</b><b class='flag-5'>控制</b>的智能小車簡介

    STC89C52單片機(jī)器件手冊

    、EE-PROM、看門狗等模塊。STC89C52系列單片機(jī)幾乎包含了數(shù)據(jù)采集和控制中所需的所有單模塊,可稱得上一個(gè)片上系統(tǒng)。
    發(fā)表于 09-05 10:41 ?8次下載

    STC89C52單片機(jī)最小系統(tǒng)板-基礎(chǔ)版技術(shù)手冊

    STC89C52單片機(jī)最小系統(tǒng)板-基礎(chǔ)版技術(shù)手冊
    發(fā)表于 09-18 10:56 ?12次下載
    RM新时代网站-首页