密码锁 程序.doc_第1页
密码锁 程序.doc_第2页
密码锁 程序.doc_第3页
密码锁 程序.doc_第4页
密码锁 程序.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

;程序名:密码锁;功能描述:四位密码保存在eeprom中,开机输入密码错误,等待重新输入;密码输入正确,密码锁打开;此状态下,可以修改新密码enter_flag bit 03h org 0000h sjmp main org 000bh ;ljmp ipt0 org 001bh ljmp ipt1 org 0030hmain: clr enter_flag mov tmod,#10h mov th1,#high(65536-50000) mov tl1,#low(65536-50000) setb et1 setb ea mov 70h,#10 mov 50h,#10 mov 51h,#10 mov 52h,#10 mov 53h,#10 lcall disp mov r3,#4 mov r2,#0 mov r0,#30hm_loop1:mov 3dh,r2 lcall eep_rd ;lcall d20ms mov r0,a inc r0 inc r2 djnz r3,m_loop1m_loop: mov r1,#40h mov r4,#4m_loop2:lcall m_key jnb f0,m_loop2 clr f0 mov r1,a inc r1 djnz r4,m_loop2 mov r0,#30h mov r1,#40h mov r5,#4m_loop3:mov a,r0 clr c subb a,r1 jnz pw_wrong inc r0 inc r1 djnz r5,m_loop3pw_right: mov 50h,#0 mov 51h,#0 mov 52h,#0 mov 53h,#0 lcall disp mov 70h,#20 clr p1.3 setb tr1m_loop4:lcall m_key jnb f0,m_loop4 clr f0 cjne a,#0bh,m_next1 ;非回车键跳转 cpl enter_flag jb enter_flag,m_next2 mov r5,#0 mov r4,#4 mov r0,#50hm_loop5:mov 3eh,r5 mov a,r0 mov 3fh,a lcall eep_wr lcall d20ms inc r5 inc r0 djnz r4,m_loop5 mov 50h,#10 mov 51h,#10 mov 52h,#10 mov 53h,#10 lcall disp sjmp $m_next2:mov 70h,#40 clr p1.3 setb tr1 sjmp m_loop4m_next1:jnb enter_flag,m_next3 cpl enter_flag sjmp m_loop4m_next3: mov 50h,51h mov 51h,52h mov 52h,53h mov 53h,a lcall disp sjmp m_loop4pw_wrong: clr p1.3 setb tr1 ljmp m_loopdisp: push 00h push 07h push acc push dph push dpl mov r0,#53h mov r7,#8 mov dptr,#table1 clr p1.1dploop0:mov a,r0 movc a,a+dptrdploop1:rrc a mov p1.0,c setb p1.1 clr p1.1 djnz r7,dploop1 mov r7,#8 dec r0 cjne r0,#4fh,dploop0 pop dpl pop dph pop acc pop 07h pop 00h rettable1: db 11h,7dh,23h,29h,4dh db 89h,81h,3dh,01h,09h,0efhm_key: anl p1,#00011111b mov a,p3 orl a,#11000011b cpl a jz mk_ret acall d20ms setb f0 mov r2,#11011111b mov r3,#0mk_loop:anl p1,#00011111b anl 02h,#11100000b mov a,r2 orl p1,a mov a,p3 jb acc.2,mk_n_r1 mov a,#0 sjmp mk_jsjzmk_n_r1:jb acc.3,mk_n_r2 mov a,#3 sjmp mk_jsjzmk_n_r2:jb acc.4,mk_n_r3 mov a,#6 sjmp mk_jsjzmk_n_r3:jb acc.5,mk_n_c mov a,#9 sjmp mk_jsjzmk_n_c: inc r3 jnb p1.7,mk_err mov a,r2 rl a mov r2,a sjmp mk_loopmk_jsjz:add a,r3 sjmp mk_retmk_err: mov a,#0ch clr f0 retmk_ret: push amk_wait:mov a,p3 orl a,#11000011b cpl a jnz mk_wait acall d20ms pop a mov dptr,#table2 movc a,a+dptr rettable2: db 1,2,3,4,5,6,7,8,9,0ah,0,0bhd20ms: push 07h push 06h mov r7,#40dloop1: mov r6,#250 djnz r6,$ djnz r7,dloop1 pop 06h pop 07h reteep_rd: ;eeprom at24c04单字节读出程序 ;子程序功能 从3dh高7位指示的eeprom地址单元读出8位数据到a中 ;入口参数 (3dh) 待读出数据地址(3dh的d7位无意义,d6d0位为7位地址) ;出口参数 (a) 从eeprom中读取的数据 ;r3作为发送/接收8位数据计数器 sda bit p2.1 scl bit p2.2 acall eep_start ;发送开始信号 mov a,#10100000b ;发送器件地址00,d0为0表示写入字节地址操作 acall eep_sent mov a,3dh ;发送字节地址 acall eep_sent acall eep_start ;再次发送开始信号 mov a,#10100001b ;再次发送器件地址00,d0为1表示读出数据操作 acall eep_sent acall eep_read ;读入8位数据至a acall eep_stop ;发结束信号 ret;发送开始标志eep_start: setb scl nop nop nop nop setb sda nop nop nop nop clr sda ;发开始信号 nop nop nop nop clr scl nop nop nop nop ret;eep_sent的功能为发送8位数据且等待应答信号并清零scl;入口参数-aeep_sent: push 03h mov r3,#08heep_sloop:clr scl ;发送8位信息 nop nop nop nop rlc a mov sda,c nop nop nop nop setb scl nop nop nop nop djnz r3,eep_sloop clr scl nop nop nop nop setb scl nop nop nop nopeep_sack: mov c,sda jc eep_sack ;判断应答信号到否 clr scl pop 03h ret;发送结束标志eep_stop: clr scl nop nop nop nop clr sda nop nop nop nop setb scl nop nop nop nop setb sda nop nop nop nop ;发停止信号 ret;读出8位数据eep_read: push 03h mov r3,#08heep_rloop:setb scl ;接收8位信息 nop nop nop nop mov c,sda rlc a nop nop clr scl nop nop nop nop djnz r3,eep_rloop ;8位未收完,则继续 pop 03h reteep_wr: ;eeprom at24c04单字节写入程序 ;子程序功能 向3eh低7位指示的eeprom地址单元写入3fh中8位数据 ;本子程序包含开始、器件地址及结束信息 ;入口参数 (3eh) 待写入数据地址(3eh的d7位无意义,d6d0位7位地址) ;入口参数 (3fh) 待写入数据 ;r3作为发送8位数据计数器 ;sda bit p2.1 ;scl bit p2.2 acall eep_start mov a,#10100000b ;发送器件地址00,d0为0表示写操作 acall eep_sent mov

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论