找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1650|回复: 3
打印 上一主题 下一主题
收起左侧

商场自动开闭门控制 单片机程序

[复制链接]
跳转到指定楼层
#
ID:280979 发表于 2019-11-13 00:10 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
具体动作流程如下描述:
1、12V電源輸入>>> R3 NC(常闭) ( 只提供接點開關沒有電源輸出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、鎖匙開關NO常开锁门 >>>R2 NC>NO(吸合)>>>R3 NC>NO(吸合) (LED A OFF) >>>R4 NC>NO(吸合) (LED B ON)
6、鎖匙開關NC常闭开门 >>>R2 NC(断开)>>>R3 NC(断开) (LED A ON)>>>R4 NC(断开) (LED B OFF)
#include<reg52.h>                 //库文件
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int  //宏定义无符号整型

/**************************************************************************/
/********************************************************************
                            初始定义
*********************************************************************/

/*定义八位输入为单片机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;        //

/*定义八位输出为单片机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; //定义计数值,每过1/10 秒,sec 加一
uchar keycnt=0;//按下次数值
uint tcnt; //键值判断
uchar k=50;
/********************************************************************
                            延时函数
*********************************************************************/
void delay(uchar t)
{
  uchar i,j;
   for(i=0;i<t;i++)
   {
            for(j=100;j>0;j--);
         { ;
         }
   }
}

/********************************************************************
                            定时中断服务函数
*********************************************************************/
void t0(void) interrupt 1 using 0 //定时中断服务函数
{
        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;}}
        }
}

/********************************************************************
                            主函数
*********************************************************************/
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;}        

    }
}
/********************************************************************
                              结束
*********************************************************************/

keil.rar

36.16 KB, 下载次数: 24, 下载积分: 黑币 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶1 踩
回复

使用道具 举报

板凳
ID:1051684 发表于 2023-7-31 01:31 | 只看该作者
普通家用行不行啊,
回复

使用道具 举报

沙发
ID:645963 发表于 2019-11-20 18:33 | 只看该作者
感谢分享奥
回复

使用道具 举报

楼主
ID:640907 发表于 2019-11-13 06:37 | 只看该作者
感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表