电子密码锁软件部分.doc
《电子密码锁软件部分.doc》由会员分享,可在线阅读,更多相关《电子密码锁软件部分.doc(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、 主程序流程图:开始初始化调用显示有键按下?识别按键功能键?Y N输入新密码确认键?修改密码子程序Y删除键?N清除屏幕所输数字原始密码确认键?开门键?屏幕显示:“PASS NEW WORD”Y开门N开始修改密码子程序流程图:输入原始密码按下键比较密?码?重新输入屏幕显示:“:”输入新密码存入缓冲再输入一次比较密码?重新输入存入存储芯片NY电子锁源程序:RSBIT P3.5 ;RSBIT 接口3第5位 RWBIT P3.6 ;RWBIT 接口3第6位 EBIT P3.7 ;EBIT 接口3第7位SCL BIT P3.2 ;串行时钟SCL BIT,P3.2 SDA BIT P3.3 ;串行数据SD
2、A BIT,P3.3 FLAG BIT 00H CHN BIT 62H GAI BIT 60H ORG 00H ;定义当前位置为 00HLJMPMAIN ORG 0BH ;定义当前位置为 0BH JMP TIM0 ;间接转移到 TIM0MAIN: MOVSP,#70H ;设置堆栈 MOVR1,#20H ;把密码存放到at24c02的20H MOVR6,#06 ;6个密码 MOVR0,#30H ;存入RAM 30H-35H S1: LCALL START1 ;长调用 START1MOV A, #0A0H ;送器件地址及写标志 传送 寄存器A,立即数0A0H LCALL WBYTE ;长调用 WB
3、YTEMOV A, R1 ;送单元地址 传送 寄存器A,R1 LCALL WBYTE ;长调用 WBYTELCALL START1 ;长调用 START1MOV A,#0A1H ;送器件地址及读标志 传送 寄存器A,立即数0A1H LCALL WBYTE ;长调用 WBYTELCALL RBYTE ;长调用 RBYTEMOVR0,A ;MOVR0,A LCALL STOP ;长调用 STOPINC R1 ; 加1 通用寄存器1,INC R0 ; 加1 通用寄存器0,DJNZ R6, S1; 减一不为0转移 通用寄存器6,S1 MOVP2,#01H ;清除LCD屏幕 CALLENABLE MOV
4、P2,#38H ;LCD功能设定,DL=1(8位),N=1(2行显示) CALLENABLE MOVP2,#0FH ;显示屏幕ON/OFF,D=1(显示ON) CALLENABLE ;C=1(光标ON),B=1(闪烁ON) MOVP2,#06H ;LCD模态设定,I/D=1(技术地址加1) CALLENABLE MOVP2,#80H ;LCD第1行地址 CALLENABLE MOVDPTR,#TABLE1 ;到TABLE取码显示“PASS WORD:” CALLWRITE1 MOVP2,#8AH ;光标所在位置(第1个数字地址) CALLENABLE MOV R7,#03H ;传送 通用寄存器
5、7,立即数03H CLRGAI START: MOVR4,#06 ;清除按键存放RAM的内容 MOVR0,#40H CLEAR:MOVR0,#00H INCR0 DJNZR4,CLEAR MOVR0,#40H ; 按键值的RAM 40H-45H L1:MOVR3,#0F7H ;键盘行扫描初值 MOVR1,#00H ;TABLE2(键盘内码)的取码指针L2:MOVA,R3 MOVP0,A ;行扫描输出MOVA,P0 ;读入键盘值存入R4 MOVR4,A SETBC ;C=0表示有按MOVR5,#04H L3:RLCA JNCKEYIN INCR1 DJNZR5,L3 ;4个列扫描完毕否? MOV
6、A,R3 ;扫描下1行 SETBC RRCA MOVR3,A JCL2 ;4个行扫描完毕否? JMPL1 ;*按键扫描部分 KEYIN:MOVR2,#10 ;消除抖动10毫秒 D2:MOVR6,#248 DJNZR6,$ DJNZR2,D2 D3:MOVA,P0 ;读入键盘值与前值(R4)比较是否相等? XRLA,R4 :相等表示按键尚未放开? JZD3 MOVA,R1 ;至TABLE2取键盘码 MOVDPTR,#TABLE2 MOVCA,A+DPTR MOVR2,A ;先存入R2,以免数据被破坏XRLA,#41H ;是否按“*”,设定密码 JZSET0 MOVA,R2 XRLA,#42H ;
7、是否按“#”,清除屏幕 JZ WU ;寄存器为0转移 WUMOVA,R2 XRLA,#43H ;是否按“A”,显示密码 JZSHE;L1MOVA,R2 XRLA,#44H ;是否按“B”,比较密码,相同则开门 JZKKK;MOVA,R2 XRLA,#45H ;“C”键无作用 JZSU MOVA,R2 XRLA,#46H ;“D”键无作用 JZL1 MOVA,R2 ;数字码显示至LCDPUSHAcc MOVA,#2AH CALLWRITE2 POPAcc SUBBA,#30H ;键盘码为ASCII码,减30H变为十六进制码 MOVR0,A ;存入40-45H INCR0 JMPKKL KKK:J
8、MPCOMP KKL:CALLCHECK ;检查LCD是否显示完第6个数字 JMPL1 SHE:LJMP YZ YI:LJMP MAIN WU:LJMP CLEAR1 ;*密码修改键 SET0: JNB CHN,CLEAR1 JB GAI,C0 SE: SETBGAI MOVR6,#06H ;密码设定 MOVR0,#40H ;键盘显示器存放RAM40-45H MOVR1,#30H ;密码存放RAM 30H-35H SET2:MOVA,R0 XCHA,R1 INCR0 INCR1 DJNZR6,SET2 JMP CLEAR1 ;清除LCD6个数字为“” C0: MOVR1,#40H MOVR0,
9、#30H ;30H为“0”的ASCII码 MOVR2,#06H CO2:MOVA,R0 XRLA,R1 JNZYI INCR0 INCR1 DJNZ R2,CO2 ;减一不为0转移 通用寄存器2,CO2 LCALL SE2 ;长调用 SE2 JMPCLEAR1 SE2:MOVR6,#06H MOVR0,#40H MOVR2,#20H MOVR1,#30H SET1:LCALL START1; 长调用 START1MOV A, #0A0H ;送器件地址及读写标志 传送 寄存器A,立即数0A0H LCALL WBYTE ;长调用 WBYTEMOV A, R2 ;送单元地址 传送 寄存器A,R2 L
10、CALL WBYTE ;长调用 WBYTEMOV A,R0;写入数据 传送 寄存器A,通用寄存器0指向的单元的内容LCALL WBYTE ;长调用 WBYTELCALL STOP ; 长调用 STOP, LCALL DELAY2 ;等待 长调用 DELAY2,INC R0; 加1 通用寄存器0 INC R1 ;加1 通用寄存器1INCR2 ;INCR2 DJNZ R6,SET1 ; 减一不为0转移 通用寄存器6,SET1 CLRGAI CLR CHN ;清0 CHNJMPCLEAR2 SU: JMP CH ;间接转移到 CH;*清除功能键CLEAR1:MOVP2,#8AH CALLENABLE
11、 MOVR1,#06 A4:MOVA,#30H CALLWRITE2 DJNZR1,A4 MOVP2,#8AH CALLENABLE JMPSTART CLEAR2:MOVP2,#8AH CALLENABLE MOVR1,#06 A2:MOVA,#30H CALLWRITE2 DJNZR1,A2 MOVP2,#8AH CALLENABLE JMPMAIN YZ: MOVR1,#40H MOVR0,#30H ;密码存放RAM 30H-35H MOVR2,#06H ;6个数 YZ1:MOVA,R0 XRLA,R1 JNZERROR INCR0 INCR1 DJNZ R2,YZ1 CALLNEW L
12、JMP CLEAR1 ;长转移到 CLEAR1;*开锁功能键COMP: MOVR1,#40H MOVR0,#30H MOVR2,#06H COMP1: MOVA,R0 XRLA,R1 JNZERROR ;比较是否相等? INCR0 INCR1 DJNZ R2,COMP1 ;减一不为0转移 通用寄存器2,COMP1CALLRIGHT ;6个码都相等则LCD显示“RIGHT!”CLRP3.1 ;电锁动作CALLDELAY1 CALLSPACE ;LCD清除“RIGHT!” CALLDELAY1 JMPCLEAR1 CH:SETBP3.1 ;令电锁不动作ERROR:MOVP2,#0C0H ;LCD第
13、2行地址CALLENABLE MOVDPTR,#TABLE4 ;至TABLE4取出“ERROR! ” CALLWRITE1 ;输出至LCD显示CALLDELAY1 CALLSPACE ;LCD清除“ERROR!”为空白 DJNZ R7,S0 ;减一不为0转移 通用寄存器7,S0 LCALL MUSIC ;长调用 MUSIC S0: JMPCLEAR1 ;LCD清除为“” S2: JMP CLEAR2 ;间接转移到 CLEAR2RIGHT:MOVP2,#0C0H ;LCD第2行地址 CALLENABLE MOVDPTR,#TABLE5 ;至TABLE6取“” CALLWRITE1 ;输出至LCD
14、显示6个空白 LCALLBAOJING1 LCALL BAOJING2 ;长调用 BAOJING2RET ;子程序返回 ;*原密码确认键NEW:MOVP2,#0C0H CALLENABLE MOVDPTR,#TABLE3 CALLWRITE1 LCALLBAOJING1 LCALL BAOJING2 ;长调用 BAOJING2 SETB CHN ;位-置1 CHNRET ;子程序返回 ;500hz报警信号程序; BAOJING1: MOV R2,#200 ;传送 通用寄存器2,立即数200DV: CPL P3.0 ;取反 接口3第0位LCALL DELAY500 ;长调用 DELAY500LC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 密码锁 软件 部分
限制150内