задача за програмиране - ниво 1
можете да използвате развойна среда и хардуер по избор
1. PIC процесор и PROTEUS за симулация
- C/C++, MPLAB IDE, XC8 компилатор
2. windows конзола /console - команден ред прозорец в windows/
със език за програмиране по избор
- С, С++, С#

1. дефинирайте 3 променливи от тип unsigned char
със зададена стойност директно в сорс кода
2. извършете с променливите основните математически операции
а/ събиране
б/ изваждане
в/ умножение
г/ деление
е/ в комбинации между 2 или всички 3 променливи
3. използвайте команда за въвеждане на стойностите от оператор
4. използвайте команда за избор на операция от оператор от меню със списък
на възможните команди и променливи, както и въведените стойности
на променливите.
5. изведете на екрана /лцд дисплей или конзолния прозорец в windows/
всички входящи данни на променливите въведени от оператор,
както и всички изходящи резултати от избраната математическа
операция с променливите от предварително избрано меню.
6. използвайте функции за да направите избор от меню на основните операции
в софтуера за избор на основните режими на работа на програмата и даване възможност на операторите да избират в какъв режим да работят с програмата.
7. пример за меню
1. въвеждане на променливите
а/ първа променлива - бутони плюс / минус - бутон запис
б/ втора променлива - бутони плюс / минус - бутон запис
в/ трета променлива - бутони плюс / минус - бутон запис
2. сумиране на променливи
а/ първа + втора променлива = резултат
б/ втора + трета променлива = резултат
в/ първа + трета променлива = резултат
г/ първа + втора + трета променлива = резултат
3. изваждане на променливи
а/
б/
в/
г/
4. умножение на променливи
а/
б/
в/
г/
5. деление на променливи
а/
б/
в/
г/
ПОДСКАЗКА : когато програмирате функциите за изваждане
и деление, не забравяйте да направите проверки
за деление на нула/0/, както и проверки за отрицателни
стойности на променливите.
можете да направите въвеждането на стойностите от операторите
да няма възможност за въвеждане на отрицателни стойности,
като предварителено ги информирате за това със съобщение.
също можете да направите и със въвеждането на стойност нула/0/,
като ги информирате, че стойността на променливите не може
да бъде стойност нула.
УСПЕХ СЪС ЗАДАЧАТА !!! 1.5.2022
============================================================
programming task - level 1
you can use a development environment and hardware of your choice
1. PIC processor and PROTEUS for simulation
- C / C ++, MPLAB IDE, XC8 compiler
2. windows console / console - command line window in windows /
with optional programming language
- C, C ++, C #
1. define 3 variables of type unsigned char
with a setpoint directly in the source code
2. perform the basic mathematical operations with the variables
a / collection
b / subtraction
c / multiplication
d / division
f / in combinations between 2 or all 3 variables
3. use a command to enter values from an operator
4. use a command to select an operator operation from a list menu
of possible commands and variables, as well as the entered values
of the variables.
5. display on the screen / lcd display or console window in windows /
all input data of the variables entered by the operator,
as well as all output results from the selected mathematical
operation with variables from a pre-selected menu.
6. Use functions to make a menu selection of basic operations
in the software for selecting the main operating modes
of the program and enabling the operators to choose
in which mode to work with the program.
7. menu example
1. introduction of variables
a/ first variable - buttons plus / minus - record button
b/ second variable - buttons plus / minus - record button
c/ third variable - buttons plus / minus - record button
2. summation of variables
a/ first + second variable = result
b/ second + third variable = result
c/ first + third variable = result
d/ first + second + third variable = result
3. subtraction of variables
a/
b/
c/
d/
4. multiplication of variables
a/
b/
c/
d/
5. division of variables
a/
b/
c/
d/
TIP: when programming subtraction functions
and division, be sure to make checks
for division by zero / 0 /, as well as checks for negative
values of the variables.
you can enter the values from the operators
it is not possible to enter negative values,
by informing them in advance with a message.
you can also do this by entering a value of zero / 0 /,
by informing them that the value of the variables cannot
be value zero.
SUCCESS WITH THE TASK !!! 5/1/2022
- Details
- Written by Super User
- Category: ЗАДАЧИ - ПРОГРАМИРАНЕ !!!!!
- Hits: 209
линк към директорията със рар архива и другите помощни материали
>>>> 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 за да решите задачата.
- Details
- Written by Super User
- Category: ЗАДАЧИ - ПРОГРАМИРАНЕ !!!!!
- Hits: 165
ЗАДАЧА ЗА СПИЦИАЛИСТИ и начинаещи и пишман програмисти да се направи програма на С която да се вкарат числата от индикаторите в процесора и да се направи програма с която да се задав стойност от оператора при която да се нулира брояча. числата от броячите да се показват на дисплея при броене, да се показва избраното число за нулиране, да преброява колко пъти е нулирал на избрано число и да запомня в еепрома като лог файл на кое число колко пъти е бил нулиран брояча АТАКА спициалисти.
готовите софтуерни решения на С /си/ можете да изпратите на емайлите на сайта. ПРИЕМАТ СЕ САМО СОРС КОД във RAR /рар/ файлове за MPLAB /МПЛАБ/ и ХС8 компилатора на MICROCHIP /микрочип/.

- Details
- Written by Super User
- Category: ЗАДАЧИ - ПРОГРАМИРАНЕ !!!!!
- Hits: 840