WSKAZNIK1 DATA 030h WSKAZNIK2 DATA 031h WSKAZNIK3 DATA 032h WSKAZNIK4 DATA 033h WSKAZNIK5 DATA 034h WSKAZNIK6 DATA 035h _KBD_KOD DATA 037h _KBD_FLG_0 BIT 00h _KBD_FLG_1 BIT 01h _KBD_FLG_2 BIT 02h _KBD_FLG_3 BIT 03h _KBD_FLG_4 BIT 04h _KBD_FLG_5 BIT 05h POM DATA 36h ORG 0000h _RESET: LJMP _INIT ORG 0100h _INIT: CALL _7SEG_INIT MOV _KBD_KOD,#0d CLR _KBD_FLG_0 CLR _KBD_FLG_1 CLR _KBD_FLG_2 CLR _KBD_FLG_3 CLR _KBD_FLG_4 CLR _KBD_FLG_5 CALL _7SEG_INIT _PROGRAM: CALL _DELAY CALL _7SEG_REFRESH CALL _KBD_REFRESH JNB _KBD_FLG_0, _LOOP_END CLR _KBD_FLG_0 MOV R0, _KBD_KOD CJNE R0,#00000001b,_CD30 CLR P1.7 JMP _LOOP_END _CD30: SETB P1.7 MOV _KBD_KOD,#0d _LOOP_END: LJMP _PROGRAM _7SEG_INIT: MOV WSKAZNIK6,#00100000b MOV WSKAZNIK5,#00010000b MOV WSKAZNIK4,#00001000b MOV WSKAZNIK3,#00000100b MOV WSKAZNIK2,#00000010b MOV WSKAZNIK1,#00000001b MOV POM,#128d MOV A, POM MOV DPTR, #0FF30h MOVX @DPTR,A CALL _7SEG_REFRESH RET _7SEG_REFRESH: SETB P1.6 MOV DPTR, #0FF30h MOVX @DPTR,A CJNE A,WSKAZNIK1, _LABEL1 MOV A,#0d LJMP _LOOP _LABEL1: CJNE A,WSKAZNIK2, _LABEL2 MOV A,#1d LJMP _LOOP _LABEL2: CJNE A,WSKAZNIK3, _LABEL3 MOV A,#2d LJMP _LOOP _LABEL3: CJNE A,WSKAZNIK4, _LABEL4 MOV A,#3d LJMP _LOOP _LABEL4: CJNE A,WSKAZNIK5, _LABEL5 MOV A,#4d LJMP _LOOP _LABEL5: CJNE A,WSKAZNIK6, _LOOP MOV A,#5d LJMP _LOOP _LOOP: MOV DPTR, #_CYFRY MOVC A, @A+DPTR MOV DPTR, #0FF38h MOVX @DPTR, A CLR P1.6 RET _DELAY: MOV R6,#2D LABEL1: MOV R7,#2D LABEL2: DJNZ R7,LABEL2 DJNZ R6,LABEL1 RET _KBD_REFRESH: SETB P1.6 MOV A, #1b MOV DPTR, #0FF30h MOVX @DPTR, A JNB P3.5, _ELSE00 MOV R0, _KBD_KOD CJNE R0, #1b, _CD00 JMP _CD20 _CD00: SETB _KBD_FLG_0 ORL _KBD_KOD, #1b JMP _CD20 _ELSE00: MOV R0, _KBD_KOD CJNE R0, #00000000b, _CD10 JMP _CD20 _CD10: SETB _KBD_FLG_0 ANL _KBD_KOD, #11111110b _CD20: MOV A, POM MOV DPTR, #0FF30h MOVX @DPTR,A MOV A, #10b MOV DPTR, #0FF30h MOVX @DPTR, A JNB P3.5, _ELSE01 MOV R0, _KBD_KOD CJNE R0, #10b, _CD01 JMP _CD21 _CD01: SETB _KBD_FLG_1 ORL _KBD_KOD, #10b JMP _CD21 _ELSE01: MOV R0, _KBD_KOD CJNE R0, #00000000b, _CD11 JMP _CD21 _CD11: SETB _KBD_FLG_1 ANL _KBD_KOD, #11111101b _CD21: MOV A, POM MOV DPTR, #0FF30h MOVX @DPTR,A MOV A, #100b MOV DPTR, #0FF30h MOVX @DPTR, A JNB P3.5, _ELSE02 MOV R0, _KBD_KOD CJNE R0, #100b, _CD02 JMP _CD22 _CD02: SETB _KBD_FLG_2 ORL _KBD_KOD, #100b MOV A,POM RR A MOV POM,A JMP _CD22 _ELSE02: MOV R0, _KBD_KOD CJNE R0, #00000000b, _CD12 JMP _CD22 _CD12: SETB _KBD_FLG_2 ANL _KBD_KOD, #11111011b _CD22: MOV A, POM MOV DPTR, #0FF30h MOVX @DPTR,A MOV A, #1000b MOV DPTR, #0FF30h MOVX @DPTR, A JNB P3.5, _ELSE03 MOV R0, _KBD_KOD CJNE R0, #1000b, _CD03 JMP _CD23 _CD03: SETB _KBD_FLG_3 ORL _KBD_KOD, #1000b JMP _CD23 _ELSE03: MOV R0, _KBD_KOD CJNE R0, #00000000b, _CD13 JMP _CD23 _CD13: SETB _KBD_FLG_3 ANL _KBD_KOD, #11110111b _CD23: MOV A, POM MOV DPTR, #0FF30h MOVX @DPTR,A MOV A, #10000b MOV DPTR, #0FF30h MOVX @DPTR, A JNB P3.5, _ELSE04 MOV R0, _KBD_KOD CJNE R0, #10000b, _CD04 JMP _CD24 _CD04: SETB _KBD_FLG_4 ORL _KBD_KOD, #10000b JMP _CD24 _ELSE04: MOV R0, _KBD_KOD CJNE R0, #00000000b, _CD14 JMP _CD24 _CD14: SETB _KBD_FLG_4 ANL _KBD_KOD, #11101111b _CD24: MOV A, POM MOV DPTR, #0FF30h MOVX @DPTR,A MOV A, #100000b MOV DPTR, #0FF30h MOVX @DPTR, A JNB P3.5, _ELSE05 MOV R0, _KBD_KOD CJNE R0, #100000b, _CD05 JMP _CD25 _CD05: SETB _KBD_FLG_5 ORL _KBD_KOD, #100000b JMP _CD25 _ELSE05: MOV R0, _KBD_KOD CJNE R0, #00000000b, _CD15 JMP _CD25 _CD15: SETB _KBD_FLG_5 ANL _KBD_KOD, #11011111b _CD25: MOV A, POM MOV DPTR, #0FF30h MOVX @DPTR,A CLR P1.6 RET _CYFRY: DB 3Fh DB 06h DB 5Bh DB 4Fh DB 66h DB 6Dh DB 7Dh DB 07h DB 7Fh DB 67h END