您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>語(yǔ)音視頻>安防監(jiān)控>

門(mén)禁控制器代碼

2018年01月19日 17:39 網(wǎng)絡(luò)整理 作者: 用戶評(píng)論(0

門(mén)禁系統(tǒng)是在智能建筑領(lǐng)域,意為Access Control System,簡(jiǎn)稱(chēng)ACS。指“門(mén)”的禁止權(quán)限,是對(duì)“門(mén)“的戒備防范。這里的“門(mén)”,廣義來(lái)說(shuō),包括能夠通行的各種通道,包括人通行的門(mén),車(chē)輛通行的門(mén)等。因此,門(mén)禁就包括了車(chē)輛門(mén)禁。在車(chē)場(chǎng)管理應(yīng)用中,車(chē)輛門(mén)禁是車(chē)輛管理的一種重要手段,不以收取停車(chē)費(fèi)為目的,主要是管理車(chē)輛進(jìn)出權(quán)限。

出入口門(mén)禁安全管理系統(tǒng)是新型現(xiàn)代化安全管理系統(tǒng),它集微機(jī)自動(dòng)識(shí)別技術(shù)和現(xiàn)代安全管理措施為一體,它涉及電子,機(jī)械,光學(xué),計(jì)算機(jī)技術(shù),通訊技術(shù),生物技術(shù)等諸多新技術(shù)。它是解決重要部門(mén)出入口實(shí)現(xiàn)安全防范管理的有效措施。適用各種機(jī)要部門(mén),如銀行、賓館、車(chē)場(chǎng)管理、機(jī)房、軍械庫(kù)、機(jī)要室、辦公間,智能化小區(qū),工廠等。

門(mén)禁系統(tǒng)早已超越了單純的門(mén)道及鑰匙管理,它已經(jīng)逐漸發(fā)展成為一套完整的出入管理系統(tǒng)。它在工作環(huán)境安全、人事考勤管理等行政管理工作中發(fā)揮著較大的作用。

門(mén)禁系統(tǒng)源程序

#include 《reg51.h》

#include 《Intrins.h》

#define DATA P0 //1602驅(qū)動(dòng)端口

sbit RS=P2^0;

sbit RW=P2^1;

sbit E=P2^2;

sbit KA=P2^7;

int Pre_KeyNo=16,KeyNo=16;

void delayMs( int x);

void Keys_Scan();

void Busy() //LED液晶是否忙碌

{

DATA = 0xff;

RS = 0;

RW = 1;

while(DATA & 0x80)

{

E = 0;

E = 1;

}

E = 0;

}

//LED寫(xiě)指令程序

void WriteCommand(unsigned char btCommand)

{

Busy();

RS = 0;

RW = 0;

E = 1;

DATA = btCommand;

E = 0;

}

//LED寫(xiě)數(shù)據(jù)程序

void WriteData(unsigned char btData)

{

Busy();

RS = 1;

RW = 0;

E = 1;

DATA = btData;

E = 0;

}

//LED清屏顯示

void Clear()

{

WriteCommand(1);

}

//LED初始化

void Init()

{

WriteCommand(0x0c); //開(kāi)顯示,無(wú)光標(biāo)顯示

WriteCommand(0x06); //文字不動(dòng),光標(biāo)自動(dòng)右移

WriteCommand(0x38); //設(shè)置顯示模式:8位2行5x7點(diǎn)陣

WriteCommand(0x40);

//for(i=0;i《24;i++) //日字產(chǎn)生

//WriteData(rizi[i]);

}

//LED顯示單個(gè)字符

void DisplayOne(bit bRow, unsigned char btColumn, unsigned char btData, bit bIsNumber)

{

if (bRow) WriteCommand(0xc0 + btColumn);

else WriteCommand(0x80 + btColumn);

if (bIsNumber) WriteData(btData + 0x30);

else WriteData(btData);

}

void Keys_Scan()

{

char Tmp;

P1=0x0f; delayMs(1);

Tmp=P1^0x0f;

switch(Tmp)

{

case 1:KeyNo=0;break;

case 2:KeyNo=1;break;

case 4:KeyNo=2;break;

case 8:KeyNo=3;break;

default:KeyNo=16;

}

P1=0xf0;

delayMs(1);

Tmp=P1》》4^0x0f;

switch(Tmp)

{

case 1:KeyNo+=0; break;

case 2:KeyNo+=4; break;

case 4:KeyNo+=8; break;

case 8:KeyNo+=12;

}

}

void delayMs( int x)

{

char t; while(x--)

for(t=0;t《120;t++);

}

void main()

{

int hang=0,c=0;

int i,j=0;

unsigned char tab[12],tab1[12]={1,1,1,1,1,1};

unsigned char tab3[]=“welcome to ”;

unsigned char tab4[]=“alter password.”;

unsigned char tab5[]=“OK”;

unsigned char tab6[]=“NO”;

Init();

loop1:Clear();

i=0;

KeyNo=16;

while(1)

{

WriteCommand(0x80);

for(c=0;c《14;c++)WriteData(tab3[c]);

P1=0xf0;

if(P1!=0xf0) Keys_Scan();

if(Pre_KeyNo!=KeyNo)

{

if(KeyNo》=0&&KeyNo《=9)

{

tab[i++]=KeyNo;

DisplayOne(1,i, ‘*’,0);

//DisplayOne(0,i, KeyNo,1);

}

if(KeyNo==14)

var cpro_id = “u2845472”;

{

while(P1!=0xf0);

goto loop1;

}

if(KeyNo==11)KA=1;

if(KeyNo==10)

{

for(j=0;j《6;j++)

if(tab[j]!=tab1[j])break;

if(j==6)

{

KA=0; for(j=0;j《6;j++) tab[j]=0;

}

while(P1!=0xf0);

goto loop1;

} if(KeyNo==12)

{

i=0;

WriteCommand(0x80);

for(c=0;c《16;c++)WriteData(tab4[c]);

while(1)

{

KeyNo=16;

P1=0xf0;

if(P1!=0xf0) Keys_Scan();

if(Pre_KeyNo!=KeyNo)

{

if(KeyNo》=0&&KeyNo《=9)

{

tab1[i++]=KeyNo;

DisplayOne(1,i, ‘*’,0);

// DisplayOne(0,i, KeyNo,1);

}

}

while(P1!=0xf0);

if(KeyNo==13)goto loop1;

}

}

KeyNo=16;

while(P1!=0xf0);

}

delayMs(100);

}

}

非常好我支持^.^

(3) 100%

不好我反對(duì)

(0) 0%

( 發(fā)表人:龔婷 )

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?