Калькулятор на основе микропроцессора

Автор работы: Пользователь скрыл имя, 09 Сентября 2011 в 08:05, курсовая работа

Описание

В курсовой работе разрабатывается калькулятор на выполнение арифметических функций («+», «-», «*», «/») в 16-ой системе. В работе использовались прерывания от последовательного порта и таймера. Работа выполняется на системе “прототип” на основе микроконтроллера 51 семейства.

Содержание

1. Техническое задание
2. Анализ технического задания
3. Алгоритм основной программы
4. Алгоритмы обработчиков прерываний
4.1 Алгоритм обработчика com порта
4.2 Алгоритм обработчика прерываний от таймера T2
5. Основная программа
6. Программа прерывания от клавиатуры ПК
7. Программа прерывания от матричной клавиатуры
8. Заключение
9. Литература

Работа состоит из  1 файл

Калькулятор на основе микропроцессора.doc

— 102.50 Кб (Скачать документ)

     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. Литература 

  1. Справочник. Микроконтроллеры: архитектура, программирование, интерфейс. Бородин В.Б., Шагурин М.И.М.:ЭКОМ, 1999.
  2. Однокристальные микроЭВМ. Справочник. Бином: 1994.
  3. Лекции «Микропроцессорные системы», Гудков Ю.И., 2007-2008 гг.

Информация о работе Калькулятор на основе микропроцессора