Автор работы: Пользователь скрыл имя, 09 Сентября 2011 в 08:05, курсовая работа
В курсовой работе разрабатывается калькулятор на выполнение арифметических функций («+», «-», «*», «/») в 16-ой системе. В работе использовались прерывания от последовательного порта и таймера. Работа выполняется на системе “прототип” на основе микроконтроллера 51 семейства.
1. Техническое задание
2. Анализ технического задания
3. Алгоритм основной программы
4. Алгоритмы обработчиков прерываний
4.1 Алгоритм обработчика com порта
4.2 Алгоритм обработчика прерываний от таймера T2
5. Основная программа
6. Программа прерывания от клавиатуры ПК
7. Программа прерывания от матричной клавиатуры
8. Заключение
9. Литература
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
8. Заключение
В
курсовой работе запрограммирован микропроцессор
51 серии на выполнение арифметических
операций. Использованы прерывания от
последовательного порта и
9. Литература