Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Микропроцессорное управление устройствами преобразования электрической энергии и передачи электротехнической информации. Учебное пособие
.pdf
СПИСОК СОКРАЩЕНИЙ
АЦП — аналого-цифровой преобразователь.
ЦАП — цифро-аналоговый преобразователь.
ИС — интегральная схема.
ШИМ — широтно-импульсная модуляция.
ПЗУ — постоянное запоминающее устройство.
ОЗУ — оперативное запоминающее устройство.
CS — вход «выбор кристалла».
WR — вход «чтение».
RD — вход «запись».
ПУ — периферийное устройство.
ПП — подпрограмма прерывание.
АЛУ —арифметико-логическое устройство.
61

ПРИЛОЖЕНИЕ
Задачи для практики:
1а. Убедитесь в правильности номиналов резисторов на рис. 1.1 и 1.2, ис-
пользуя формулу для выходного напряжения масштабного усилителя (известную вам из предыдущих курсов по основам электроники). Как расположены
разряды в коде на рис. 1.2 (младший разряд слева или справа)?
1б. Какое напряжение покажет стрелочный вольтметр в точке out
(см. рис. П1)?
Задаются различные входные коды. Задаются различные опорные напря-
жения V1.
Соберите схему в PSpice.
Рис. П1. Иллюстрации к 1 заданию
62

П ри ме ч ан ие : В моделях нужно следить, чтобы младшие и старшие
значащие разряды регистров и ЦАП совпадали!
2. При стандартной 16-разрядной адресной шине нужно организовать
память объемом 64К на КР568РЕ2 (в заданиях варьируются: разрядность
шины, объем памяти, тип ИС памяти) (см. рис. П2).
N = ?
Рис. П2. Пример для 2 задания
63

3. Написать программу организации заданного временного интервала на
№
1 2 3 4 5 6 7 8 9
10
11
12
13
14
t (сек)
25
30
35
40
45
50
55
60
65
70
75
80
85
90
выходе RB0 МК PIC16F84 с внешним тактовым генератором, подключенным
к RA4 частотой 1 кГц (DCLOCK в PROTEUS) (рис. П3).
Смоделировать задачу в PROTEUS.
Варианты задания:
Трафарет программы:
LIST p = 16F84A
#include p16f84a.inc
__config 03FF3H
org 0
goto Start
Start задаем код интервала времени в TMR0
очищаем PORTB
переходим в 1 банк
PORTB на выход
программируем OPTION_REG
RA3 и RA4 на вход (разрешаем счет)
переходим в 0 банк
ждем переполнения таймера
сбрасываем флаг
при переполнении выводим 1 в RB0
бесконечный цикл
end
4. Написать программу задания времени таймером TMR0 в режиме прерывания, и при переполнении таймера вывод лог. 1 на RB7. Таймер подключен к
RA4 (TOCKI) от источника импульсов с частотой 1 кГц (DCLOCK в
PROTEUS). Смоделировать задачу в PROTEUS (рис. П3).
Трафарет программы:
Инициализация как в предыдущем задании.
64

INT movlw 0x80
movwf PORTB
goto INT
Start задаем код интервала времени в TMR0
очищаем PORTB
переходим в 1 банк
PORTB на выход
программируем OPTION_REG
RA3 и RA4 на вход (разрешаем счет)
переходим в 0 банк
разрешаем прерывания от переполнения таймера
бесконечный цикл
end
Рис. П3. Модель для 3 и 4 заданий
5. Построить генератор синусоидального сигнала на МК (рис. П4)
65

Рис. П4. Модель для 5 задания
Трафарет программы:
Инициализация.
Прописка вспомогательных регистров с помощью директивы equ
org 2100h
DE ; коды
DE ; коды
org 0
goto Pusk
Pusk определение направления передачи в PORTВ
с помощью TRISB, перейдя в 1 банк и вернувшись в 0 банк
Start обнуляем EEADR
записываем число ступеней
инициализируем чтение, перейдя в 1 банк и вернувшись в 0 банк
скопируем число из ячейки EEPROM в W
выводим число из W в PORTB
увеличиваем на 1 адрес EEADR
уменьшаем число ступеней на одну и переходим снова к ини циализации чтения
как только число ступеней обнулилось идем к Start
end
6. Задание с использованием АЦП. Выявить, как оцифровывается входная
величина при отрицательном опорном напряжении (рис. П5).
66

7. Написать программу допускового контроля восьмиразрядного аналого-
№ 1 2 3 4 5 6 7 8 9 10
11
12
13
14
15 % 5
10
15
20
25
30
35
40
45
50
55
60
65
70
75
вого сигнала, подаваемого на вход AN0 при TOKW = F0, TOKN = 0F и зажигании при аварии светодиода на одном из выходов порта С (рис. П5).
8. Написать программу допускового контроля аналогового сигнала, пода-
ваемого на вход AN0 и мигании при аварии светодиода на одном из выходов
порта С при уменьшении или увеличении напряжения более, чем на
от номинального напряжения, равного 3В (рис. П5).
Период мигания 2-3 раза в секунду.
Рис. П5. Схема к заданиям 6, 7, 8
9. Собрать и запустить схему распределителя ШИМ-импульсов на 4 вы-
хода (схема управления регулятора для 2 импульсного режима) с применением
блока ССР и «жесткой логики». Смоделируйте схему в PROTEUS (рис. П6).
Посмотрите на процесс в микросекундном диапазоне времени.
Возможно ли наличие сквозных токов в такой схеме?
10. Напишите программу таким образом, чтобы не использовать «жест-
кой логики» и исключить сквозные токи.
67

Рис. П6. Временные диаграммы к 9 заданию
Задания для практики на языке СИ:
11. Напишите программу «МИГАЛКИ» в соответствии с выданным пре-
подавателем «сценарием» мигания, посмотрите как компилятор «перевел»
программу на язык Ассемблера.
Вычислите частоту «мигания».
12. Напишите простую программу «ADC», самостоятельно выбрав вход-
ной PIN для аналогового сигнала и выходной порт для вывода результата. Посмотрите как компилятор «перевел» программу на язык Ассемблера.
Обратите внимание, что установка «выравнивания» и типа генератора не
работает. ADCON1 и ADCON0 переустанавливаются.
13. Напишите программу допускового контроля напряжения, подаваемого
на вход AN2 с теми же исходными данными, что и аналогичная программа,
написанная Вами на языке Ассемблера в задании 8. При начале контроля зажигаем светодиод на выходе RC7. При аварии ― светодиод на выходе RC2
мигает с частотой примерно 2…3 Гц.
14. Напишите программу по заданному на рис. П7 алгоритму. АЦП на лю-
бом выбранном Вами входе.
Индикация 1 и индикация 2 ― это засвечивание разных светодиодов на
ваш выбор и «останов» программы (имитация отключения устройства).
15. Напишите программу без функции ADC_Read(),c «левым» выравнива-
нием и частотой преобразования Fosc/32. Выясните, сколько времени займет
сам процесс АЦП. Программируем ADCON1 и ADCON0 как на Ассемблере.
16. Напишите программу ШИМ с частотой 5 кГц и КЗ = 50 % с использо-
ванием блока PWM. Импульсы формируются на выводах порта В в следующем
порядке: RB0, RB4 ― прямые ШИМ-импульсы, RB2, RB6 ― инверсные.
68

Рис. П7. Алгоритм к заданию 14
17. Напишите программу ШИМ на блоке PWM c функцией PWM и форми-
рованием периода импульса ШИМ как результата 8-разрядного АЦП с аналогового входа AN0. Распределение импульсов ШИМ на 4 выхода порта В аналогично предыдущему заданию.
Подготовительный расчет:
Для устойчивой работы разрядность «current_duty» вычисляется по формуле:
Р = log(Fosc/Fpwm)/log2.
То есть при Fpwm = 5000 Гц и Fosc = 20 мГц она должна быть не менее 12,
а в СИ встроенная функция PWM позволяет записывать аргумент currenr_duty
только 8 разрядами. Схема становится неустойчивой.
При какой частоте ШИМ обеспечивается устойчивая работа с 8 разрядами
на 20 мГц?
18. Напишите программу ШИМ на блоке PWM без функции PWM.
Функция PWM предполагает назначение частоты ШИМ в виде числового
значения. Для того, чтобы частоту ШИМ можно было варьировать, нужно написать программу без использования встроенной функции PWM (программируя T2CON, CCPR2L, CCP2CON).
Если результат АЦП округлять до 8 разрядов:
CCPR2L = период ШИМ × КЗ = период ШИМ × период ШИМ/256.
69

Напишите такую программу с контролем процесса ШИМ на порте В в лю-
бом виде.
19. Напишите программу распределения импульсов произвольной длитель-
ности, поступающих на вход RA0 на 6 выходов порта В как показано на рисунке П8.
Рис. П8. Временные диаграммы к 19 заданию
20. Напишите программу, где вместо произвольной ширины импульсов со
входа RA0 нужно формировать ширину импульсов и период ШИМ пропорционально входному аналоговому напряжению со входа AN0. Используем встроенную функцию res = ADC_Read(0). Округляем до 8 разрядов.
Вычисление CCPR2L = (PR2 × PR2) / 256.
Включение блока PWM: wkl = 0x0F; CCP2CON = CCP2CON|wkl;
21. Напишите программу на 20 МГц процессоре c аппаратным PWM
(рис. П9).
Максимальный период = 256 × 4 × 16 × 1/(20 × 1000000) = 0,0008 сек =
0,8 мс = 800 мкс.
Минимальная частота ― 1/0,8 = 1,25 кГц.
Программное время на АЦП и вычисления около 30 мкс.
Максимальная частота ― 1/0,3 = 3 кГц.
C программным PWM (на таймере TMR0) можно увеличить период ШИМ
до 6,5 мс, то есть уменьшить частоту ШИМ в 8 раз до 156 Гц.
Пример для периода ШИМ.
imp = 200 × 200 / 256 = 156.
Рис. П9. Пояснения к 21 заданию
70
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
