КАТЕГОРИЯ:


Астрономия- (809) Биология- (7483) Биотехнологии- (1457) Военное дело- (14632) Высокие технологии- (1363) География- (913) Геология- (1438) Государство- (451) Демография- (1065) Дом- (47672) Журналистика и СМИ- (912) Изобретательство- (14524) Иностранные языки- (4268) Информатика- (17799) Искусство- (1338) История- (13644) Компьютеры- (11121) Косметика- (55) Кулинария- (373) Культура- (8427) Лингвистика- (374) Литература- (1642) Маркетинг- (23702) Математика- (16968) Машиностроение- (1700) Медицина- (12668) Менеджмент- (24684) Механика- (15423) Науковедение- (506) Образование- (11852) Охрана труда- (3308) Педагогика- (5571) Полиграфия- (1312) Политика- (7869) Право- (5454) Приборостроение- (1369) Программирование- (2801) Производство- (97182) Промышленность- (8706) Психология- (18388) Религия- (3217) Связь- (10668) Сельское хозяйство- (299) Социология- (6455) Спорт- (42831) Строительство- (4793) Торговля- (5050) Транспорт- (2929) Туризм- (1568) Физика- (3942) Философия- (17015) Финансы- (26596) Химия- (22929) Экология- (12095) Экономика- (9961) Электроника- (8441) Электротехника- (4623) Энергетика- (12629) Юриспруденция- (1492) Ядерная техника- (1748) Arhitektura- (3434) Astronomiya- (809) Biologiya- (7483) Biotehnologii- (1457) Военни бизнесмен (14632) Висока technologies- (1363) Geografiya- (913) Geologiya- (1438) на държавата (451) Demografiya- ( 1065) Къща- (47672) журналистика и смирен (912) Izobretatelstvo- (14524) външен >(4268) Informatika- (17799) Iskusstvo- (1338) историята е (13644) Компютри- (11,121) Kosmetika- (55) Kulinariya- (373) културата е (8427) Lingvistika- (374) Literatura- (1642) маркетинг-(23702) математиците на (16968) Механична инженерно (1700) медицина-(12668) Management- (24684) Mehanika- (15423) Naukovedenie- (506) образователна (11852) truda- сигурност (3308) Pedagogika- (5571) Poligrafiya- (1312) Politika- (7869) Лево- (5454) Priborostroenie- (1369) Programmirovanie- (2801) производствено (97 182 ) индустрия- (8706) Psihologiya- (18388) Religiya- (3217) Svyaz (10668) Agriculture- (299) Sotsiologiya- (6455) на (42831) спортист строително (4793) Torgovlya- (5050) транспорт ( 2929) Turizm- (1568) физик (3942) Filosofiya- (17015) Finansy- (26596) химия (22929) Ekologiya- (12095) Ekonomika- (9961) Electronics- (8441) Elektrotehnika- (4623) Мощност инженерно ( 12629) Yurisprudentsiya- (1492) ядрена technics- (1748)

C-51 езика за програмиране

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

Структурата на езика за програмиране C-51 въведе редица промени, отразяващи особеностите на MCS-51 семейството на микроконтролери изгради памет. В допълнение, тези промени позволяват директен достъп до вградените портове, таймери и други устройства от този на семейството на микроконтролери. Характеристики на това семейство на микроконтролери са показани главно от променлива декларацията.

Език C-51 програма отговаря на ANSI-C стандарт и е предназначен за осигуряване на софтуер компактен и висока производителност, предназначен за семейството на микроконтролери MCS-51. Език C-51 осигурява гъвкавостта на един език за програмиране в добре познат C, при скорост и компактност, сравнима с програми, написани на асемблер програмиране.

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

Състав c51.exe - е софтуер, който превежда на оригиналния текст, написан на C51 програмиране relocatable обектни модули. Тези модули могат да бъдат комбинирани с други модули, написани на C51 програмни езици, PLM-51 или ASM-51. Изходът за съставител на екран или съобщения за грешки, всички файлове и помощна информация, която може да се използва за отстраняване на грешки и програмиране.

c51.exe компилатор може да бъде инсталиран на IBM съвместими компютри или серия с тях в DOS 3.x операционна система или по-висока, и се използва за генериране на MCS-51 микроконтролер семейни команди.

Application.

Език C-51 програма и нейните библиотеки са част от интегриран набор от инструменти за разработка на софтуер за MCS-51 семейството на микроконтролери. C51 език за програмиране поддържа модулни програми за писане. Процесът на разработване на програми на езика за програмиране C-51 е показан на фигура 1.



Фигура 1. Процесът на писане на програми в C-51 програма.

За разработване на софтуер, следвайте следните стъпки:

  • формулиране на проблема (пълното определение на проблема се адресира);
  • концепция за развитие и избора на необходимия софтуер;
  • Разработване на софтуерна система. Тази важна стъпка се състои от няколко етапа, включително: описанието на последователността на задачи, извършвани от всяка единица, изборът на език за програмиране и алгоритмите;
  • написването на текста на програмата и подготовката за превод с всеки текстов редактор;
  • програма компилация;
  • коригиране на синтактични грешки, открити от компилатор, текст редактор с последващо rebroadcast;
  • създаване и поддържане на библиотеки от често използвани обектни модули с помощта lib51.ehe програма;
  • свързване, получени relocatable обектни модули в абсолютния модул и поставяне на променливите в паметта на микроконтролера, използвайки bl51.exe свръзка;
  • създаването на програми, записани в ROM на микроконтролера (зареждаеми модули) в шестнадесетичен формат, използвайки oh.exe програма;
  • проверява получената програма с помощта на символичен дебъгер или друг софтуер или хардуер.

Файлът, който съхранява една програма, написана на C51 език (източник кодекс), наречен източник модул. За изходния код на програмата бяха решили да използват разширението на файла: '* .c ". Изходният код може да бъде написана с помощта на който и да е текстов редактор, но е много по-удобно да се използва интегрирана среда за програмиране, като Кайл-C. Интегрираният програмната среда в допълнение към програмата текстов редактор обикновено включва дебъгер, ръководител на проекта и Launcher програми преводачи.

В IDE за програмиране предаването изходния код работи много по-лесно. За обект модул трябва само да кликнете върху бутона файл за превод, както е показано на фигура 2.

Фигура 2. оригиналния файл на бутон превод на текст в Кайл-с програмирането на IDE.

Готов фазата на разработване на програмата обикновено е записан на диск като файл, записан във формат обект. Този файл се нарича обект модул. Вземете модул обект е възможно, като се посочва източникът на името на програмата модул като параметър на програма-преводача в бърза линия DOS или партида файл, както е показано в следния пример:

c51.exe modul.c

В този пример, като резултат от превод на текста източник на програмата, съдържаща се в получаване на modul.c обект модул на файла, който ще се записва във файл, наречен modul.obj. Както е показано на Фигура 1, модул обект не може да бъде заредена в паметта на софтуера микроконтролер. Паметта на микроконтролера е зареден изпълним.

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

bl51.exe main.obj, modul1.obj, modul2.obj

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

В процеса на програмиране IDE за производство на изпълнимия файл не е по-трудно в сравнение с предишната версия. За да преведете цялата софтуерна проекта, просто кликнете върху съответния бутон, както е показано на фигура 3.

Фигура 3. Бътън и произвежда изпълним модул натоварване в програмирането на IDE Кайл-с.

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

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

oh.exe основна

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

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

Debugging програми.

След като софтуерните модули бяха успешно компилиран, сглобени, поставени на определени места и е свързан, можете да използвате всеки от методите, показани на фигура 1 за целите на отстраняване на грешки:

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

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

Фигура 2. Пример на софтуер за отстраняване на грешки за микроконтролери.

Когато отстраняване на грешки на програма с помощта на съединение емулатор е необходимо да се включи в модулите на обект символично информация. Той използва директиви компилатора. (При използване на интегрирана среда за програмиране е достатъчен, за да се установи съответната отметка в свойствата на проекта) език за програмиране на компилатор C-51, на следните етапи:

  • включително информация за вида на променливи, които да тестват видове при свързване модули. Същата информация се използва в съединение емулатор. Потребителят информация за изключение от променливи може да се използва за създаване на прототипи или за намаляване на размера на един модул обект;
  • включване или изключване на таблицата с информация характер;
  • подпрограми разговори конфигурирани за свързване с модули, написани на езика на ASM-51 програма;
  • определение на желаното съдържание и формат на изхода на листването на програмата. Отпечатване на междинен код на асемблер, след съставяне на програми, написани на PLM-51 езика за програмиране. Включването или изключването на отделните предложения на текстови блокове източник.

· Структурата на програмата С-51.

· Език за програмиране C-51 е структурна и модулен език. Всяка декларация, в програмата е част от най-малко един модул. Всяка програма, написана на C-51 програма се състои от един или повече модули. Всеки модул се съхранява в отделен файл, и компилиран отделно.

· Модулът се поставя оператори, които правят програмата. Тези твърдения декларират константи и променливи, и да извършват необходимите действия. Операторите оперативна дейност, трябва да бъдат поставени в подпрограма. Изпълнение на програмата винаги започва с подпрограма наречена основна (Това означава, че в най-простия случай, достатъчно само да напиша тази рутинна).

· Sub-под-програма започва с глава, който включва вида връщане на променлива, име на подпрограма и скоби, вътре в който променливите са декларирали, параметрите на подпрограмата. В основната на подпрограма (и във всички подпрограми, когато не е необходимо, за да се върне на променливите) вместо променлива тип е посочен дума за невалидни. Изпълними отчети са затворени в скоби.

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

· Когато пишете на програмата за микроконтролера трябва винаги да е видимо пред очите на принципна схема на устройството, за което е написано на програмата, тъй като схемата и програмата са тясно свързани и взаимно се допълват. За да се илюстрира една проста програма, написан на С-51 език за програмиране използва схемата, е показана на Фигура 1.

·

· Фигура 1. Пример на просто устройство верига изградена чрез използване на микроконтролер.

· Например, светлината на LED ще принуди VD1. Този индикатор ще светне само когато през текущата ще тече. За да направите това, шести изходен порт P0 трябва да присъства нула потенциал. Ние го пиша за първи път в нашата програма отбора:

· # Включват <Reg51.h> · · невалидни основни (недействителни) · {P0 = 0; // Ignition LED · докато (1); // Безкраен цикъл} ·

· Тази програма съдържа само един изпълним израз. "P0 = 0;" Това е оператор за присвояване. Следваща оператора "докато (1);" Тя осигурява програма примка. Примка програмата направени към микроконтролера не извършва повече действия. В противен случай, микроконтролера ще преминете към следващото място в паметта и ще носи екипа, ние не се записва.

· Моля, имайте предвид, че езикът не знае къде пристанището P0. Тази информация се съдържа в низ # включват <reg51.h>.

· За да получите по-добра представа за структурата на програмите, написани на програмата на C-51, даде пример на изходния код, използвайки съчетания.

· # Включват <Reg51.h> · · невалидни svGorit (недействителни) · {P0 = 0; // Ignition LED ·} · · невалидни основни (недействителни) · {svGorit (); // Извикване на подпрограма име svGorit · докато (1); // Безкраен цикъл} ·

· В този пример, използването на подпрограмата не дава никакво предимство, но в по-сложни програми с помощта на "говорещи" имената на променливите може да донесе на изходния код на алгоритъма, и по този начин направи програмата по-разбираеми. Това от своя страна ще намали значително времето за отстраняване на грешки програма.

· Програмен език Символи C-51

· Както във всеки друг текстов файл в програмата източник написан на език за програмиране C51 един, използван ASCII или ANSI символи. Наборът от символи, използвани в езика за програмиране C-51 могат да бъдат разделени в пет групи.

· 1. Символите, използвани за формиране на ключови думи и идентификатори (Таблица 1). Тази група включва главни и малки букви от английската азбука, както и символа долна черта. Трябва да се отбележи, че на езика за програмиране C-51 прави разлика между главни и малки букви. Например, идентификатори започват и Start ще се счита за различни идентификатори.

· Таблица 1

Главни букви от латинската азбука ABCDEFGHIJKLMNOPQRSTU VWXYZ
Малки букви на латинската азбука ABCDEFGHIJKLMNOPQRSTU VWXYZ
подчертавам _
арабски цифри 0 1 2 3 4 5 6 7 8 9

· 2. главни и малки букви от руската азбука (Таблица 2).

· Таблица 2

Главни букви от руската азбука A B C D E F G H I J K L M N O P Q R S T U V V W S ф б Y Z
Малки букви на руската азбука а б в г д е ж з и к л м н о п С Т У Ф Х ч т а б о д w аз

· 3. Знаците, наброяващи и специални символи (Табл. 3). Тези символи се използват за организиране на процеса на изчисляване, както и да се предават определен набор от инструкции на компилатора.

· Таблица 2

символ име символ име
, запетая ) дясната скоба
, точка ( лявата скоба
; точка и запетая } дясната скоба
: колон { презрамки ляв
? въпросителен знак < по-малко
" апостроф > по-голям
! удивителен знак [ скоба
| вертикална линия ] скоба
/ фракция бар # номер
\ наклонена черта % процент
~ тилда знакът '>
* звездичка ^ ексклузивно
+ плюс = е
- минус " кавички

· 4. Контрол и сепаратори. Тази група от символи включва пространства, раздели, нов ред, за връщане, нови герои и нова линия на страницата. Тези символи са разделени един от друг чрез езикови лексикални единици, които включват ключови думи, константи, идентификатори и т.н. Последователността на отделяне символи (например, последователността на интервали) се счита от компилатора като един символ.

· 5. Контролните последователности, т.е. специални комбинации от символи, които се използват в входните и изходните данни функции. Последователността на бягство започва с използването на наклонена черта (\), последван от комбинация от букви и цифри. Списък на аварийните последователности са дадени в таблица 4.

· Таблица 4

Последователността на бягство име шестнадесетичен код
\ а повикване
\ б Върнете се към стъпка
\ т раздел Хоризонтално
\ Н Започнете нова линия 00A
\ V вертикална таблични 00 Б
\ R връщане 00D
\ е Нова страница 00C
\ " кавички
\ " апостроф
\ 0 Нулева символ
\\ Обратно наклонена черта 05C
\ OOO Осмични ASCII или ANSI характер код
\ xHHH Hex код ASCII или ANSI характер HHH

· Последователности \ OOO и \ xHHH (тук O показва, осмични цифри Н представлява редица шестнадесетичен) ни позволява да представлява символ от ASCII или ANSI кодова таблица като последователност от осмична или шестнадесетична съответно. Например нов ред може да бъде представен по следните начини:

· \ R - бягство последователност,

· \ 015 - осмична код за връщане,

· \ X00D - връщане шестнадесетичен превоз.

· Обърнете внимание, че константи струнни винаги са сигурни, за да попитам всички три цифри контролната последователност. Например отделна бягство последователност \ н (нов ред) могат да бъдат представени като \ 010 или \ на Ха, но низови константи, които трябва да се обръщаме към всички три цифри, в противен случай, чийто характер или героите се спазва следната последователност бягство ще се считат за липсващата му парче. Например:

· "ABCDE \ x009FGH" този низ отбор ще бъдат отпечатани с използване на определени C езикови функции като две отделни думи ABCDE и FGH, табулатори, в този случай, ако посочите непълен контрол низ "ABCDE \ x09FGH", отпечатъкът ще ABCDEYAGH низ като компилаторът ще приеме последователността \ x09F като символ на "I".

· Имайте предвид, че ако характера на наклонена черта не е предшествано от бягство последователност (т.е. които не са включени в таблица 4) и не е число, тази функция се игнорира, и характера е представен като буквално. Например:

· Symbol \ з з символ се появява в низ или символна константа.

· В допълнение към определянето на обратно наклонена черта контрол последователност (\) се използва също и като продължение характер. Ако за (\) трябва да бъде нов ред, двамата герои са игнорирани, а на следващия ред е продължение на предишната. Този имот може да се използва, за да пишат дълги низове. Например:

· ФОРМАТ ( "Това е един много дълъг \ · низ")

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

Лексикални единици, сепаратори и Spaces *

Най-малките оператори единични C-51 е лексикална единица. Всеки лексикални единици принадлежат към една от категориите:

  • документи за самоличност;
  • ключови думи;
  • прости ръководства (всички специални символи с изключение _ са прости ограничители);
  • съставни ограничения (те се формират от определени комбинации от две специални символи, като например:! =, + =, - =, * =, << >>, <=,> =, / * * /, //);
  • числови константи;
  • константи текстов низ;

В повечето случаи, това е ясно, когато едно завършва лексикална единица и започва другият. Например, в изявление на задание:

X = AP * (FT-3) / А;

X, AP, FT, А - IDs са променливи;
3 - числова константа;
всички други герои - прости спира.

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

<== Предишна лекция | На следващата лекция ==>
| C-51 езика за програмиране

; Дата: 01.07.2014; ; Прегледи: 261; Нарушаването на авторските права? ;


Ние ценим Вашето мнение! Беше ли полезна публикуван материал? Да | не



ТЪРСЕНЕ:


Вижте също:



ailback.ru - Edu Doc (2013 - 2017) на година. Тя не е автор на материали, и дава на студентите с безплатно образование и използва! Най-новото допълнение , Al IP: 11.45.9.22
Page генерирана за: 0.053 сек.