|
|
具體動(dòng)作流程如下描述:
1、12V電源輸入>>> R3 NC(常閉) ( 只提供接點(diǎn)開(kāi)關(guān)沒(méi)有電源輸出LED A ON)
2、按B1>>>R1 NC>NO(吸合5秒后斷開(kāi))五秒後回原 (用作開(kāi)門(mén))
3、按B2>>>R3 NC>NO(吸合)(LED A OFF) >>>R2 NC>NO(吸合)>>>R4 NC>NO(吸合) (LED B ON)
4、按B3>>>R1 NC>NO(吸合5秒后斷開(kāi))五秒後回原 (用作開(kāi)門(mén))>>> R2 NO>NC(斷開(kāi))>>>R3 NO>NC(斷開(kāi)) (LED A ON)>>>R4 NC (斷開(kāi)) (LED B OFF)
5、鎖匙開(kāi)關(guān)NO常開(kāi)鎖門(mén) >>>R2 NC>NO(吸合)>>>R3 NC>NO(吸合) (LED A OFF) >>>R4 NC>NO(吸合) (LED B ON)
6、鎖匙開(kāi)關(guān)NC常閉開(kāi)門(mén) >>>R2 NC(斷開(kāi))>>>R3 NC(斷開(kāi)) (LED A ON)>>>R4 NC(斷開(kāi)) (LED B OFF)
#include<reg52.h> //庫(kù)文件
#define uchar unsigned char//宏定義無(wú)符號(hào)字符型
#define uint unsigned int //宏定義無(wú)符號(hào)整型
/**************************************************************************/
/********************************************************************
初始定義
*********************************************************************/
/*定義八位輸入為單片機(jī)P1口*/
sbit IN1=P1^0; // 啟動(dòng) 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; //定義計(jì)數(shù)值,每過(guò)1/10 秒,sec 加一
uchar keycnt=0;//按下次數(shù)值
uint tcnt; //鍵值判斷
uchar k=50;
/********************************************************************
延時(shí)函數(shù)
*********************************************************************/
void delay(uchar t)
{
uchar i,j;
for(i=0;i<t;i++)
{
for(j=100;j>0;j--);
{ ;
}
}
}
/********************************************************************
定時(shí)中斷服務(wù)函數(shù)
*********************************************************************/
void t0(void) interrupt 1 using 0 //定時(shí)中斷服務(wù)函數(shù)
{
tcnt++; //每過(guò)250ust tcnt 加一
if(tcnt==400) //計(jì)滿(mǎn)4000 次(1秒)時(shí)
{
tcnt=0; //重新再計(jì)
if(sj1==1){K1=0;jsbz1++;if(jsbz1>=50){K1=1;jsbz1=0;sj1=0;}}
}
}
/********************************************************************
主函數(shù)
*********************************************************************/
void main()
{
TMOD=0x02; //定時(shí)器工作在方式2
ET0=1;
EA=1;
sec=0;
TR0=1;
TH0=0x06; //對(duì)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
2019-11-13 00:10 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
36.16 KB, 下載次數(shù): 25, 下載積分: 黑幣 -5
|