Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
САПР_ЗВ(лекц4-ТC).doc
Скачиваний:
6
Добавлен:
30.08.2019
Размер:
818.69 Кб
Скачать

Задача n1

Напишiть програму пiдрахунку кiлькостi iмпульсiв за промiжок часу Т= 2,5 мc, якi поступають на вхiд порта Р1.0 мікроконтролера MCS51 вiд датчика згiдно приведеної структурної схеми. Пояснити роботу програми і привести розрахунок тривалості затримки. Частота кварцу мікроконтролера максимальна.

LC-генератор,

формувач імп.

Індуктивний датчик

Мікро-контролер

MCS51

Задача n2

Привести алгоритм i програму вимiрювання тривалостi додатнього iмпульса на вході Р2.1 мікроконтролера MCS51 згідно приведеної структурної схеми. Частота кварцу мікроконтролера максимальна.

Рис. Ввід аналогової інформації в ОЕОМ К1816ВЕ51 методом перетворення її в довжину імпульса (SN555, К1006ВІ1) або в частоту (1108ПП1).

Рис. Ввід інформації в ОЕОМ від індуктивного датчика методом вимірювання резонансної частоти.

Приклад програми вимірювання частоти

$mod51

;вимірювання частоти в Гц

;розрахована на зовнішню частоту Т0 6817Гц

;підрахунок ведеться за 1с, результат у вигляді ХХХХ Гц

mode EQU 55h ;настроює T1 counter, T0 counter

str EQU 50h ;запис у TCON дозволяє відлік

ORG 0000h

BEG: mov TL1,#00h ;обнулення

mov TH1,#00h ;Т/С1

mov TL0,#0f0h ;попереднє встановлення Т/С0

mov TH0,#0E4h ;розрахована на 1с

mov TMOD,#MODE ;ініціалізація режимів таймерів

mov TCON,#STR ;запуск відліку

jnb TF0,$ ;перевірка прапора переповнення Т/С0

clr TR1 ;якщо відбулося переповнення, то

clr TR0 ;зупинити відлік Т/С1 і Т/С0

mov R0,TL1 ;зчитування результату вимірювання

mov R1,TH1 ;R0 містить молодшу частину, а R1 – старшу

call IND ;звертання до підпрограми індикації

mov R3,#01h ;тимчасова затримка

M1: mov R4,#01h ;на двох регістрах

djnz R4,$ ;з декрементом

djnz R3,M1 ;у вкладеному циклі

jmp BEG ;перехід на наступний цикл вимірювання

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

; Обробка переривань по INT0

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

Організація пам’яті мк

0FFFH

23H  TI, RI

1BH  T/C1

13H  INT1

0BH  T/C0

03H  INT0

00H

15 8

PC

7 0

Рис.2.3 — Структура резидентної пам'яті програм мікроконтролера 8051

Програмна модель МК 8051 містить резидентну пам'ять даних (РПД), регістри спеціальних функцій, резидентну пам'ять програм (РПП) і програмний лічильник PC.

Резидентна пам'ять програм (рис.2.3) має байтову організацію і доступна тільки для читання.

Резидентна пам'ять програм може бути доповнена зовнішньою пам'яттю. У цьому випадку загальний максимально допустимий обсяг пам'яті програм складе 64 Кб.

Молодші адреси резидентної пам'яті програм відведені під опрацьовування зовнішніх переривань , , від таймерів/лічильників T/C0, T/C1 і переривань від послідовного порту (TI, RI).

У випадку появи якого-небудь із зазначених переривань відбувається звернення до відповідної комірки резидентної пам'яті програм (наприклад, при виникненні переривання в PC записується код 0003H).

ORG 0

LJMP Begin

ORG 03

LJMP IntTC0

Begin:

; Основна програма

Call Init

…………….

LoopMain:

……………..

……………..

JMP LoopMain

IntTC0:

CLR TR0

CPL P2.7

Mov TH0,#100

Mov TL0,#0FFh

SETB TR0

RETI

OBRINT0:

SETB P3.2

MOV 2FH,87H ; POKA - OZU[2Fh] - ???

JB 7AH, SPREG

nop ;

LJMP PRERPOLZ

RETI

SPREG:

JNB P3.2,SPREG

MOV 87H,#0 ; GF0:=0

RETI

; ==== Обробка переривань по таймеру T0 =======

OBTC0:

CLR TCON.4 ; "STOP" "SCHETCH.0"

MOV TH0,#0FFH

MOV TL0,#0FDH ; DLJA PODSCHETA 3 IMPULSOV

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

CLR 00H ; FLAG "OGIDAN."

RETI

; ==== Обробка переривань по таймеру T1 =======

OBTC1:

CLR TCON.6 ; "STOP" "SCHETCHIKA 1"

MOV TH1,#0FFH

MOV TL1,#0FCH ; DLJA PODSCHETA 4 IMPULS.

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

CLR 00H ; FLAG "OGIDAN."

RETI