1   2   3   4   5
Ім'я файлу: МПП-1 Архітектура мікроконтролера MCS-51.pdf
Розширення: pdf
Розмір: 794кб.
Дата: 09.05.2020
скачати
Пов'язані файли:
спз.docx
4.
ПОВНОЕКРАННИЙ НАЛАГОДЖУВАЧ-СИМУЛЯТОР
АСЕМБЛЕРНИХ ПРОГРАМ ДЛЯ ОДНОКРИСТАЛЬНИХ
МІКРОКОНТРОЛЕРІВ СІМЕЙСТВА MCS-51
4.1.
Загальні відомості про налагоджувач
Повноекранний налагоджувач-симулятор FD51 для програм, написаних мовою
АСЕМБЛЕРа однокристальних мікроконтролерів сімейства MCS-51, призначений для перегляду і налагодження цих програм. Налагоджувач – це програмна модель мікроконтролера 8051AH, яка працює на персональних ЕОМ типу IBM PC XT/AT
і сумісних з ними.
Налагоджувач дає можливість:
· набирати текст програми мовою АСЕМБЛЕРа у мнемонічних кодах ма- шинних команд;
· завантажувати для налагодження файли з машинними двійковими кодами асемблерних програм;
· переглядати на екрані текст завантаженої програми, включаючи адреси і коди команд, вміст усіх регістрів мікроконтролера, елементів пам’яті да- них та пам’яті програм, вміст зовнішньої оперативної та стекової пам’яті;
· виконувати завантажену програму по кроках з переглядом результатів пі- сля кожного кроку і у безперервному режимі із зупинками у точках пере- ривання;
· вносити зміни до завантаженої програми у мнемонічних кодах мови
АСЕМБЛЕРа або у машинних кодах;
· змінювати вміст регістрів, прапорців слова стану програми і елементів пам’яті у командному режимі та режимі повноекранного редагування;
· зберігати вміст будь-якої області пам’яті у файлі на дисковому носії;
· виводити на друк або дискові носії текст програми і дамп пам’яті;
· завантажувати пам’ять з дискового файлу;
· отримувати трасування програми;
· визначати час виконання завантаженої програми та її частин за допо- могою вбудованого лічильника.
4.2.
Запуск налагоджувача та робота з ним
Для завантаження програми налагоджувача-симулятора необхідно запустити файл fd51.exe (про місцезнаходження файлу можна дізнатися у викладача). Відра- зу ж після запуску налагоджувач-симулятор FD51 готовий до роботи (за малого

24
розміру робочого вікна – меншого екрану дисплея – слід одночасно натиснути клавіші [Alt] і [Enter] ), а на екран ЕОМ виводиться головне робоче вікно програ- ми (рис. 4.1). Воно висвітлює вміст чотирьох банків регістрів загально- го призначення (Bank0…Bank3); блоку регістрів спеціальних функцій (Special
Function Registers); пам’яті даних (INT RAM) та програм (PGM ROM); байта стану програми (PSW); стекової пам’яті (Stack) та лічильника часу (s-ms-mcs). У лівій верхній частині головного вікна налагоджувача можна побачити вміст регістрів непрямої адреси R0, R1 і елементів пам’яті, що адресуються цими регістрами:
У лівій нижній частині головного вікна налагоджувача знаходиться вікно редагування тексту програм. Процесом налагоджування можна керувати команда- ми меню та налагоджувача, що вводяться у командному рядку (нижня частина го- ловного вікна).
Команди вводяться користувачем за допомогою алфавітно-цифрових клавіш клавіатури персональної ЕОМ. При цьому можна користуватися клавішами встав- ки [Insert]; видалення [Del], [BackSpace]; позиціонування курсору [
¬], [®]; від- міни [Esc]. Необхідно мати на увазі, що після початку введення команди і до нати- снення клавіші [Enter] функціональні клавіші [F1F10] недоступні, тобто рядок команд меню не працює. Якщо команда, що вводиться, помилкова, видається по- відомлення про це і звуковий сигнал (призначення функціональних клавіш та ко- манди налагоджувача описані нижче).
Для переведення налагоджувача у режим повноекранного редагування не- обхідно натиснути клавішу [Enter] без введення команди. При цьому курсор на- бирає вигляду мерехтливого прямокутника
▐. Тепер можна переміщувати курсор по екрану завдяки клавішам керування курсором і змінювати вміст регістрів, пам’яті і прапорців введенням нових значень цифровими клавішами. Можна змі- нювати також початкову адресу поточної інструкції асемблерного редагованого тексту і початкові адреси вікон пам’яті (у перших рядках вікон). Повноекранне редагування можна виконувати при шістнадцятковому, десятковому та двійково- му поданні інформації на екран. Під час редагування залишаються доступними всі команди меню, що вводяться функціональними клавішами [F1F10]. Для швид- кого переміщення курсору по екрану користуватися клавішами [Tab] і
[Shift]+[Tab]. Для того, щоб повернутися до командного рядка, необхідно повтор- но натиснути клавішу [Enter]. При цьому режим повноекранного редагування ви- микається.

25
Для переходу до режиму АСЕМБЛЕРа (для введення команд налагоджува- ної програми у мнемонічних кодах) спочатку необхідно увімкнути режим пов- ноекранного редагування одноразовим натисненням клавіші [Enter], після чого помістити курсор в першу (ліву) позицію поля поточної інструкції (команди) і за допомогою клавіш встановити початкову адресу програми у вигляді чотиррьох цифр шістнадцяткового коду. Оскільки до цього моменту програма користувача ще не завантажена, то АСЕМБЛЕР після введеного коду адреси (наприклад, 0000) висвітлює ще дві цифри 00 шістнадцяткового коду команди NOP і, власне, її мне- моніку. При цьому весь цей командний рядок затемнений.
Для того щоб ввести за вибраною адресою мнемоніку нової команди споча- тку слід перевести мерехтливий курсор в першу (ліву) позицію коду замінюваної команди (у випадку, коли треба змінити команду NOP, курсор повинен бути роз- міщений в позиції N). При цьому всі символи замінюваної мнемоніки команди бу- дуть яскраво висвітлені:
Тепер наберіть мнемоніку, наприклад, MOV A,B (команди АСЕМБЛЕРа можуть набиратися як великими, так і малими літерами):
і натисніть [Enter]. Якщо мнемоніка правильна, то відповідні коди команди (Е5 – код операції та F0 – адреса регістра В) послідовно заносяться до пам’яті програм
(PGM ROM) за адресами 0000H та 0001H, а курсор вікна встановлюється на на- ступну адресу байта, куди буде заноситися код операції наступної команди, а саме
0002Н:

26
Якщо мнемонічний код команди набрано невірно, у командному рядку ви- світлюється повідомлення про помилку у вигляді Invalid mnemonic:
Якщо ж набрано помилкові операнди команди, то видається
повідомлення Invalid operand (s):
Помилкові символи можна видалити розміщенням на них курсору та натис- канням клавіші «Пропуск». Можливо і перемістити курсор лівіше першої букви введеної команди (і тим самим замінити цю команду на попередню) із зняттям по- відомлення про помилку.
Помилково набрана адреса переходу супроводжується звуковим сигналом та попередженням Address cannot be reached:
Вилучити це попередження і повторити спробу введення команди вже з пра- вильною адресою можливо переміщенням курсору лівіше першої букви (символу) введеної команди (і тим самим замінити помилкову команду на попередню).
При асемблюванні команд програми підтримуються імена регістрів спеціа- льного призначення. Чисельні операнди мають бути подані у шістнадцятковому форматі без зазначення букви “H” і не повинні починатися з букви (за необхіднос-

27
ті чисельні значення доповнюють лідируючим нулем, наприклад, “0A7”, “0C”,
“0FF”).
Для виходу з режиму АСЕМБЛЕРа натисніть клавішу [Q] або виведіть мерехт- ливий курсор з поля поточної інструкції:
4.3.
Робота з точками переривання
Меню точок переривання викликається клавішею [F5]. При її натисненні у верхній частині головного вікна налагоджувача з’являється вікно точок перери- вання:
Одночасно можна встановити до 8 точок переривання. Зупинка набраної і запущеної на виконання програми відбувається при досягненні зазначеної у коло- нці “PC” адреси, якщо кількість проходів через зазначену адресу дорівнює заданій у колонці “Counter” кількості. Тобто, зупинка виконання програми здійснюється за умови “Counter”=“Occur”. “Counter” – це лічильник, вміст якого визначає, скільки разів програма повинна пройти через названу адресу, щоб сталася зупинка.
“Occur” показує, скільки разів асемблерна програма проходила через зазначену адресу.

28
Закінчивши редагування, натисканням клавіші [F2] необхідно зберегти на диску поточні значення точок переривання. При цьому у користувача запитується номер точки переривання (0…9):
Оскільки може бути встановлено декілька точок переривання, то слід вибра- ти необхідний для роботи номер точки переривання і натиснути відповідну клаві- шу (наприклад, 3 коли введено не менше трьох точок переривання). При цьому за- пит зникає, а інформація записується до файлу під іменем fd51.brk.
За необхідності змінити вибраний номер набору точок переривання слід натиснути клавішу [F1]. Це викличе повторний запит номеру точки переривання і, таким чином, його можна змінити. Для повернення до головного вікна слід натис- нути [F5]. Визначивши точки переривання, запускайте програму командою G без параметрів запуску:
При зупинці програми за перериванням видається повідомлення із зазначен- ням номера точки переривання:
4.4.
Функціональні клавіші та команди налагоджувача
Керування налагоджувачем здійснюється за допомогою функціональних кла- віш та керуючих команд. У нижній частині головного вікна налагоджувача знахо-

29
диться рядок меню, який свідчить про призначення функціональних клавіш:
· 1
Step
– [F1] – виконати поточну інструкцію набраної асемблерної програ- ми. Поточна інструкція виділена у вікні редагування тексту програми сві- тлим блакитним прямокутником (див. п. 4.2). Після натиснення клавіші
[F1] на екрані одразу можна побачити результати виконання поточної ін- струкції;
· 2
Proc
– [F2] – виконати програму до наступної за вибраною адресою ін- струкції. Ця клавіша дає можливість виконати підпрограму або цикл як
одну інструкцію. Отже, вже налагоджені підпрограми можна не перегля- дати;
· 3
Reg:DEC
– [F3] –– подати чисельну інформацію на екрані (вміст регіст- рів і пам’яті) у десятковій, а при повторному натисненні – у двійковій та шістнадцятковій формах (BIN, HEX). Після запуску налагоджувача чис- лові дані – у шістнадцятковому вигляді;
· 4
In/Ex
– [F4] – перемикання вікна пам’яті даних з внутрішньої (Internal
RAM) на зовнішню (External RAM) і навпаки;
· 5
SetBrk
– [F5] –– встановлення точок переривання;
· 6
Mem:BIN
[F6] –подати інформацію у вікні пам’яті даних у двійковій
(BIN), а при повторному натисненні - у шістнадцятковій формі(HEX);
· 7
I/E
­
[F7] – перегорнути вікно пам’яті даних угору на один рядок;
· 8
PGM
­
– [F8] – перегорнути вікно постійної пам’яті програм угору на один рядок;
· 9
I/E
¯
[F9] – перегорнути вікно пам’яті даних униз на один рядок;
· 0
Pgm
¯
[F10] – перегорнути вікно постійної пам’яті програм униз на один рядок.
Для швидкого перегортання пам’яті можна користуватися клавішами:
· [Home] – перегорнути вікно пам’яті даних угору на одну сторінку;
· [End] – перегорнути вікно пам’яті даних униз на одну сторінку;
· [Pg Up] – перегорнути вікно пам’яті програм угору на одну сторінку;
· [Pg Dn] – перегорнути вікно пам’яті програм униз на одну сторінку.

30
Як вже було зазначено, керувати процесом налагодження асемблерної програми можна також і за допо- могою команд, які набираються у полі командного рядка:
У цих методичних вказівках будемо застосовувати такі позначки:
· параметри команд налагоджувача-симулятора вміщені до кутових дужок, наприклад: <адреса>;
· необов’язкові параметри команд вміщені до квадратних дужок, напри- клад: [<адреса>].
При введенні числових даних слід дотримуватися шістнадцяткового форма- ту. Буква “H” для зазначення формату при цьому не ставиться. Команди можна набирати як великими, так і малими літерами.
Увага! Під час набору команд слід використовувати символи пропуску
[space], які ігноруються налагоджувачем і не впливають на результати його робо- ти.
Програмний налагоджувач-симулятор FD51 підтримує наступні найбільш уживані команди:
R<номер регістра>=<число>
Занести число до зазначеного регістра поточного банку регістрів. Число по- винне бути байтом. Приклади: R4=A7; R5=3; R1=0. Для виконання набраної у ко- мандному рядку команди натискають клавішу [Enter].
Невірно набрана інструкція налагоджувачем ігнорується і він готовий до по- вторного введення нової команди).
<Ім’я регістра>=<число>
Занести число до регістра спеціального призначення. Можна використову- вати імена всіх спеціальних регістрів (за винятком PSW), а саме: A, B, TH0, TH1,
TL0, TL1, DPH, DPL, DPTR, SP, IP, IE, TMOD, TCON, SCON, SBUF, PC.
Для регістрів DPTR і PC число може бути двобайтним. Приклади: SP=31;
PC=A3D; DPTR=FF47.
PO<номер порту>=<число>
Занести число до порту. Номер порту може бути у межах 0…3. Число повинне бути байтом. Приклади: PO3=25; PO1=D7; PO0=0.
<Тип пам’яті> <адреса>[-<кінцева адреса>]=<число>

31
Занести число до елемента пам’яті за зазначеною адресою. Якщо задана кін- цева адреса, цим числом заповнюється область пам’яті. Для зазначення типу пам’яті використовуються символи “I” (internal, внутрішній) – внутрішня пам’ять даних; “E” (external, зовнішній) – зовнішня пам’ять даних; “P” (program) – пам’ять програм. Приклади: E 27=58; I 36-40=A7; P 31-59=0.
Увага! При заповненні деяких елементів пам’яті можливе виникнення неод- нозначностей, викликаних тим, що написання мнемоніки команди і адреси елеме- нта пам’яті може збігатися з назвою регістра. Наприклад, команда “P C=23” буде сприйнята налагоджувачем не як команда занесення числа 23 до елемента пам’яті програм за адресою 0C, а як команда запису числа 23 до програмного лічильника
PC. Для попередження помилок числа, що починаються з букви, бажано передува- ти нулем: P 0C=23.
<Ім’я регістра>.<номер біта>=<число>
Встановити або скинути зазначений біт регістра спеціального призначення
A, B, PO0–PO3, IP, IE, TMOD, TCON, SCON. Номер біта повинен належати діапа- зону 0…7. Якщо число = 0, відповідний біт скидається, інакше – встановлюється в одиничний стан. Приклади: A.7=0; B.5=0; PO 3.2=1; PO 0.7.
<Тип пам’яті> <адреса>.<номер біта>=<число>
Встановити або скинути зазначений біт елемента пам’яті. Номер біта пови- нен належати діапазону 0…7. Приклади: I 32.5=1; E 21.0=0; P 0.3=1.
<Ім’я прапорця>=<число>
Встановити чи скинути прапорець слова стану програми PSW. Імена прапо- рців: C, AC, F0, S1, S0, OV, P. Якщо число дорівнює 0, то прапорець скидається,
інакше – встановлюється в одиничний стан. Приклади: C=1; OV=0; P=1.
INT<0/1>=<число>
Імітування високого або низького рівня на входах Int0 або Int1 запитів на переривання. Число має бути двійковим – 0 або 1. Приклади: INT0=0; INT0=1;
INT1=1.
D<адреса>
Встановити адресу дизасембльованого тексту у вікні редагування тексту програми. Приклади: D250; DA76; D0.
M<тип пам’яті> <початкова адреса>
Встановити початкову адресу пам’яті у вікні, що висвітлює вміст пам’яті за- значеного типу. Приклади: M I 20; M E F3E; M E 351; M P 0.
S<тип пам’яті> <початкова адреса> <кінцева адреса>,<спец. файлу>

32
Зберегти вміст області пам’яті зазначеного типу у дисковому файлі. Специ- фікація файлу, як правило, повинна вміщувати шлях до файлу та його ім’я (у зага- льному випадку допускається будь-яка коректна у MS-DOS специфікація, напри- клад, COM1 або LPT). Параметри <початкова адреса> і <кінцева адреса> визна- чають початок і кінець області пам’яті, що записується на диск. Приклади: S P 10-
532, A:\FILE1; S E 0-15, E:\INTEL\INSIDE.DAT; S P 12-4A6, LPT.
Якщо у специфікації файлу зазначені або помилкові імена директорій та ло- гічних дисків відсутні, видається повідомлення про неможливість відкриття відпо- відного диска чи директорія і створення файлу:
L[<тип пам’яті> <початкова адреса>,]<спец. файлу>[/A]
Завантажити файл до пам’яті. Тип пам’яті визначається символами “I”, “E” або “P”, відповідно до цього файл завантажується до внутрішньої (Int), зовнішньої
(Ext) або програмної (Pgm) пам’яті. Початкову адресу і тип пам’яті зазначати тіль- ки при завантаженні чистого двійкового коду. При завантаженні файлу, виробле- ного ISIS-II MACRO-ASSEMBLER-ом, треба позначати тільки специфікацію фай- лу
і ключ /A. Приклади: L
P
256,A:\FILE1; L
A:\PROG/A;
L E 31,C:\ATMEL\DATE3.
Якщо при введенні команди зроблено помилку, то симулятор реагує вида- чею відповідного застереження, наприклад, «Invalid address» тощо. Для виправ- лення ситуації слід команду ввести повторно (вже без помилки).
PRT<тип пам’яті> < почат. адр.>–<кінц. адр.>[,<спец. файлу>]
Команда призначена для організації роздрукування у шістнадцятковому фо- рматі дампу пам’яті, обмеженого початковою і кінцевою адресами (при цьому специфікація файлу повинна закінчуватися розширенням .dat).
Приклади: PRT E 27-59,Z:\abc.dat; PRT I 0-43,Е:\vvc.dat.
Для роздрукування збереженого файлу (наприклад, abc.dat) слід за допомо- гою провідника відшукати його на диску Z та виділити курсором. Відкривати його слід за допомогою програми «Блокнот». Відкритий таким чином файл можна пе- реглянути або роздрукувати.
PRTD<почат. адр.>,<кількість команд>[,< спец. файлу>]

33
Команда призначена для організації роздрукування тексту програми у мне- монічних кодах, розпочинаючи з адреси, зазначеної параметром <почат. адр.>
(при цьому специфікація файлу повинна закінчуватися розширенням .txt).
Приклади: PRTD 33,20,A:\DRIVE.txt; PRTD 12,97,Z:\mmm.txt.
Для роздрукування збереженого файлу (наприклад, mmm.txt) слід за допо- могою провідника відшукати його на диску Z та виділити курсором. Відкривати його слід за допомогою програми «Блокнот». Відкритий таким чином файл можна переглянути, скорегувати або роздрукувати.

1   2   3   4   5

скачати

© Усі права захищені
написати до нас