|
В начало
Лабораторная работа
Генерация прямоугольных сигналов на pic16f62x
Задание На выводе RB0 необходимо сформировать меандр с f=100 Hz, а на RB1–RB3 трехфазную последовательность с f=50 Hz. Тактовая частота f=8
MHz. Рис. 1. Краткие теоретические
сведения PIC16F62X имеет два порта ввода/вывода, PORTA и PORTB. Некоторые каналы портов мультиплицированы с
периферийными модулями микроконтроллера. Когда периферийный модуль включен,
вывод не может использоваться как универсальный канал ввода/вывода. Регистры PORTA и TRISA PORTA – 8-разрядный порт ввода вывода. RA4 имеет
триггер Шмидта на входе и открытый сток на выходе, мультиплицирован с тактовым
входом T0CKI. RA5 имеет триггер Шмидта на входе, без выходного буфера. Все
остальные каналы PORTA имеют триггер Шмидта на входе и полнофункциональные
выходные КМОП буферы. Все каналы PORTA имеют соответствующие биты направления в
регистре TRISA, позволяющие настраиватьканал как вход или выход. Запись ‘1’ в TRISA переводит соответствующий выходной
буфер 3-е состояние. Запись ‘0’ в регистр TRISA определяет соответствующий
канал как выход, содержимое защелки PORTA передается на вывод микроконтроллера. Чтение
регистра PORTA возвращает состояние на выводах порта, а запись производится в
защелку PORTA. Все операции записи в порт выполняются по принципу «чтение –
модификация - запись», т.е. сначала производится чтение состояния
выводов порта, затем изменение и запись в защелку. Каналы
PORTA мультиплицированы с модулем компараторов и источником опорного напряжения.
Настройка работы этих периферийных модулей определяется битами в регистрах
CMCON (управляющий регистр компаратора) и VRCON
(управляющий регистр источника опорного напряжения). Когда компаратор включен,
чтение состояние выводов PORTA будет давать результат
‘00’. Листинг 1. Код программы
Вывод: в данной лабораторной работе мы
генерировали 4 прямоугольных сигнала на выводах PORTB, основная часть программы написано в
прерывании по таймеру с частотой f = 200 Hz. |
||