- 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