欢迎来到天天文库
浏览记录
ID:40722069
大小:43.00 KB
页数:9页
时间:2019-08-06
《电子密码锁程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、/********************************简易6位密码锁利用单片机STC89C52RC为基数设计的********************************/#include#defineucharunsignedchar#defineuintunsignedintsbitlcdrs=P2^1;//液晶数据指令端sbitlcdrw=P2^2;//读,写端sbitlcden=P2^3;//液晶使能端sbitspeaker=P3^2;//扬声器sbitled=P2^0;
2、//控制LEDucharcodetable[]={"enterpassword"};//输入密码ucharcodetable1[]={"error!tryagain"};//错误!再试一次ucharcodetable2[]={"welecome!!!"};//解锁成功ucharcodetable4[]={"setpassword"};//重置密码ucharcodetable5[]={"inputagain:"};//在输入密码ucharcodetable6[]={"fuckyou!"};//混蛋ucharcode
3、table7[]={"getout!!"};//滚开ucharcodetable8[]={"setsucceed"};//成功咯!bitflag,flag1,flag2,flag3,flag4,flag5,rst;ucharkey,count;/********************延时函数********************/voiddelayms(uintx){uinti,j;for(i=x;i>0;i--)for(j=110;j>0;j--);}/************************液晶指
4、令函数************************/voidwrite_com(ucharcom){lcdrw=0;lcdrs=0;P0=com;delayms(5);lcden=1;delayms(5);lcden=0;}/*************************液晶写数据函数*************************/voidwrite_data(uchardate){lcdrw=0;lcdrs=1;P0=date;delayms(5);lcden=1;delayms(5);lcden=
5、0;}/*******************液晶初始化函数*******************/voidlcdinit(){lcden=0;write_com(0x38);write_com(0x06);write_com(0x0f);write_com(0x01);}/******************键盘扫描函数******************/voidkeyscan(){uchartemp;P1=0xfe;if(P1!=0xfe){delayms(8);if(P1!=0xfe){temp=0xf0
6、&P1;switch(temp){case0xe0:key=1;write_data('*');flag5=1;count++;break;case0xd0:key=4;write_data('*');flag5=1;count++;break;case0xb0:key=7;write_data('*');flag5=1;count++;break;case0x70:flag=1;break;}while(P1!=0xfe);speaker=1;delayms(8);speaker=0;}}P1=0xfd;if(
7、P1!=0xfd){delayms(8);if(P1!=0xfe){temp=0xf0&P1;switch(temp){case0xe0:key=2;write_data('*');flag5=1;count++;break;case0xd0:key=5;write_data('*');flag5=1;count++;break;case0xb0:key=8;write_data('*');flag5=1;count++;break;case0x70:key=0;write_data('*');flag5=1;c
8、ount++;break;}while(P1!=0xfd);speaker=1;delayms(8);speaker=0;}}P1=0xfb;if(P1!=0xfb){delayms(8);if(P1!=0xfb){temp=0xf0&P1;switch(temp){case0xe0:key=3;write_data('*');flag5=1;count++;break;
此文档下载收益归作者所有