- •Что такое микроконтроллер?
- •Назначение ide?
- •Что такое picSimLab?
- •Что такое порты ввода-вывода?
- •Какое бывает обозначение портов ввода-вывода?
- •Как обозначаются порты ввода-вывода семейства pic?
- •Какие бывают цифровые входы и выходы?
- •Какие бывают аналоговые входы?
- •Назначение резисторов rup / rdown.
- •Что такое таймер-счетчик?
- •На каком устройстве базируется типовой таймер-счетчик?
- •Поясните работу блок-схемы работы таймера (рисунок 2.2).
- •Регистры управления ацп pic16.
- •Выравнивание данных в ацп pic16..
Министерство образования Республики Беларусь
Учреждение образования
«Белорусский государственный университет
информатики и радиоэлектроники»
Контрольная работа
По дисциплине «Программно-управляемые микроконтроллерные устройства»
Студент: Дашкевич А. А.
гр. 790241
Вариант 3
Минск 2020
ТЕМА 1
Условие:
Мигать попеременно светодиодами D1 и D5. Время горения светодиода в четыре раза больше чем время простоя. При нажатии кнопки загораются D5 и D8.
Решение:
#include <xc.h> //подключение компилятора хс8
#define _XTAL_FREQ 4000000 //объявим частоту нашего резонатора
#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator)
#pragma config WDTE = OFF // Watchdog Timer (WDT disabled)
#pragma config PWRTE = ON // Power-up Timer Enable bit (Power-up Timer is enabled)
#pragma config CP = OFF // Code Protection bit (Code protection disabled)
unsigned char CheckButton(void) //проверяем включение кнопки
{
unsigned char result=0;
unsigned int butcount=0;
while(!RA1) //проверяем наличие единицы в бите RA1
{
if(butcount < 10000)
{
butcount++; //инкремент счетчика
}
else
{
result = 1;
break; //выход из цикла
}
}
return result; //если мы нажмем и отпустим кнопку, то функция вернет 0
}
void main(void) { //начало главной функции
TRISB = 0x00; //настройка ножки портов RB на выход
PORTB = 0x00; //выводим на все пины порта 0
TRISA |= ~0x04; //настройка ножки порта RA2 на вход
PORTA &= ~0x03; //вводим значения в 1 и 2 пин
while (1) //бесконечный цикл
{ if(CheckButton()) //если кнопка включена, выполнить следующее
{
PORTBbits.RB7 = 1; //D8 вкл горит
PORTBbits.RB4 = 1; //D5 вкл горит
PORTBbits.RB0 = 1; //D1 вкл
__delay_ms(400); //с задержкой на 400мс
PORTBbits.RB0 = 0; //D1 выкл
} else
{
PORTBbits.RB0 = 1; //D1 вкл
__delay_ms(200); //с задержкой на 200мс
PORTBbits.RB4 = 1; //D5 вкл
__delay_ms(200); //с задержкой на 200мс
PORTBbits.RB0 = 0; //D1 выкл
PORTBbits.RB4 = 1; //D5 вкл горит
__delay_ms(200); //с задержкой на 200мс
PORTBbits.RB4 = 0; //D5 выкл
}
}
return;
}
Вывод:
Были изучены базовые понятия и принципы работы со средой MPLAB X IDE. Изучена настройка портов на вход и выход, и работа с базовыми операторами.
Контрольные вопросы:
Что такое микроконтроллер?
Микроконтро́ллер (англ. Micro Controller Unit, MCU) — микросхема, предназначенная для управления электронными устройствами.
Типичный микроконтроллер сочетает на одном кристалле функции процессора и периферийных устройств, содержит ОЗУ и (или) ПЗУ. По сути, это однокристальный компьютер, способный выполнять относительно простые задачи.
Отличается от микропроцессора интегрированными в микросхему устройствами ввода-вывода, таймерами и другими периферийными устройствами.
Назначение ide?
Обычно интегрированная среда разработки - это совокупность программных средств, поддерживающая все этапы разработки программного обеспечения от написания исходного текста программы до ее компиляции и отладки, и обеспечивающая простое и быстрое взаимодействие с другими инструментальными средствами (программным отладчиком-симулятором, внутрисхемным эмулятором, эмулятором ПЗУ и программатором).
Что такое picSimLab?
PICSimLab – это эмулятор разработки в реальном времени с интегрированным отладчиком MPLABX / avr-gdb.
Что такое порты ввода-вывода?
Порты ввода/вывода (ПВВ) – предназначены для общения микроконтроллера с внешними устройствами. С их помощью передается информацию другим устройствам и принимается от них. В зависимости от типа, микроконтроллер может иметь на своем борту от одного и более ПВВ.
Все порты в микроконтроллере N-разрядные (содержат N линий, они же выводы, они же разряды, они же биты) и двунаправленные – могут, как передавать, так и принимать информацию. ПВВ в микроконтроллере обслуживают все его устройства, в том числе и периферийные. Поэтому, в зависимости от того какое устройство будет работать с портом он может принимать и передавать или цифровую информацию, или аналоговую.
Какое бывает обозначение портов ввода-вывода?
Каждому порту ввода/вывода присвоено буквенное обозначение – A, B, C, D, E, F, G.
Как обозначаются порты ввода-вывода семейства pic?
В технической литературе и схемам ПВВ обозначаются следующим образом:
– ―P‖ – первая буква, означающая слово ―порт‖
– ―А‖ (B, С, D, E, F, G) – вторая буква, обозначающая конкретный порт
– ―0‖ (1, 2, 3, 4, 5, 6, 7) – третий символ – цифра, обозначающая конкретный вывод (регистр, бит) порта.
К примеру: ―порт A‖ – РА, ―пятый разряд порта A‖ – РА5.
Если в МК есть несколько портов, то не обязательно их имена могут идти по порядку – A, B, C. Может быть и так – B, С, D.
Кроме того, хотя порты N-разрядные, выводов у порта не обязательно должно быть N, может быть и меньше, к примеру, 3 – PA0, PA1, PA2. В таком случае порт называют неполным, или урезанным.
Какие бывают цифровые входы и выходы?
Различают четыре основных варианта организации выходов в МК:
двухтактный каскад с выходными уровнями, близкими к Vcc и GND. Сокращѐнное название «push-pull». Встречается практически во всех микроконтроллерных семействах;
логический элемент с «истинно» открытым стоком или на сленге с «открытым коллектором». Сокращѐнное название «open drain» или «true open drain».
логический элемент с квазиоткрытым стоком. Сокращѐнное название «false open drain» из-за присутствия ограничительного диода VD1.
логический элемент с открытым стоком, дополненный внутренним нагрузочным резистором. Сокращѐнное название «квазидвунаправленный.