门禁系统源程序.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
门禁系统源程序

#include reg51.h#include Intrins.h#defineDATAP0 //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;i24;i++) //日字产生 //WriteData(rizi[i]); }//LED显示单个字符void DisplayOne(bit bRow, unsigned char btColumn, unsigned char btData, bit bIsNumber){if (bRow) WriteCommand(0xc0 + btColumn);elseWriteCommand(0x80 + btColumn);if (bIsNumber) WriteData(btData + 0x30);elseWriteData(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=P14^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;t120;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;c14;c++)WriteData(tab3[c]); P1=0xf0; if(P1!=0xf0) Keys_Scan(); if(Pre_KeyNo!=KeyNo) { if(KeyNo=0KeyNo=9) { tab[i++]=KeyNo; DisplayOne(1,i, *,0); //DisplayOne(0,i, KeyNo,1); } if(KeyNo==14) { while(P1!=0xf0); goto loop1; } if(KeyNo==11)KA=1; if(KeyNo==10) { for(j=0;j6;j++) if(tab[j]!=tab1[j])break; if(j==6) { KA=0; for(j=0;j6;j++) tab[j]=0; } while(P1!=0xf0); goto loop1; } if(KeyNo==12){ i=0; WriteCommand(0x80

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档