Скачиваний:
13
Добавлен:
30.03.2023
Размер:
188.43 Кб
Скачать

Министерство образования Республики Беларусь

Учреждение образования

«Белорусский государственный университет

информатики и радиоэлектроники»

Контрольная работа

По дисциплине «Программно-управляемые микроконтроллерные устройства»

Студент: Дашкевич А. А.

гр. 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. Изучена настройка портов на вход и выход, и работа с базовыми операторами.

Контрольные вопросы:

  1. Что такое микроконтроллер?

Микроконтро́ллер (англ. Micro Controller Unit, MCU) — микросхема, предназначенная для управления электронными устройствами.

Типичный микроконтроллер сочетает на одном кристалле функции процессора и периферийных устройств, содержит ОЗУ и (или) ПЗУ. По сути, это однокристальный компьютер, способный выполнять относительно простые задачи.

Отличается от микропроцессора интегрированными в микросхему устройствами ввода-вывода, таймерами и другими периферийными устройствами.

  1. Назначение ide?

Обычно интегрированная среда разработки - это совокупность программных средств, поддерживающая все этапы разработки программного обеспечения от написания исходного текста программы до ее компиляции и отладки, и обеспечивающая простое и быстрое взаимодействие с другими инструментальными средствами (программным отладчиком-симулятором, внутрисхемным эмулятором, эмулятором ПЗУ и программатором).

  1. Что такое picSimLab?

PICSimLab – это эмулятор разработки в реальном времени с интегрированным отладчиком MPLABX / avr-gdb.

  1. Что такое порты ввода-вывода?

Порты ввода/вывода (ПВВ) – предназначены для общения микроконтроллера с внешними устройствами. С их помощью передается информацию другим устройствам и принимается от них. В зависимости от типа, микроконтроллер может иметь на своем борту от одного и более ПВВ.

Все порты в микроконтроллере N-разрядные (содержат N линий, они же выводы, они же разряды, они же биты) и двунаправленные – могут, как передавать, так и принимать информацию. ПВВ в микроконтроллере обслуживают все его устройства, в том числе и периферийные. Поэтому, в зависимости от того какое устройство будет работать с портом он может принимать и передавать или цифровую информацию, или аналоговую.

  1. Какое бывает обозначение портов ввода-вывода?

Каждому порту ввода/вывода присвоено буквенное обозначение – A, B, C, D, E, F, G.

  1. Как обозначаются порты ввода-вывода семейства 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. В таком случае порт называют неполным, или урезанным.

  1. Какие бывают цифровые входы и выходы?

Различают четыре основных варианта организации выходов в МК:

  • двухтактный каскад с выходными уровнями, близкими к Vcc и GND. Сокращѐнное название «push-pull». Встречается практически во всех микроконтроллерных семействах;

  • логический элемент с «истинно» открытым стоком или на сленге с «открытым коллектором». Сокращѐнное название «open drain» или «true open drain».

  • логический элемент с квазиоткрытым стоком. Сокращѐнное название «false open drain» из-за присутствия ограничительного диода VD1.

  • логический элемент с открытым стоком, дополненный внутренним нагрузочным резистором. Сокращѐнное название «квазидвунаправленный.