| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Скролиране на текст на led 8x8 матрица http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=6111 |
Страница 1 от 1 |
| Автор: | Ки4о [ Вто Сеп 16, 2008 2:54 pm ] |
| Заглавие: | |
Правиш си един буфер.Всяка колона ти отговаря на ред от буфера.Примерно имаш 8 колони -> буфер с 8 реда.Изписваш ги един по един 1 колона->1 ред,втора-> втори и така до 8.След което започваш да изписваш 1 колона -> 2 ред от буфера, 2 колона ->3 ти ред,... ,8 колона-> 1 ред т новата буква /цифра дето ще я изкарваш на таблото .Правиш си едно динамично шифтване |
|
| Автор: | mash [ Вто Сеп 16, 2008 6:18 pm ] | |||||||||
| Заглавие: | ||||||||||
Ами... нещо като примерче ? |
||||||||||
| Автор: | Ки4о [ Вто Сеп 16, 2008 9:11 pm ] |
| Заглавие: | |
Примерно имаш 5х8 поле и искащ да изобразиш някакви букви които се представят с масивите (ПРИМЕРНО) : 1-во число : (0x11,0x22,0x33,0x44,0x55) 2-ро число : (0x66,0x77,0x88,0x99,0xAA) Примерно на порт А ги извеждаш и стробираш колоните от порт В Последователноста ти е следната: 0х11;Строб;0х22;Строб;0х33;Строб;0х44;Строб;0х55;Строб; - дотука си изписал първото число и трябва част от първото да изчезне и да почне следващото,така де да тече надписа 0х22;Строб;0х33;Строб;0х44;Строб;0х55;Строб;0х66;Строб; 0х33;Строб;0х44;Строб;0х55;Строб;0х66;Строб;0х77;Строб; 0х44;Строб;0х55;Строб;0х66;Строб;0х77;Строб;0х88;Строб; 0х55;Строб;0х66;Строб;0х77;Строб;0х88;Строб;0х99;Строб; 0х66;Строб;0х77;Строб;0х88;Строб;0х99;Строб;0хАА;Строб; Тука вече си изписал следващото число нацяло и така нататъка със следващите букви/цифри. |
|
| Автор: | mash [ Вто Сеп 16, 2008 11:39 pm ] |
| Заглавие: | |
Да това го схванах Но как ще остават буквите на дисплея ? Не трябва ли като при динамичната индикация да подавам последователно напрежение на всяка колона за около 2 мили секунди? ох... много ми е тъмно изобщо не мога да си представя как става. за динамичната индикация със 7 сегментни елемента си направих един масив BYTE CONST LED_MAP[10] {0b11000000,0b11111001,0b10100100,0b10110000,0b10011001,0b10010010,0b10000010,0b11111000,0b10000000,0b10010000}; и си викам неговите елементи един по един и си рефрешвам сегментите: #int_TIMER2 void TIMER2_isr(void) { dig_1=LED_MAP[k]; dig_2=LED_MAP[j]; dig_3=LED_MAP[i]; output_b(dig_1); OUTPUT_low(PIN_A0); delay_us(900); OUTPUT_high(PIN_A0); output_b(dig_2); OUTPUT_low(PIN_A1); delay_us(900); OUTPUT_high(PIN_A1); output_b(dig_3); OUTPUT_low(PIN_A2); delay_us(900); OUTPUT_high(PIN_A2); } |
|
| Автор: | Ки4о [ Сря Сеп 17, 2008 8:30 am ] |
| Заглавие: | |
Ами ти си го правиш по същия начин като динамична индикация само дето ползваш тази хватка с буфера и отместването.Останалото си е 1:1 динамична индикация . |
|
| Автор: | mash [ Чет Сеп 18, 2008 12:46 pm ] |
| Заглавие: | |
BYTE CONST ver[9] = {0b11111110,0b11111110,0b11111101,0b11111011,0b11110111,0b11101111,0b11011111,0b10111111,0b01111111};//refresh BYTE CONST hor_V[9] = {0b00000000,0b11111100,0b00000010,0b00000001,0b00000010,0b11111100,0b00000000,0b00000000,0b00000000};//V BYTE CONST hor_L[9] = {0b00000000,0b11111111,0b00000001,0b00000001,0b00000001,0b00000001,0b00000000,0b00000000,0b00000000};//L #define h_on OUTPUT_high(PIN_C4); #define h_off OUTPUT_low(PIN_C4); #define v_on OUTPUT_high(PIN_C5); #define v_off OUTPUT_low(PIN_C5); int i; int j; int k; int t; ......... ........ ....... ........ while (true) { for (k=0;k<8;k++) {i++; j++; OUTPUT_b(ver[i]); v_on; v_off; OUTPUT_b(hor[j]); // как да организирам тук да се сменят hor_L и hor_V? h_on; h_off; if (i==8){i=0;} if (j==8){j=0;} delay_ms(4);} } } Пробвах с int t; t= hor_V; OUTPUT_b(t[i]); но не се получи.... |
|
| Автор: | mash [ Пет Сеп 19, 2008 1:02 pm ] |
| Заглавие: | |
Дайте някакъв примерен код ,че се измъчих вчера подкарах скролирането, но като стигне до края на матрицата буквата и се сбозва синхрона и става едно мазало..... до момента в който не се появи отново най-отпред |
|
| Автор: | milenjs [ Пет Сеп 19, 2008 5:07 pm ] | |||||||||
| Заглавие: | ||||||||||
Заповядай, на Бейсик е но ще ориентираш в постановаката
|
||||||||||
| Автор: | mash [ Пет Сеп 19, 2008 5:22 pm ] |
| Заглавие: | |
на С няма ли код ? |
|
| Автор: | milenjs [ Пет Сеп 19, 2008 7:28 pm ] | |||||||||||
| Заглавие: | ||||||||||||
Ами днес имам рожден ден и по принцип трябва да получавам подъръци а не обратно...
|
||||||||||||
| Автор: | mash [ Съб Сеп 20, 2008 12:54 pm ] |
| Заглавие: | |
мерси много и.....Честит Рожден Ден |
|
| Автор: | milenjs [ Съб Сеп 20, 2008 1:19 pm ] |
| Заглавие: | |
Благодаря, ето още нещо на С но за AVR - http://www.ee.oulu.fi/~zyc/LedDisp/#hardware |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|