Написать программу, в которой микроконтроллер по нажатию левой кнопки запускает вращение электромотора и по нажатию правой кнопки запускает попеременное мигание двух электрических ламп. Задействовать в проекте микроконтроллер PIC18F2220.
Листинг программы (без конфигурационных битов) имеет вид:
#include <xc.h>
#define _XTAL_FREQ 8000000
#include <stdio.h>
#include <stdlib.h>
void main (void)
{
TRISC |=(1 << 0);
TRISC |=(1 << 1);
TRISB &=~(1<<7);
TRISB &=~(1<<6);
TRISC &=~(1<<7);
OSCCON = 0b01110110;
while (1)
{
// Замыкание левой кнопки запускает электромотор
if (PORTCbits.RC0==0)
LATBbits.LATB7 = 1;
else
LATBbits.LATB7 = 0;
// Замыкание правой кнопки запускает мигание ламп
if (PORTCbits.RC1==0)
{
LATCbits.LATC7 = 1;
__delay_ms(1000);
LATCbits.LATC7 = 0;
__delay_ms(1000);
LATBbits.LATB6 = 1;
__delay_ms(1000);
LATBbits.LATB6 = 0;
__delay_ms(1000);
}
}
return;
}
Две одинаковых первичных цепи в схеме соединений состоят из резистора (Res) на 10 кОм, транзистора (BC108), реле (Relay) на 5 В и диода (1N4001). Для работы реле необходим ток 50…100 мА, поэтому транзистор выполняет функцию усилителя тока. Диод предохраняет транзистор от обратных токов, которые возникают в катушке электромагнитного реле при выключении питания.
В левую вторичную цепь входят электромотор (Motor-DC) и батарея на 12 В (Battery).
В правую вторичную цепь входят генератор на 220 В (Alternator) и лампы на 220 В (Lamp).
При подаче питания на катушку электромагнитного реле, сердечник катушки намагничивается и замыкает контакты вторичной электрической цепи. При нажатии на левую кнопку будет вращаться электромотор, при нажатии на правую кнопку будут попеременно зажигаться лампы. Моделирование работы программы в Proteus представлено на рис 1.
Моделирование
Проводим отладку программы и добиваемся правильного функционирования. После этого собираем действующий макет и прошиваем микроконтроллер. Последовательность действий при прошивке микроконтроллера изложена в учебном пособии “Программирование микроконтроллеров”.