門禁控制器代碼
門禁系統是在智能建筑領域,意為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);
}
}
非常好我支持^.^
(3) 100%
不好我反對
(0) 0%
相關閱讀:
- [電子說] PY32F002A系列單片機:高性價比、低功耗,滿足多樣化應用需求 2023-10-24
- [電子說] 如何在Windows系統上設置Docker鏡像源 2023-10-24
- [電子說] 一種用于高精度測量應用的低功耗模數轉換器(ADC)解決方案 2023-10-24
- [移動通信] 5G網絡特性對車聯網應用發展的影響 2023-10-24
- [電子說] 蜂窩物聯:物聯網智能控制器,多種傳感器接入,一部手機控制全部設備 2023-10-24
- [電子說] STM32基礎知識:中斷系統 2023-10-24
- [模擬技術] 碳化硅芯片國際發展的現狀與總體趨勢 2023-10-24
- [電子說] ARM系列-P Channel簡析 2023-10-24
( 發表人:龔婷 )