Министерство образования Республики Беларусь
Учреждение образования
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Факультет компьютерного проектирования
Кафедра электронной техники и технологии
Дисциплина: Программно-управляемые микроконтроллерные устройства
КОНТРОЛЬНАЯ РАБОТА
Вариант 5
Студент: гр. 990241 Петушок И.М.
Руководитель: преподаватель
Камлач П. В.
Минск
2022
Содержание
Y
ВВЕДЕНИЕ 3
ЗАДАЧИ КОНТРОЛЬНОЙ РАБОТЫ: 4
1 УПРАВЛЕНИЕ ПОРТАМИ ВВОДА/ВЫВОДА МИКРОКОНТРОЛЛЕРА. 5
2 УПРАВЛЕНИЕ ТАЙМЕР-СЧЕТЧИКАМИ 7
3 УПРАВЛЯТЬ СЕМИСЕГМЕНТНЫМИ ИНДИКАТОРАМИ 10
4 УПРАВЛЯТЬ ЖИДКОКРИСТАЛЛИЧЕСКИМ ДИСПЛЕЕМ 13
5 РАБОТА С МОДУЛЕМ ADC (АЦП) 17
ЗАКЛЮЧЕНИЕ 21
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 22
Введение
Нейромаркетинг, как инструмент влияния на потребительское поведение, все больше завоевывает популярность среди маркетологов-практиков. Более того, он становится необходимым условием запуска успешных рекламных кампаний. Цель нейромаркетинга – понять истинную реакцию потребителя на определенные маркетинговые раздражители.
К нейромаркетингу обращаются при создании и продвижении нового продукта. Он помогает с научной точностью определить, какой цвет, слово, образ, звук, запах и вкус привлекает целевую аудиторию и оказывает максимальное воздействие на подсознание.
Нейромаркетинг – междисциплинарная область, находящаяся на стыке нейробиологии, психологии и поведенческой экономики. Этот термин ввел в обиход профессор Эйл Смидс в 2002 году. С его помощью он описал возможности коммерческого использования нейробиолоогии с целью повышения эффективности маркетинговых мероприятий. По сути, это исследование мозга человека с целью влияния на его потребительское поведение.
Целью контрольной работы является изучение особенностей применения нейромаркетинга на примере белорусской сети ресторанов «Domino's Pizza».
Сеть ресторанов «Domino's Pizza» - одна из самых крупных сетей кофеен в Беларуси. Пиццерии «Domino's Pizza» славятся своей уютной атмосферой, комфортным дизайном, авторскими пиццами и освежающими напитками, вкусной выпечкой, многочисленными акциями.
В г. Гродно открыто две пиццерии «Domino's Pizza», которая ежедневно пользуются огромной популярностью у населения, несмотря на наличие в городе большого количества других пиццерий.
Задачи контрольной работы:
Сформировать общее представление о разработке программного обеспечения для микроконтроллеров серии PIC.
Создать проект и научиться управлять портами ввода/вывода микроконтроллера.
Создать проект и научиться управлять таймер-счетчиками.
Создать проект и научиться управлять семисегментными индикаторами.
Создать проект и научиться управлять жидкокристаллическим дисплеем.
Создать проект и научиться работать с модулем ADC (АЦП).
1 Управление портами ввода/вывода микроконтроллера.
Задание. Мигать попеременно светодиодами D1, D2 и D3. Время горения светодиода в два раза больше чем время простоя. При нажатии кнопки загораются D5 и D8.
Ниже приведен код, который будет управлять свечением светодиодов, подключенных к ножкам портов микроконтроллера. То есть за счёт поочерёдного поступления положительного потенциала от ножек портов на ножки светодиодов, а также нулевого номинала на другие ножки, создается поочерёдное свечение и потухание светодиодов, за счёт чего происходит эффект бегущих огней.
#include <xc.h>
#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 result=1;
unsigned char CheckButton(void)
{
unsigned int butcount=0;
while(!RA2)
{
if(butcount < 10000)
{
butcount++;
}
else
{
if (result == 0)result = 1; else result = 0;
/* переключение режима: result = 0 – мигают D5, D7, result = 1 – мигают D1, D2, D3 */
break;
}
}
return result;
}
void main(void) {
TRISB = 0x00; // Все выводы настраиваем порта B как выход
PORTB = 0x00; // гасим все светодиоды
TRISA &= ~0x03;// Порт А2 – на вход
PORTA &= ~0x03; /* подключен внутренний подтягивающий резистор на порт А2*/
while(1)
{
if(CheckButton())
{
PORTBbits.RB1 = 1; // вкл светодиод
__delay_ms(1000); // пауза
PORTBbits.RB1 = 0; // выкл светодиод
__delay_ms(500); // пауза в 2 раза меньше
PORTBbits.RB2 = 1;
__delay_ms(1000);
PORTBbits.RB2 = 0;
__delay_ms(500);
PORTBbits.RB3 = 1;
__delay_ms(1000);
PORTBbits.RB3 = 0;
__delay_ms(500);
}
else
{
PORTBbits.RB5 = 1;
__delay_ms(1000);
PORTBbits.RB5 = 0;
__delay_ms(500);
PORTBbits.RB7 = 1; // 8-го светодиода нет, мигаем 7
__delay_ms(1000);
PORTBbits.RB7 = 0;
__delay_ms(500);
}
}
return;
}