- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 longbit 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)