Отговори на тема  [ 4 мнения ] 
Управление на 4х7сегмента с PIC 
Автор Съобщение
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Нед Окт 19, 2008 7:26 pm
Мнения: 673
Мнение Управление на 4х7сегмента с PIC
Срам не срам ще питам ... Как ставаше? Начина за който се сещам , ми се вижда много дървен.
Код:
char digit[]={63,6,91,79,102,109,125,7,127,111,0};     
//char invdigit[]={192,249,164,176,153,146,130,248,128,144,255};
void OutLED(unsigned char i1)
{
if(i1&1){output_high(PIN_B0);}else{output_low(PIN_B0);}
if(i1&2){output_high(PIN_B1);}else{output_low(PIN_B1);}
if(i1&4){output_high(PIN_B2);}else{output_low(PIN_B2);}
if(i1&8){output_high(PIN_B3);}else{output_low(PIN_B3);}
if(i1&16){output_high(PIN_B4);}else{output_low(PIN_B4);}
if(i1&32){output_high(PIN_B5);}else{output_low(PIN_B5);}
if(i1&64){output_high(PIN_B6);}else{output_low(PIN_B6);}
if(i1&128){output_high(PIN_B7);}else{output_low(PIN_B7);}
}


void main()
{

//port_c_pullups(TRUE);
//setup_wdt(WDT_ON);
//setup_wdt(WDT_18MS|WDT_DIV_16);      //~18.0 ms reset
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1|RTCC_8_bit);      //128 us overflow


output_high(PIN_A0);
output_low(PIN_A1);


OutLED(digit[5]);

}

Не се сещам за друг начин :oops: . Интересува ме принципа.

_________________
Вниманиене съмвишист....ИЙ.


Вто Юни 07, 2011 5:11 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Юни 05, 2006 1:48 pm
Мнения: 4906
Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
Мнение 
http://www.gooligum.com.au/tutorials/ba ... se_C_4.pdf

Proncipa e , 4e trebe da se 4ete :!:
sorry za maimunicata

_________________
... ако трети ден не ти се работи... това означава, че е сряда !


Вто Юни 07, 2011 7:09 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Юли 11, 2007 10:16 am
Мнения: 1730
Мнение 
Без малко да стане колизия :)
http://www.gooligum.com.au/tutorials/baseline/PIC_Base_A_8.pdf
Това ми се види най - точно от към обяснения.

И все пак много на бързо и на кратко -
Тия 7 сег. индикатори се връзват към пик-а (7-те извода на всичките индикатори заедно към 7 извода на пик-а )
Общия - отново към пика, но на всеки индикатор - на отделен извод и не директно ами през някой транзистор.
В програмата правиш цикъл през точно определено време (колко точно - гугъл), който да редува тия общи изводи на индикаторите, и през времето в което е отпушен конкретен извод- през 7-те извода му подаваш какво да покаже. Във всяко едно време имаш само 1 активен индикатор.
възможните комбинации които може да покаже един индикатор се записват в масив. Този масив ти служи за намиране на точната комбинация която искаш да покажеш. Като за индекс на масива подаваш числото което ще изобразиш. Това което ще вземеш от масива го плясваш директно към ПОРТх на който са ти вързани 7-те сегмента на индикатора.


Вто Юни 07, 2011 7:20 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Нед Окт 19, 2008 7:26 pm
Мнения: 673
Мнение 
Цитат:
го плясваш директно към ПОРТх на който са ти вързани 7-те сегмента на индикатора

Да де , ама чак сега намерих как да правя в това в CCS "output_b (value)"
Код:

void OutLED(unsigned char i1)
{
//if(i1&1){output_high(PIN_B0);}else{output_low(PIN_B0);}
//if(i1&2){output_high(PIN_B1);}else{output_low(PIN_B1);}
//if(i1&4){output_high(PIN_B2);}else{output_low(PIN_B2);}
//if(i1&8){output_high(PIN_B3);}else{output_low(PIN_B3);}
//if(i1&16){output_high(PIN_B4);}else{output_low(PIN_B4);}
//if(i1&32){output_high(PIN_B5);}else{output_low(PIN_B5);}
//if(i1&64){output_high(PIN_B6);}else{output_low(PIN_B6);}
//if(i1&128){output_high(PIN_B7);}else{output_low(PIN_B7);}
output_b (i1);


}


_________________
Вниманиене съмвишист....ИЙ.


Вто Юни 07, 2011 7:53 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 4 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни