- •Министерство образования украины
- •«Однокристальный микроконтроллер i8051»
- •Структурная схема i8051
- •Формат слова состояния программы (psw).
- •Группа команд передачи данных
- •Группа команд логических операций
- •Группа команд передачи управления
- •Группа команд арифметических операций
- •Группа команд операций с битами
- •Специальные символы
- •Условные обозначения
- •Регистр управления/статуса универсального асинхронного приемопередатчика (uart).
- •Примечание.
- •Регистр управления мощностью (pcon)
- •Таймер/счетчик событий
- •Примечание.
- •Interrupt vector addresses
- •Регистр приоритетов прерываний (ip)
- •Карта адресуемых бит в блоке регистров специальных функций
- •Система подготовки программ i8051 Справочная информация Псевдокоманды транслятора:
- •Ip, ie, tmod, tcon, th0,tl0, th1,tl1, scon, sbuf, pcon.
- •Отладчик dScope-51.
- •Эмуляция встроенной периферии.
- •Директивы Ассемблера а51
- •1)Директивы определения символов:
- •2) Директивы компоновки:
- •3) Директивы состояния и выбора сегментов:
- •Операции с адресами и данными.
- •Описание меток.
- •Назначение линий портов ввода-вывода контроллера отладочной платы
- •Назначение битов порта p5:
- •Распределение памяти монитора
- •Объявление абсолютных сегментов
Ip, ie, tmod, tcon, th0,tl0, th1,tl1, scon, sbuf, pcon.
При этом возможны и побитовые обращения к регистрам:
A, B, PSW, P0, P1, P2, P3, IP, IE, TCON, SCON,
а также к ОЗУ с адресами 20h-2Fh.
Например: SETB PSW.3 ; третий бит регистра PSW
ANL C,/P2.0 ; младший бит регистра P2
MOV C,23h.7 ; старший бит в байте с адресом 23h
Отладчик dScope-51.
Существуют следующие окна:
WATCH - доступно, если командой WS (WatchpointSet) были определены WАТСН-выражения. Размер окна зависит от количества WATCH-выражений.
LANGUAGE - используется для отображения
1) исходных текстов загруженной программы;
2) соответствующих им инструкций ассемблера;
Режим отображения может быть изменен клавишами Alt-View (High Level, Mixed или Assembler). Переключение к этому окну осуществляется клавишами Alt-L. Самая нижняя линия окна служит командной строкой.
По заглавной букве доступны следующие команды:
Again - повторяет последнюю Find, -find или Step команду, включая аргументы.
Break - создает/удаляет точку разрыва на текущей позиции курсора.
Execute - временно выводит в ЕХЕ - окно для задания одной команды.
Find - ищет в тексте программы строку вперед от курсора.
-find - то же назад от курсора.
Go_til - запускает программу с текущего значения программного счетчика.
Jump - перемещает курсор на определенную метку.
Pstep - эквивалентно одному шагу в ЕХЕ-окне.
traceStep - эквивалентно Т в ЕХЕ-окне.
setTag - устанавливает метку.
SERIAL - содержит информацию о текущем состоянии последовательного порта микроконтроллера. Горячие клавиши - Alt-S. В случае ненадобности окно может быть отключено клавишами Alt-V S.
EXE - является контрольной панелью. Горячие клавиши -Alt-E.
REGISTER - расположено в правой вертикальной зоне экрана. Показывает текущее содержимое регистров, стека, указателей стека, счетчика циклов. Включается и отключается комбинацией Alt-R.
HELP - окно содержит информацию-подсказку по всем элементам DS51. Система HELPa очень развита и всеобъемлюща. Горячие клавиши - Alt-H-I или F1.
Размер окон EXE, SERIAL, LANGUAGE, HELP может быть изменен либо мышкой, либо следующими комбинациями клавиш:
Аlt-стрелка_вниз - уменьшить окно;
Аlt-стрелка_вверх - увеличить окно;
Изменяется размер лишь активного окна. Текущее активное окно выделено подсветкой в заголовке.
Эмуляция встроенной периферии.
Для загрузки тестируемой программы в DS51 программа должна существовать либо в OMF - 51, либо в Intel HEX формате.
DS51 поддерживает следующие области памяти:
- 64К программной памяти (CODE);
- 256 байт внутренней памяти данных IDATA;
- 128 байтов ОЗУ регистров специальных функций (регистров управления встроенными устройствами) SFR RAM;
- 64К внешней памяти данных XDATA;
- побитово адресуемая RAM;
Регистр IDATA можно адаптировать к конкретному микроконтроллеру, эмулируемому DS51 в пределах (128 - 256) байт.
Рассмотрим наиболее часто употребляемые команды, доступные в окне ЕХЕ;
- Установка 32к внешней памяти
>МАР 0,0x7FFF
- Загрузка тестируемой программы
>LOAD [NameProg]
- Список содержимого внешней памяти
>МАР
0: xdata 0000h to 7FFEh
Начиная с адреса 0 доступно 32к внешней памяти. Попытки обратиться к адресам выше 7FFFh будут расцениваться DS51 как ошибка.
- Просмотр области памяти, расположенной по определенному адресу
>D [Идентификатор типа памяти]:[Адрес]
В качестве идентификатора типа памяти допустимо использовать следующие символы; I, X, D, В, С.
- Список всех глобальных переменных программы NameProg
>DIR [NameProg]
Следует список в формате
[Adress] .... [Name] .. [Type]
- Список модулей из которых состоит программа (включая библиотечные)
>DIR MODULE
- Список локальных переменных функции NameFunc из модуля NameMod
>DIR [NameMod] . [NameFunc]
- Запуск программы
>G
- Выполнение одной команды программы (при пошаговом выполнении)
>Т
- Выполнение программы до адреса функции NameFunc
>G, [NameFunc]
- Просмотр содержимого переменных
>[ Имя переменной ]
Показывается адрес переменной и ее значение
[Адрес] = [Значение]
Следует отдельно рассмотреть случай, когда имя переменной совпадает с зарезервированным словом. Например
>BD /* BD - зарезервированное слово
BreakpointDisable */
Будет получено сообщение об ошибке
ERROR 33: syntax error
Необходимо литерализировать зарезервированное слово
>~BD
- Установка условных точек разрыва
>BS SUNDAY new_record[6]. month.day
Программа будет остановлена в случае присвоения полю new_record[6].month.day значения SUNDAY.
- Установка безусловной точки разрыва
>В
При этом курсор должен находиться в строке окна LANGUAGE, на которой устанавливается точка разрыва.
- Установка точки разрыва по адресу функции
>ВS [Имя функции]
- Вывод определенных точек разрыва
>BL
- Удаление точки разрыва
>ВК [Номер точки разрыва]
- Удаление всех определенных точек разрыва
>ВК *
- Просмотр содержимого функции
>U [Имя функции]
- Просмотр строки программы
>G, .[Имя программы]#[Номер строки]
- Установка напряжения на выводе микроконтроллера
>[Имя вывода] = [Значение напряжения]
Допускаются следующие имена выводов: PORT0 – 8
- Просмотр значений напряжения на выводах микроконтроллера
>DIR VTREG
- Вывод списка доступных сигнальных функций
>SIGNAL STATE
- Выход из dScope – 51
>ЕХ1Т