找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2418|回復(fù): 3
收起左側(cè)

商場自動開閉門控制 單片機(jī)程序

[復(fù)制鏈接]
ID:280979 發(fā)表于 2019-11-13 00:10 | 顯示全部樓層 |閱讀模式
具體動作流程如下描述:
1、12V電源輸入>>> R3 NC(常閉) ( 只提供接點(diǎn)開關(guān)沒有電源輸出LED A ON)
2、按B1>>>R1 NC>NO(吸合5秒后斷開)五秒後回原 (用作開門)
3、按B2>>>R3 NC>NO(吸合)(LED A OFF) >>>R2 NC>NO(吸合)>>>R4 NC>NO(吸合) (LED B ON)
4、按B3>>>R1 NC>NO(吸合5秒后斷開)五秒後回原 (用作開門)>>> R2 NO>NC(斷開)>>>R3 NO>NC(斷開) (LED A ON)>>>R4 NC (斷開) (LED B OFF)
5、鎖匙開關(guān)NO常開鎖門 >>>R2 NC>NO(吸合)>>>R3 NC>NO(吸合) (LED A OFF) >>>R4 NC>NO(吸合) (LED B ON)
6、鎖匙開關(guān)NC常閉開門 >>>R2 NC(斷開)>>>R3 NC(斷開) (LED A ON)>>>R4 NC(斷開) (LED B OFF)
#include<reg52.h>                 //庫文件
#define uchar unsigned char//宏定義無符號字符型
#define uint unsigned int  //宏定義無符號整型

/**************************************************************************/
/********************************************************************
                            初始定義
*********************************************************************/

/*定義八位輸入為單片機(jī)P1口*/
sbit IN1=P1^0;        //        啟動 NG
sbit IN2=P1^1;        //        LED
sbit IN3=P1^4;        //
sbit IN4=P1^5;        //
sbit IN5=P1^6;        //
sbit IN6=P1^7;        //

/*定義八位輸出為單片機(jī)P2口*/
sbit K1=P2^0;        //
sbit K2=P2^1;   //
sbit K3=P2^2;   //
sbit K4=P2^3;   //
sbit K5=P2^4;        //
sbit K6=P2^5;        //

bit bz1=0;
bit bz2=0;
bit bz3=0;
bit bz4=0;
bit bz5=0;
bit bz6=0;

bit hs1=0;

bit sj1=0;
bit sj2=0;
uchar jsbz1=0;
uchar jsbz2=0;

uint sec; //定義計數(shù)值,每過1/10 秒,sec 加一
uchar keycnt=0;//按下次數(shù)值
uint tcnt; //鍵值判斷
uchar k=50;
/********************************************************************
                            延時函數(shù)
*********************************************************************/
void delay(uchar t)
{
  uchar i,j;
   for(i=0;i<t;i++)
   {
            for(j=100;j>0;j--);
         { ;
         }
   }
}

/********************************************************************
                            定時中斷服務(wù)函數(shù)
*********************************************************************/
void t0(void) interrupt 1 using 0 //定時中斷服務(wù)函數(shù)
{
        tcnt++; //每過250ust tcnt 加一
        if(tcnt==400) //計滿4000 次(1秒)時
        {
        tcnt=0; //重新再計
if(sj1==1){K1=0;jsbz1++;if(jsbz1>=50){K1=1;jsbz1=0;sj1=0;}}
        }
}

/********************************************************************
                            主函數(shù)
*********************************************************************/
void main()
{
        TMOD=0x02; //定時器工作在方式2
        ET0=1;
        EA=1;
        sec=0;
        TR0=1;
        TH0=0x06; //對TH0 TL0 賦值
        TL0=0x06;
  P2=0XFF;
        while(1)
        {
         if((IN1==0)&&(bz1==0)&&(hs1==0)){delay(100);if(IN1==0){sj1=1;bz1=1;}}if((IN1==1)&&(bz1==1)){bz1=0;}
  if((IN2==0)&&(bz2==0)){delay(100);hs1=1;K2=0;K3=0;K4=0;bz2=1; }if((IN2==1)&&(bz2==1)){bz2=0;}
         if((IN3==0)&&(bz3==0)){delay(100);hs1=0;if(IN3==0){sj1=1;K2=1;K3=1;K4=1;bz3=1; }}if((IN3==1)&&(bz3==1)){bz3=0;}
  if((IN4==0)&&(bz4==0)){delay(100);hs1=1;K2=0;K3=0;K4=0;bz4=1; }if((IN4==1)&&(bz4==1)){bz4=0;}
  if((IN5==0)&&(bz5==0)){delay(100);hs1=0;K2=1;K3=1;K4=1;bz5=1; }if((IN5==1)&&(bz5==1)){bz5=0;}        

    }
}
/********************************************************************
                              結(jié)束
*********************************************************************/

keil.rar

36.16 KB, 下載次數(shù): 25, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報

ID:640907 發(fā)表于 2019-11-13 06:37 | 顯示全部樓層
感謝
回復(fù)

使用道具 舉報

ID:645963 發(fā)表于 2019-11-20 18:33 | 顯示全部樓層
感謝分享奧
回復(fù)

使用道具 舉報

ID:1051684 發(fā)表于 2023-7-31 01:31 | 顯示全部樓層
普通家用行不行啊,
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表