в този урок ще разгледаме детайлно всичко за битовете, байтовете и техните състояния в електрониката, програмирането и където и да ги срещнете да знаете какво и къде и как трябва да се чете, пише и пресмята.

урокът ще бъде доста подробен защото имам усещането че има хора които не са много наясно със таз цялата история с битовете и байтовете.




така, първо няколко закона за двоичните числа

ЗАКОН 1. двоично число наричаме това число което е съставено само от чифрите 0 и/или 1 с размер N на брой бита. така какво означава това. примерно виждате във файл със описание на някаква електроника, процесор, програма и/или други компютърни документи поредица от цифрите 0 и/или 1 написани като самостоятелно число. ето и един пример : числото 11001110100001110111 сме намерили в някакъв документ и искаме да разберем какво е това число.

а) 11001110100001110111 - същото число разбиваме на броя на неговите битове. като ги преброяваме от дясно наляво. ПОВТАРЯМ !!!! ОТ ДЯСНО НА ЛЯВО !!!! защо ще кажем по късно. зна броят на цифрите 0 и/или 1 които се съдържат в числото ще ни даде отговор колко битово е самото число. преброяваме 20 знака /цифри/ 0 и 1, което означава че числото е 20 БИТОВО. това число е доста голямо двоично което ще използваме за нашия урок. цифрите които съставят двоичните числа се четат НУЛА и/или ЕДИНИЦА, а не хиляда сто и единайсет или всякакви други варианти на четене!!! ЧЕТЕ СЕ - НУЛА, ЕДНО/ЕДИНИЦА/ !!!!

б) такаааа, какво още може да разберем за това число - 11001110100001110111 . ами след като пребройхме цифрите вече знаем че числото е 20 битово двоично. сега да видим колко байта има във това число.

ЗАКОН 2. всяко двоично число което съдържа 8 бита наричаме 1 байт. такааа, сега да видим какво е това байт. тъй като в цифровата електроника, компютрите и програмирането се налага употребата на големи порции от данни, битовете са доста малки за да запомнят количествата информация. за това спецовете са направили система за групиране на битовете която наричаме байт. и са дали размер на 1 байт да е равен ан 8 бита. в нашият пример със числото 11001110100001110111, знаем че има 20 бита, 1 байт е 8 бита , значи след малко смятане по формулата на изваждане 20бита-8бита/1байт/=12бита-8/бита/1байт/=4бита. накрая остават 4 бита, които не можем да извадим от 8 защото ще се получи отрицателно число.

1100 11101000 01110111 - нашето число е разделено на байтове от 8 бита и се получава 2 байта и половина. така останалите 4 бита най-отпред в числото наричаме полубайт или половин байт.

ЗАКОН 3. полубайт или половин байт се нарича двоично число с дължина 4 бита. това е често използвано в електрониката състояние на двоичните числа защото по този начин се адресират регистри с малко съдържание необходими за различни задачи. например броячът 74LS193 който сме използвали в много примери има 4 входа за зареждане на адрес и 4 изхода Q0-Q3 за извеждане на числата от 0 до 15 само че представени като полу байт със състояние от 0000 до 1111. този пример е направен нагледно в един от предните уроци за броячите. в цифровата електроника и програмирането може да срещнете и необходимост от по малки двоични числа. примерно от 3 бита, 2 бита и дори от 1 бит. за тези казваме че са трибитови, двубитови и еднобитови числа.

така, да поговорим за байтовете отново. в днешно време информацията е с доста големи размери, за това спецовете са дали имен на следващите размери от байтове както следва - килобайт=1024 байта, мегабайт=1024 килобайта, гигабайт=1024 мегабайта, терабайта=1024 гигабайта. с тези размери са означени файловете със различна информация като самото съдържание вътре във самият файл отново е разбито на байтове за да може програмите лесно да разчитат и редактират информацията. това улеснява също програмистите и потребителите на електрониката, компютърните системи, програмирането и всички които работят в ИТ сектора.

от малката единица байт до най голямата позната терабайт основата е една и съща само размера е различен. някои данни са потребни с в байт, байтове, други в мега, гига, терабайтове.

да се върнем на нашето число 11001110100001110111. след като разбрахме че е 2 байта и половина, може да определим кой е старшият байт, кой е старшият бит и други данни за числото.

ЗАКОН 4. старши байт в двоично число наричаме най левите 8 бита от числото като разделим от ДЯСНО НА ЛЯВО числото на всеки 8 бита/1байт/!!!! така, малко са объркахме. как да разберем кой е старшият байт на числото? ами ето, след като спазваме правилото за преброяване от ДЯСНО НА ЛЯВО започваме с първите 8 бита и разделяме числото на байтове 1100 11101000 01110111.
оказа се че има и един полу байт най отпред, което не трябва да ви плаши, защото занапред може да се случи да има 3,4,5,6,7 цифри след като разделите на байтове числото.
значи разделеното вече число - 1100 11101000 01110111 има за най старши не цял а половин байт - 1100 , ако разгледаме числото без половиният байт - 11101000 01110111 това число старшият байт е лявата поредица от 0/1 - 11101000. такаааа. разбрахме кой е старшият байт. сега да видим как се нарича най десният байт - прието е в електрониката да се нарича младши байт.

ЗАКОН 5. младши байт наричаме първият байт на всяко двойчно число ПРЕБРОЕН ОТ ДЯСНО НА ЛЯВО. даваме за пример байта от нашето двично число - 01110111 . сравнете дали вярно съм написал байта като имате за пример цялото число - 11001110100001110111

защо наричаме байтовете старши и младши? на този въпрос ще дам следният отговор - защото така лесно се разбира за кой байт във някакво дълго число става дума. второ, в потока на информация и промяна на числото първо се променя малдшият байт и когато той достигне определено състояние наречено препълване, тогава се променя стойността на старшият байт, когато отново се промени младшият байт и достигне препълване чак тогава се променя старшият байт и така циклично се променят до като се достигне финаналното състояние на цялото число което съдържа във всички битове само стойност 1.

сега ще разгледаме стойноста на младшият байт и ще обясним някои неща. първо както вече знаем имам 2 байта и половина в нашето число, старши е полу байта най отпред ПРЕБРОЕНО ОТ ДЯСНО НА ЛЯВО, дължината на числото е 20 бита, цял старши байт е вторият цял байт състоящ се от вторите 8 бита ПРЕБРОЕНО ОТ ДЯСНО НА ЛЯВО, младшият байт е най десният байт състоящ се от първите 8 бита.

младшият байт 01110111 е съставен от 8 бита като сега ще определим кой е старшият и кой е младшият БИТ във един байт. след като спазваме правилото за преброяване от дясно на ляво, най старшият бит е най левият , най младшият е най десният. значи старшият бит има стойност 0 на младшият бит има стойност 1. ако разделим този байт на два полу байта ще се получи следният резултат - 0111 0111 . оказва се че двата полубайта имат еднаква стойност като това не трябва да ви обърква, защото целият байт представлява състояние на даден регистър, клетка от паметта и/или друг тип информация.

ЗАКОН 6. старши БИТ в един 8 битов байт наричаме най левият бит преброен от дясно на ляво. младши БИТ в един байт наричаме най десният бит преброен от дясно на ляво.

в електронните интегрални схеми, процесорите и други сложни електронни елементи и блокове има практика, битовете да са означени с имена, като по този начин лесно програмистите се разбират кой бит да бъде установен в 0 или 1. имена има и байтовете от даден регистър, защото може регистърът да е с големина 2 или 3 байта , че може и повече. имената давани на регистрите, байтовете и битовете са записани от производителя, като след това програмистите на процесорните системи пишат имената и необходимите състояния на всеки байт, бит за да работят правилно електронните системи.

ще дам пак примера за двоичния броя 74LS193. неговите изходи са означени с буквите Q0-Q3, като буквата Q е от английски език QUIT/куит - изход/ а цифрата показва номера на съответния изход примерно 0,1,2,3. по това може да разберете че всеки четири битов двоичен брояч има адрес 4 бита, което е един полубайт. ако свържем два брояча със последователно броене ще се получат два 4 битови полу байта което е равно на един 8 битов цял байт.

4 бита + 4 бита = 8 бита/1байт/
полубайт + полубайт = цял байт
4 бита * 2 = 8/бита/1байт/ * звездата се чете като знак за умножение 4 по 2 = 8
 
ЗАКОН 7. всеки бит от който да е байт може да съдържа стойност 0 или 1. малко повече за нулите и единиците. тъй като това е основен закон в електрониката, програмирането , компютрите и всички използващи ИТ технологиите стандарт ще обясним малко за тези цифри с помоща на които са изградени всички съвременни информационни техники, стандарти и комуникации.

двете противоположни състояния на един бит са 0 или 1, не може да се съдържа никаква друга стойност защото това просто няма как да стане. тъй като електрониката се работи с ниско напрежение измервано във волтове, специалистите са приели стандарт за засичане на състояние на напрежението с определен волтаж в даден кабел. избра ли са че когато на кабела който измерват има +5 волта, това да бъде логическа 1 , а когато има 0 волта това да бъде логическа 0. интегралните схеми, чиповете, процесорите и другите цифрови електронни схеми и модули работят със стандартно захраващо напрежение от 5 волта , като на дадени входо ве и изходи на чипа може да има или да няма наличие на +5 волта или това наричаме логическа 1. логическа 0 наричаме когато на кабела който измерваме няма никакво напрежение или казваме че имаме логическа 0.

пример : събра ли сте 10 батерии от коли с дистанционно. с уред измерваме на коя батерия има напрежение от 5 волта за да може да работи колата с дистанционното. на която батерия има 5 волта значи тя има логическа 1 и ще може да задвижи колата. на тези батерии на които няма 5 или правилно казано има 0 волта значи има логическа 0. или те няма да могат да задвижат колата. ето и един нагледен пример за резултата който ще се получи.

батерия номер 10 9 8 7 6 5 4 3 2 1
състояние        0 1 1 0 0 1 0 1 0 1
1 работеща
0 не работеща

след като сме направили измерването и по реда на номерата на измерените батерии сме разбрали кои ще работя и кои не можем да кажем какво двоично число се е получило и да видим дали положителните резултати /логическите 1/ на батериите са достатъчни за задвижването на нашата кола. тъй като батериите са достатъчно голям брой при промяна в реда на измерване ще се получат различни двоични числа които ще ви научат да боравите лесно за напред със битове и байтове.

със същия уред /мултицет/ с който мерим батериите, в електрониката се измерват и много други сигнали и състояния на битовете. могат да се мерят напрежения/волтове/, сила на тока/ампери/, резистори/ом/, кондензатори/фарад/, бобини/хенри/, мощност/ват/, честота/херц/. могат да се измерват транзистори дали са здрави, диоди, напрежения и честоти на някой пин на процесор или логическа интегрална схема, състояния на пиновете на даден диплей, комуникационен порт и много други. измервателните уреди като мултицет, осцилоскопите, сигнал генераторите, програматорите и други помощни средства са задължителна част от работното място на един специалист по електроника, програмиране, компютри и всички които проверяват по кабела дали има +5 волта.

ЗАКОН 8. комбинациите от нули и единици в един байт НЕ МОГАТ ДА НАДМИНАВАТ 256 броя-от 0 до 255. такаа, за да завършим днешния урок с последния бит от байта с законите ще разгледаме малко и съдържанието на даден байт, както рагледахме и размера на байтовете, полубайтовете и битовете.

 

това означава че в един байт има 8 бита които имат състояние само 0 или 1. след като умножим 8 пъти една 2 ще се получи
стойност    2*2*2*2*2*2*2*2 = 256
бит номер   8 7 6 5 4 3 2 1

или казваме че след като броя на битовете е 8, и мога да имат само 2/две/ състояния е вярно че 2 на степен 8 = 256 комбинации от 0 или 1.  >>> 2^8=256




ако се върнем на примера с батериите където бяха 10 на брой ще знаем че имаме 10 битово число, това е с 2 бита повече от един байт. значи за да разберем колко са максималните комбинации между 0и1 в 10 битовото число трябва да умножим една 2 сама със себе си толкова пъти колкото са битовете. имам 10 бита със 2 състояния. това прави 2*2*2*2*2*2*2*2*2*2=1024 различни комбинации от 0 или 1 в дължината на 10 битовото число.
 
в началото на урока взехме за пример едно много дълго двоично число, след като разбрахме че то е 20 битово искам да се опитате да намерите колко са комбинациите от нули и единици в дължината на 20 битово двоично число. за подсказка ще ви кажа че десетичното число е по голямо от 1000000 /един милион/, тъй като 20 битово число е нормална големина за електрониката и програмирането.

брояч - делител - делител на честота

този модул е използван много често в електронните апаратури, тъй като необходимостта от различни честоти за контрол на различните електронни блокове в един и същ контролер. в днешно време процесорите контролират всички блокове като точните честоти на пиновете се задават софтуерно. за направата на електроника без процесорно управление ще са необходими един или два генератора на висока честота с правоъгълни импулси които след това да бъдат разделени на множество по ниски честоти за употреба в електронните блокове. накратко, делителите на честота са следващ блок след генераторите като изходите им могат да бъда произволен брой с необходимите честоти.

представената статия и графичен материал показва обикновен генератор на 74LS00 правоъгълни импулси със двоичен броя 74LS193 до 16 изходите /4 на брой/ на който могат да се използват за включване на различни електронни блокове към съответният пин за подаване на определена честота / мерна единица херц в секунда Hz/s /. изходната графика която показва на изходите на брояча делението на входната честота е показана за всяка симулация, тъй като брояча има реверсивна функция. това означава че можете да бройте от 0 до 16 когато подавате правоъгълни импусли на единия вход. на другия вход подаваните от същия генерато импулси ще накарат брояча да брой в намаляващ ред или от 16 до 0, като това ще промени резултата на изходната графика в прозореца.


 

на показаната схема на делителя са изследвани 5 изхода на честота с правоъгълен импулс. в следващите графики ще видите моменти от самата симулация на програмата в показаната схема и честотна анализация.

U1 - първи изход е директно от генератора на импулса с честота приблизително 13-14 Hz/s. това не е кой знае колко висока честота, но за симулатора е достатъчна да покаже изследваният процес. софтуерните симулатори като протеус и други не са в състояние да генерират високи честоти. за това електронните схеми се изработват на живо и с помоща на високочестотни осцилоскопи, сигнални и логически анализатори се изследват честотите, видовете сигнали според графиката и друг параметри.

U2 - Q0 - първи изход на брояча - от този изход подадената честота на входа на брояча излиза разделена на 2, тоест когато генератора направи 2 импулса , на този вход ще има 1 импулс. делението на 2 можете да засечете и на показаната графика на прозореца DIGITAL ANALYSIS, като поставите права линия по вертикала на целия прозорец и в дадената линия да видите какви стойности има изходите на брояча всеки спрямо другия изход спрямо генератора.

U2 - Q1 - втори изход на брояча - на този изход на брояча ще се появи импулс когато генератора направи 4 импулса. това означава че спрямо Q0 честотата е разделена на 2.
U2 - Q3 - трети изход на брояча - ще има импулс след 8 импулса
U2 - Q4 - четвърти изход на брояча -  ще има импулс след 16 импулса

изходи за прехвърляне към други броячи за каскадно свързване.
това са изходите
U2 - TCU - броене във възходящ ред - увеличение с 1 - изход за кратък импулс който се появява след като брояча е достигнал състояние 1 на всички изходи, тоест Q1-1, Q2-1, Q3-1, Q4-1 или 1111 ПРИ БРОЕНЕ ОТ 0 до 16. това се нарича състояние за запълване като в същия момент се подава и импулса за прехвърляне на броенете към следващия брояч. ще разгледаме това в някои от следващите уроци.

U2 - TCD - броене в низходящ ред - намаление с 1 - изход за кратък импулс който получава 1 когато изходите Q1, Q2, Q3, Q4 са установени в 1111 ПРИ БРОЕНЕ В НИЗХОДЯЩ РЕД ОТ 16 към 0.

в показаната графика можете да видите че на изхода за обратно броене винаги има само състояние 1, това е така защото производителите на чипъ, са направили интегралата по този начин. тъй като броячите в някой случай се свързват към различни по сложни блокове и дори процесори, лесно може да се контролират състоянията на двата входа за броене - дали да се брои с увеличение 1 или да се брои с намаление 1.



картинката показва схемата в начално установяване след пускане на захранващото напрежение. можете да видите кратък момент преди началото на генерирането и броенето/деленето на импулсите като честотният метър в момента показва 0 Hz/s. прозореца за цифровия анализ не е динамичен. това означава че дори и да е спряна симулацията той ще показва изходящите графики от следените изходи. това е момента от начално установяване на брояча при подаване на импулсите на увеличаващия вход. опитайте се да пресметнет и правилно да преобразувате двоичното число от изходите на брояча. има значение как въвеждате в калкулатора последователноста от състоянието 0 или 1 от изходите на брояча.



показаната картинка е кадър от цялата симулация като честотомерът показва че в момента генерираната честота е 13 Hz/s а състоянието на брояча е
>>> 0101 <<< . оставям на вас да разберете кое е числото в десетична бройна система запечатано на кадъра. ОБЪРНЕТЕ ВНИМАНИЕ КАК ВЪВЕЖДАТЕ ЧИСЛАТА ВЪВ КАЛКУЛАТОРА ЗА ДА ПОЛУЧИТЕ ПРАВИЛНОТО ЧИСЛО КОЕТО Е НА КАДЪРА!!! ИМАЙТЕ ПРЕДВИД ЧЕ В МОМЕНТА БРОЯЧА БРОЙ С УВЕЛИЧЕНИЕ ЗАЩОТО ИМПУЛСИТЕ СА ПОДАВАНИ НА ВХОДА ЗА БРОЕНЕ С УВЕЛИЧЕНИЕ !!!!.
ОСВЕН ТОВА В КАЛКУЛАТОРА ЗА ПРОГРАМИСТИ РЕДЪТ НА ВЪВЕЖДАНЕ НА ЧИСЛАТА Е ОТ СТРАШИЯ КЪМ МЛАДШИЯ БИТ !!!!
които са прочели предните уроци, ще знаят какво показват сините квадратчета и червените квадратчета. както и сивите квадрачета, които са важни защото има пинове които свързани по схема и които не с свързани и са във сив цвят.


БРОЕНЕ до 16 С НАМАЛЯВАНЕ С ЕДИНИЦА - 16 до 0 с минус 1
на снимката можете да видите че подаваните от генератора импулси постъпват на пина на брояча който ще предизвика броене от 16 до 0 с -1. тъй като броячът е с доста разширени функции който можете да намерите в неговото описание в интернет, ще раз гледаме само броенето с увелияаване и намаляване. другите функции изискват доста сложна схема за показване на всички възможности на тази интеграла.



както можете да заблежите изходната графика при броене с намаляване е с различен резултат спрямо с процеса при броене с увеличение. това е показателно за работата на броя в двата режима както и за правилното изучаване на режимите за да се намери правилен вариант при употреба на интегралата в различни приложения. не е изключено в един и същи цифров блок, модул или цяла електронна схема да се наложи да използвате няколко интегрални чипа в различни режими на работа за да достигнете желан резултат на работа на проектираната схема.



това е момента от начално установяване на брояча при подаване на импулсите на намаляващия вход. опитайте се да пресметнет и правилно да преобразувате двоичното число от изходите на брояча. пак да кажа има значение как въвеждате в калкулатора последователноста от състоянието 0 или 1 от изходите на брояча. полученото число ако не сте сигурни потърсете в интернет как се работи с калкулатора за програмисти в уин защото за в бъдеще ви очакват доста по сложни двоични и шестнайсетични комбинации от числа за да установите дадена информация от пиновете на чип, даден регистър и други данни.



кадър от реалната симулация на процеца на делене. числото на изходите на брояча установете сами.

последната снимка е сравнение на двете графики в двата различни процеса - при броене с увеличение с 1 и броене с намаление с 1


когато поставите права вертикална линия на двете графики ще може да намерите разликите във двете графики във всеки един момент от двата процеса. надписал съм ги нарочно коя коя е , за да е по лесно за вас. може да забележите че има изходи които и в двете графики д едно и също време са със едни и същи показатели. опитайте се да намерите разликите за кои изходи са промените и в кои времена са показани според броя на импулсите от генератора.

тази графика е доста добро начало за запознаване с графичните изходи в електрониката, защото в по късен момент според графиката на даден чип ще можете да разберете във всеки един момент от процес какво е състоянието на даден вход, изход, контролен пин на интеграли. процесори и други чипове в електрониката.

графичен анализ на входове и изходи е изключително важен за електрониката. всеки производител на чипове, задължително дава в описанието така наречените времедиаграми, които показват при активирането на функции в чипа, какви трябва да са сигналите в даден момент за да може правилно да се изпълни функцията в интегралата. особенно в процесорите и логическите елементи които процесорите управляват е задължително да четете времедиаграмите защото това после води до написване на програмите които ще задвижат цялата електрона схема. има управление на памети, дисплеи, комуникационни чипове, външни логики и много други чипове, модули и стандарти, които са описани в документи съдържащи време диаграми за даден процес. ще разгледаме няколко в следващите уроци

каскадно свързване на броячи ще покажем в някой от слдващите уроци, като имате предвид че цимулацията може на е сполучлива защото софтуерният симулатор не може да генерира много високи честоти. опитайте се да пресметнете на колко че се дели честотата ако имате 2 или 3 брояча от 0 до 16. след като знаете че един брояч до 16 дели на ???? ;)

следваща графика
следваща графика