Показать сообщение отдельно
Старый 04.04.2015, 22:20   #1 (permalink)
лесли
Новичок
 
Регистрация: 04.04.2015
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Lightbulb Помогите составить программу для CodeVisionAVR

Задание: Контроль количества посетителей в клубе.
В клуб помещается определённое количество человек. Входной светофор должен автоматически переключаться с зелёного на красный, когда количество посетителей превысило 50 человек. Как только места для посетителей освобождаются, вход снова обеспечивается включением зелёного сигнала. Вход и выход осуществляется через разные двери. Входящие и выходящие посетители подсчитываются с помощью фотодатчиков. При входе счётчик увеличивается на 1, а при выходе посетителя он снова уменьшается на 1. Информацию о количестве посетителей вывести на 7-ми сегментный индикатор.
Есть начало программы:

#include <mega8.h>
#include <delay.h>

int i=0;

void main(void)
{

PORTB=0b11000011;
DDRB= 0b00000011;

PORTC=0xFF;
DDRC=0xFF;

PORTD=0xFF;
DDRD=0xFF;

while (1)
{// подсчет количества и проверка условия
while (PINB.6==0) {i=i+1;delay_ms(2000);}
while (PINB.7==0) {i=i-1;delay_ms(2000);}
if (i<5){PORTB.1=0; PORTB.0=1;}
else {PORTB.0=0; PORTB.1=1;}
// вывод количества на два 7-сегм.индикатора (общий анод)
if (i==0){PORTC=0b11111111; PORTD=0b11000000;}
if (i==1){PORTC=0b11111111; PORTD=0b11111001;}
if (i==2){PORTC=0b11111111; PORTD=0b10100100;}
if (i==3){PORTC=0b11111111; PORTD=0b10110000;}
if (i==4){PORTC=0b11111111; PORTD=0b10011001;}
if (i==5){PORTC=0b11000000; PORTD=0b10010010;}

}

}
лесли вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070