1、南京工程学院毕业设计说明书(论文)第 1 页P;*;以 下 8 个 字 节 存 放 8 位 数 码 管 的 段 码LED_BIT_1 EQU 30HLED_BIT_2 EQU 31HLED_BIT_3 EQU 32HLED_BIT_4 EQU 33HLED_BIT_5 EQU 34HLED_BIT_6 EQU 35HLED_BIT_7 EQU 36HLED_BIT_8 EQU 37H;以 下 6 个 字 节 存 放 初 始 密 码WORD_1 EQU 38HWORD_2 EQU 39HWORD_3 EQU 3AHWORD_4 EQU 3BHWORD_5 EQU 3CHWORD_6 EQU 3D
2、H;以 下 6 个 字 节 存 放 用 户 输 入 的 6 位 密 码KEY_1 EQU 3EHKEY_2 EQU 3FHKEY_3 EQU 40HKEY_4 EQU 41HKEY_5 EQU 42HKEY_6 EQU 43H;*CNT_A EQU 44HCNT_B EQU 45HKEY_CNT EQU 46H ;已 输 出 的 密 码 位 数LINE EQU 47H ;按 键 行 号ROW EQU 48H ;按 键 列 号南京工程学院毕业设计说明书(论文)第 2 页VAL EQU 49H ;键 值CODE_COUNT EQU 4AH;*;以 下 为 初 始 化 程 序 ,包 括 数 据 存
3、储 空 间 初 始 化 ,设 置 初 始 密 码ORG 00HSJMP MAINORG 0BHLJMP INT_T0MAIN: MOV CODE_COUNT,#0START:MOV CNT_A,#00H ;程 序 初 始 化MOV CNT_B,#00HMOV KEY_CNT,#00HMOV LINE,#00HMOV ROW,#00HMOV VAL,#00HSETB P1.0SETB P1.1MOV LED_BIT_1,#40H ;段 码 存 储 区 清 0MOV LED_BIT_2,#40HMOV LED_BIT_3,#40HMOV LED_BIT_4,#40HMOV LED_BIT_5,#4
4、0HMOV LED_BIT_6,#40HMOV LED_BIT_7,#79HMOV LED_BIT_8,#73HMOV KEY_1,#00H ;输 入 密 码 存 储 区 清 0MOV KEY_2,#00HMOV KEY_3,#00H南京工程学院毕业设计说明书(论文)第 3 页MOV KEY_4,#00HMOV KEY_5,#00HMOV KEY_6,#00HMOV WORD_1,#6 ;设 置 初 始 密 码 为 “123456“MOV WORD_2,#5MOV WORD_3,#4MOV WORD_4,#3MOV WORD_5,#2MOV WORD_6,#1MOV TMOD,#01HMOV
5、TH0,#(65536-700)/256MOV TL0,#(65536-700)MOD 256MOV IE,#82HA0: LCALL DISP;*;以 下 为 键 盘 扫 描 程 序 ,计 算 键 值 并 存 入 VALLSCAN:MOV P3,#0F0H ;扫 描 行 码L1:JNB P3.0,L2LCALL DLY_SJNB P3.0,L2MOV LINE,#00HLJMP RSCANL2:JNB P3.1,L3LCALL DLY_SJNB P3.1,L3MOV LINE,#01HLJMP RSCAN南京工程学院毕业设计说明书(论文)第 4 页L3:JNB P3.2,L4LCALL DL
6、Y_SJNB P3.2,L4MOV LINE,#02HLJMP RSCANL4:JNB P3.3,A0LCALL DLY_SJNB P3.3,A0MOV LINE,#03HRSCAN:MOV P3,#0FH ;扫 描 列 码C1:JNB P3.4,C2MOV ROW,#00HLJMP CALCUC2:JNB P3.5,C3MOV ROW,#01HLJMP CALCUC3:JNB P3.6,C1MOV ROW,#02HCALCU:MOV A,LINE ;计 算 键 值MOV B,#03HMUL ABADD A,ROWMOV VAL,A;*;以 下 为 按 键 处 理 程 序 ,对 不 同 的 按
7、 键 作 出 响 应CJNE A,#0AH,J1 ;是 否 为 “CLR“键MOV R1,KEY_CNTCJNE R1,#00H,J2南京工程学院毕业设计说明书(论文)第 5 页LCALL ALARM_1LJMP STARTJ2:LCALL SHIFTRDEC KEY_CNTW00:LCALL DISP ;等 待 按 键 抬 起MOV A,P3CJNE A,#0FH,W01LJMP A0W01:MOV A,P3CJNE A,#0F0H,W02LJMP A0W02:SJMP W00J1:MOV A,VALCJNE A,#0BH,J3 ;判 断 是 否 为 “ENTER“键MOV R1,KEY_C
8、NTCJNE R1,#06H,J4MOV A,WORD_1 ;比 较 密 码CJNE A,3EH,J5MOV A,WORD_2CJNE A,3FH,J5MOV A,WORD_3CJNE A,40H,J5MOV A,WORD_4CJNE A,41H,J5MOV A,WORD_5CJNE A,42H,J5MOV A,WORD_6CJNE A,43H,J5南京工程学院毕业设计说明书(论文)第 6 页CLR P1.0LCALL DLY_LLJMP FINIJ5: LCALL ALARM_2INC CODE_COUNTMOV A,CODE_COUNTCJNE A,#3,ONDOWN:MOV LED_BI
9、T_1,#80H ;段 码 存 储 区 显 示 “.“ MOV LED_BIT_2,#80HMOV LED_BIT_3,#80HMOV LED_BIT_4,#80HMOV LED_BIT_5,#80HMOV LED_BIT_6,#80HMOV LED_BIT_7,#80HMOV LED_BIT_8,#80HLCALL DISPCLR P1.1JB P1.6,DOWNLJMP MAIN ON: LJMP STARTJ4:LCALL ALARM_1LJMP STARTJ3:INC KEY_CNT ;按 下 数 字 键MOV A,KEY_CNTCJNE A,#07H,K1LCALL ALARM_1W
10、10:LCALL DISP ;等 待 按 键 抬 起MOV A,P3CJNE A,#0FH,W11南京工程学院毕业设计说明书(论文)第 7 页LJMP STARTW11:MOV A,P3CJNE A,#0F0H,W12LJMP A0W12:SJMP W10K1:LCALL SHIFTLW20:LCALL DISP ;等 待 按 键 抬 起MOV A,P3CJNE A,#0FH,W21LJMP A0W21:MOV A,P3CJNE A,#0F0H,W22LJMP A0W22:SJMP W20ALARM_1:SETB TR0 ;操 作 错 误 报 警CLR P1.1JB TR0,$SETB P1.
11、1RETALARM_2:SETB TR0 ;密 码 错 误 报 警CLR P1.1JB TR0,$LCALL DLY_LSETB P1.1RET;*;定 时 器 中 断 服 务 程 序 ,用 于 声 音 报 警INT_T0:CPL P1.7MOV TH0,#(65536-700)/256南京工程学院毕业设计说明书(论文)第 8 页MOV TL0,#(65536-700)MOD 256INC CNT_AMOV R1,CNT_ACJNE R1,#30,RETUNEMOV CNT_A,#00HINC CNT_BMOV R1,CNT_BCJNE R1,#20,RETUNEMOV CNT_A,#00HM
12、OV CNT_B,#00HCLR TR0RETUNE: RETI;*;段 码 ,输 入 密 码 左 移 子 程 序SHIFTL: MOV LED_BIT_6,LED_BIT_5MOV LED_BIT_5,LED_BIT_4MOV LED_BIT_4,LED_BIT_3MOV LED_BIT_3,LED_BIT_2MOV LED_BIT_2,LED_BIT_1MOV LED_BIT_1,#73HMOV KEY_6,KEY_5MOV KEY_5,KEY_4MOV KEY_4,KEY_3MOV KEY_3,KEY_2MOV KEY_2,KEY_1MOV KEY_1,VALRET;*;段 码 ,输 入
13、 密 码 右 移 子 程 序SHIFTR: MOV LED_BIT_1,LED_BIT_2南京工程学院毕业设计说明书(论文)第 9 页MOV LED_BIT_2,LED_BIT_3MOV LED_BIT_3,LED_BIT_4MOV LED_BIT_4,LED_BIT_5MOV LED_BIT_5,LED_BIT_6MOV LED_BIT_6,#00HMOV KEY_1,KEY_2MOV KEY_2,KEY_3MOV KEY_3,KEY_4MOV KEY_4,KEY_5MOV KEY_5,KEY_6MOV KEY_6,#00HRET;*;以 下 为 数 码 显 示 子 程 序DISP: CLR
14、 P2.7MOV P0,LED_BIT_8LCALL DLY_SSETB P2.7CLRP2.6MOV P0,LED_BIT_7LCALL DLY_SSETB P2.6CLRP2.5MOV P0,LED_BIT_6LCALL DLY_SSETB P2.5CLRP2.4MOV P0,LED_BIT_5LCALL DLY_SSETB P2.4南京工程学院毕业设计说明书(论文)第 10 页CLRP2.3MOV P0,LED_BIT_4LCALL DLY_SSETB P2.3CLRP2.2MOV P0,LED_BIT_3LCALL DLY_SSETB P2.2CLRP2.1MOV P0,LED_BIT_2LCALL DLY_SSETB P2.1CLRP2.0MOV P0,LED_BIT_1LCALL DLY_SSETB P2.0RET;*DLY_S:MOV R6,#10D1: MOV R7,#250DJNZ R7,$DJNZ R6,D1RETDLY_L:MOV R5,#100D2: MOV R6,#100D3: MOV R7,#248DJNZ R7,$DJNZ R6,D3DJNZ R5,D2RET