Главная Мой профиль Регистрация Выход Вход
Приветствую Вас Гость | RSS
Воскресенье
19.05.2024
09:12
Articles
Меню сайта
Категории каталога
Счетчик TMR0 [2]
Прерывания [2]
ШИМ на pic16f877 [1]
Configuration Bits in Mid-Range PIC Microcontrollers [1]
Индикация [1]
Мини-чат
Главная » Статьи » Программирование MK PIC » Индикация

Пример вывода байта на динамическую индикацию

пример кода для динамической индикации

void indic_led(unsigned int16 temp)
{
unsigned char digits[5];
unsigned char A,B,C,D,E;
unsigned char ar[10]={252,96,218,242,102,182,190,224,254,246};
unsigned char *p=ar;

A=B=C=D=E=0;

while (temp>=10000) { temp=temp-10000; A+=1;} // A - десятков тысяч.
while (temp>=1000) { temp=temp-1000; B+=1;}
while (temp>=100) { temp=temp-100; C+=1;}
while (temp>=10) { temp=temp-10; D+=1;}
while (temp>=1) { temp=temp-1; E+=1;}

p=(p+A); A=*p; p=ar; // Семисегментный эквивалент.
p=(p+B); B=*p; p=ar;
p=(p+C); C=*p; p=ar;
p=(p+D); D=*p; p=ar;
p=(p+E); E=*p; p=ar;

digits[0]=E; // Помещаем в массив для удобства вывода.
digits[1]=D;
digits[2]=C;
digits[3]=B;
digits[4]=B;

 // В цикле вывести каждую цифру массива digits[] в соответствующий разряд СДИ и управляешь катодами или анодами.
...
}

Категория: Индикация | Добавил: Олег (01.03.2014)
Просмотров: 711 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
Друзья сайта
Статистика

Онлайн всего: 1
Шпионов 1
Пользователей: 0

Copyright MyCorp © 2024