|
具體動作流程如下描述:
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
2019-11-13 00:10 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
36.16 KB, 下載次數: 25, 下載積分: 黑幣 -5
|