Первая разработка.
Первая разработка.
Я вот чё придумал на кнопку нажал загорелось следующее число помогите с прошивкой. Контролер мега 8535
- Вложения
-
- Изображение 121.jpg
- (14.22 КБ) 473 скачивания
Последний раз редактировалось -ShAmAn- Ср окт 31, 2007 03:06:45, всего редактировалось 1 раз.
И так всё началось когда я начал читать журнал ХАКЕР в 93 номере комрад длинный писал про АВР и предложил пример вот прошивка. Хотелось бы писать на асамблере принцип такой на один из портов подается сигнал ну а остальные работают как переключатели. Тоесть микруха работает как простой счётчик как в первой статье про беглые огни. Но вот как реализовать программно не знаю ПОМОГИТЕ.
- Вложения
-
- Копия Прошивка на 5 светодиодов xakep_new.asm
- (1.55 КБ) 396 скачиваний
- Krik99
- Потрогал лапой паяльник
- Сообщения: 375
- Зарегистрирован: Вс мар 04, 2007 13:14:25
- Откуда: Украина
- Контактная информация:
Вот я когда изучал МК то писал вот такую программу которая щитает сколько раз нажата кнопка:
Может комуто будет интересно!
Код: Выделить всё
#include <avr>
#include <avr>
unsigned char a;
void ind (unsigned char number)
{ switch (number)
{ case1 : PORTC=0xF9; PORTB|=_BV(PB6); break; //код который зажигает на индикаторе цифру 1
case2 : PORTC=0xE4; PORTB&=~_BV(PB6); break; //код который зажигает на индикаторе цифру 2
case3 : PORTC=0xF0; PORTB&=~_BV(PB6); break; //код который зажигает на индикаторе цифру 3
case4 : PORTC=0xD9; PORTB&=~_BV(PB6); break; //код который зажигает на индикаторе цифру 4
case5 : PORTC=0xD2; PORTB&=~_BV(PB6); break; //код который зажигает на индикаторе цифру 5
case6 : PORTC=0xC2; PORTB&=~_BV(PB6); break; //код который зажигает на индикаторе цифру 6
case7 : PORTC=0xF8; PORTB|=_BV(PB6); break; //код который зажигает на индикаторе цифру 7
case8 : PORTC=0xC0; PORTB&=~_BV(PB6); break; //код который зажигает на индикаторе цифру 8
case4 : PORTC=0xD0; PORTB&=~_BV(PB6); break; //код который зажигает на индикаторе цифру 9
}
return;
}
int main (void)
{
a=1;
ind(a);
PORTC=0xFF; DDRC=0x3F;
DDRB|=_BV(PB6);
while(1)
{
if(bit_is_clear(PINB,PB2))
{
delay_loop_2(62500);
a++;
if(a==10) a=1;
ind(a);
}
}
}Может комуто будет интересно!

- Aheir
- Модератор
- Сообщения: 4517
- Зарегистрирован: Пн апр 03, 2006 11:43:25
- Откуда: Санкт - Петербург
- Контактная информация:
Если хочешь идти дальше с помощью алгоритма, теперь надо более подробно расписать все этапы. Например, что нужго для того, чтобы на индикаторе горела цифра 1? А что происходит при нажатии кнопки? Можно пытаться понять, какие переменные понадобятся и сколько. Так, постепенно все более подробно описывая процессы, доберешься и до команд АСМа конкретных, т.е. появится программа. 
Оптимизм х (Опыт + Знания) = const