Балтийский государственный технический университет
«Военмех» им. Д.Ф. Устинова
Кафедра И3
«Информационные системы и компьютерные технологии»
Лабораторная работа № 7
на тему: «Программирование МК-51. Изучение учебного стенда Teacher-51»
по дисциплине: «Организация ЭВМ и систем»
Вариант 15
Выполнил:
Студент Тихонов А.Ю.
Группа И383
Преподаватель:
Санкт-Петербург
2010
Цель работы: Ознакомление с базовыми принципами программирования микроконтроллера. Изучение вывода информации на индикаторы контроллера.
Задание: Вывести на индикаторы Teacher-51 бегущую строку.
Буква |
Двоичный код |
Код в шестнадцатеричном виде |
Б |
01111101 |
7D |
А |
01110111 |
77 |
Р |
01110011 |
73 |
С |
00111001 |
39 |
У |
01101110 |
6E |
Ч |
01100110 |
66 |
Ь |
01111100 |
7C |
АДРЕС ПАМЯТИ |
МАШИННЫЙ КОД |
МНЕМОКОД |
КОММЕНТАРИИ |
8100 |
79h |
MOV R1, #78h |
Запись в регистры R1, R2 чисел, |
8101 |
78h |
организующих количество |
|
8102 L1 |
7Ah |
MOV R2, #FFh |
повторений вывода слова |
8103 |
FFh |
||
8104 L2 |
78h |
MOV R0, #07h |
Запись в регистр R0 количества |
8105 |
07h |
выводимых знаков |
|
8106 L3 |
74h |
MOV A, #00h |
Очистка индикатора, на который |
8107 |
00h |
был выведен предыдущий знак |
|
8108 |
90h |
MOV DPTR, #7F90h |
Записываем в 16разрядный регистр число 7F90h |
8109 |
7fh |
||
810A |
90h |
||
810B |
F0h |
MOVX @DPTR, A |
|
810C |
E8h |
MOV A,R0 |
Помещаем по адресу 7F80 номер |
810D |
90h |
MOV DPTR,#7F80h |
индикатора, на который будет |
810E |
7Fh |
выведен следующий знак |
|
810F |
80h |
||
8110 |
F0h |
MOV @DPTR, A |
|
8111 |
90h |
MOV DPTR,#8140h |
Выбираем из ячейки нужный нам |
8112 |
81h |
знак и выводим его но индикатор |
|
8113 |
40h |
||
8114 |
E8h |
MOV A, R0 |
|
8115 |
93h |
MOV A,@(A+DPTR) |
|
8116 |
90h |
MOV DPTR, #7F90h |
|
8117 |
7Fh |
||
8118 |
90h |
||
8119 |
F0h |
MOV @DPTR, A |
|
811A |
E8h |
MOV A, R0 |
|
811B |
90h |
MOV DPTR, #7F80h |
|
811C |
7Fh |
||
811D |
80h |
||
811E |
F0h |
MOV @DPTR,A |
|
811F |
D8h |
DJNZ R0, L3 |
Переход на метку цикла вывода |
8120 |
E5h |
нужного количества знаков |
|
8121 |
DAh |
DJNZ R2, L2 |
|
8122 |
E1h |
||
8123 |
D9h |
DJNZ R1, L1 |
|
8124 |
DDh |
||
8125 |
80h |
LJMP 0000 |
Переход на программу монитора |
8126 |
00h |
||
8127 |
00h |
||
… |
|||
… |
В этих ячейках находятся коды букв |
||
8140 |
7Dh |
||
8141 |
77h |
||
8142 |
73h |
||
8143 |
39h |
||
8144 |
6Eh |
||
8145 |
66h |
||
8146 |
7Ch |
Теоретический материал:
МЕТОДЫ АДРЕСАЦИИ адресные пространства команд и данных разделены, притом два типа памяти данных:
- внутренняя или резидентная (РД)
- внешняя (ВПД): исп. аппаратно-реализ-е ф-и портов Р0, Р2, Р3
методы адресации:
· непосредственный: операнд - восьми или 16разрядная константа, являющаяся частью кода операции
· регистровый: операнд определяется кодом операции - либо А или DPTR, либо один из восьми POH (R0-R7)
· прямой: операнд определяется 8битовым адресом, заложенным в код операции.
· косвенный: операнд определяется содержимым регистра-указателя или суммой базового и индексного регистров, заложенных в код операции.
используются регистры:
@R0, @R1 - MOV, MOVX
SP - PUSH,POP,ACALL,LCALL,RET
@DPTR - MOVX (ВПД)
@A+DPTR, @A+PC - MOVC (память программ)
_________________________________________________________________________
КОМАНДЫ ПЕРЕДАЧИ УПРАВЛЕНИЯ
rel - относительное смещение со знаком
bit - прямо адресуемая битовая переменная
КОД КОМАНДА
40 JC rel8 - если С=1 РС:=РС+rel8
50 JNC rel8 - если С=0 РС:=РС+rel8
20 JB bit,rel8 - если bit=1 РС:=РС+rel8
30 JNB bit,rel8 - если bit=0 РС:=РС+rel8
10 JBC bit,rel8 - если bit=1 РС:=РС+rel8
bit:=0
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.