欢迎您访问科普小知识本站旨在为大家提供日常生活中常见的科普小知识,以及科普文章!
您现在的位置是:首页  > 科技知识

门禁控制器代码

科普小知识2021-11-03 05:31:31
...

门禁系统是在智能建筑领域,意为Access Control System,简称ACS。指“门”的禁止权限,是对“门“的戒备防范。这里的“门”,广义来说,包括能够通行的各种通道,包括人通行的门,车辆通行的门等。因此,门禁就包括了车辆门禁。在车场管理应用中,车辆门禁是车辆管理的一种重要手段,不以收取停车费为目的,主要是管理车辆进出权限。

出入口门禁安全管理系统是新型现代化安全管理系统,它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,光学,计算机技术,通讯技术,生物技术等诸多新技术。它是解决重要部门出入口实现安全防范管理的有效措施。适用各种机要部门,如银行、宾馆、车场管理、机房、军械库、机要室、办公间,智能化小区,工厂等。

门禁系统早已超越了单纯的门道及钥匙管理,它已经逐渐发展成为一套完整的出入管理系统。它在工作环境安全、人事考勤管理等行政管理工作中发挥着较大的作用。

门禁控制器代码

门禁系统源程序

#include 《reg51.h》

#include 《Intrins.h》

#define DATA P0 //1602驱动端口

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写指令程序

void WriteCommand(unsigned char btCommand)

{

Busy();

RS = 0;

RW = 0;

E = 1;

DATA = btCommand;

E = 0;

}

//LED写数据程序

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); //开显示,无光标显示

WriteCommand(0x06); //文字不动,光标自动右移

WriteCommand(0x38); //设置显示模式:8位2行5x7点阵

WriteCommand(0x40);

//for(i=0;i《24;i++) //日字产生

//WriteData(rizi[i]);

}

//LED显示单个字符

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);

}

}