mov R4, A
mov R5, #00000001b
call VIVOD_SECOND_NUM
call WAIT_TI
call SLEEP
END_KEY_5:
ret
key2:
cjne R5, #00000000b, NUM2_2
;;;;;;;;;;;;;;;;;;;;;VVOD PERVOGO CHISLA;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R3, #00000000b, ONFIRSTNUM2_1
mov A, #2h
swap A
mov R3,A
call VIVOD_FIRST_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_2
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUM2_1:
mov A, R3
add A, #2h
mov R3, A
mov R5, #00000001b
call VIVOD_SECOND_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_2
;;;;;;;;;;;;;;;;;;;;;VVOD VTOROGO CHISLA;;;;;;;;;;;;;;;;;;;;;;
NUM2_2:
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R4, #00000000b, ONFIRSTNUM2_2
mov A, #2h
swap A
mov R4,A
call VIVOD_FIRST_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_2
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUM2_2:
mov A, R4
add A, #2h
mov R4, A
mov R5, #00000001b
call VIVOD_SECOND_NUM
call WAIT_TI
call SLEEP
END_KEY_2:
ret
keyF:
cjne R5, #00000000b, NUM2_F
;;;;;;;;;;;;;;;;;;;;;VVOD PERVOGO CHISLA;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R3, #00000000b, ONFIRSTNUMF_1
mov A, #0fh
swap A
mov R3,A
call VIVOD_FIRST_HEX
call WAIT_TI
call SLEEP
jmp END_KEY_F
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUMF_1:
mov A, R3
add A, #0fh
mov R3, A
mov R5, #00000001b
call VIVOD_SECOND_HEX
call WAIT_TI
call SLEEP
jmp END_KEY_F
;;;;;;;;;;;;;;;;;;;;;VVOD VTOROGO CHISLA;;;;;;;;;;;;;;;;;;;;;;
NUM2_F:
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R4, #00000000b, ONFIRSTNUMF_2
mov A, #0fh
swap A
mov R4,A
call VIVOD_FIRST_HEX
call WAIT_TI
call SLEEP
jmp END_KEY_F
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUMF_2:
mov A, R4
add A, #0fh
mov R4, A
mov R5, #00000001b
call VIVOD_SECOND_HEX
call WAIT_TI
call SLEEP
END_KEY_F:
ret
key8:
cjne R5, #00000000b, NUM2_8
;;;;;;;;;;;;;;;;;;;;;VVOD PERVOGO CHISLA;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R3, #00000000b, ONFIRSTNUM8_1
mov A, #8h
swap A
mov R3,A
call VIVOD_FIRST_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_8
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUM8_1:
mov A, R3
add A, #8h
mov R3, A
mov R5, #00000001b
call VIVOD_SECOND_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_8
;;;;;;;;;;;;;;;;;;;;;VVOD VTOROGO CHISLA;;;;;;;;;;;;;;;;;;;;;;
NUM2_8:
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R4, #00000000b, ONFIRSTNUM8_2
mov A, #8h
swap A
mov R4,A
call VIVOD_FIRST_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_8
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUM8_2:
mov A, R4
add A, #8h
mov R4, A
mov R5, #00000001b
call VIVOD_SECOND_NUM
call WAIT_TI
call SLEEP
END_KEY_8:
ret
key4:
cjne R5, #00000000b, NUM2_4
;;;;;;;;;;;;;;;;;;;;;VVOD PERVOGO CHISLA;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R3, #00000000b, ONFIRSTNUM4_1
mov A, #4h
swap A
mov R3,A
call VIVOD_FIRST_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_4
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUM4_1:
mov A, R3
add A, #4h
mov R3, A
mov R5, #00000001b
call VIVOD_SECOND_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_4
;;;;;;;;;;;;;;;;;;;;;VVOD VTOROGO CHISLA;;;;;;;;;;;;;;;;;;;;;;
NUM2_4:
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R4, #00000000b, ONFIRSTNUM4_2
mov A, #4h
swap A
mov R4,A
call VIVOD_FIRST_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_4
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUM4_2:
mov A, R4
add A, #4h
mov R4, A
mov R5, #00000001b
call VIVOD_SECOND_NUM
call WAIT_TI
call SLEEP
END_KEY_4:
ret
key1:
cjne R5, #00000000b, NUM2_1
;;;;;;;;;;;;;;;;;;;;;VVOD PERVOGO CHISLA;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R3, #00000000b, ONFIRSTNUM1_1
mov A, #1h
swap A
mov R3,A
call VIVOD_FIRST_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_1
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUM1_1:
mov A, R3
add A, #1h
mov R3, A
mov R5, #00000001b
call VIVOD_SECOND_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_1
;;;;;;;;;;;;;;;;;;;;;VVOD VTOROGO CHISLA;;;;;;;;;;;;;;;;;;;;;;
NUM2_1:
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R4, #00000000b, ONFIRSTNUM1_2
mov A, #1h
swap A
mov R4,A
call VIVOD_FIRST_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_1
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUM1_2:
mov A, R4
add A, #1h
mov R4, A
mov R5, #00000001b
call VIVOD_SECOND_NUM
call WAIT_TI
call SLEEP
END_KEY_1:
ret
key0:
cjne R5, #00000000b, SECOND_NUM
mov A, R3
call VIVOD_SECOND_NUM
call WAIT_TI
call SLEEP
mov R5, #00000001b
jmp END_KEY_0
SECOND_NUM:
mov A, R4
call VIVOD_SECOND_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_0
END_KEY_0:
ret
key7:
cjne R5, #00000000b, NUM2_7
;;;;;;;;;;;;;;;;;;;;;VVOD PERVOGO CHISLA;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R3, #00000000b, ONFIRSTNUM7_1
mov A, #7h
swap A
mov R3,A
call VIVOD_FIRST_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_7
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUM7_1:
mov A, R3
add A, #7h
mov R3, A
mov R5, #00000001b
call VIVOD_SECOND_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_7
;;;;;;;;;;;;;;;;;;;;;VVOD VTOROGO CHISLA;;;;;;;;;;;;;;;;;;;;;;
NUM2_7:
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R4, #00000000b, ONFIRSTNUM7_2
mov A, #7h
swap A
mov R4,A
call VIVOD_FIRST_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_7
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUM7_2:
mov A, R4
add A, #7h
mov R4, A
mov R5, #00000001b
call VIVOD_SECOND_NUM
call WAIT_TI
call SLEEP
END_KEY_7:
ret
keyB:
cjne R5, #00000000b, NUM2_B
;;;;;;;;;;;;;;;;;;;;;VVOD PERVOGO CHISLA;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R3, #00000000b, ONFIRSTNUMB_1
mov A, #0bh
swap A
mov R3,A
call VIVOD_FIRST_HEX
call WAIT_TI
call SLEEP
jmp END_KEY_B
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUMB_1:
mov A, R3
add A, #0bh
mov R3, A
mov R5, #00000001b
call VIVOD_SECOND_HEX
call WAIT_TI
call SLEEP
jmp END_KEY_B
;;;;;;;;;;;;;;;;;;;;;VVOD VTOROGO CHISLA;;;;;;;;;;;;;;;;;;;;;;
NUM2_B:
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R4, #00000000b, ONFIRSTNUMB_2
mov A, #0bh
swap A
mov R4,A
call VIVOD_FIRST_HEX
call WAIT_TI
call SLEEP
jmp END_KEY_B
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUMB_2:
mov A, R4
add A, #0bh
mov R4, A
mov R5, #00000001b
call VIVOD_SECOND_HEX
call WAIT_TI
call SLEEP
END_KEY_B:
ret
keyA:
cjne R5, #00000000b, NUM2_A
;;;;;;;;;;;;;;;;;;;;;VVOD PERVOGO CHISLA;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R3, #00000000b, ONFIRSTNUMA_1
mov A, #0ah
swap A
mov R3,A
call VIVOD_FIRST_HEX
call WAIT_TI
call SLEEP
jmp END_KEY_A
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUMA_1:
mov A, R3
add A, #0ah
mov R3, A
mov R5, #00000001b
call VIVOD_SECOND_HEX
call WAIT_TI
call SLEEP
jmp END_KEY_A
;;;;;;;;;;;;;;;;;;;;;VVOD VTOROGO CHISLA;;;;;;;;;;;;;;;;;;;;;;
NUM2_A:
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R4, #00000000b, ONFIRSTNUMA_2
mov A, #0ah
swap A
mov R4,A
call VIVOD_FIRST_HEX
call WAIT_TI
call SLEEP
jmp END_KEY_A
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUMA_2:
mov A, R4
add A, #0ah
mov R4, A
mov R5, #00000001b
call VIVOD_SECOND_HEX
call WAIT_TI
call SLEEP
END_KEY_A:
ret
keyD:
cjne R5, #00000000b, NUM2_D
;;;;;;;;;;;;;;;;;;;;;VVOD PERVOGO CHISLA;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R3, #00000000b, ONFIRSTNUMD_1
mov A, #0dh
swap A
mov R3,A
call VIVOD_FIRST_HEX
call WAIT_TI
call SLEEP
jmp END_KEY_D
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUMD_1:
mov A, R3
add A, #0dh
mov R3, A
mov R5, #00000001b
call VIVOD_SECOND_HEX
call WAIT_TI
call SLEEP
jmp END_KEY_D
;;;;;;;;;;;;;;;;;;;;;VVOD VTOROGO CHISLA;;;;;;;;;;;;;;;;;;;;;;
NUM2_D:
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R4, #00000000b, ONFIRSTNUMD_2
mov A, #0dh
swap A
mov R4,A
call VIVOD_FIRST_HEX
call WAIT_TI
call SLEEP
jmp END_KEY_D
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUMD_2:
mov A, R4
add A, #0dh
mov R4, A
mov R5, #00000001b
call VIVOD_SECOND_HEX
call WAIT_TI
call SLEEP
END_KEY_D:
ret
keyC:
cjne R5, #00000000b, NUM2_C
;;;;;;;;;;;;;;;;;;;;;VVOD PERVOGO CHISLA;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R3, #00000000b, ONFIRSTNUMC_1
mov A, #0ch
swap A
mov R3,A
call VIVOD_FIRST_HEX
call WAIT_TI
call SLEEP
jmp END_KEY_C
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUMC_1:
mov A, R3
add A, #0ch
mov R3, A
mov R5, #00000001b
call VIVOD_SECOND_HEX
call WAIT_TI
call SLEEP
jmp END_KEY_C
;;;;;;;;;;;;;;;;;;;;;VVOD VTOROGO CHISLA;;;;;;;;;;;;;;;;;;;;;;
NUM2_C:
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R4, #00000000b, ONFIRSTNUMC_2
mov A, #0ch
swap A
mov R4,A
call VIVOD_FIRST_HEX
call WAIT_TI
call SLEEP
jmp END_KEY_C
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUMC_2:
mov A, R4
add A, #0ch
mov R4, A
mov R5, #00000001b
call VIVOD_SECOND_HEX
call WAIT_TI
call SLEEP
END_KEY_C:
ret
key6:
cjne R5, #00000000b, NUM2_6
;;;;;;;;;;;;;;;;;;;;;VVOD PERVOGO CHISLA;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R3, #00000000b, ONFIRSTNUM6_1
mov A, #6h
swap A
mov R3,A
call VIVOD_FIRST_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_6
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUM6_1:
mov A, R3
add A, #6h
mov R3, A
mov R5, #00000001b
call VIVOD_SECOND_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_6
;;;;;;;;;;;;;;;;;;;;;VVOD VTOROGO CHISLA;;;;;;;;;;;;;;;;;;;;;;
NUM2_6:
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R4, #00000000b, ONFIRSTNUM6_2
mov A, #6h
swap A
mov R4,A
call VIVOD_FIRST_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_6
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUM6_2:
mov A, R4
add A, #6h
mov R4, A
mov R5, #00000001b
call VIVOD_SECOND_NUM
call WAIT_TI
call SLEEP
END_KEY_6:
ret
key3:
cjne R5, #00000000b, NUM2_3
;;;;;;;;;;;;;;;;;;;;;VVOD PERVOGO CHISLA;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R3, #00000000b, ONFIRSTNUM3_1
mov A, #3h
swap A
mov R3,A
call VIVOD_FIRST_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_3
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUM3_1:
mov A, R3
add A, #3h
mov R3, A
mov R5, #00000001b
call VIVOD_SECOND_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_3
;;;;;;;;;;;;;;;;;;;;;VVOD VTOROGO CHISLA;;;;;;;;;;;;;;;;;;;;;;
NUM2_3:
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R4, #00000000b, ONFIRSTNUM3_2
mov A, #3h
swap A
mov R4,A
call VIVOD_FIRST_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_3
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUM3_2:
mov A, R4
add A, #3h
mov R4, A
mov R5, #00000001b
call VIVOD_SECOND_NUM
call WAIT_TI
call SLEEP
END_KEY_3:
ret
keyE:
cjne R5, #00000000b, NUM2_E
;;;;;;;;;;;;;;;;;;;;;VVOD PERVOGO CHISLA;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R3, #00000000b, ONFIRSTNUME_1
mov A, #0eh
swap A
mov R3,A
call VIVOD_FIRST_HEX
call WAIT_TI
call SLEEP
jmp END_KEY_E
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUME_1:
mov A, R3
add A, #0eh
mov R3, A
mov R5, #00000001b
call VIVOD_SECOND_HEX
call WAIT_TI
call SLEEP
jmp END_KEY_E
;;;;;;;;;;;;;;;;;;;;;VVOD VTOROGO CHISLA;;;;;;;;;;;;;;;;;;;;;;
NUM2_E:
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R4, #00000000b, ONFIRSTNUME_2
mov A, #0eh
swap A
mov R4,A
call VIVOD_FIRST_HEX
call WAIT_TI
call SLEEP
jmp END_KEY_E
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUME_2:
mov A, R4
add A, #0eh
mov R4, A
mov R5, #00000001b
call VIVOD_SECOND_HEX
call WAIT_TI
call SLEEP
END_KEY_E:
ret
key9:
cjne R5, #00000000b, NUM2_9
;;;;;;;;;;;;;;;;;;;;;VVOD PERVOGO CHISLA;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R3, #00000000b, ONFIRSTNUM9_1
mov A, #9h
swap A
mov R3,A
call VIVOD_FIRST_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_9
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUM9_1:
mov A, R3
add A, #9h
mov R3, A
mov R5, #00000001b
call VIVOD_SECOND_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_9
;;;;;;;;;;;;;;;;;;;;;VVOD VTOROGO CHISLA;;;;;;;;;;;;;;;;;;;;;;
NUM2_9:
;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla
cjne R4, #00000000b, ONFIRSTNUM9_2
mov A, #9h
swap A
mov R4,A
call VIVOD_FIRST_NUM
call WAIT_TI
call SLEEP
jmp END_KEY_9
;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla
ONFIRSTNUM9_2:
mov A, R4
add A, #9h
mov R4, A
mov R5, #00000001b
call VIVOD_SECOND_NUM
call WAIT_TI
call SLEEP
END_KEY_9:
ret
В курсовой работе запрограммирован микропроцессор 51 серии на выполнение арифметических операций. Использованы прерывания от последовательного порта и таймера.
1. Справочник. Микроконтроллеры: архитектура, программирование, интерфейс. Бородин В.Б., Шагурин М.И.М.:ЭКОМ, 1999.
2. Однокристальные микроЭВМ. Справочник. Бином: 1994.
3. Лекции «Микропроцессорные системы», Гудков Ю.И., 2007-2008 гг.