Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МВ до РГР з ЦП_1.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
700 Кб
Скачать
☆

1. Завдання на ргр. Варіант №15

Розробити мікропроцесорну систему (МПС),

апаратна частина якої включає:

  • 2 однокристальні мікроконтролера типу MCS-51: (напр. I8051, AT89S8251, С8051), які з'єднані між собою за допомогою УАПП (у режимі SM);

  • клавіатуру на К клавіш;

  • індикатор 7SEG-BCD, підключений до МК1;

  • 8-розрядний аналого-цифровий перетворювач (АЦП) ADC-типу;

  • пристрій виводу інформації : індикатор IND-типу;

  • зовнішній оперативний запам'ятовувальний пристрій (ОЗП), ємкістю RAM (КБ);

програмне забезпечення:

Провести ініціалізацію мікроконтролерів;

Після рестарту:

МК1 працює у режимі генерування відеоімпульсів з періодом Т мс і тривалістю  мс. Мікроконтролер використовує для цього таймер-лічильник.

МК2 виводить на індикатор номер варианта РГР, наприклад, «VAR N15»

Мікроконтролер МК1 очікує факт натиснення клавіші з клавіатури (можливо по перериванню), визначає код натиснутої клавіші (наприклад «Х»), виводить цей код на індикатор 7SEG-BCD. Здійснює введення Х-відліків вхідного процесу з АЦП. Обчислює параметр PAR і пересилає цю інформаціюї через УАПП до мікроконтролера МК2. Режим роботи обох УАПП – «SM»

Мікроконтролер МК2 виводить отриману інформацію на індикатор IND та за адресою ADR в ОЗП.

Чисельні значення вхідних даних для виконання РГР вибираються з таблиці

Викладач І.В.Цевух

Затвердженно на засіданні кафедри РТС, протокол № від р.

Зав. кафедрою РТС П.Ю. Баранов

№

SM

К

ADC

IND

ОЗП

Т

PAR

ADR

РТ-2 15

1

15

Парал.

РКI

0.5

3

2

Макс

20Е

2. Розробка принципової схеми мікропроцесорного пристрою

  1. Програмне забезпечення для першого мк51 :

CS EQU Р3.7

RD EQU Р3.6

CONVST EQU Р3.5 ; глобальне привласнення

MAXS EQU 18h

MAXM EQU 19h

----------------------------------------------------------------------------------------------------

ORG 0H

JMP 30H

ORG 03H ; вектор переривання INT0

JMP KLAVA ; перехід на підпрограму KLAVA

ORG 0BH ; вектор переривання таймера 0

JMP TIME_0 ; перехід на підпрограму TIME_0

ORG 01BH ; вектор переривання таймера 1

JMP TIME_1 ; перехід на підпрограму TIME_1

ORG 30h

----------------------------------------------------------------------------------------------------

MOV TMOD, #00010001B ; задання режимів для таймерів-лічильників

MOV SCON, #10010000B ; задання режиму UART

MOV IE, #00011011B ; дозвіл переривань

MOV IP, #00000001B ; виставлення пріоритетів

MOV TH0, #0F8H ; установка 0-го лічильника

MOV TL0, #035H

MOV TH1, #0FCH ; установка 1-го лічильника

MOV TL1, #01EH

SETB EA ; дозвіл всіх переривань

SETB P3.4 ; установка 1 на 4-у піні порту Р3

MOV TCON, #00010000B ; дозвіл 0-го лічильника

JMP $ ; зациклення

----------------------------------------------------------------------------------------------------

TIME_0:CLR P3.4 ; очистка 4-го піну порту Р3

MOV TCON, #01000000B ; запуск таймера 1

RETI ; повернення з підпрограми обробки перер.

----------------------------------------------------------------------------------------------------

TIME_1: SETB P3.4 ; установка 1 на 4-м піні порту Р3

MOV TH0, #0F8H ; установка 0-го счётчика

MOV TL0, #035H

MOV TH1, #0FCH ; установка 1-го лічильника

MOV TL1, #01EH

MOV TCON, #00010000B ; запуск таймера 0

RETI ; повернення з підпрограми обробки перер.

-----------------------------------------------------------------------------------------------------

KLAVA: CLR EA ; зняття блокування переривань

MOV P2, #11111110B ; завантаження в порт константи

JNB P2.4, M0 ; якщо 0 то перехід на мітку М0

JNB P2.5, M1 ; якщо 0 то перехід на мітку М1

JNB P2.6, M2

JNB P2.7, M3

CLR P2.1 ; очистка 1-го піну порту Р2

SETB P 2.0 ; установка 1 на 0-му піні порту Р2

JNB P2.4, M4 ; якщо 0 то перехід на мітку М4

JNB P2.5, M5

JNB P2.6, M6

JNB P2.7, M7

CLR P 2.2 ; очистка 2-го піну порту Р2

SETB P2.1 ; установка 1 на 1-м піні порту Р2

JNB P2.4, M8 ; якщо 0 то перехід на мітку М8

JNB P2.5, M9

JNB P2.6, MA

JNB P2.7, MB

CLR P 2.3 ; очистка 3-го піну порту Р2

SETB P 2.2 ; установка 1 на 2-м піні порту Р2

JNB P2.4, MC ; якщо 0 то перехід на мітку МС

JNB P2.5, MD

MOV 20h, #0EH

JMP DRB

M0: MOV 20h, #0H ; записування коду нажатої клавіші

JMP DRB ; перехід на DRB

M1: MOV 20h, #1H

JMP DRB

M2: MOV 20h, #2H ; записування коду нажатої клавіші

JMP DRB ; перехід на DRB

M3: MOV 20h, #3H

JMP DRB

M4: MOV 20h, #4H ; записування коду нажатої клавіші

JMP DRB ; перехід на DRB

M5: MOV 20h, #5H

JMP DRB

M6: MOV 20h, #6H ; записування коду нажатої клавіші

JMP DRB ; перехід на DRB

M7: MOV 20h, #7H

JMP DRB

M8: MOV 20h, #8H ; записування коду нажатої клавіші

JMP DRB ; перехід на DRB

M9: MOV 20h, #9H

JMP DRB

MA: MOV 20h, #0AH ; записування коду нажатої клавіші

JMP DRB ; перехід на DRB

MB: MOV 20h, #0BH

JMP DRB

MC: MOV 20h, #0CH ; записування коду нажатої клавіші

JMP DRB

MD: MOV 20h, #0DH

JMP DRB

DRB: ; п-ма видалення брязкоту контактів

MOV R2, #5

MOV R1, #250

U_2: DJNZ R1, U_1

U_1: DJNZ R2, U_2

WORK:

MOV A, P2

CJNE A, #0F0H, WORK ; порівняння. акум. з #0F0H та перехід

CALL ACP

SETB EA

RETI

----------------------------------------------------------------------------------------------------

ACP:

MOV R2, 20H

MOV R1, #21H

MOV R0, #22H

L7880:

CLR CONVST ; імпульс старту перетворення

SETB CONVST

MOV R5, #19 ; затримка на час перетворення (20 мкс)

DJNZ R5, $

CLR CS ; CS=0

CLR RD ; RD=0

MOV A,P1 ; Читаємо з порту P1 мл. и сp. тетради

MOV R4,A ; зберігаємо їх в R4

MOV A,P0 ; читаємо з порту Р3 старшу тетраду

MOV R5, A ; в R4R5 - результат

SETB RD ; Установка RD в 1

SETB CS ; Установка CS в 1

MOV A, R4 ;

MOV @R1, A

MOV A, R5

MOV @R0, A

DJNZ R2, L7880 ; декремент R2 та п-хід якщо на L7880

CALL SCHET ; виклик підпрограми SCHET

RET ; повернення з підпрограми

----------------------------------------------------------------------------------------------------

SCHET:

MOV R2, 20H

MOV R1, #21H

MOV R0, #22H

MOV MAXM, @R0

MOV MAXS, @R1

M M3:

INC R0 ; збільшення на 1 R0

INC R0

INC R1 ; збільшення на 1 R1

INC R1

MOV A, @R1

MOV R4, A

MOV A, @R0

MOV R3, A

MOV A, MAXS ; записування МАХS в акумулятор

CLR C ; скидання переносу

CJNE A, R4, MM1 ; зрівн. ак. з R4 и пер. на ММ1 якщо

JC MM2

JMP MM6

MM2:

MOV MAXS, @R1

MOV MAXM, @R0

JMP MM6

MM1:

MOV A, MAXM

CLR C

CJNE A, R3, MM6 ; зрівн. ак. с R3 и пер. на ММ6 якщо

JC MM5 ; перехід на ММ5 якщо перенос = 1

JMP MM6

MM5:

MOV MAXS, @R1

MOV MAXM, @R0

MM6:

DJNZ R2, MM3

MOV R5, #0FFH

MOV SBUF, MAXS ; записування в рег. посл. порту MAXS

DJNZ R5, $ ; затримка

DJNZ R5, $

MOV SBUF, MAXM ; записування в рег. посл. порту MAXМ

RET