Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364139
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62791)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21319)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21692)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8692)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3462)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20644)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

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

Название: Калькулятор на основе микропроцессора
Раздел: Рефераты по информатике
Тип: курсовая работа Добавлен 08:30:19 10 января 2010 Похожие работы
Просмотров: 26 Комментариев: 10 Оценило: 2 человек Средний балл: 5 Оценка: неизвестно     Скачать

Кафедра

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

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

на тему:

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

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

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

Москва 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. Алгоритм основной программы

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

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

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


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

jc VIVOD_CIFRA1

call VIVOD_FIRST_HEX

call WAIT_TI

call SLEEP

jmp VTORAYA_CIFRA

VIVOD_CIFRA1:

call VIVOD_FIRST_NUM

call WAIT_TI

call SLEEP

clr C

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;VTORAYA_CIFRA

VTORAYA_CIFRA:

mov R0, A

anl A, #00001111b

subb A,#0ah

mov A, R0

jc VIVOD_CIFRA2

call VIVOD_SECOND_HEX

call WAIT_TI

call SLEEP

jmp END_LST_KBD_PC

VIVOD_CIFRA2:

call VIVOD_SECOND_NUM

call WAIT_TI

call SLEEP

clr C

MINUS:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ------------- ;;;;;;;;;;;;;;;;;;;

cjne A, #2dh, UMNOJ

mov SBUF, A

call WAIT_TI

call SLEEP

clr RI

mov SBUF, #'='

call WAIT_TI

call SLEEP

mov A, R3

clr C

subb A, R4

jnc MINUS_NON_VIVOD_C

MINUS_NON_VIVOD_C:

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

mov R0, A

anl A, #11110000b

swap A

subb A,#0ah

mov A, R0

jc MINUS_VIVOD_CIFRA1

call VIVOD_FIRST_HEX

call WAIT_TI

call SLEEP

jmp MINUS_VTORAYA_CIFRA

MINUS_VIVOD_CIFRA1:

call VIVOD_FIRST_NUM

call WAIT_TI

call SLEEP

clr C

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;VTORAYA_CIFRA

MINUS_VTORAYA_CIFRA:

mov R0, A

anl A, #00001111b

subb A,#0ah

mov A, R0

jc MINUS_VIVOD_CIFRA2

call VIVOD_SECOND_HEX

call WAIT_TI

call SLEEP

jmp END_LST_KBD_PC

MINUS_VIVOD_CIFRA2:

call VIVOD_SECOND_NUM

call WAIT_TI

call SLEEP

clr C

UMNOJ:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ****************** ;;;;;;;;;;;;;;;;;;;

cjne A, #2ah, GO_DIV

jmp GO_UMNOJ

GO_DIV:

jmp DIVDIV

GO_UMNOJ:

mov SBUF, A

call WAIT_TI

call SLEEP

clr RI

mov SBUF, #'='

call WAIT_TI

call SLEEP

mov A, R3

mov B, R4

mul AB

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;BBBBBBBBBBBB

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

mov R3, A

mov R4, B

mov A, B

mov R0, A

anl A, #11110000b

swap A

subb A,#0ah

mov A, R0

jc UMNOJ_VIVOD_CIFRA1_A

call VIVOD_FIRST_HEX

call WAIT_TI

call SLEEP

jmp UMNOJ_VTORAYA_CIFRA_A

UMNOJ_VIVOD_CIFRA1_A:

call VIVOD_FIRST_NUM

call WAIT_TI

call SLEEP

clr C

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;VTORAYA_CIFRA

UMNOJ_VTORAYA_CIFRA_A:

mov R0, A

anl A, #00001111b

subb A,#0ah

mov A, R0

jc UMNOJ_VIVOD_CIFRA2_A

call VIVOD_SECOND_HEX

call WAIT_TI

call SLEEP

jmp VIVOD_A

UMNOJ_VIVOD_CIFRA2_A:

call VIVOD_SECOND_NUM

call WAIT_TI

call SLEEP

VIVOD_A:

mov A, R3

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAAAAAAAAAA

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

mov R0, A

anl A, #11110000b

swap A

subb A,#0ah

mov A, R0

jc UMNOJ_VIVOD_CIFRA1

call VIVOD_FIRST_HEX

call WAIT_TI

call SLEEP

jmp UMNOJ_VTORAYA_CIFRA

UMNOJ_VIVOD_CIFRA1:

call VIVOD_FIRST_NUM

call WAIT_TI

call SLEEP

clr C

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;VTORAYA_CIFRA

UMNOJ_VTORAYA_CIFRA:

mov R0, A

anl A, #00001111b

subb A,#0ah

mov A, R0

jc UMNOJ_VIVOD_CIFRA2

call VIVOD_SECOND_HEX

call WAIT_TI

call SLEEP

jmp END_LST_KBD_PC

UMNOJ_VIVOD_CIFRA2:

call VIVOD_SECOND_NUM

call WAIT_TI

call SLEEP

DIVDIV:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; /////////////////////// ;;;;;;;;;;;;;;;;;;;

cjne A, #2fh, NULL

mov SBUF, A

call WAIT_TI

call SLEEP

clr RI

mov SBUF, #'='

call WAIT_TI

call SLEEP

mov A, R3

mov B, R4

div AB

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

mov R0, A

anl A, #11110000b

swap A

subb A,#0ah

mov A, R0

jc DIV_VIVOD_CIFRA1

call VIVOD_FIRST_HEX

call WAIT_TI

call SLEEP

jmp DIV_VTORAYA_CIFRA

DIV_VIVOD_CIFRA1:

call VIVOD_FIRST_NUM

call WAIT_TI

call SLEEP

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;VTORAYA_CIFRA

DIV_VTORAYA_CIFRA:

mov R0, A

anl A, #00001111b

subb A,#0ah

mov A, R0

jc DIV_VIVOD_CIFRA2

call VIVOD_SECOND_HEX

call WAIT_TI

call SLEEP

jmp END_LST_KBD_PC

DIV_VIVOD_CIFRA2:

call VIVOD_SECOND_NUM

call WAIT_TI

call SLEEP

NULL:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; СБРОС ;;;;;;;;;;;;;;;;;;;

cjne A, #39h, END_LST_KBD_PC

mov SBUF, #0dh

call WAIT_TI

call SLEEP

mov SBUF, #0dh

call WAIT_TI

call SLEEP

mov SBUF, #0ah

call WAIT_TI

call SLEEP

mov SBUF, #'>'

call WAIT_TI

call SLEEP

mov R3, #00000000b

mov R4, #00000000b

mov R5, #00000000b

clr TI

clr RI; ***

END_LST_KBD_PC:

reti ; ****


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

;;;;;;;;;;;;;;;;IDENTIFYCATION SERIES KEYS;;;;;;;;;;;;;;;;;;;; LITTLE COMPLITE

HNDL_P1:

mov TM2IR, #00h

jnb P1.0, P1_0

jnb P1.1, P1_1

jb P1.2, ref1

ljmp P1_2

ref1:

jb P1.3, ref2

ljmp P1_3

ref2:

ljmp END_HNDL

P1_0:

mov P1, #11111110b

jnb P1.4, P1_0_4

jnb P1.5, P1_0_5

jnb P1.6, P1_0_6

jnb P1.7, P1_0_7

jmp END_HNDL

P1_0_4:

call key5

clr TI

jmp END_HNDL

P1_0_5:

call key2

clr TI

jmp END_HNDL

P1_0_6:

call keyF

clr TI

jmp END_HNDL

P1_0_7:

call key8

clr TI

jmp END_HNDL

P1_1:

mov P1, #11111101b

jnb P1.4, P1_1_4

jnb P1.5, P1_1_5

jnb P1.6, P1_1_6

jnb P1.7, P1_1_7

jmp END_HNDL

P1_1_4:

call key4

clr TI

jmp END_HNDL

P1_1_5:

call key1

clr TI

jmp END_HNDL

P1_1_6:

call key0

clr TI

jmp END_HNDL

P1_1_7:

call key7

clr TI

jmp END_HNDL

P1_2:

mov P1, #11111011b

jnb P1.4, P1_2_4

jnb P1.5, P1_2_5

jnb P1.6, P1_2_6

jnb P1.7, P1_2_7

jmp END_HNDL

P1_2_4:

call keyB

clr TI

jmp END_HNDL

P1_2_5:

call keyA

clr TI

jmp END_HNDL

P1_2_6:

call keyD

clr TI

jmp END_HNDL

P1_2_7:

call keyC

clr TI

jmp END_HNDL

P1_3:

mov P1, #11110111b

jnb P1.4, P1_3_4

jnb P1.5, P1_3_5

jnb P1.6, P1_3_6

jnb P1.7, P1_3_7

jmp END_HNDL

P1_3_4:

call key6

clr TI

jmp END_HNDL

P1_3_5:

call key3

clr TI

jmp END_HNDL

P1_3_6:

call keyE

clr TI

jmp END_HNDL

P1_3_7:

call key9

clr TI

jmp END_HNDL

END_HNDL:

mov P1, #0Fh

mov r7,#0fh

DEL_1:

mov r6, #0FFh

DEL_2:

nop

djnz r6, DEL_2

djnz r7, DEL_1

reti

key5:

cjne R5, #00000000b, NUM2_5

;;;;;;;;;;;;;;;;;;;;;VVOD PERVOGO CHISLA;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla

cjne R3, #00000000b, ONFIRSTNUM5_1

mov A, #5h

swap A

mov R3,A

call VIVOD_FIRST_NUM

call WAIT_TI

call SLEEP

jmp END_KEY_5

;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla

ONFIRSTNUM5_1:

mov A, R3

add A, #5h

mov R3, A

mov R5, #00000001b

call VIVOD_SECOND_NUM

call WAIT_TI

call SLEEP

jmp END_KEY_5

;;;;;;;;;;;;;;;;;;;;;VVOD VTOROGO CHISLA;;;;;;;;;;;;;;;;;;;;;;

NUM2_5:

;;;;;;;;;;;;;;;;;;;;;vvod pervogo razryada chisla

cjne R4, #00000000b, ONFIRSTNUM5_2

mov A, #5h

swap A

mov R4,A

call VIVOD_FIRST_NUM

call WAIT_TI

call SLEEP

jmp END_KEY_5

;;;;;;;;;;;;;;;;;;;vvod vtorogo razryada chisla

ONFIRSTNUM5_2:

mov A, R4

add A, #5h

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


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

В курсовой работе запрограммирован микропроцессор 51 серии на выполнение арифметических операций. Использованы прерывания от последовательного порта и таймера.


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

1. Справочник. Микроконтроллеры: архитектура, программирование, интерфейс. Бородин В.Б., Шагурин М.И.М.:ЭКОМ, 1999.

2. Однокристальные микроЭВМ. Справочник. Бином: 1994.

3. Лекции «Микропроцессорные системы», Гудков Ю.И., 2007-2008 гг.

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Мне с моими работами постоянно помогают на FAST-REFERAT.RU - можете просто зайти узнать стоимость, никто вас ни к чему не обязывает, там впринципе всё могут сделать, вне зависимости от уровня сложности) у меня просто парень электронщик там какой то, тоже там бывает заказывает))
FAST-REFERAT.RU18:15:24 08 декабря 2018
Спасибо, Оксаночка, за совет))) Заказал курсач, отчет по практике, 2 реферата и дипломную на REFERAT.GQ , все сдал на отлично, и нервы не пришлось тратить)
Алексей22:59:07 15 июля 2018Оценка: 5 - Отлично
Я обычно любые готовые работы покупаю на сайте shop-referat.tk , и свои все там же на продажу выставляю, неплохой доп.заработок. А если там не нахожу то уже на referat.gq заказываю и мне быстро делают.
Оксана15:40:42 11 июня 2018Оценка: 5 - Отлично
Хватит париться. На сайте REFERAT.GQ вам сделают любой реферат, курсовую или дипломную. Сам пользуюсь, и вам советую.
Студент20:53:16 09 июня 2018
Реферат на тему: Как заработать в интернете на halyava.125mb.com
Duke Nukem11:43:39 11 октября 2017

Смотреть все комментарии (10)
Работы, похожие на Курсовая работа: Калькулятор на основе микропроцессора

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

Да, в любом случае.
Да, но только в случае крайней необходимости.
Возможно, в зависимости от цены.
Нет, напишу его сам.
Нет, забью.



Результаты(290421)
Комментарии (4189)
Copyright © 2005-2021 HEKIMA.RU [email protected] реклама на сайте