- •6.050901 – "Радіотехніка";
- •1. Завдання на ргр. Варіант №15
- •2. Розробка принципової схеми мікропроцесорного пристрою
- •Програмне забезпечення для першого мк51 :
- •4. Програмне забезпечення для другого мк51 :
- •Clr c ; скидання переносу
- •5 . Висновки
- •65044, Одеса, пр. Шевченка, 1.
- •Л ітература
- •Розрахунково-графічна робота
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. Розробка принципової схеми мікропроцесорного пристрою
Програмне забезпечення для першого мк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
