网站大量收购独家精品文档,联系QQ:2885784924

门禁系统源程序.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
------WORD格式-----可编辑------- --- #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;i24;i++) // 日字产生 //WriteData(rizi[i]); } //LED 显示单个字符 void DisplayOne(bit bRow, unsigned char btColumn, unsigned char btData, bit bIsNumber) { if (bRow) else  WriteCommand(0xc0 + btColumn); WriteCommand(0x80 + btColumn); if (bIsNumber) else  WriteData(btData + 0x30); 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=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++)

文档评论(0)

明若晓溪 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档