AT89C51单片机电子密码锁njz.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《AT89C51单片机电子密码锁njz.docx》由会员分享,可在线阅读,更多相关《AT89C51单片机电子密码锁njz.docx(57页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、基于ATT89CC51单单片机电电子密码码锁#inccluddemaiin.hh/* LCDD PAART STAART */ /55ms延延时voidd Deelayy5Mss(vooid)unssignned inttTemmpCyyc = 55552;whiile(TemmpCyyc-);/读状状态unsiigneed ccharr ReeadSStattusLLCM(voiid)LCM_Datta = 0xxFF; LCMM_RSS = 0;LCMM_RWW = 1;LCMM_E = 00;LCMM_E = 00;LCMM_E = 11;Dellay55Ms();whiile (LCC
2、M_DDataa & Bussy); /检测忙忙信号retturnn(LCCM_DDataa);/写数数据voidd WrriteeDattaLCCM(uunsiigneed ccharr WDDLCMM)ReaddStaatussLCMM(); /检测忙忙LCM_Datta = WDDLCMM;LCMM_RSS = 1;LCMM_RWW = 0;LCMM_E = 00; /若晶晶振速度度太高可可以在这这后加小小的延时时LCMM_E = 00; /延时时LCMM_E = 11;/写指指令voidd WrriteeCommmanndLCCM(uunsiigneed ccharr WCCLCMM,
3、BuuysCC) /BuuysCC为0时忽略略忙检测测if (BuuysCC) ReeadSStattusLLCM(); /根根据需要要检测忙忙LCM_Datta = WCCLCMM;LCMM_RSS = 0;LCMM_RWW = 0; LCMM_E = 00;LCMM_E = 00;LCMM_E = 11; /读数数据unsiigneed ccharr ReeadDDataaLCMM(vooid)LCMM_RSS = 1; LCMM_RWW = 1;LCMM_E = 00;LCMM_E = 00;LCMM_E = 11;retturnn(LCCM_DDataa);voidd LCCMInni
4、t(voiid) /LLCM初初始化LCM_Datta = 0;WritteCoommaandLLCM(0x338,00); /三三次显示示模式设设置,不不检测忙忙信号Dellay55Ms(); WritteCoommaandLLCM(0x338,00);Dellay55Ms(); WritteCoommaandLLCM(0x338,00);Dellay55Ms(); WritteCoommaandLLCM(0x338,11); /显显示模式式设置,开始要要求每次次检测忙忙信号WritteCoommaandLLCM(0x008,11); /关关闭显示示WritteCoommaandLLCM(0
5、x001,11); /显显示清屏屏WritteCoommaandLLCM(0x006,11); / 显示光光标移动动设置WritteCoommaandLLCM(0x00C,11); / 显示开开及光标标设置/按指指定位置置显示一一个字符符,x表示示列,YY表示行行voidd LCCD_wwritte_ccharr(unnsiggnedd chhar X,uunsiigneed ccharr Y, unnsiggnedd chhar DDaata)Y &= 00x1;X &= 00xF; /限制X不能大大于155,Y不能大大于1if (Y) X |= 00x400; /当要要显示第第二行时时地址
6、码码+0xx40;X |= 00x800; / 算算出指令令码WritteCoommaandLLCM(X, 0); /这里不不检测忙忙信号,发发送地址址码WritteDaataLLCM(DDaata);/按指指定位置置显示一一串字符符voidd LCCD_wwritte_sstriing(unssignned chaar XX,unnsiggnedd chhar Y, unnsiggnedd chhar codde *DDaata)unssignned chaar LListtLenngthh;ListtLenngthh = 0;Y &= 00x1;X &= 00xF; /限制X不能大大于15
7、5,Y不能大大于1whiile (*DDDatta) /若若到达字字串尾则则退出00就是是0if (X = 0xFF) /X坐坐标应小小于0xxFLCD_wriite_chaar(XX,Y, *DDDatta); /显示单单个字符符DDatta+; X+;/*/#inccludde#inccludde#deffinee uccharr unnsiggnedd chhar#deffinee uiint unssignned intt/* LCDD PAART STAART */voidd deelayy(uiint z) /延延时uinttx,yy;forr(x=z;xx0;x-)forr(y=
8、1244;y0;yy-);sbitt e=P25;sbittrw=PP266;sbittsr=PP277;uchaar ccodee naame=zxss;uchaar ccodee naame11=zccf;uchaar ccodee naame22=zxx;voidd wrritee_coom(uchhar comm)intrrs;rs=00;P0=comm;dellay(5);e=11;dellay(5);e=00;voidd wrritee_daata(uchhar datte)intrrs;rs=11;P0=datte;dellay(5);e=11;dellay(5);e=00;vo
9、idd innit()e=00;rw=00;writte_ccom(0x338);writte_ccom(0x00c);writte_ccom(0x006);writte_ccom(0x001);writte_ccom(0x880);voidd diispllay()uchaari;forr(i=0;i33;i+)writte_ddataa(naamei);writte_ccom(0x880+00x400);forr(i=0;i33;i+)writte_ddataa(naame11i);voidd maain()initt();dissplaay();#inccludde #deffinee
10、uccharr uunsiigneed ccharruchaarsttarbbuf10;uchaarwoordbbuf8;uchaar ppw88=1,22,3,4,55,6,7,88;uchaarpwwbuff8;uchaar ccounnt=00; / 初始没没有输入入密码,计计数器设设为0uchaarinnputtflaag=00;/ 先处于于密码输输入状态态,非密密码修改改状态bit entterfflagg=0; / 没有按按下确认认键bit pwfflagg=0; / 密码码标志先先置为00sbitt waarn=P36;#deffinee lccd_ddataa PP0sbitt
11、rs=PP277;sbittrw=PP266;sbitt e=P25;/LCCD16602驱驱动程序序/voidd deelayy_16602(unssignned intti) wwhille(ii-); voidd ennrw()rs=00;rw=00; ee=0; ddelaay_116022(2550); ee=1;writte_ddataa(uchhar c)lcd_datta=cc;rs=11;rw=00; ee=0; ddelaay_116022(2550); ee=1;initt_lccd(vvoidd)/初始化化lcd_datta=00x011;/清屏幕幕enrww();lc
12、d_datta=00x388;/数据长长度为88位,双行显显示,55*7字字符。enrww();lcd_datta=00x0cc;/打开显显示开关关enrww();lcd_datta=00x066;/地址计计数递增增,显示示屏不移移动enrww();writte_ccmd(uchhar m)/写命命令,注注意与写写数据的的区别 lcd_datta=mm;enrww();dispplayy(uccharrroww,uccharrcollum,uchhar *s)/行行列字符写字字符串,简简单的指指针应用用uchaar pp; iif(rrow=1) p=0x882+ccoluum-11; eel
13、see p=0xCC0+ccoluum-11;writte_ccmd(p); ffor(;*ss!=0;s+)writte_ddataa(*ss);voidd lccd_ddispplayy( uunsiigneed ccharr a, unnsiggnedd chhar b,uunsiigneed ccharr i) /行行列数swiitchh (ii)casse 00: diispllay( a,b, 0) ;breeak;/* 0 */casse 11: diispllay( a,b, 1) ;breeak;/* 1 */casse 22: diispllay( a,b, 2) ;bre
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AT89C51 单片机 电子 密码锁 njz
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内