roboforum.ru

Технический форум по робототехнике.
Текущее время: 24 авг 2025, 13:19

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Proteus динамическая индикация
СообщениеДобавлено: 27 сен 2007, 20:55 
Не в сети
Аватара пользователя

Зарегистрирован: 21 дек 2006, 19:56
Сообщения: 4468
Откуда: Украина, г.Одесса
прог. языки: Delphi и С
Написал код забацал схему в протеусе, тока чего-то не получается в протеусе динамическая индикация. Раньше тоже делал часы на семисегментиках - в реале работают а в протеусе какая-то белиберда на индикаторах. Вот кусок кода по обработке времени и выводу его на 4-х разрядный семисегментник с общим катодом.

char Hour=12, Min=34, Sek=58, perem;
Код:
//Выводим полное время на все индикаторы
void Display_global(void)
{
PORTC=0b00001110; //Выводим часы десятки
perem=Hour/10;
switch (perem)
{
 case 0: PORTA=0b00111111;
 break;
 case 1: PORTA=0b00000110;
 break;
 case 2: PORTA=0b01011011;
}

PORTC=0b00001101; //Выводим часы единицы  
perem=Hour-10*(Hour/10);
switch (perem)
{
 case 0: PORTA=0b00111111;
 break;
 case 1: PORTA=0b00000110;
 break;
 case 2: PORTA=0b01011011;
 break;
 case 3: PORTA=0b01001111;
 break;
 case 4: PORTA=0b01100110;
 break;
 case 5: PORTA=0b01101101;
 break;
 case 6: PORTA=0b01111101;
 break;
 case 7: PORTA=0b00000111;
 break;
 case 8: PORTA=0b01111111;
 break;
 case 9: PORTA=0b01101111;
}

PORTC=0b00001011; //Выводим минуты десятки  
perem=Min/10;
switch (perem)
{
 case 0: PORTA=0b00111111;
 break;
 case 1: PORTA=0b00000110;
 break;
 case 2: PORTA=0b01011011;
 break;
 case 3: PORTA=0b01001111;
 break;
 case 4: PORTA=0b01100110;
 break;
 case 5: PORTA=0b01101101;
}                                

PORTC=0b00000111; //Выводим минуты единицы  
perem=Min-10*(Min/10);
switch (perem)
{
 case 0: PORTA=0b00111111;
 break;
 case 1: PORTA=0b00000110;
 break;
 case 2: PORTA=0b01011011;
 break;
 case 3: PORTA=0b01001111;
 break;
 case 4: PORTA=0b01100110;
 break;
 case 5: PORTA=0b01101101;
 break;
 case 6: PORTA=0b01111101;
 break;
 case 7: PORTA=0b00000111;
 break;
 case 8: PORTA=0b01111111;
 break;
 case 9: PORTA=0b01101111;
}

}

// Читаем клавиатуру

//Основная программа
void main(void)
{
init_MK();
//Helo();
while (1)
{
 Display_global();
 //KeyRead(); //Читаем клавиатуру
}
}


Вложения:
Таймер для рыб.rar [60.78 КиБ]
Скачиваний: 64
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 сен 2007, 22:04 
Не в сети
Аватара пользователя

Зарегистрирован: 21 дек 2006, 19:56
Сообщения: 4468
Откуда: Украина, г.Одесса
прог. языки: Delphi и С
Добавил паузу 5 мс и все заработало  :?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO