Режим ШИМа T0 для МК AVR

February 27, 2011 by admin Комментировать »

Подготовить программу для исследования работы таймера Т1 в режиме ШИМа. Выводы 0С1А (PD5) и ОС IB (РЕ2) необходимо подключить к светодиодам (PD5-LED0, PE2-LED1), выводы порта PD0-PD3 к кнопкам общего назначения SW0-SW3 соответственно. Варианты обработки нажатия кнопок:

1)        при нажатии SWO на выходах 0С1А и ОС IB устанавливаются значения О и 1 соответственно;

2)         при нажатии SW1 происходит генерация ШИМ-сигнала со скважностью F1 (скважность зависит от значения в регистре сравнения);

3)         при нажатии SW2 происходит генерация ШИМ-сигнала со скважностью F2;

4)        при нажатии SW3 на выходах 0С1А и ОС IB устанавливаются 1 и О соответственно.

Временная диаграмма работы ШИМа приведена на рис. 4.4.

Рис. 4.4. Формирование ШИМ-сигнала

Программа 4.5

;Программа 4.5 для МК АТх8515: демонстрация работы таймера ; Т1 в режиме ШИМа. Для наглядности необходимо установить

; частоту тактового генератора = 2048 Гц. ;При нажатии на SW0 (SHOW_0) на выходах 0С1А и 0С1В

;устанавливаются О и 1, SW1 (SH0W_F1)- генерация ШИМ-

;сигнала со скважностью F1, SW2 (SH0W_F2)- со скважностью ;F2, SW3 (SH0W_1)- на выходах устанавливаются 1 и 0. ;Связи:PD5-LED0,PE2-LED1, PD0:PD1-SW0:SW1, PD2:PD3-SW2:SW3

;.include "8515def.inc"     ;файл определений AT90S8515

.include "m8515def.inc"     ;файл определений ATmega8515

.def temp = rl6             ;временный регистр

.Выводы порта PD

.equ SHOW_0 = 0

.equ SH0W_F1 = 1

.equ SH0W_F2 = 2

.equ SH0W_3 = 3

.org $000

rjmp INIT                ;обработка сброса ;***Инициализация МК

INIT: Idi temp,low(RAMEND)  ;установка

out SPL,temp             ; указателя стека

Idi temp,high(RAMEND)    ; на последнюю

out SPH,temp             ; ячейку ОЗУ

Idi temp,0x20          ;инициализация выводов порта PD:

out DDRD,temp            ; 0-3 – на ввод, 5 – на вывод

Idi temp,0x0F            ;включение подтягивающих

out PORTD,temp           ; резисторов порта PD

Idi temp,0x04 ;;;;для ATmega8515 инициализация

out DDRE,temp ;;;; PE2   (OCIB) на вывод

cli                      ; запрещение прерываний

Idi temp,0xB3            ;настройка таймера на ШИМ

out TCCRlA,temp          ; с выводами 0С1А и 0С1В

clr temp                 ;обнуление

out OCRlAH,temp          ; регистров

out OCRlAL,temp          ; сравнения и

out OCRIBH,temp

out OCRIBL,temp

out TCNTlH,temp          ; счетного

out TCNTlL,temp          ; регистра

Idi temp,0x01            ;таймер

out TCCRlB,temp          ; запущен: частота – СК

sei                      ; разрешение прерываний

WAIT_0:                   ;ожидание

sbic PIND,SHOW_0          ; нажатия

rjmp WAIT_F1          ; кнопки SHOW_0, состояния 0 и 1 ;Перевод в устойчивые состояния выводов ОС1А=0, 0С1В=1

clr temp                  ;запись числа в

out OCRlAH,temp           ; регистры сравнения, первым

out OCRlAL,temp           ; записывается старший байт out OCRlBH,temp out OCRlBL,temp

WAIT_F1;sbic PIND,SH0W_F1;ожидание нажатия

rjmp WAIT_F2              ; кнопки SH0W_F1 – режим ШИМа

; скважностью Fl .Настройка таймера на режим ШИМа со скважностью F1 Idi temp,0x00   ;запись числа в

out OCRlAH,temp           ; регистры сравнения,

out OCRlBH,temp           ; первым записывается

Idi temp,OxFF             ; старший байт

out OCRlAL,temp out OCRlBL,temp

WAIT_F2:sbic PIND,SH0W_F2;ожидание нажатия

rjmp WAIT_3               ; кнопки SH0W_F2-режим ШИМа

скважностью F2 ;***Настройка таймера на режим ШИМа со скважностью F2 Idi temp,0x02  ;запись числа в

out OCRlAH,temp           ; регистры сравнения,

out OCRlBH,temp           ; первым записывается

Idi temp,OxFF             ; старший байт

out OCRlAL,temp out OCRlBL,temp

WAIT_3:sbic PIND,SH0W_3   ;ожидание нажатия

rjmp WAIT_0               ; кнопки SH0W_3, состояния 1 и 0

.Перевод в устойчивые     состояния выводов 0С1А=1, ОС1В=0

ser temp                  ;запись числа в

out OCRlAH,temp           ; регистры сравнения, первым

out OCRlAL,temp           ; записывается старший байт out OCRlBH,temp out OCRlBL,temp rjmp WAIT_0

Результат соответствует диаграммам на рис. 4.4. При нажатии на SWO загорается только LEDO, при нажатии SW3 – только LED1. При нажатии SW1 или SW2 светодиоды попеременно включаются;выключаются со скважностью F1 или F2 соответственно.

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты