十六,128X64无字库液晶4X4键盘输入使用(密码锁).doc
0436、AT89S52多功能板DXP资料及其相关资料
收藏
资源目录
压缩包内文档预览:
编号:551023
类型:共享资源
大小:3.23MB
格式:RAR
上传时间:2015-12-06
上传人:QQ28****1120
认证信息
个人认证
孙**(实名认证)
辽宁
IP属地:辽宁
6
积分
- 关 键 词:
-
毕业设计论文
- 资源描述:
-
0436、AT89S52多功能板DXP资料及其相关资料,毕业设计论文
- 内容简介:
-
十六, 128X64 无字库液晶 4X4 键盘输入使用( 密码锁 ) 引脚 标号 功能说明 备注 1 Vss 逻辑 负 电 源 输 入引脚 , 0V 2 Vdd 逻辑 正 电 源 输 入引脚 , +5V 3 Vo LCD驱动电 源 输 入引脚 ,大 小 可 调 LCD显示 对比 度 一 般 接 0V 4 RS 数据 /指令 寄 存器 选择引脚 RS=“ H” :数据 D0-D7 与数据 寄 存器通 信 RS=“ L” :数据 D0-D7 与指令 寄 存器通 信 5 R/W 读 /写选择引脚 高电 平 : 读 数据 低 电 平 : 写 数据 若 不 须 要 读操 作功能, 该引脚 可 直 接接地 6 E 读写 使能 引脚 高电 平 有 效 ,下 降沿锁 定数据 7 14 D0 D7 8 位数据线 引脚 4 位 总 线模式 下, D0 D3 引 脚断开 15 A 背光电 源 输 入引脚 , +5V 不 带 背光的模 块 无此引脚 16 K 背光电 源 输 入引脚 , 0V #include #include #include #define uchar unsigned char #define uint unsigned int #define data_IO P2 sbit rs=P30; /指令和数据寄存器 “ 1 是数据,” “ 0 是指令” sbit rw=P31; /读写控制,“ 1 读” “ 0 写” sbit e=P32; /片选信号 sbit p=P27; sbit deng=P00 ; /响音乐的端口 sbit md=P01; /修改密码时的灯 uchar pwflag; /密码是否正确的标志位 uchar count; / ntsuchar gg=0 ; /只有输入正确的密码才能修改密码 uchar cs=3 ; /输入密码的错误次数 uchar m=1,2,3,4,5,6; /初始密码 static uchar mbuf6;/输入的密码 char d32= ,I,M,P,O,R,T, ,C,I,P,H,E,R,:, , , ,_, , ,_,_,_,_,_,_, , , , , ;/输入密码 code char ks32=C,O,N,G,R,A,T,U,L,A,T,E, ,Y,O,U, ,O,P,E,N,I,N,G, , ,L,O,C,K,!, ;/开锁 code char cw32= ,C,I,P,H,E,R, , ,E,R,R,O,R, , , , ;/错误 code char xc32= , ,A,M,E,N,D, ,S,U,C,C,E,E,D, , , , , , ,!,!,!,!,!,!, , , , , ;/修改成功 code char xg32= ,A,M,E,N,D, , ,C,I,P,H,E,R,:, , , , , , ,_,_,_,_,_,_, , , , , ;/修改密码 */ void yanshi(uint n)/延时函数 / uint i; for(i=0;in;i+); void delay(uint n)/延时函数 / uint i,j; for(i=0;i1000;i+) for(j=0;jn;j+) void busy() /判断是否忙 / data_IO=0xff; rs=0; /写指令 / rw=1; /表示读状态 / 三个的状态表示 / e=1; /下降延 / / 判忙状态 / nts while(!p); / / e=0; void xiezl(uchar shuju) /*写指令 */ busy();/*yanshi(6500);*/ data_IO=shuju; rs=0; /写指令 / rw=0; /表示写状态 / 三个的状态表示 / e=1; /下降延 / / 写指令 / e=0; / / void w_dat(uint n)/写数据 / busy(); /*yanshi(6500) ;*/ data_IO=n; rs=1; /写数据 / rw=0; /表示写状态 / 三个的状态表示 / e=1; /下降延 / /写数据 / e=0; / / / return; void xianshi(uchar js) /显示函数 / uchar h,v; xiezl(0x01); /清屏显示 yanshi(2000) ; xiezl(0x80); / DDRAM 地址的设置 for(h=0;h16;h+) w_dat(jsh); /n 表示有写几位数据 yanshi(100) ; xiezl(0xc0);/换行 for(v=(16);v32;v+) w_dat(jsv); /n 表示有写几位数据 yanshi(100) ; void chushihua(void)/*液晶模块初始化 */ uchar i; nts rs=0; /写指令 rw=0; /表示写状态 e=0; /使能 for(i=0;i3;i+) xiezl(0x38); /功能设置 ,8 位 ,一行显示 ,5*7 点阵 yanshi(1000); xiezl(0x38); /两行显示 xiezl(0x0f); /显示开关控制位 xiezl(0x18); /移位控制 ,光标和显示一起左移 xiezl(0x06); /设置输入模式 xiezl(0x01); /清屏显示 xiezl(0x80); / DDRAM 地址的设置 bit pwcmp(void) bit flag; uchar i; for (i=0;i6;i+) if (mi=mbufi) flag = 1; /*密码正确 */ else flag = 0; i=6; /*密码错误 */ return(flag); void gb(void)/转移光标 uchar c; xiezl(0xc0);/换行 yanshi(3000) ; for(c=0;c5;c+) w_dat( );/n 表示有写几位数据 yanshi(2000) ; uchar getkey(void)/得到键值 uchar h,l,k; while(P1!=0x0f) h=P1&0x0f; P1=0xf0; l=P1&0xf0; nts k=h|l; return(k); void diaoyong(uchar i)/调用各键的函数 /输入密码 uchar lq; switch(i) case 0x7e: if (count6) mbufcount=1; count+; w_dat(*); break; / 01111110 1 case 0xbe: if (count6) mbufcount=2; count+; w_dat(*);break; / 10111110 2 case 0xde: if (count6) mbufcount=3; count+; w_dat(*); break; / 11011110 3 case 0xee: if (count6) mbufcount=4; count+; w_dat(*); break; / 11101110 4 case 0x7d: if (count6) mbufcount=5; count+; w_dat(*); break; / 01111101 5 case 0xbd: if (count6) mbufcount=6; count+; w_dat(*); break; / 10111101 6 case 0xdd: if (count6) mbufcount=7; count+; w_dat(*); break; / 11011101 7 case 0xed: if (count6) mbufcount=8; count+; w_dat(*); break; / 11101101 8 case 0x7b: if (count6) mbufcount=9; count+; w_dat(*); break; / 01111011 9 case 0xbb: if (count6) mbufcount=0; count+; w_dat(*);break; / 10111011 0 case 0xdb: if (count=6) pwflag = pwcmp(); else pwflag = 0;/ 只有输入 6 个密码后按确认键才作密码比较 if(pwflag) deng=0; xianshi(ks);gg=1; else cs-;deng=1; xianshi(cw); delay(200); xianshi(d);gb();count = 0; break; / 11011011 a case 0xeb: count = 0;deng=1; xianshi(d); gb();gg=0; /*取消键 */ break; / 11101011 b case 0x77: if(gg=1) count=0;xianshi(xg); gb(); /修该密码 break; / 01110111 c case 0xb7: if(count=6)&(gg=1) count=0;for nts(lq=0;lq6;lq+) mlq=mbuflq; yanshi(10000); md=0; xianshi(xc); delay(200);md=1; xianshi(d);yanshi(2000);gb();yanshi(200);gg=0;/保存密码 break; / 10110111 d /*case 0xd7: srjm=e; break; / 11010111 e case 0xe7: srjm=f; break
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
2:不支持迅雷下载,请使用浏览器下载
3:不支持QQ浏览器下载,请用其他浏览器
4:下载后的文档和图纸-无水印
5:文档经过压缩,下载后原文更清晰
|