1、 ;酒店客房电子密码保险箱的控制程序设计ORG 0000H;复位入口LJMP MAIN;转往主程序ORG 001BH;定时器1中断服务子程序入口LJMP IT1P;定时中断:进行实时钟计时;- 主程序-ORG 0030H ;MAIN:MOV SP,#6FH ;总初始化,设定栈底指针LCALL D40MS ;稍加延时(40mS),以待各芯片均退出复位状态MOV DPTR,#0FEFFH ;对8255A(U3)接口芯片初始化MOV A,#89H ;设定为A输出(驱动字段)、B口输出(驱动字位),C口输入MOVX DPTR,A ;写入方式控制字MOV DPTR,#0FEFCH ;DPTR指向U3-A
2、口MOV A,#0FFH ;置八段均不亮的字段码(8255A初始化后输出寄存器全0)MOVX DPTR,A ;输出,关数码显示器(段输出口初始驱动全为1无效MOV DPTR,#0FDFFH ;对8255A(U5)接口芯片初始化MOV A,#8BH ;设定为A口输出(驱L815),B口输入(按钮PB07),C口输入(开关SW07)MOVX DPTR,A ;写入方式控制字MOV DPTR,#0FDFCH ;DPTR指向U5-A口MOV A,#0FFH ;置八位输出均为1MOVX DPTR,A ;输出,令L8-15初始不亮CLR P3.2 ;蜂鸣器响LCALL D1S ;延时1SSETB P3.2
3、;关蜂鸣器 MOV A,#0FFHMOV DPTR,#0FEFDH ; 8255-B口(位码输出口)MOVX DPTR,A ; 输出当前字位码MOV A,#0 ; 数码管点亮MOV DPTR,#0FEFCH ; 8255-A口(字段码输出口)MOVX DPTR,A ; 输出字段码LCALL D1SMOV A,#0FFH ; 数码管熄灭MOV DPTR,#0FEFCH ; 8255-A口(字段码输出口)MOVX DPTR,A MOV P1,#00H ;P1口输出全0,所驱动的L0L7指示灯全亮LCALL D1S ;延时1SMOV P1,#0FFH ;熄L0L7指示灯MOV 30H,#10H ;3
4、0H-37H为显示缓冲单元,初始值令显示- 8951 -MOV 31H,#12HMOV 32H,#01HMOV 33H,#05HMOV 34H,#09HMOV 35H,#08HMOV 36H,#12HMOV 37H,#10HMOV 20H,#01H ;20H做不同的时间界面MOV 21H,#00H ;箱门的进程MOV 22H,#00H ;蜂鸣器响的方式MOV 23H,#03 ;输入3次错误进入黑屏或者是短暂的 MOV 24H,#100 ;PB15SMOV 25H,#10 ;HP10SMOV 26H,#100 ;HP10SMOV 27H,#15 ;PB15SMOV 28H,#200 ;CZTL2
5、SMOV 58H,#03 ;蜂鸣器的延时3次数10msX3=30MSMOV 59H,#30 ;蜂鸣器的延时30次数10msX30=300MSMOV 5AH,#6;蜂鸣器的延时6次数10msX6=60MSMOV 5BH,#100 ;客 密码延黑屏延 单元MOV 5CH,#30 ;客 密码延黑屏延 单元MOV 5DH,#100 ;主密码黑屏延 40msMOV 5EH,#40 ;主密码黑屏延 40msMOV 6AH,#3; 蜂鸣器的延时3次数MOV 6BH,#3; 蜂鸣器的延时3次数MOV 3EH,#00H ; 黑屏时写 位, 的 ;-MOV 50H,#08H ;主密码的存 单元5057单元MOV
6、51H,#07H ;主密码的存 单元5057单元MOV 52H,#06H ;主密码的存 单元5057单元MOV 53H,#05H ;主密码的存 单元5057单元MOV 54H,#04H ;主密码的存 单元5057单元MOV 55H,#03H ;主密码的存 单元5057单元MOV 56H,#02H ;主密码的存 单元5057单元MOV 57H,#01H ;主密码的存 单元5057单元MOV 38H,#00H ;38H单元为实时钟200uS计数单元, 0MOV 39H,#00H ;39H单元为10mS计数单元, 0MOV 3AH,#45H ; 单元初值MOV 3BH,#59H ; 单元初值MOV
7、3CH,#08H ;时单元初值,时钟初值08:59:45MOV TMOD,#20H ;初始化T1为定时方式2,T0为计数方式2?SETB EA ;开中断总 MOV TL1,#00H ;置T1计数初值 MOV TH1,#00H ; 256TM 中断 (TM=121/11.0592MHZ=1.085069444S)SETB ET1 ;开T1中断 SETB TR1 ; 动T1定时 ;-;主 程:-LOOP:LCALL CZ ; 显示 显缓子程序(字)(时 6位显示缓冲单元)LCALL KEY ; currency1“子程序 (“按currency1 时 fifl3位显示currency1 )LCAL
8、L CZKEY ;#的 时LCALL BBD ;蜂鸣器LCALL DISP ; 显示子程序 (动态驱动8位数码显示器 , 8mS)LCALL TS ;时钟的 时LCALL XDPB ;5次的存LCALL KMMS;输入客密码的输入46位LCALL KKM ;密码输入48位LCALL SWITCH ;箱门的不同进程状态LCALL XHJM;* currency1码LCALL JHMS;蜂鸣器LCALL PBMS ;屏保SJMP LOOP ;”复主 程;-;-存XDPB 前态2FH,态是2EH-;-XDPB: MOV 2FH,2EH ;前currency1码是2FH,currency1码是2EHM
9、OV 2DH,2CHMOV 2CH,2BHMOV 2BH,2AHMOV 2AH,29HMOV DPTR,#0FDFEHMOVX A,DPTRMOV 29H,ACJNE A,2AH,XDRCJNE A,2BH,XDRCJNE A,2CH,XDRCJNE A,2DH,XDRMOV 2EH,AXDR: RET;-箱门进程-;SWITCH:MOV A,20HCJNE A,#01H,LP0 ; 界面的进程 MOV 21H,#00 ;21H单元初值MOV A,2EH ; 2EH是存中的PB的态值AJNB ACC.0,SW2 ;swo 是 0效, JB ACC.1,SW2 ; 开关100开箱门位状态 进入设
10、置密码界面,驱门JB ACC.7,SW2 ;sw7、是 为门箱的开关, 1时箱门 开,0箱门关MOV 21H,#02HSETB P1.0 ;箱门位,关门 SJMP LP0SW2: JB ACC.0,SW3JNB ACC.1,SW3 ;03H是 箱门关的输密码程JB ACC.7,SW3 MOV 21H,#03H SETB P1.1 ;箱门位,关门 SJMP LP0SW3: JNB ACC.0,LP0JB ACC.1,LP0 ;01H是 箱门 开,门关位JNB ACC.7,LP0 MOV 21H,#01H LP0:RET;-客 输密码-KKM: MOV A,20H ; 界面20H为01 状态子 C
11、JNE A,#01H,KM2MOV A,21HCJNE A,#02H,KM2 ;02H是 箱门开的状态 ,箱门关位MOV A,65HCJNE A,#0CH,KM2MOV A,64H ;currency1码是 数字currency1码 CLR CSUBB A,#10JNC KM2 ; CY=0时 位 数值 09MOV 37H,64H ;37Hcurrency1码MOV 36H,#12H ;3630 MOV 35H,#12H ;3630 MOV 34H,#12H ;3630 MOV 33H,#12H ;3630 MOV 32H,#12H ;3630 MOV 31H,#12H ;3630 MOV 3
12、0H,#12H ;3630 MOV 20H,#30H ;30H 为 位的进程码SJMP KM4 ; 转KM2:MOV A,20HCJNE A,#30H,KM3 ; 37H值的前 ,30H 为 为的进程码MOV A,65HCJNE A,#0CH,KM3MOV A,64HCLR CSUBB A,#10 ;currency1码是 数字currency1码 JNC KM3MOV 36H,64H ;36Hcurrency1码MOV 20H,#31H ;31H 为 位的进程码SJMP KM5KM3:MOV A,20HCJNE A,#31H,KM4MOV A,65HCJNE A,#0CH,KM4MOV A,
13、64HCLR CSUBB A,#10JNC KM4MOV 35H,64HMOV 20H,#32HSJMP KM1KM4:MOV A,20HCJNE A,#32H,KM5MOV A,65HCJNE A,#0CH,KM5MOV A,64HCLR CSUBB A,#10JNC KM5MOV 34H,64HMOV 20H,#33HSJMP KM1KM5:MOV A,20HCJNE A,#33H,KM6MOV A,65HCJNE A,#0CH,KM6MOV A,64HCLR CSUBB A,#10JNC KM6MOV 33H,64HMOV 20H,#34HSJMP KM1KM6:MOV A,20HCJN
14、E A,#34H,KM1MOV A,65HCJNE A,#0CH,KM1MOV A,64HCLR CSUBB A,#10JNC KM1MOV 32H,64HMOV 20H,#35HKM1:RET;-主客密的码-KMMS:MOV A,20H ; 界面20H为01 状态子 CJNE A,#01H,KK1MOV A,21HCJNE A,#03H,KK1 ;03H是 箱门关的状态 ,箱门以关MOV A,65HCJNE A,#0CH,KK1MOV A,64HCLR CSUBB A,#10 ;currency1码是 数字currency1码 JNC KK1MOV 37H,64HMOV 36H,#12HMO
15、V 35H,#12HMOV 34H,#12HMOV 33H,#12HMOV 32H,#12HMOV 31H,#12HMOV 30H,#12HMOV 20H,#47HSJMP KK3KK1: MOV A,20HCJNE A,#47H,KK2MOV A,65HCJNE A,#0CH,KK2MOV A,64HCLR CSUBB A,#10JNC KK2MOV 36H,64HMOV 20H,#48HSJMP KK5KK2: MOV A,20HCJNE A,#48H,KK3MOV A,65HCJNE A,#0CH,KK3MOV A,64HCLR CSUBB A,#10JNC KK3MOV 35H,64H
16、MOV 20H,#49HSJMP KK0KK3: MOV A,20HCJNE A,#49H,KK4MOV A,65HCJNE A,#0CH,KK4MOV A,64HCLR CSUBB A,#10JNC KK4MOV 34H,64HMOV 20H,#4AHSJMP KK0KK4: MOV A,20HCJNE A,#4AH,KK5MOV A,65HCJNE A,#0CH,KK5MOV A,64HCLR CSUBB A,#10JNC KK5MOV 33H,64HMOV 20H,#4BHSJMP KK0KK5: MOV A,20HCJNE A,#4BH,KK6MOV A,65HCJNE A,#0CH,
17、KK6MOV A,64HCLR CSUBB A,#10JNC KK0MOV 32H,64HMOV 20H,#4CHSJMP KK0KK6: MOV A,20HCJNE A,#4CH,KK7MOV A,65HCJNE A,#0CH,KK7MOV A,64HCLR CSUBB A,#10JNC KK0MOV 31H,64HMOV 20H,#4DHSJMP KK0KK7: MOV A,20HCJNE A,#4DH,KK0MOV A,65HCJNE A,#0CH,KK0MOV A,64HCLR CSUBB A,#10JNC KK0MOV 30H,64HMOV 20H,#4EHSJMP KK0KK0:R
18、ET;-0000蜂鸣器0000-JHMS:MOV A,65HCJNE A,#0CH,JHMOV A,64HCLR CSUBB A,#12JNC JHSETB 22H.0JH:RETBBD: JNB 22H.0,BB1 ;按currency1的 CLR P3.2DJNZ 58H,BB1MOV 58H,#03SETB P3.2CLR 22H.0SJMP BBRETBB1: JNB 22H.1,BB2 ; CLR P3.2DJNZ 59H,BB2MOV 59H,#30SETB P3.2CLR 22H.1SJMP BBRETBB2: JNB 22H.2,BBRET;错误 响CLR P3.2DJNZ 5
19、AH,BBRETMOV 5AH ,#6SETB P3.2DJNZ 6AH,BBRETMOV 6AH,#3CLR P3.2DJNZ 6BH,BBRETMOV 6BH,#3SETB P3.2CLR 22H.2BBRET:RET;- 式 -JBMS:MOV R0,#3AH ;显示 显缓子程序(字) 置时钟数 单元 ( 单元)MOV R1,#30H ;置显示缓冲单元 (对 显示位)JBMS_01:MOV A,R0 ; 当前数 单元BCD码ANL A,#0FH ;保 4位( 位)MOV R1,A ;显缓当前 位单元INC R1 ;指向显缓当前位单元MOV A,R0 ; 当前数 单元BCD码ANL A,#
20、0F0H ;保 4位(位)SWAP A ; 4位MOV R1,A ;显缓当前位单元INC R1 ;指向显缓 位单元MOV R1,#10HINC R1INC R0 ;指向 时钟数 单元CJNE R0,#3DH,JBMS_01 ; RET ;子程序 ;-屏保式-PBMS:MOV A,3EH ;3EH 为是 黑屏的状态 CJNE A,#18H,PB2 ; 黑屏的状态 ,不 进入黑屏式SJMP PB1PB2:MOV A,65HCJNE A,#0CH,PBRET;断前currency1码是 按currency1按 ,按currency1 出MOV A,64HCJNE A,#0CH,PB1 ;按curre
21、ncy1是 按currency1按currency1 值, 界面;无按currency1进入 式DJNZ 24H,PBRET ;屏保时间15sMOV 24H,#100DJNZ 27H,PBRETMOV 27H,#15MOV 20H,#00HMOV A,20HCJNE A,#00H,PBRETPB0:MOV R0,#30H ;置显示缓冲单元 (对 显示位)PB01:MOV A,#12H ; MOV R0,A ;显缓当前 位单元INC R0CJNE R0,#38H,PB01 ; SJMP PBRETPB1:MOV 24H,#100MOV 27H,#15 ;按currency1按 计数 置初值MOV
22、 A,20H ; 式 ,按 currency1 CJNE A,#00H,PBRETMOV 20H,#01HPBRET:RET;-黑屏式30S-CZHP:CLR 22H.0 ; 黑屏式 关按currency1 MOV 37H,#12H ; MOV 36H,#12H ; MOV 35H,#12H ; MOV 34H,#12H ; MOV 33H,#12H ; MOV 32H,#12H ; MOV 31H,#12H ; MOV 30H,#12H ; MOV 3EH,#18H ;3EH,做 位,断 屏保时是 是 黑屏 填MOV A,65HCJNE A,#0CH,HP2 ;按currency1时警告 响
23、SJMP HP1HP2: SETB 22H.2 ; 响HP1: DJNZ 5BH,HPRET ;同时保持黑屏的延时时间MOV 5BH,#100DJNZ 5CH,HPRET ;延 MOV 5CH,#30MOV 20H,#01HRETHPRET:RET;-主密码黑屏式40S-PP20MS:CLR 22H.0 ; 黑屏式 关按currency1 MOV 37H,#12H ; MOV 36H,#12H ; MOV 35H,#12H ; MOV 34H,#12H ; MOV 33H,#12H ; MOV 32H,#12H ; MOV 31H,#12H ; MOV 30H,#12H ; MOV 3EH,#
24、18H ;3EH,做 位,断 屏保时是 是 黑屏 填MOV A,65HCJNE A,#0CH,PP2 ;按currency1时警告 响SJMP PP1PP2: SETB 22H.2 ; 响PP1: DJNZ 5DH,PRETMOV 5DH,#100DJNZ 5EH,PRET ;延 MOV 5EH,#40MOV 20H,#01HRETPRET:RET;- CZTL停 2S-CZTL2S: MOV 37H,47H ;缓冲单元单元的值数码管数码管显示MOV 36H,46H ;缓冲单元单元的值数码管数码管显示MOV 35H,45H ;缓冲单元单元的值数码管数码管显示MOV 34H,44H ;缓冲单元单
25、元的值数码管数码管显示MOV 33H,43H ;缓冲单元单元的值数码管数码管显示MOV 32H,42H ;缓冲单元单元的值数码管数码管显示DJNZ 28H,TLOUTMOV 28H,#200 ;延时MOV 20H,#01HTLOUT:RET;-HP10MS-HP10MS:MOV 37H,#12H ; MOV 36H,#12H ; MOV 35H,#12H ; MOV 34H,#12H ; MOV 33H,#12H ; MOV 32H,#12H ; MOV 31H,#12H ; MOV 30H,#12H ; DJNZ 26H,HP10sRET;延时MOV 26H,#100DJNZ 25H,HP1
26、0sRETMOV 25H,#10MOV 20H,#01H ;还 界面HP10sRET:RET;- 时式-CZDS: MOV 37H,#0AH ;做 时的 界面,字母MOV 36H,#10H ; MOV 30H,#10H ; MOV R0,#3BH ; 钟的值开MOV R1,#31H ;做的位MOV A,R0 ; 单元 钟的值ANL A,#0FH ; 中 位的值屏蔽MOV R1,A ; 位的值数码管显示INC R1 ;加 为MOV A,R0 ; 单元 的值ANL A,#0F0H ; 中的位屏蔽SWAP A ; 位字节MOV R1,A ; 毕的值单元数码管显示INC R1 ;为MOV R1,#10
27、H ; INC R0 ;为INC R1 ;为MOV A,R0 ; 出单元 的值ANL A,#0FH ; 中 位的值屏蔽MOV R1,A ; 中 位的值INC R1 ;为MOV A,R0 ;次 出单元 的值ANL A,#0F0H ;屏蔽中的位字节SWAP A ; 位字节MOV R1,A ; 中的字节RET;-CZ的字 子程序-CZ: MOV A,20H ; 01H时显示 式CJNE A,#01H,CZ02LCALL JBMSSJMP CZOUTCZ02:CJNE A,#10H,CZ03 ;20H 10H显示 时式LCALL CZDSSJMP CZOUTCZ03: CJNE A,#06H,CZ04
28、 ;20H 06H时客 密码错误3次进入黑屏30msLCALL CZHPSJMP CZOUTCZ04:CJNE A,#07H,CZ05 ;20H 07H显示输 密码停 2s界面LCALL CZTL2SSJMP CZOUTCZ05: CJNE A,#08H,CZ06 ;20H 08H是主密码正确黑屏10ms管理员修改密码LCALL HP10MSSJMP CZOUTCZ06: CJNE A,#09H,CZOUT ;20H 09H时主密码错误进入黑屏40msLCALL PP20MSSJMP CZOUTCZOUT:RET;-显示程序-DISP:MOV R0,#30H ;显示子程序 置显示缓冲单元 (对
29、 位)MOV R3,#01H ;位码初值(从 位起)MOV A,R3DISP1:MOV DPTR,#0FEFDH ; 8255-B口(位码输出口)MOVX DPTR,A ; 输出当前字位码MOV A,R0 ; 当前位显示数 码ADD A,#TAB-NEXTPC ; 加TAB与NEXTPC差MOVC A,A+PC ; 查表得相 字段码NEXTPC:MOV DPTR,#0FEFCH ; 8255-A口(字段码输出口)LCALL DIPPMOVX DPTR,A ; 输出字段码LCALL D1MS ; 保持显示1毫 INC R0 ; 指向 显示缓冲单元MOV A,R3 ; 出原来的位码JB ACC.7
30、,DISP2 ; 断若显示 fi位则 RL A ; ,字位码fi移1位MOV R3,A ; 存的位码LJMP DISP1 ; 转 位的显示驱动DISP2:RETTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H ;字段码表 “0“6“ DB 0F8H,80H,90H,88H,83H,0C6H,0A1H ;“7“9“,“A“D“ DB 86H,8EH,0BFH,00H,0FFH ;“E“,“F“,“-“,全亮, ;-软延时1mS子程序-D1MS:MOV R7,#111 ;软延时1mS子程序D1MS1:NOP ;(1+8*115+2)*12/11059.2KHz=1.00
31、15mSNOP NOPNOPNOPNOPNOPDJNZ R7,D1MS1RET;-/ 闪-DIPP: MOV 40H,A ;累加器A的 存 4AH中,以免破坏其数 MOV A,20H ;断定时进程处哪 状态 10H、11H、12H、13H才闪烁对 位CJNE A,#10H,D1CJNE R0,#35H,D1LJMP D0D1: MOV A,20HCJNE A,#11H,D2CJNE R0,#34H,D2LJMP D0D2:MOV A,20HCJNE A,#12H,D3CJNE R0,#32H,D3LJMP D0D3:MOV A,20HCJNE A,#13H,DDCJNE R0,#31H,DDL
32、JMP D0D0:MOV A,39H ;39H 除以25,整数商存AMOV B,#25HDIV ABJB ACC.0,DD ;断 ACC.0位是 为0,是则全灭段码A,使对 位灭1/4 ,实现闪烁MOV A,#0FFH RET DD:MOV A,40HRET;-currency1码“-KEY:MOV 65H,64HMOV 63H,62HMOV 62H,61HMOV DPTR,#0FEFFH ;currency1“子程序(”转法) MOV A,#81H ;1000 0001位设为输出MOVX DPTR,A ;C口先初始化为4位输出方式驱currency1行线、 4位输入方式currency1列线
33、MOV DPTR,#0FEFEH ;DPTR指向C口MOV A,#00HMOVX DPTR,A ;currency1行线(4位)输出驱动全0MOVX A,DPTR ;输入currency1列线电平( 4位)存60H单元MOV 60H,AMOV DPTR,#0FEFFHMOV A,#88HMOVX DPTR,A ;C口改初始化为4位输入驱currency1行线、 4位输出驱currency1列线MOV DPTR,#0FEFEH ;DPTR指向C口MOV A,#00HMOVX DPTR,A ;currency1列线( 4位)输出驱动全0MOVX A,DPTR ;输入currency1行线电平(4位
34、) A中ANL 60H,#0FH ;保 列线电平值所 的 4位ANL A,#0F0H ;保 行线电平值所 的4位ORL 60H,A ;列线电平值、行线电平值组合 8位行列码60H单元中MOV 61H,#00H ;currency1 值从00H开始MOV R5,#0CH ;设定 多进行17次的currency1码查表MOV DPTR,#KEY_N ;DPTR指向currency1码表 KY:MOV A,61H ;置当前currency1 A中 MOVC A,A+DPTR ;查表读 currency1码表中当前currency1 对 位置的currency1码CJNE A,60H,KY1 ;与8位
35、行列码比较,不同则转NK查 KN:MOV A,63HCJNE A,62H,OUT1CJNE A,61H,OUT1MOV 64H,AAJMP OUT1KY1:INC 61HDJNZ R5,KYLJMP KNOUT1:RET ; 并 KEY_N:DB 07DH,0EEH,0EDH,0EBH ;currency1码表 K0,K1,K2,K3currency1码DB 0DEH,0DDH,0DBH,0BEH ;K4,K5,K6,K7currency1码DB 0BDH,0BBH,07EH,07BH ;K8,K9,K10,K11currency1码DB 0FFH ;K12,K13,K14,K15curren
36、cy1码;-# currency1码的 -CZKEY: ;断前currency1 是 01,的 式 按 #MOV A,20H CJNE A,#01H, ZCQR;20H 01时显示 界面MOV A,65HCJNE A,#0CH, ZCQR ;后currency1 MOV A,64HCJNE A,#0BH, ZCQR ;currency1 MOV 20H,#10HLJMP CZ3ZCQR:MOV A ,20H ;断20H 时式是 1XX的 ,按 # currency1改MOV B,#11H ;3CH,3BH,的值显示 式DIV ABCJNE A,#01H,CZ_02MOV A,65HCJNE A
37、,#0CH, CZ_02MOV A,64HCJNE A,#0BH,CZ_02MOV 3AH,#00MOV 39H,#00MOV 38H,#00MOV A,35HANL A,#0FHSWAP AORL A,34HMOV 3CH,AMOV A,32HANL A,#0FHSWAP AORL A,31HMOV 3BH,AMOV 20H,#01HLJMP CZ3CZ_02: MOV A,21HCJNE A,#02H,CZ_03MOV A,20H ; 断20H是不是 密的3XX的 MOV B,#33HDIV ABCJNE A,#01H,CZ_03MOV A,65HCJNE A,#0CH,CZ_03MOV
38、A,64HCJNE A,#0BH,CZ_03MOV 47H,37H ; 输入的值37H 存47HMOV 46H,36H ;村输入密码MOV 45H,35HMOV 44H,34HMOV 43H,33HMOV 42H,32HCLR P1.1 ;驱动门SETB 22H.1 ; 示 响MOV 20H,#07H ; 输入密码界面停 2sLJMP CZ3CZ_03:MOV A,21HCJNE A,#03H,CZ_7 ;客 密码 21H是03H的状态 密码MOV A,20HMOV B,#4AH ;4AH是输密码的fl四位的进程码,DIV ABCJNE A,#01H,CZ_7 ;如果是小4位 出,不 按 #c
39、urrency1码MOV A,20HCLR CSUBB A,#4DH ;是fl七位31H的进程码JNC CZ_05 ;如果fl七位数值CY为0 位,去断是 与主密码的值相同MOV A,65HCJNE A,#0CH,CZ_7MOV A,64HCJNE A,#0BH,CZ_7MOV A,47H ;断密码的值是 与输密码的值相同CJNE A,37H,CZ_04MOV A,46HCJNE A,36H,CZ_04MOV A,45HCJNE A,35H,CZ_04MOV A,44HCJNE A,34H,CZ_04MOV A,43HCJNE A,33H,CZ_04MOV A,42HCJNE A,32H,CZ
40、_04CLR P1.0 ;驱动门SETB 22H.1 ; 示正确的响 MOV 20H,#01H ; 界面MOV 23H,#03H ;输入密码3次机会CZ_7: LJMP CZ3CZ_04: SETB 22H.2 ; 示错误的响 MOV 20H,#01H ; 界面DJNZ 23H,CZ3 ;3次输入密码的机会MOV 23H,#03H ; 响 警报 ;延时时间2sMOV 20H,#06H ;错误三次20H的06H做的界面SJMP CZ3CZ_05: MOV A,21H ; 密码的的箱门关门状态状密码21H为03HCJNE A,#03H,CZ3MOV A,20HMOV B,#4AHDIV ABCJN
41、E A,#01H,CZ3 ;断密码是 输入4位才可以按 确定currency1码MOV A,65HCJNE A,#0CH,CZ3MOV A,64HCJNE A,#0BH,CZ3MOV A,57HCJNE A,37H,CZ_06 ;断密码的值是 与主密码的值相同MOV A,56HCJNE A,36H,CZ_06 ;断密码的值是 与主密码的值相同MOV A,55HCJNE A,35H,CZ_06 ;断密码的值是 与主密码的值相同MOV A,54HCJNE A,34H,CZ_06 ;断密码的值是 与主密码的值相同MOV A,53HCJNE A,33H,CZ_06 ;断密码的值是 与主密码的值相同MOV A,52HCJNE A,32H,CZ_06 ;断密码的值是 与主密码的值相同MOV A,51HCJNE A,31H,CZ