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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1898|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

門自動控制系統(tǒng)單片機(jī)源程序 解釋每一步代表什么含義

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:214729 發(fā)表于 2018-5-10 23:00 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
PWM發(fā)生子程序
由前面介紹可知,通過調(diào)節(jié)PWM脈沖的占空比就能夠調(diào)節(jié)電機(jī)的轉(zhuǎn)動速度,從而控制開關(guān)門的速度。由于AT89C2051單片機(jī)內(nèi)部沒有PWM功能模塊,因此只能通過程序控制單片機(jī)的某個引腳輸出高低電平,從而模擬產(chǎn)生PWM脈沖。脈沖的高低電平時間由定時器T0控制。T0中斷服務(wù)程序如下:
void Timer0 ( )  interrupt 1
{
       cyclet = ~cyclet;
       TR0 = 0;
       if(cyclet)
       {
           TH0 = 0XFC;
           TL0 = 0XE0;
           if(smode == 0)
              PWMPIN = 0;
           else
              PWMPIN = 1;
        }
        else
        {
           TH0 = 0XFF;
           TL0 = 0X28;
           if (smode == 0)
             PWMPIN = 1;
           else
             PWMPIN = 0;
        }
     TR0 = 1;
}
設(shè)置好T0的各種方式并啟動T0運(yùn)行,其后T0不斷溢出,產(chǎn)生中斷,在T0的中斷服務(wù)程序中,通過將P3.4引腳值取反并輸出,從而產(chǎn)生高低交替的電平信號。通過重新設(shè)置T0的計(jì)數(shù)初始值,從而產(chǎn)生不同時間的高低電平,由此可以調(diào)節(jié) PWM脈沖的占空比。本設(shè)計(jì)中電機(jī)快轉(zhuǎn)時占空比為80%,慢轉(zhuǎn)時占空比為20%,因此T0的計(jì)數(shù)初始值0xFCE0、0xFFE8。
StartMotol子程序用于啟動電機(jī),子程序根據(jù)電機(jī)轉(zhuǎn)速設(shè)置T0計(jì)數(shù)初始值并啟動T0運(yùn)行。根據(jù)電機(jī)轉(zhuǎn)動方向,設(shè)置P1.3、P1.4引腳輸出相應(yīng)電平。程序如下:
void StartMotol (uchar direct, uchar speed)
//direct 1:正轉(zhuǎn) 0:反轉(zhuǎn) speed 1:快速 0:慢速
{
        smode = (speed == 0)?0:0xff
        TR0 = 0;
        TH0 = 0XFC;
        TL0 = 0XE0;
        TR0 = 1;
        if(direct)
        {
            motolconz = 0;
            motolconf = 1;
            }
         else
         {
            motolconz = 1;
            motolconf = 0;
            }
}
開關(guān)門子程序
開門子程序用于控制自動門開門的整個過程。當(dāng)有人靠近自動門或有物體被夾住時,該程序首先控制電機(jī)快速開門;當(dāng)?shù)竭_(dá)減速位置時,程序控制電機(jī)慢速開門;當(dāng)?shù)竭_(dá)停止位置時,程序控制電機(jī)停轉(zhuǎn),并定時5秒。在定時過程中,程序不斷判斷是否有人靠近自動門,若有則重新定時。程序代碼如下:
void OpenDoor ()
{
         uchar tcnt;
         if((gatesensor ==1)&&(comparator == 1))
             return;
         StartMotol (1,1);
         while (sensorB2 ==0);   //判斷是否減速
         StartMotol (1,0);
         while(sensorB1 ==0);   //判斷是否停止運(yùn)動
         StopMotol ();
         tcnt = 0;
         while(tcnt<101)
         {
             TR1 = 0;
             TH1 = 0X3C;
             TL1 = 0XB0;
             TF1 = 0;
             TR1 = 1;
             while(TF1 == 0);
             TF1 = 0;
             if(gatesensor ==1)
                tcnt = 0;
             else
                tcnt = + +;
         }
         flagclose = 1;
}
關(guān)門子程序:


void CloseDoor()
{
        if(flagclose == 0)
           return;
        flagclose = 0;
        StartMotol(0,1);
        while(sensorB3 == 1)  //判斷是否減速
        {
            if(gatesensor == 1)
                return;
            if(comparator == 0)
                return;
            }
        StartMotol(0,0);
        while(sensorB4 == 0)   //判斷是否停止轉(zhuǎn)動
        {
            if(gatesensor == 1)
                return;
            if(comparator == 0)
                return;
             }
         StopMotol();
}
測試主程序
該程序主要調(diào)用相關(guān)子程序,實(shí)現(xiàn)了自動門的開關(guān)門及防夾等功能,代碼如下:
#include <REGX51.H>
typedef unsigned char uchar;
typedef unsigned int uint;
sbit PWMPIN = P3^4;
sbit motolconz = P1^3;
sibt motolconf = P1^4;
uchar smode,cyclet;
sbit gatesensor = P3^2;
sbit sensorB1 = P3^1;
sbit sensorB2 = P1^5;
sbit sensorB3 = P1^6;
sbit sensorB4 = P3^0;
sbit comparator = P3^6;
bit flagcclose;
void InTimer01()
{
   TMOD = 0X11;
    ET0= 1;
    EA= 1;
    }

   void main()
    {
       InTimer01();
       while(1)
       {
            OpenDoor();
            CloseDoor();
            }
        }


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品欧美二区 | caoporn国产精品免费公开 | 欧美大片一区二区 | 日韩电影一区二区三区 | 狠狠综合久久av一区二区老牛 | 欧美精品一区二区在线观看 | 久久精品久久综合 | 日韩中文字幕在线观看 | 国产精品视频一区二区三 | 黄色av网站在线观看 | 国产一区二区三区 | 人人干在线 | 亚洲成人av在线播放 | 日韩高清一区 | 性一交一乱一透一a级 | 成人在线播放 | 国产精品久久久久久久7777 | 国产精品国产三级国产aⅴ中文 | 夜久久| 日本三级线观看 视频 | 欧美中文字幕 | 99久久精品国产一区二区三区 | 亚洲成人日韩 | av免费入口 | 精品自拍视频在线观看 | 97精品国产97久久久久久免费 | 久久精品免费 | 91av视频在线观看 | 久久成人精品视频 | 亚洲欧美综合精品久久成人 | 午夜精品久久久久久久星辰影院 | 日韩中文字幕 | 欧美涩涩网 | 亚洲综合在线视频 | 黄网站免费在线观看 | 在线观看免费高清av | 自拍偷拍精品 | 九九看片 | 亚洲综合日韩精品欧美综合区 | 99精品视频在线观看 | 午夜日韩 |