Перейти к содержанию

PIC16F628A помогите написать программу


Максим Павленко

Рекомендуемые сообщения

Задача в следующем
Есть два светодиода и кнопка
Нужно чтобы при нажатии кнопки, светодиоды поочередно светились, при повторном нажатии кнопки - светодиоды тухнут. 

Кнопка -> порт А5 
Светодиоды А1 и А2

int a;
void main() {
PORTA = 0;                 // Инициализация PORTA
TRISA = 0b11111001;                 // Настройка PORTA как выход   0 and 0 are diodes

                                                                                        /* PORTA |= (1<<1);             
                                                                                         PORTA |= (1<<2); */
    
while(1) {                                     
         if PORTA |= (PORTA.F5<<2);
                  a =
}
}

 Тема программирования микроконтроллеров заинтересовала, но пока что все упирается в незнание синтаксиса Си  :(
Заранее спасибо

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Засуньте в вечный цикл , и будет работать так как надо. Порта2 и 3 выходы. Пина5 - кнопка.

Int flags=0;

if(PINA&(1<<5)==0) flags=1;

if(flags)

{

if(PORTA&(1<<2)==0)

{ PORTA|=(1<<2); 

PORTA&=~(1<<3);}

else

{ PORTA&=~(1<<2);

PORTA|=(1<<3); }

}

else

{

PORTA&=~(1<<2);

PORTA&=~(1<<3);

}

delay_ms(100);

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Спасибо большое. 
Подскажите пожалуйста PINA это тоже самое что и PORTA я так понял? (вначале кода) if(PINA&(1<<5)==0) flags=1;

Изменено пользователем Falconist
Ссылка на комментарий
Поделиться на другие сайты

Особенности хранения литиевых аккумуляторов и батареек

Потеря емкости аккумулятора напрямую зависит от условий хранения и эксплуатации. При неправильном хранении даже самый лучший литиевый источник тока с превосходными характеристиками может не оправдать ожиданий. Технология, основанная на рекомендациях таких известных производителей литиевых источников тока, как компании FANSO и EVE Energy, поможет организовать правильный процесс хранения батареек и аккумуляторов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Изучите регистры своего микроконтроллера . Код приведен для атмега аттини микроконтроллеров .

У пиков там чуток по другому . У pic там TRISA PORTA , а у некоторых может быть GPIOA .Я сразу не посмотрел какой у вас микроконтроллер

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

Секреты депассивации литиевых батареек FANSO EVE Energy

Самыми лучшими параметрами по энергоемкости, сроку хранения, температурному диапазону и номинальному напряжению обладают батарейки литий-тионилхлоридной электрохимической системы. Но при длительном хранении происходит процесс пассивации. Разберем в чем плюсы и минусы, как можно ее избежать или уменьшить последствия и как проводить депассивацию батареек на примере продукции и рекомендаций компании FANSO EVE Energy. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

29.02.2020 в 01:03, Максим Павленко сказал:

Задача в следующем
Есть два светодиода и кнопка

На выбранный Вами компилятор есть мануал и есть хедер для этого контроллера, где Вы найдете структуру порта с именами элементов этой структуры. Чтобы не выдумывать самому эти имена.

Во вторых, кнопка всегда имеет дребезг, поэтому требуется программное подавление этого дребезга заключающееся в том, что опрос кнопки нужно проводить с интервалом превышающем время этого дребезга - то есть примерно 30...50 мс. Иначе нажатия на кнопку будут восприниматься как многократные с произвольным их числом.

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

#pragma config MCLRE = ON // MCLR pin enable         
void main() {
  TRISA = 0b11111001;
  PORTA = 0b00000000;

  while (1)
  {

  if (RA5_BIT = 1) {          

          RA1_BIT = ~RA1_BIT;        
          delay_ms(100);                
          RA1_BIT = ~RA1_BIT;             
          delay_ms(100);                 
          RA2_BIT = ~RA2_BIT;             
          delay_ms(100);                 
          RA2_BIT = ~RA2_BIT;             
          delay_ms(100);                 
          }
  else
{
           RA1_BIT = 0;
         RA2_BIT = 0;
         delay_ms(100);
}
}
}

Ребята, вот код, который в Proteus выдает следующее:

Нажимаешь кнопку и держишь  нажатие (1) -> диоды поочередно моргают
Отпускаешь кнопку, -> диоды тухнут. 

Как мне сделать следующее, чтобы когда один раз нажимаю и отпускаю кнопку диоды моргали, при повторном однократном нажатии диоды тухли.
( Код сделан в MikroC -> PIC16F628A )

Уже голова закипела. Нужно же как то использовать переменную для запоминания состояния кнопки, но как это организовать - не пойму 

И еще вопрос насчет MCLRE, нужен ли этот конфиг тут?   --->  #pragma config MCLRE = ON

Ссылка на комментарий
Поделиться на другие сайты

55 минут назад, Максим Павленко сказал:

Как мне сделать следующее, чтобы когда один раз нажимаю и отпускаю кнопку диоды моргали, при повторном однократном нажатии диоды тухли.

читать https://forum.cxem.net/index.php?/topic/183908-как-подружить-attiny-2313-и-биполярный-шаговый-двигатель/&do=findComment&comment=2690436

https://forum.cxem.net/index.php?/topic/210783-помощь-с-кодом/&tab=comments#comment-3196257

 

до полного просветления.

ЗЫ эта архи сложная задача подымается на форуме каждые две-три недели.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...