Изучение принципов работы с таймером прерывания в микроконтроллерах Microchip PICMicro

Страницы работы

3 страницы (Word-файл)

Содержание работы

Лабораторная работа № 5

Цель работы: Изучить принципы работы с таймером прерывания в микроконтроллерах Microchip PICMicro.

Постановка задачи: Привести описание модулей таймеров выбранного типа микроконтроллера. Написать программу управления гирляндой на 8 светодиодов с использованием таймера и прерываний. Вход RC2 управляет направлением движения “бегущего огня”.

Ход работы:

Создаем новый проект для нужного микроконтроллера (PIC18F242). Пишем код программы (листинг представлен ниже). Далее отключаем оптимизацию (рисунок 1), добавляем в View — Watch PORTB типа Binary. Добавляем в Stimulus Controller пин RC2 как Toggle (рисунок 2). Компилируем и запускаем. Результат работы программы на рисунке 3.

Рисунок 1 – Отключение оптимизации компилятора

Рисунок 2 – Stimulus Controller

Рисунок 3 – Результат работы программы

Листинг программы

#include <pic18.h>

__CONFIG(2,WDTDIS);

void DelayMs(unsigned char cnt){

unsigned char i, _dcnt;

do {

i = 5;

do {

_dcnt = 124;

while(--_dcnt != 0) continue;

} while(--i);

} while(--cnt);

}

void main(){

short int counter = 0;

TRISB=0x00;

PORTB=0;

PORTA=0;

ADCON1=6;

while(1)    {

DelayMs(300);

if (RC2){

switch(counter)         {

case 0: PORTB=0b00000001; break;

case 1: PORTB=0b00000010; break;

case 2: PORTB=0b00000100; break;

case 3: PORTB=0b00001000; break;

case 4: PORTB=0b00010000; break;

case 5: PORTB=0b00100000; break;

case 6: PORTB=0b01000000; break;

case 7: PORTB=0b10000000; break;              

}

if (counter != 7)

counter++;

else

counter = 0;

}

else {

switch(counter)

{     case 0: PORTB=0b10000000; break;

case 1: PORTB=0b01000000; break;

case 2: PORTB=0b00100000; break;

case 3: PORTB=0b00010000; break;

case 4: PORTB=0b00001000; break;

case 5: PORTB=0b00000100; break;

case 6: PORTB=0b00000010; break;

case 7: PORTB=0b00000001; break;              

}

if (counter != 7)

counter++;

else

counter = 0;}

}

}

Похожие материалы

Информация о работе