BigEdu.ru

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

Кафедра

«Информационно-коммуникационные технологии»

Курсовая работа

на тему:

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

по дисциплине:

«Микропроцессорные системы»

Москва 2008 г.

Аннотация

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


Содержание

1. Техническое задание

2. Анализ технического задания

3. Алгоритмосновной программы

4. Алгоритмы обработчиков прерываний

4.1 Алгоритм обработчика com порта

4.2 Алгоритм обработчика прерываний от таймера T2

5. Основная программа

6. Программа прерывания от клавиатуры ПК

7. Программа прерывания от матричной клавиатуры

8. Заключение

9. Литература


1. Техническое задание

Написать программу для микропроцессора семейства 51, имеющую следующие функции:

1. Ввод чисел с последовательного порта

2. Ввод с клавиатуры арифметических операций(«+», «-», «*», «/») и сброс

3. Вывод результата арифметических операций на монитор компьютера

2. Анализ технического задания

В соответствии с техническим заданием устройство должно выполнять арифметические операции над введенными числами. Поэтому выделим два регистра ОЗУ для хранения введенных чисел:

· N1 – для хранения первого числа

· N2 – для хранения второго числа

Основная программа инициализирует прерывания с последовательного порта и таймера, после чего переходит в режим «холостого хода», ожидая следующие события:

· Ввод символов с порта P1

· Ввод символов с порта SBUF

Предусмотрены прерывания с последовательного порта P1, которые опрашивают матричную клавиатуру. При каждом прерывании соответствующее число записывается в регистры, выделенные для хранения этих чисел. Также предусмотрены прерывания с порта SBUF. При каждом прерывании выполняется соответствующая арифметическая операция над числами, хранящимися в регистрах, или происходит обнуление всех регистров и перевод каретки.


3. 5. Основная программа

org 8000h

ljmp MAIN

org 8023h ;handler for COM-port **********

ljmp COM_PORT_HANDLER ; установка обработчика

org 8033h; P1.0

ljmp HNDL_P1

org 803Bh; P1.1

ljmp HNDL_P1

org 8043h; P1.2

ljmp HNDL_P1

org 804Bh; P1.3

ljmp HNDL_P1

MAIN:

clr TI

clr RI

TM2IR equ 0C8h;interrupt flag register

IEN1 equ 0E8h;T2 interrupt enable register;

TM2CON equ 0EAh;T2 config register;

IP1 equ 0F8h ;interrupt priority

CTCON equ 0EBh; capture control

mov IEN1, #0Fh

mov CTCON, #10101010b ;falling 0-3 bits in P1 if interupt occured

;mov TM2IR, #00Fh;enable T2 capture register (for P1)

mov TM2CON, #00000011b; Timer T2 mode select ;;;;;?

mov IP1, #00h

mov P1, #0Fh

mov 08H, #00H

setb IE.7;enable interrupt; checking разрешаемпрерывания

setb IE.4;enable interrupt from COM - port

LOOP:

nop

jmp LOOP

ret

SLEEP:

mov R2, #100d

FOR1:

mov R1, #255d

FOR2:

djnz R1, FOR2

djnz R2, FOR1

ret

WAIT_TI:

WAITTI:

jnb TI, WAITTI

ret

VIVOD_FIRST_NUM:

mov R7, A

anl A, #11110000b

cjne A, #00000000b, VFN

jmp END_VFN

VFN:

swap A

add A, #30h

mov SBUF, A

call WAIT_TI

call SLEEP

END_VFN:

mov A, R7

ret

VIVOD_SECOND_NUM:

mov R7, A

anl A, #00001111b

add A, #30h

mov SBUF, A

call WAIT_TI

call SLEEP

mov A, R7

ret

VIVOD_FIRST_HEX:

mov R7, A

anl A, #11110000b

cjne A, #00000000b, VFH

jmp END_VFH

VFH:

swap A

add A, #37h

mov SBUF, A

call WAIT_TI

call SLEEP

END_VFH:

mov A, R7

ret

VIVOD_SECOND_HEX:

mov R7, A

anl A, #00001111b

add A, #37h

mov SBUF, A

call WAIT_TI

call SLEEP

mov A, R7

ret

end

6. Программа прерывания от клавиатуры ПК

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KEYBOARD-PC COMPLITE

COM_PORT_HANDLER: ; ****

jnb RI, OUT

GO:

jmp GO_

OUT:

jmp END_LST_KBD_PC

GO_:

mov A, SBUF

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ++++++++++++ ;;;;;;;;;;;;;;;;;;;

cjne A, #2bh, MINUS

mov SBUF, A

call WAIT_TI

call SLEEP

clr RI

mov SBUF, #'='

call WAIT_TI

call SLEEP

mov A, R3

clr C

addc A, R4

jnc NON_VIVOD_C

mov SBUF, #'1'

call WAIT_TI

call SLEEP

NON_VIVOD_C:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;PERVAYA_CIFRA

mov R0, A

anl A, #11110000b

swap A

subb A,#0ah

mov A, R0

Внимание, отключите Adblock

Вы посетили наш сайт со включенным блокировщиком рекламы!
Ссылка для скачивания станет доступной сразу после отключения Adblock!

Скачать
Курсовые работы по информатике и программированию Кафедра «Информационно-коммуникационные технологии» Курсовая работа на тему: «Калькулятор на основе микропроцессора» по дисциплине:
Оценок: 1001 (Средняя 5 из 5)

Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.

© 2016 - 2022 BigEdu.ru