Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПТ 2013 ШПОРЫ.docx
Скачиваний:
297
Добавлен:
15.04.2015
Размер:
669.17 Кб
Скачать

/* Программа управления светодиодом vd1 от кнопки sb1 */

#include<reg51.h>

sbit P1_0 = P1^0;

sbit P2_0 = P2^0;

void main(void)

{

bit bit1_0;

while( 1 )

{

while(( bit1_0 = P1_0) == 1); // ожидание замыкания контакта SB1

P2_0 = 0; // зажечь светодиод

while(( bit1_0 = P1_0) == 0); // ожидание размыкания контакта SB1

P2_0 = 1; // погасить светодиод

}

}

5. Программирование таймеров микроконтроллеров mcs-51 на языке с51.

В микроконтроллерах семейства MCS-51 серии 8051 имеются два программируемых 16-битных таймера/счетчика (T/C0 и T/C1), которые могут быть использованы в качестве таймеров или счетчиков внешних событий. При работе в качестве таймера содержимое T/C инкрементируется в каждом машинном цикле, т.е. через каждые 12 периодов резонатора. При работе в качестве счетчика содержимое T/C инкрементируется под воздействием перехода из 1 в 0 внешнего входного сигнала, подаваемого на соответствующий вывод МК (Т0 или Т1).

Для управления режимами работы T/C и для организации взаимодействия таймеров с системой прерывания используются два регистра специальных функций TMOD – регистр режима и TCON – регистр управления.

Регистры самих таймеров/счетчиков являются также регистрами специальных функций и обозначаются

для T/C0 : TL0 – младший, TH0 – старший

для T/C1: TL1 – младший , TH1 – старший.

Формат регистра режима таймера /счетчика TMOD:

7

6

5

4

3

2

1

0

Разряды

GATE

C/ T

M1

M0

GATE

C/ T

M1

M0

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

T/C1 T/C0

GATE – управление внешней блокировкой T/C, при установке разрешает внешнему входу блокировать счетT/C, при этом единичное значение входа разрешает счёт, нулевое – запрещает;

С/– выбор режима работы Т/С: 0 – таймер, 1 – счетчик;

М1, М0 – выбор одного из четырех режимов работы Т/С:

00 – режим 0, 01 – режим 1, 10 – режим 2, 11 – режим 3.

Формат регистра управления/состояния таймера/счетчика TCON:

7

6

5

4

3

2

1

0

Разряды

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

TF1, TF0 – флаги переполнения Т/С1, Т/С0, устанавливаются при переполнении Т/С, сбрасываются при входе в подпрограмму обслуживания прерывания;

TR1, TR0 – управление пуском/остановом Т/С1 и Т/С0: 1 – счет, 0 – останов;

IE1, IE0 – флаг внешнего прерывания, устанавливается при переходе сигнала из 1 в 0 на входах и, сбрасывается при выходе из подпрограммы обслуживания прерывания;

IT1, IT0 – управление типом прерывания, прерывание фиксируется: 1 – по спаду, 0 – по нулю на входах и.

Наиболее часто в программах управления и контроля таймеры/счетчики используются в режиме 1, т.е. как 16-разрядные, регистры THx и TLx включены последовательно. В этом режиме таймер может считать от 0 до 65535, т.е. от 0000H до FFFFH. При переходе из состояния «все единицы» в состояние «все нули» устанавливается флаг переполнения TFx, одновременно вырабатывается запрос прерывания. Разрешение и запрещение прерываний от таймеров/счетчиков выполняется битами регистра разрешения прерываний IE.

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