Print

линк към директорията със рар архива и другите помощни материали

>>>> http://www.karadev.net/basto/?dir=SERIAL_TERMINAL_PASSWORD

създаване на програма за извличане на код за разархивиране на RAR файл с награда с помощта на процесор pic16F1829 + LCD         /безплатна програма за сериен порт v.6.9 + v.9.0/

сумиране на старшият и младшият полубайт на всеки от байтовете в масива

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

симулацията, верният резултат ще се покаже на LCD дисплея

визуализация на резултата на определени 16 байта от номерата на байтовете от масива на LCD дисплея

разархивирайте RAR файла и получете програма за виртуален сериен порт драйвер за свързване и обмен на данни между два серийни порта в компютъра/лаптопа.

програмата работи като виртуална свръзка/мост за данни/ между два серийни порта, като можете да свържете и директно хардуер към компютъра и през програмата

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

но със фикс-файл, проверена работи. по-новата версия е готова, излекувана ;) от програмисти за програмисти в комуникациите.

 карта на номерата /в десетична система/ на байтовете използвани за паролата - 16 байта

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

ПОДСКАЗКА = масивът е едномерен, което означава, че номерата дадени в таблицата по-долу, не са реалните. трябва да си изчислите реалния номер на клетката, като

спазвате размерността на масива = 128 байта, дефинирането и реалните номера на клетките на масива

/стандартна дефиниция и номерация в езика С за едномерните масиви/, изчислявате си номера на клетката на масива, събирате + двата полубайта от стойността на получената клетка от масива и след това, полученото десетично число превръщате във шестнадесетична система 0x00-0x0F

ВНИМАНИЕ : ако полученият резултат е ПО-ГОЛЯМ от 15 десетично, нулирайте старшият полубайт, за да си гарантирате коректно пресмятане на десетичната и след това на шестнадесетичната стойност на новият байт.

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

трябва да получите 16 шестнадесетични байта /букви и/или цифри 0-9,A-F/, както е стандарта за превръщане на стойности от десетична в шестнадесетична система.

ПАРОЛАТА КОЯТО ЩЕ ПОЛУЧИТЕ ВЪВЕДЕТЕ С ГОЛЕМИ БУКВИ !!!!

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

а буквите английските въведете ГОЛЕМИ !!!

ПРИМЕР >> B8C2E1D7F593F5B6A4

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

покажете получените байтове на LCD дисплея за по-големите специалисти на калкулатора в режим прогрмаист, можете да се пробвате да пресметнете байтовете за паролата на ръка :)

дали ще е на ръка с химикал, софтуерно или с процесор, няма никакво значение, важното е да оключите архива и да вземемте двете програми. БЕЗПЛАТНО !!! :)

пример = 1.line.n.2 = 0x77 = high_byte = 0x7, low_byte = 0x7

sum_byte = 0x7 + 0x7 = 0x0E <> верен символ E

         1.line. n.5, 2.line. n.6, 3.line. n.7, 4.line. n.1

         5.line. n.8, 6.line. n.3, 7.line. n.1, 8.line. n.5

         9.line. n.4, 10.line.n.2, 11.line.n.7, 12.line.n.4

         13.line.n.2, 14.line.n.7, 15.line.n.3, 16.line.n.6

 визуализация на LCD дисплея, ако първия или ако някой резултат е верен - не е задължително

 получените числа са номера на байтове от масива, който е даден с размер = 128 байта

 подсказка -> масива има размер 128 байта, като номерата

на всеки байт започват от номер 1 = [0] до номер 128 = [127]

 получените 16 числа в десетична система заместете със същите стойност във шесанадесетична система

 подсказка DEC=1 => HEX=1, DEC=9 => HEX=9, DEC=10 => HEX=A, DEC=15 => HEX=F

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

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

 МАСИВ СЪС ДАННИ СЪДЪРЖАЩИ КОДА ЗА РАЗАРХИВИРАНЕ НА ПРОГРАМАТА ЗА СЕРИЙНИТЕ ПОРТОВЕ :)

ПОДСКАЗКА : масивът е дефиниран като константен, което означава, че ще бъде записан във флаш паметта, на процесора. ако премахнете думата const, масивът ще бъде дефиниран

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

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

ВНИМАНИЕ : размера на рам паметта на процесора PIC16F1829 e 1024 байта, масивът е със размер 128 байта, необходимите променливи за вашата програма и всички времменни масиви, които евентуално ще ви бъдат необходими за да решите задачата, могат да изчерпят рам паметта на процесора.

за това, по време на писане на софтуера, следете индикаторите на MPLAB редактора за увеличаване на размера на флаш и рам паметта по време на компилиране на софтуера

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

протеус симулацията с пик pic16f1829 за да решите задачата.

 

 

 

Category: ЗАДАЧИ - ПРОГРАМИРАНЕ !!!!!
Hits: 145