Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
final_vershion.doc
Скачиваний:
66
Добавлен:
26.03.2015
Размер:
305.15 Кб
Скачать

Вариант 14

  1. Модуль РСА как сторожевой таймер

Сторожевой таймер - это схема, которая автоматически сбрасывает микроконтроллер, если не получает от управляемой системы сигнала, который подтверждает, что не произошло никакого сбоя. Такое устройство используется в системах, (где есть электрические помехи или сбои по питанию и, где нужно обеспечить большую надежность.) В режиме сторожевого таймера может работать только четвертый модуль. Сигнал сброса срабатывает всякий раз, когда происходит совпадение значения РСА таймера-счетчика со значением регистров ССАР4Н, CCAP4L (см. рисунок). Бит WDTE в регистре CMOD устанавливает этот режим. При этом четвертый модуль должен находиться или в режиме программи­руемого таймера, или скоростного вывода. Имеет наименьший приоритет, запускается программно

[CMOD]=40h, [CCAPM4]=48h.

 

MOV CL, #00h;

MOV CH, #00h;

MOV CCAP4L, #00h;

MOV CCAP4H, #00h;

MOV CCAPM4, #48h; (01001000b)

MOVCMOD, #40h; (01000000b)

CLR IE.7; (IE.7 – бит снятия блокировки прерываний(0 – запрет всех прерываний))

MOV CCAP4L, #00h;

MOV CCAP4H, CH;

SETB IE.7;

  1. Последовательный связной адаптер. Рассчитайте частоту кварцевого резонатора для обмена со скоростью 19 200 бод (для микроконтроллера с предельной частотой 12 МГц).

A: Fv=( fосц/12)*(2/64)*(1/(256-TH1))

Если говорить о 51-ом, то такую скорость не получить, т.к. если используется Т1 при такой частоте тактового генератора контроллера, то нет такого значения TH1.

2/32*(12МГц/(12*(256-TH1)))=BaudRate

1/16*(1000000/(256-TH1))=BaudRate

16*BaudRate=1000000/(256-TH1)

16*19200=1000000/(256-TH1)

256-TH1=1000000/(16*19200)=3,255

TH1=256-3.255=252.745

Ближайшее целое это 253, при этом скорость будет уже не 19200, а 20833 и работа, например, с компьютером без специальных средств невозможна (нестандартная частота).

А вообще если 19200, то частота будет 10/8*19200=24кГц (т.к. в простом случае боды это скорость передачи данных, а у нас на каждые 8 бит приходится еще 2 бита служебных стоп-старт битов, значит передаем 10, значит частота выше в 10/8 раза)

  1. Память. Способы доступа к внутренней памяти с адреса 80h по FFh

Ячейки с адресами 80h-FFh – 1 байт в области регистров специальных функций SFR. Допускают байтовую и побитовую адресацию. Используется лишь прямая адресация при обращении. Те ячейки памяти, которые не заняты регистрами, физически отсутствуют на кристаллах МК семейства 8051 при обращении к ним можно прочитать лишь команды возврата, косвенная в верхней области ОЗУ. Т.е. эти 2 области занимают одно и то же адресное пространство, хотя и разделены физически. В итоге к SFR прямая, а к памяти только косвенная!

  1. Порты. Напишите программу формирования одиночного импульса на выводе р1.0

CLR P1.0   // Сброс бита в 0

SETB P1.0   // Установка бита в 1

CLR P1.0

Вариант 15

  1. Модуль РСА как генератор сигналов.

DSEG

PULSE EQU 2000

PAUSE EQU 8000

FLAG BIT 00h //привязывает следующую //команду жестко к памяти

CSEG

ORG 0000h

AJMP BEGIN

ORG 0033h

AJMP PCA_ISR

ORG 0100h

BEGIN: //настройка и запуск

MOV CL, #00h;

MOV CH, #00h;

MOV CMOD, #00h; //WDTE=0, //clock=fosc/12

MOV CCAPM0, #4Dh;

MOV CCAP0L, #LOW(PULSE)

MOV CCAP0H, #HIGH(PULSE)

SETB IE.6;

SETB IE.7;

SETB CCON.6; //запуск PCA массива (CR)

ORG 0200h

PCA_ISR:

CLR CCF0

PUSH ACC;

PUSH PSW;

JNB P1.3, MINUS //проверяем состояние бита

PULSE:

MOV A, CCAP0L;

ADD A, #LOW(PULSE); //при записи младшего байта

MOV CCAP0L, A; //компаратор выключается

MOV A, CCAP0H;

ADD A, #HIGH(PULSE);

MOV CCAP0H, A;

POP PSW;

POP ACC;

RETI; //иначе следующее прерывание не будет воспринято

MINUS:

MOV A, CCAP0L;

ADD A, #LOW(PAUSE); //каждый раз при прерывании

MOV CCAP0L, A; //проверяется состояние

MOV A, CCAP0H; //вывода P1.3 (программно)

ADD A, #HIGH(PAUSE); //если 1, то прибавляем

MOV CCAP0H, A; //длительность 8 мс

POP PSW; //если 0 – длительность импульса 2 мс

POP ACC;

RETI;

  1. Последовательный связной адаптер. Как организовать прием и передачу данных на разных частотах одновременно?

Как организовать прием и передачу данных на разных частотах одновременно?

T2MOD = 0x00;

PCON = 0x80; //бит SMOD. Удвоение скорости обмена UART

SCON = 0x58; //настройка UART. Режим 1 - 9-бит, разрешение приема, 9-й бит=1 (0101 1000)

TH2 = RCAP2H = 0xff; //загрузка Т2 исходя из выбранной скорости обмена-115200

TL2 = RCAP2L = 0xfa; //

TH1 = …

T2CON = 0x…; //настройка Т2. Т2-задающий генератор UART (0011 0000) – T2CON.4 – бит синхронизации передатчика. Если 1, то T1 не используется. T2CON.5 – бит синхронизации приемника

RCLK

T2CON.5

Выбор таймера/счетчика 2 для задания скорости работы приемника в режимах 1 и 3. При RCLK = 1 используется таймер/счетчик 2, при RCLK = 0 - таймер/счетчик 1

TCLK

Т2СОN.4

Выбор таймера/счетчика 2 для задания скорости работы передатчика в режимах 1 и 2.

При TCLK = 1 используется таймер/счетчик 2, при TCLK = 0 - таймер/счетчик 1

TI=RI = 0; //cброс флагов прерывания UART

TR2 = 1;

//настройка прерываний

IE = 0x90; //Общее, UART

  1. Память. Способы доступа к внешней памяти данных

Обратиться можно 2-мя способами:

1) через указатель: MOVX A, @DPTR –с использованием двухбайтового адреса, обмен идёт только через аккумулятор.

2) косвенно, через MOVX A, @Ri – с использованием однобайтового адреса, где Ri (i=0,1) – регистры R0,R1.

Обмен идёт только через аккумулятор. При использовании DPTR: старший байт в P2, младший в P0.

  1. Порты. Изобразите схему подключения светодиода к выводу p1.0 микроконтроллера i80C51

К порту более предпочтительный ид подключения, т.к. порт имеет малый выходной ток.

От порта

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]