| 
         
        
  
        
				Ааа, значи все пак имало място за минуса!. Защото това:
 
 Да бе човек " G сегмента за минус, за да имаш съответно показания -999.9 до 999,9"Тези работи са ми ясни и не се занимавам от скоро с това . . .
 
  и това:
 
  Стойността е 999,9 а в минус е -99,9
 
  наложени едно до друго изглеждат малко объркващо.
 
  В такъв случай само с външно прехващане на данновата шина по комбинация извън стойностите от 0 до 9 по клок на адресната 1 ще ти свърши работа. Значи пишеш допълнителен макрос в програмата който:
 
  1. Да следи кога стойността на числото във вътрешния регистър на контролера е отрицателна (примерно въвеждаш променлива на която стойността да е 0, когато числото е положително или 0, и 1, когато е по-малко от 0).
 
  2. Ако горното условие е изпълнено да извежда на данновата шина комбинация 15 (DEC) (или 1111 (BCD)) всеки път когато на порта на адресната (клока) се извежда 1, (примерно вътрешната стойност на адреса е 0000).
 
 С други думи с няколко реда програмен код можеш да извеждаш стойността, която 74247 декодира като 0000000 на изходите си (a-g) когато на изход 1 имаш активно ниво, т.е. да не пали никой от сегментите на първата цифра, когато си с отрицателно число по време на рефрешването на стойността и.
 
  В случая не се иска нито преобразувател на данни serial-to-parallel, нито друг контролер, трябва да се добави логически елемент 4 входов И (напр. SN7420, dual 4-input positive NAND gate), с входове, включени паралелно на входовете на 74247 и изход към G сегмента на първата цифра. Вътре изхода му е реализиран с два NPN транзистора, свързани по схема emitter-to-collector-output. Това се налага понеже няма как да запалиш само средния сегмент само с декодера, както вече писах, няма декодер който да изкарва сегментите примерно един по един, всички работят с едни и същи таблици на истинност за да има съвместимост помежду им. 7420 ще ти запали само сегмент G на първата цифра при високи (лог.1) нива на всичките си  входове и ще свърже изхода на логическия елемент с масата (доколкото разбирам дисплея ти е с общ анод), затваряйки веригата +Vss->сегмент G->изход на елемента->маса. При всички други комбинации в изхода на елемнта ще имаш високо ниво, което ще държи същата верига на практика отворена защото в краищата и ще има високи нива от двете и страни, респективно сегмента няма да свети.
 
 Редактирано от Уoтcън на 29.01.13 15:57. 
        
        
  
          |