Министерство образования РФ
––––––––––––––
Санкт-Петербургский государственный
электротехнический университет «ЛЭТИ»
ОДНОКРИСТАЛЬНАЯ МИКРОЭВМ СЕМЕЙСТВА MCS51
Методические указания
к лабораторным работам по дисциплине
«ЦИФРОВЫЕ И МИКРОПРОЦЕССОРНЫЕ УСТРОЙСТВА»
Санкт-Петербург
2000 Г удк 621.391.23
Однокристальная микроЭВМ семейства MCS51: Методические указания к лабораторным работам по дисциплине «Цифровые и микропроцессорные устройства» / Сост.: А.К.Артемьев, А.В.Матвеев, И.С. Минченко, Ю.В. Сентябрев. СПб.:Изд-во СПбГЭТУ «ЛЭТИ», 2000. 32 с.
Содержат описание лабораторных работ, посвященных изучению программно-аппаратных средств однокристальной микроЭВМ 87С51FA, могут использоваться при курсовом и дипломном проектировании.
Предназначены для студентов специальностей 200000 «Электронная техника, радиотехника и связь», 210000 «Автоматика и управление», 220000 «Информатика и вычислительная техника» и бакалавров по направлениям 550400 «Телекоммуникации», 552500 «Радиотехника» для вузов с объемом лабораторного практикума по курсу 16 – 18 ч.
Утверждено
редакционно-издательским советом университета
в качестве методических указаний
СПбГЭТУ «ЛЭТИ», 2000
Лабораторная работа 1
ИЗУЧЕНИЕ ПРИНЦИПОВ ОТЛАДКИ ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ РЕЗИДЕНТНЫХ СРЕДСТВ МИКРОКОНТРОЛЛЕРА
1. 1. Краткое описание лабораторного макета
Лабораторный макет выполнен на базе однокристальной микроЭВМ семейства MCS51. Память программ содержит ПЗУ объемом 16K (адреса 0H … 3FFFH) с резидентными программами «монитор», «редактор», «ассемблер» и сервисными подпрограммами.
Память данных объемом 32К (0H ... 7FFFH) разделена на две части: первая (0H ... 3FFFH) предназначена для редактора и ассемблера, вторая совмещена с памятью программ (4000H ... 7FFFH) и в нее можно помещать как данные, так и исполняемый программный код.
Макет содержит два цифроаналоговых преобразователя (ЦАП). Первый подключен к порту P1 микроЭВМ, второй – к шине данных, запись в него осуществляется аналогично обращению к ячейке ОЗУ с адресом 8000Н.
Макет содержит перестраиваемый генератор частоты, управляемый формирователь постоянного напряжения ЕВХ, аналоговый компаратор, выход которого подключен к входу порта Р3.3 (INT1), и фильтр нижних частот (ФНЧ),подключенный к выводу Р1.5.
1. 2. Функции и директивы программы «монитор»
Программа «монитор» предназначена для организации интерфейса пользователь – микроЭВМ. При включении питания или нажатии кнопки «сброс» программируется последовательный порт микроЭВМ и выводится сообщение 'MCS-87C51FA SCS-MONITOR'.
Монитор выполняет одну из директив: D (просмотр), M (редактирование), T (копирование), C (сравнение), J (запуск программы), E (вход в программу редактора и транслятора ассемблера MCS51), F (заполнение), S (определение кодов символов) в следующих областях памяти: внутреннем ОЗУ (M), внешнем ОЗУ (R) и ПЗУ (P). Символы-указатели области памяти (M, R, Р) вводятся вслед за символом директивы без пробела. Директивы могут содержать до трех параметров, представляющих собой числа в шестнадцатеричной системе счисления, разделенные между собой символами <,> или <пробел>. Незначащие нули и символ «H» вводить не нужно. Ввод директивы заканчивается нажатием клавиши <CR> или <ВК>. В случае ошибки при вводе директива не выполняется, выводится символ <#> и директиву необходимо ввести заново.
Работа с директивами на примерах:
Директива D (просмотр)
DR00_FF
D - директива просмотра
R – область памяти (М,Р)
00 – номер ячейки, с которой начинается просмотр(обратите внимание: выводится вся строка с данным элементом).
_ - пробел
FF - номер ячейки, на котором заканчивается просмотр(обратите внимание: выводится вся строка с данным элементом).
(При просмотре области памяти М, просто DM)
После ввода команды нажимаем Enter. Мы видим таблицу, в ячейках которой находится содержимое выбранной области памяти.
В представленной ниже таблице в некоторых ячейках показаны их номера.
-
0000
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
0010
10
11
1E
1F
0020
20
22
2D
2F
0030
30
33
3C
3F
0040
40
44
4B
4F
0050
50
55
5A
5F
0060
60
66
69
6F
0070
70
77
78
7F
0080
80
87
88
8F
0090
90
96
99
9F
00A0
A0
A5
AA
AF
00B0
B0
B4
BB
BF
00C0
C0
C3
CC
CF
00D0
D0
D2
DD
DF
00E0
E0
E1
EE
EF
00F0
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
Директива F (заполнение)
FM5A_A5_77
Enter
F - директива заполнения
M– область памяти(R,Р)
5А - номер ячейки, с которой начинается заполнение
А5 – номер ячейки, на которой заканчивается заполнение
77 – то число, которым заполняются ячейки
_ - пробел.
Директива Т (копирование)
TPM55_DD_79
Enter
T - директива копирования
Р - область памяти, с которой производят копирование(R,М,Р)
M– область памяти, в которую производят копирование (R,Р,М)
55 - номер ячейки, с которой начинается копирование в Р
DD - номер ячейки, на которой заканчивается копирование в Р
79 - номер ячейки, с которой начинается вставка в М.
Директива М (редактирование)
MR00
Enter
М – директива редактирования
R – область памяти (М,Р)
00 – элемент, с которого начинается последовательное редактирование ячеек.
После нажатия Enter появляется номер ячейки; через « : » записано число, которым заполнена данная ячейка; через « - » мы записываем то число, которым хотим заполнить данную ячейку. Нажимая после этого «пробел» мы будем редактировать следующую ячейку. Закончив редактирование нужных ячеек, жмем Enter.
Директива С (сравнение)
СМР00_0А_11
Enter.
С – директива сравнения
М – первая сравниваемая область памяти (М,Р,R)
Р – вторая сравниваемая область памяти (М,Р,R)
00 – номер элемента в первой области, с которого начнется сравнение
0А – номер элемента в первой области, на котором сравнение закончится
11 - номер элемента во второй области, с которого начнется сравнение
_ - пробел
Директива S (определение кодов символов)
S5
Enter.
S – директива
5 – здесь может быть любой символ, код которого нас интересует
Директива J (запуск программы)
J4000
Enter.
запуск программы с адреса 4000H
При выводе информации, не помещающейся на один экран, остановка/возобновление вывода осуществляется нажатием клавиш <Ctrl>+<S>. Прекращение вывода с выходом в монитор – <Ctrl>+<A>.
1. 3. Полноэкранный редактор
Переход из монитора в режим ввода текста программы осуществляется по директиве <E>. Функции клавиш аналогичны редактору Volkov Commander.
Клавиши <Home> и <End> объединены в одну <Home>.
<BS> или <Ctrl>+<H> – удаление символа слева от курсора.
<Ctrl>+<G> – удаление символа над курсором.
<Ctrl>+<Y> – удаление строки, отмеченной курсором.
<Ctrl>+<K> – очистка с позиции курсора до конца строки.
<ESC> – выход из редактора.
Введенный с клавиатуры текст располагается во внешнем ОЗУ с адреса 0B01H по 3FFFH. Максимальное число строк – 1024. Во избежание потери текста отлаживаемой программы не рекомендуется использовать данный диапазон адресов при трансляции.