久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3209|回復: 0
收起左側

51單片機電梯控制

[復制鏈接]
ID:324007 發表于 2018-5-7 10:39 | 顯示全部樓層 |閱讀模式
第二章 電梯控制的原理
2.1基于MSC-51單片機的簡單電梯控制
方案一:為了更有效的進行電梯控制,現在使用最左邊的數碼管表示電梯上升和下降狀態,使用“∧”表示上升狀態,是同“∨“表示下降狀態,使用另外一個一個數碼管表示電梯此時所在的樓層,使用按鍵K1和K2來控制電梯上升或者下降的狀態。
在每層樓之后需要進行判斷上升或者下降。如果是在上升過程中,應先判斷是否繼續上升,然后在判斷是否下降。如果是在下降過程中,應先判斷是否繼續下降,在判斷是否上升。在上升改變為下降狀態時,或者下降改變為上升狀態時。
數碼管的狀態應該相應改變。
方案二:依然使用最左邊的數碼管表示電梯上升和下降狀態,使用“∧”表示上升狀態,是同“∨“表示下降狀態,使用另外一個一個數碼管表示電梯此時所在的樓層,不過此時又八個按鍵來代表電梯的層數,使用k11代表1樓,k12代表2樓,k13代表3樓,k14代表4樓,k21代表5樓,k22代表6樓,k23代表7樓,k24代表8樓。
如果默認電梯在一樓,比如按下k22按鍵,數碼管則由1變化到6,此時是上升狀態。然后數碼管就顯示6,直至再次按鍵。如果按的是k13,則數碼管從6變化到3,此時是下降狀態。數碼管顯示3,直到再次按鍵才改變當前狀態。
2.2方案一的討論
2.2.1方案一的優點
1.方案一的思路十分清晰明了。僅有由1至8的上升狀態或者8至1的下降狀態,程序書寫比較簡單。
2.方案一對于初學者來說比較友好,會基礎C語言語句以及51單片機定時器的使用方法就可以比較輕松的做出程序。
    3.因為上升過程中,僅計數8次,定時器的參數就可以使用一個宏定義的常數代替,定時器的程序也可以大大化簡。
2.2.2方案一的缺點
方案一最大的缺點是對于電梯的運行過程過于簡化,僅僅考慮了上升或者下降的兩個過程。而實際的電梯運行時,僅有在有人使用的時候才會運行,不然是會一直停靠在某層樓的。為了簡化過程編寫程序的便利而犧牲了電梯本來可以實現的功能,是這個方案最大的缺陷。
2.3方案二的討論
2.3.1方案的優點
1.方案二是方案一的強化改良版本,基本可以實現真實電梯的功能
2.方案二可以按照所需要去的樓層數的不同而數碼管的變化不同,這是方案一所無法達到的。
3.方案二的思路也比較清晰,默認電梯在一樓,去了6樓之后便停在6樓,然后從6樓在去其他樓層,在停靠在某個樓層。
2.3.2方案二的缺點
方案二最大的缺點是雖然思路清晰,但是編寫程序的過程還是比較復雜的。首先默認電梯在某樓,將此樓作為參數進入子函數1中,然后對8個按鍵哪個按鍵按下進行判斷,然后進入子程序2中,先判斷要去的樓層和現在所在的樓層的大小關系,有三種情況,對應三個條件語句。然后執行完子函數2之后,在將去的層數作為參數再次進入子函數1中。而且因為所去樓層不同,定時器的參數也會相應改變,編寫程序比較繁雜。
2.4兩種方法的比較以及選擇
根據實際編寫程序者的水平以及對于操作者水平的可行性來說,方案一對于新手來說相對友好了很多,不需要考慮過于復雜的情況只需要想一個相對來說很理想,電梯只從1樓上升到8樓,在每層樓只停相同的時間。而方案二則對于編寫者的水平要求就要高了很多,對于新手來說在兩天到三天過程幾乎是個不可能完成的任務,所以還是決定選擇方案一。

第三章硬件電路設備及軟件流程代碼
3.1控制芯片簡介
本設計中,AT89S52 是Atmel公司生產的一種低功耗、高性能CMOS 8位微控制器,具有8 位在系統可編程Flash存儲器。AT89S52 使用Atme  公司高密度非易失性存儲器技術制造,與工業80C51 產品指令和引腳完全兼容。片上Flash 允許程序存儲器在系統可編程,也適于常規編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統可編程Flash,使得AT89S52 為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。  AT89S52 具有PDIP、PLCC、TQFP3 種封裝形式以適用于不同的使用場合。
AT89S52是美國ATMEL公司生產的低電壓,高性能CMOS 8位單片機,內含2k字節的可反復擦寫的Flash只讀程序存儲器和128字節的隨機存取數據存儲器(RAM),其擦寫周期約1000次。器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,內置通用8位中央處理器和Flash存儲單元,功能強大。AT89S52單片機的工作電壓范圍較寬,可在2.7V~6V電壓范圍內工作。它的工作頻率為0Hz~24MHz,支持降至0Hz的靜態邏輯操作,并支持兩種可選的節電工作模式(低功耗空閑和掉電模式),空閑方式下停止CPU的工作,但允許RAM、定時/計數器、串行通信口及中斷系統繼續工作。掉電方式下保存RAM中的內容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位。AT89S52還具有兩級加密程序存儲器,使用者可以根據需要對程序進行加密,實現版權保護的目的。考慮到在單片機的很多應用中,需要使用發光二極管(LED)進行指示,AT89S52的輸出端口被設計成可直接驅動LED,可以省去外加的驅動電路,節省資源[6]。
AT89S52內部資源主要有:2k字節Flash閃速存儲器,128字節內部RAM,15個I/O口線(其中P1是一個完整的8位雙向I/O口),兩個16位定時/計數器,一個5向量兩級中斷結構,一個全雙工串行通信口(可編程串行UART通道),精密模擬比較器,片內振蕩器以及時鐘電路。
AT89S52引腳如圖3.1所示。

主程序流程圖如下圖所示:
圖3.2 主程序流程圖
3.2主程序代碼設計
根據流程圖,設計主程序代碼如下:
首先是主函數,主函數比較簡單,僅需判斷按鍵k1或者k2是否按下,來判斷對應的上升還是下降的狀態。
void main()
{
         init();
         while(1)  
        {
            if(k1==0)      //按下K1鍵,啟動定時器,進入子函數up中
           {
               TR0=1;   
                h=1;
            }
            if(h==1)
            {
up();
}
      
             if(k2==0)    //按下K2鍵,啟動定時器,進入子函數down中
            {
               TR0=1;
                h=0;
             }
              if(h==0)
             {
down();
}
         }
}
然后根據按鍵的結果進入對應的兩個子函數up或者down中。
下面就是這兩個子函數的程序:
void up()   
{                 
      W1=0;
      P0= DIG4_CODE;    //給右邊的數碼管附上相應的數字
      delay(1);
      W1=1;
      W2=0;
      P0= DIG1_CODE [0];   //給左邊的數碼管附上相應上升的標記。
      delay(1);
      W2=1;
      if(i==7)               //上升到第八層的時候,停止定時器
      {TR0=0;}
      j=i+1;
}
void down()
{
      W1=0;
      P0= DIG4_CODE [j-1];    //給右邊的數碼管附上相應的數字
      delay(1);
      W1=1;
      W2=0;
      P0= DIG1_CODE [1];     //給左邊的數碼管附上相應下降的標記
      delay(1);
      W2=1;
      if(j==1)                 //下降到第一層的時候,停止定時器
      {TR0=0;}
      i=j-1;
}
第三部分就是定時器所相對應的函數。
程序如下:
void time0()interrupt 1         
{
      TH0=(65535-50000)/256;
      TL0=(65535-50000)%256;
      num++;           
      if(num==40)              //計算一次5ms,40次恰好2S
      {
     num=0;
       j--;
       if(j==0)
        {
j=8;
}
               
     i++;
    if(i==8)               
       {
        i=0;
        }
      }     
}         
3.3功能測試
經過測試發現完成了方案一所要完成的功能。
    可以在由一樓上升到八樓過程中,按下下降按鍵則可以改變上升狀態變為下降狀態。然后在八樓到一樓的下降過程中,按下上升按鍵則可以改變下降狀態為上升狀態。在任意樓層按下上升或者下降按鍵,都可以產生相應的上升或者下降的狀態。
這說明此次的實驗比較成功,因為程序比較簡單,使用的功能也比較簡單讓我比較容易的完成了該實驗。


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99精品国产一区二区青青牛奶 | 麻豆视频在线看 | 伊人伊成久久人综合网站 | 午夜影视网| 中文字幕高清 | 久久久青草婷婷精品综合日韩 | 国产精品成人一区二区三区夜夜夜 | 日韩精品人成在线播放 | 国产精品亚洲精品久久 | 欧美色影院| 男女污污网站 | 欧美一区二区免费 | 欧美乱大交xxxxx另类电影 | 久久人人国产 | 日韩一区二区在线免费观看 | 天天操夜夜操 | 99国产视频 | 欧美性另类 | 国产一区二区精华 | 亚洲一区二区在线播放 | 亚洲精品久久久久久久久久久久久 | 国产探花 | 91视频在线| 久久亚洲综合 | 久久久久久久国产精品视频 | 日本欧美国产在线 | 精品欧美一区二区三区免费观看 | 欧美日韩电影一区二区 | 日韩免费毛片视频 | 成人国产精品久久 | 欧美aⅴ在线观看 | 在线视频中文字幕 | 亚洲综合久久精品 | 日韩国产中文字幕 | 天天干人人 | 成人在线免费观看 | 国产精品久久久久久久久久久久久 | 亚洲一区中文字幕 | 精品国产乱码久久久久久久久 | 黄色免费看 | 国产一区二区三区在线免费观看 |