門禁控制器代碼
門禁系統(tǒng)是在智能建筑領(lǐng)域,意為Access Control System,簡稱ACS。指“門”的禁止權(quán)限,是對“門“的戒備防范。這里的“門”,廣義來說,包括能夠通行的各種通道,包括人通行的門,車輛通行的門等。因此,門禁就包括了車輛門禁。在車場管理應(yīng)用中,車輛門禁是車輛管理的一種重要手段,不以收取停車費(fèi)為目的,主要是管理車輛進(jìn)出權(quán)限。
出入口門禁安全管理系統(tǒng)是新型現(xiàn)代化安全管理系統(tǒng),它集微機(jī)自動識別技術(shù)和現(xiàn)代安全管理措施為一體,它涉及電子,機(jī)械,光學(xué),計算機(jī)技術(shù),通訊技術(shù),生物技術(shù)等諸多新技術(shù)。它是解決重要部門出入口實(shí)現(xiàn)安全防范管理的有效措施。適用各種機(jī)要部門,如銀行、賓館、車場管理、機(jī)房、軍械庫、機(jī)要室、辦公間,智能化小區(qū),工廠等。
門禁系統(tǒng)早已超越了單純的門道及鑰匙管理,它已經(jīng)逐漸發(fā)展成為一套完整的出入管理系統(tǒng)。它在工作環(huán)境安全、人事考勤管理等行政管理工作中發(fā)揮著較大的作用。
門禁系統(tǒng)源程序
#include 《reg51.h》
#include 《Intrins.h》
#define DATA P0 //1602驅(qū)動端口
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寫數(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); //開顯示,無光標(biāo)顯示
WriteCommand(0x06); //文字不動,光標(biāo)自動右移
WriteCommand(0x38); //設(shè)置顯示模式:8位2行5x7點(diǎn)陣
WriteCommand(0x40);
//for(i=0;i《24;i++) //日字產(chǎn)生
//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);
}
}
非常好我支持^.^
(3) 100%
不好我反對
(0) 0%
相關(guān)閱讀:
- [電子說] PY32F002A系列單片機(jī):高性價比、低功耗,滿足多樣化應(yīng)用需求 2023-10-24
- [電子說] 如何在Windows系統(tǒng)上設(shè)置Docker鏡像源 2023-10-24
- [電子說] 一種用于高精度測量應(yīng)用的低功耗模數(shù)轉(zhuǎn)換器(ADC)解決方案 2023-10-24
- [移動通信] 5G網(wǎng)絡(luò)特性對車聯(lián)網(wǎng)應(yīng)用發(fā)展的影響 2023-10-24
- [電子說] 蜂窩物聯(lián):物聯(lián)網(wǎng)智能控制器,多種傳感器接入,一部手機(jī)控制全部設(shè)備 2023-10-24
- [電子說] STM32基礎(chǔ)知識:中斷系統(tǒng) 2023-10-24
- [模擬技術(shù)] 碳化硅芯片國際發(fā)展的現(xiàn)狀與總體趨勢 2023-10-24
- [電子說] ARM系列-P Channel簡析 2023-10-24
( 發(fā)表人:龔婷 )