Проектирование автоматизированнь2х станков и комплексов (830798), страница 36
Текст из файла (страница 36)
Всего в ассемблере насчитьmается42мнемоники,которые при комбинации с различными способами адресации и составляют111 команд микроконтроллера.Используется четыре способа адресации: подразумеваемая, косвеннорегистровая, прямая и непосредственная. При подразумеваемой или косвенно-регистровой адресации код команды содержит все необходимые сведенияоб операндах, и команда занимает всего один байт. Например, командаADDА,R7предписывает сложить аккумулятор А с содержимым регистраобщего назначенияи использует подразумеваемую адресацию, а по командеА микроконтроллер перешлет содержимое аккумуляR7MOVX @DPTR,тора в ячейку внешнего ОЗУ, адрес которой содержится в регистре DPTR.При прямой адресации адрес операнда следует за кодом команды, а при65непосредственнойманда SUВB А,за кодом команды следует значение операнда. Так, копредписывает вычесть из аккумулятора А содержимоеячейки резидентного ОЗУ с адресомаккумулятора А числором-65.65, а команда SUВB А, #65 -вычесть изВ первом случае используется прямая, а во втонепосредственная адресация.Команды ассемблера удобно разделить на пять групп:1) пересылки данных;2) арифметические;3) логические с байтами;4) работы с битами (команды битового процессора);5) ветвления программ и передачи управления.Команды пересылки данных предназначены для обмена информациейвнутри резидентного ОЗУ, между аккумулятором и внешней памятью данных, а также между аккумулятором и памятью программ (резидентной иливнешней).
Они используют мнемонику«MOV приемник,источник» и внутри резидентного ОЗУ позволяют комбинировать различные методы адресации. Например, в командепрямая, в командекомандеMOV А, 27 используется подразумеваемая иMOV А, #27 - подразумеваемая и непосредственная, а вMOV 27, @RO -прямая и косвенно-регистровая адресация. Первая и вторая команды предписывают загрузить в аккумулятор А содержимое ячейки ОЗУ с адресомзить в ячейку с адресомрегистреRO.2727и число27соответственно, а третья-загрусодержимое ячейки, адрес которой находится вЯчейка внешнего ОЗУ объемом64Кбайт может быть выбранатолько с использованием косвенно-регистровой адресации через регистр13.3.ОднокрисmШlьные микроконтроллеры в станках и станочных комплексахDPTR ивозможна пересылка только в аккумулятор:из него:MOVX @DPTR, А.MOVXА,173@DPTR илиАрифметические команды включают операции сложения, сложения сучетом бита переноса, вычитания с заемом, инкрементирования (увеличенияна1),декрементирования, сравнения, умножения и деления.
Операции влияют на биты переполнения, переноса и четности в регистре состояния микроконтроллераPSW.В командах сложения и вычитания аккумулятор являетсяпервым операндом и принимает результат операции. Вторым операндом может быть регистр общего назначения, ячейка резидентного ОЗУ с косвеннорегистровой или прямой адресацией или непосредственно байт данных. Выполняются эти команды в течение одного машинного цикла.DIVУмножение МUL АВ и делениеныхцикла.ДляихпроведениявАВ выполняются за четыре машинмикроконтроллереестьспециальныйрегистр В, в который записывают один из сомножителей или делитель. Второй сомножитель или делимое заносят в аккумулятор. После выполненияоперации умножения старший байт результата помещается в аккумулятор, амладшийостаток--в регистр В; после деления частное помещается в аккумулятор, ав регистр В.Логические команды с байтовыми переменными реализуют логическиеоперации И, ИЛИ и исключающее ИЛИ в аккумуляторе и байте-источнике.Второй операнд адресуется так же, как и в арифметических командах.Команды битового процессора могут выполняться с операндами, размещенными только в зонах резидентного ОЗУ с прямой побитной адресацией.Каждый из адресуемых битов может быть установлен винвертирован или проверен.
Все32«1»,сброшен в «О»,вывода четырех портов микроконтроллера допускают побитную адресацию, что позволяет одной ассемблерной командой включить или выключить какой-либо привод (провести дискретноеуправление) или проконтролировать состояние переключателя (реализоватьдискретный контроль). Команды битового процессора позволяют оптимизировать УП и повысить ее быстродействие.Команды ветвления и передачи управления бывают безусловные и условные, с абсолютной адресацией внутри адресного пространства в2 Кбайт и64 Кбайтис относительной адресацией. В последнем случае за кодом команды указывается байт смещения относительно содержимого счетчика командна момент выполнения операции. Команды условных переходов позволяюторганизовать ветвление в программах и исполнять циклы.
Если в регистробщего назначения (в нашем случаераций, то по командеDJNZ R4,R4)предварительно записать число итеМОО содержимое регистра каждый раз будетинкрементироваться и будет осуществляться переход к метке МОО (телу цикла), пока содержимое регистра не станет равным «О».Рассмотренная система команд семействаMCS-51стала своего рода эталоном для микроконтроллеров.
С помощью ее удается создавать компактныеи эффективные программы, управляющие отдельными узлами и элементами17413.Микроэлектронные устройства в станках и станочных комплексахтехнологического оборудования. Наличие в составе микроконтроллеров двухтаймеров позволяет организовать работу УП в реальном времени.Программирование микроконтроллеров семействаMCS-51можно проводить на языках высокого уровня, например С, но наиболее эффективно наассемблере. Строка текста программы на ассемблере состоит из четырех полей: метка, операция, операнды, комментарий. Любое из полей может отсутствовать.Метка представляет собой буквенно-цифровую комбинацию, котораяначинается с буквы латинского алфавита и завершается двоеточием.
Этосимволическое обозначение адреса ячейки памяти, в которой должен бытьпомещен код следующей за меткой команды. В поле операции записываетсямнемоническое обозначение команды, затем определяются операнды, участвующие в операции. Непосредственный операнд представляет собой числоили символическое имя с обязательным указанием префикса#значения операнда. Прямой адрес операнда может быть задан мнемоническим обозначением, числом или символическим именем. Указанием на косвенную адресацию служит префикс@.Поле комментария используется для текстового пояснения программы и должно начинаться символом«;».Компилятор языка преобразует исходную программу в объектные коды.Для более точной трансляции необходимо указать некоторые дополнительные параметры.
Всю эту информацию программист вносит в исходный текстприкладной программы в виде псевдокоманд ассемблера, которые управляютпроцессом трансляции и не преобразуются в объектные коды программы.Например, псевдокоманда1ОН,ORG 1ОНзадает транслятору адрес ячейки памятив которой расположена следующая за ней команда прикладной программы. Выходной файл компилятора имеет расширение«.obj».Программа в объектных кодах содержит вместо мнемоник команд и адресов машинные коды, но привязка адресов пока относительная и для получения загрузочного формата программного обеспечения должна быть скорректирована.
Эту операцию выполняет линковщик(отангл.link -соединять,связывать), который учитывает особенности организации памяти конкретного микроконтроллера, задает адреса библиотечных процедур, используемых впрограмме, и формирует загрузочный модуль программного обеспечения.Этот модуль «зашивается» в РПЗУ, и микроконтроллер готов к работе, если впрограммном обеспечении не было ошибок.Отладка программы-достаточнотрудоемкаяоперация,посколькуошибки могут быть на синтаксическом, логическом и физическом уровне.Ошибки на синтаксическом уровне-неверная запись команд-обнаруживаются компилятором и устраняются в процессе создания объектного кода.Ошибки на логическом уровне-задание неверной логики работы-могутбыть обнаружены программистом при внимательном просмотре исходныхтекстов.
Автоматизировать этот процесс позволяют симуляторы.13.3.ОднокрисmШlьные микроконтроллеры в станках и станочных комплексахСимулятор175это программа, которая выполняет программный код, ис-пользуя программную модель микроконтроллера на персональном компьютере. При этом программист наблюдает за ходом выполнения программы.Можно узнать значения регистров, а также всех ячеек памяти, с которымоперирует микроконтроллер на каждом шаге программы. Часто симуляторявляется частью интегрированной среды программирования, где отладкапрограммы происходит на уровне исходного текста.
Основной недостатокотладкиспомощьюсимулятора заключаетсявтом,чтонеучитываютсяограничения, накладываемые конкретной схемой связи микроконтроллера собъектом управления и конкретными механизмами. Например, импульсныйсигнал на включение пневмоклапана или реле подается, но он слишком короток (клапан не успевает сработать) или слишком слаб по мощности.Средством устранения ошибок на физическом и логическом уровнях является аппаратно-программный эмулятор-устройство, которое заменяетмикроконтроллер в системе управления и энергообеспечения и выполняетпрограммуподуправлениемперсональногокомпьютераипрограммиста.Здесь за основу берется реальный механизм станочной системы с системойэнергообеспечения, но без микроконтроллера.