单片机密码锁C程序完整代码.doc

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

单片机密码锁C程序完整代码 2009-08-18 14:39 #includeAT89x51.h #includeintrins.h #includekey.h #includexsh.h #include24c02.h #define ulong unsigned long bit BJCB=0;//报警标志?????? ???? XG=0,//修改密码标志位 ???? BJ=0,//报警标志位 ???? SJ=0;//锁键盘标志位 ??? // xg=0;//修改密码标志位 uchar PSWD0_0[16]={0};//密码输入缓存存储单元 //uchar code PSWD0_1[16]={1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8};//用户初始密码存储单元 //uchar PSWD1_0[16]={0};//读出密码缓存存储单元 uchar PSWD1_1[16]={1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8};//管理员初始密码存储单元 sbit OUT=P3^5;//输出端口 sbit L1=P0^2;//上电指示 sbit L2=P0^1;//开锁指示 sbit L3=P0^0;//报警指示 uint?? mg=0,//密码个数 ?????? KSC=0,//开锁次数 ?????? BJC=0,//报警次数 ??? TCNTY=0,//用户按键定时次数累加 ??? TCNTG=0,//管理员输入密码定时次数 ??? yhsh,//用户输入标志位 ??? glsh,//管理员输标志位 ??? shw;//密码输完标志位 void yhmimaxig();//密码修改程序 void glmimaxig();//管理员修改程序 void bjyin(ulong t) { ulong c; uint n; for(c=0;ct;c++) { for(n=0;n50;n++); //延时 BEEP=~BEEP; //取反输出到喇叭的信号 } } void delay_10ms(void) { uint i = 1000; while(i--); } //////////////定时中断服务函数////////////////////////////////////// void timer0() interrupt 1 { uint i; TH0=(65536-50000)/256; //对TH0 TL0赋值50MS定时 TL0=(65536-50000)%256; //重装计数初值 if(yhsh==1) { TCNTY++;//用户定时计数 if(shw==1) { TR0=0; TCNTY=0; } if(TCNTY==200) { ?? TR0=0;//关闭T0定时器 ?? TCNTY=0; ??? mg=0;//密码个数清零 L1=1; for(i=0;i2;i++)//声光报警电路 { ??? L3=0; ??? bjyin(1000); ??? L3=1; ??? delay(1000); ?? } ?? L1=0; ???? } ??? } else if(glsh==1) ???? { ?? TCNTG++;//管理员定时计数 ???????? if(shw==1) ??????? { ?????????? TR0=0; ?????????? TCNTG=0; ???????? } ?????? if(TCNTG==160) ?????? { ??????? TR0=0;//关闭T0定时器 ??????? TCNTG=0; ??????? mg=0;//密码个数清零 L1=1; ????? for(i=0;i2;i++)//声光报警电路 ???? { ??? L3=0; ??? bjyin(1000); ??? L3=1; ??? delay(1000); ?? } ?? L1=0; } }??? }??????? ???? void main() { ?? uint i; ?? TMOD=0x01; //定时器工作在方式1 ?? ET0=1; ?? EA=1; ?? TH0=(65536-50000)/256; //对TH0 TL0赋值 ?? TL0=(65536-50000)%256; //使定时器0.05秒中断一次 //Read_page24c02(0x00,PSWD1_1,16);//向24c02里读用户初始密码 ?? //i2cWrite24LC16B(0,0X20); /////////////第一次向24c02里写入初始管理员密码、用户密码、开锁次数///////////////////// KSC=i2cRead2

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档