Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Вычислительная техника и информационные технологии. Цифровые автоматы и микроконтролеры. Руководство к лабораторным работам в системе PROTEUS 7.2 SP6

.pdf
Скачиваний:
15
Добавлен:
12.11.2023
Размер:
4.8 Mб
Скачать

Следует подчеркнуть, что шестнадцатеричные номера портов такие: Р0 = 80Н, Р1 = 90Н, Р2 = 0А0Н, Р3 = 0В0Н. В конце программы пишем END, хотя он и недостижим (программа циклическая, поэтому работает непрерывно).

Если бы мы вначале определили соответствие символических имен портов их адресам, то можно было бы писать в дальнейшем эти символические адреса. В приложении приведен пример такого определения. Сейчас мы не будем это делать.

После написания программы ее необходимо откомпилировать, т.е. получить объектный код. Это выполняется с помощью командного файла компилятора 51.ВАТ (рис. 1.11).

Рис. 1.11. Расположение командного файла компилятора

Запускаем компилятор (рис. 1.12):

Пишем название программы – у нас оно Prot1, нажимаем клавишу «Enter» (рис. 1.13).

11

Рис. 1.12. Запуск командного файла компилятора

Рис. 1.13. Компиляция программы

После компиляции проверяем отсутствие ошибок в файле

Prot1.lst (рис. 1.14).

Рис. 1.14. Проверка ошибок при компиляции

12

Ошибки не обнаружены. Если ошибки есть, их нужно устранить.

Посмотрим сформированный (откомпилированный) файл

Prot1.hex (рис. 1.15).

Рис. 1.15. Откомпилированный файл

Здесь программы уже в шестнадцатеричном коде. Файл Prot1.hex нам нужен для загрузки в контроллер.

1.2.3. Загрузка программы в контроллер

Щелкнем по изображению контроллера на схеме, откроется окно (рис. 1.16).

Рис. 1.16. Окно загрузки файла в микроконтроллер

Нужно указать требуемый файл Prot1.hex (рис. 1.17).

13

Рис. 1.17. Выбор файла для загрузки в микроконтроллер

Выбираем, нажимаем «Открыть» и потом ОК. Программа загружена.

1.2.4.Выполнение программы

Всамом низу основного окна расположена стандартная панель управления интерактивной симуляцией: .

Правее располагается строка статуса, в ней отображаются: ошибки, подсказки, текущее состояние процесса симуляции и т.д., а также координаты курсора, указанные в дюймах.

При нажатии на кнопку «Пуск» программа начинает выполняться.

Чтобы выполнять дальнейшие действия с проектом, его нужно обязательно остановить кнопкой «Стоп»!

Нажимаем кнопку «Пуск». В исходном состоянии оба ключа, SW1 и SW2, замкнуты, и поэтому оба индикатора, D1 и D2, активны (рис. 1.18).

На рис. 1.19 размыкаем ключ SW2 (замыкаем его на зе м- лю). В результате гаснет индикатор D2.

14

На рис. 1.20 размыкаем ключ SW1 (замыкаем его на зе м- лю). В результате гаснет индикатор D1.

На рис. 1.21 восстанавливаем замкнутое положение ключей SW1 иSW2. В результате индикаторыD1 иD2 сновазагораются.

Рис. 1.18. Исходное состояние схемы

Проверяем реакцию на ключи (они управляются мышкой).

Рис. 1.19. Размыкание ключа SW2 (выключение индикатора D2)

15

И еще раз.

Рис. 1.20. Размыкание ключа SW1 (выключение индикатора D1)

Возвращаем все в исходное состояние.

Рис. 1.21. Возвращение в исходное состояние

Следует отметить, что в данном симуляторе очень удобно прослеживать информацию на выводах, так как при симулировании схемы на ножках микросхем загораются цветные квадраты, которые отображают логические уровни:

16

синий – ноль, он же земля;

красный – логическая единица;

серый – высокий импеданс, или третье состояние.

Задание 1. Измените проект так, чтобы на трех светодиодах отображалась арифметическая сумма входной информации с числом 3.

Задание 2. Измените проект так, чтобы на трех светодиодах отображалась оценка 5 в двоичном коде, когда ключ 1 подключен к шине «0 вольт» и оценка 4, когда ключ 1 подключен к шине питания:

M1:

MOV A,90H

;mov from P1 to A

 

JB 90,M2

;jamp,if bit 90 =1

 

MOV 0A0H,#4

;out 4 into P2

 

JMP M1

 

M2:

MOV 0A0H,#5

;out 5 into P2

 

JMP M1

 

 

END

 

17

Лабораторная работа № 2

Разработка типовых программ для микроконтроллера

80С51 в системе Proteus 7.2 SP6

Разработаем схему для ввода шести бит с порта 1 и выдачи восьми бит на порт 2 (рис. 2.1).

Рис. 2.1. Рабочая схема

2.1. Арифметические операции с двоично-десятичными цифрами

Приведем пример программы сложения введенного кода с числом 6, десятичная коррекция и вывод на порт результата:

BEGIN:

 

P1 EQU 90H

; определение порта Р1

P2 EQU 0A0H

; определение порта Р2

MOV A,P1

; MOVE FROM P1 INTO A

ANL A,#15

; MASKING BY 00001111B

ADD A,#00000110B

; ADD 110B

DA A

; Decimal correction

MOV P2, A

; MOVE FROM A INTO P2

JMP BEGIN

; LOOP

END

 

 

18

Реализуйте такую программу, проанализируйте результаты и представьте преподавателю.

Ответьте на вопросы:

Зачем нужна команда ANL A,#15?

В чем сущность команды DA A ?

2.2. Умножение

Реализуйте программу умножения введенного кода на число 4, проанализируйте результаты и представьте преподавателю.

2.3. Деление

Реализуйте программу деления введенного кода на число 3, проанализируйте результаты и представьте преподавателю.

2.4. Логические операции

Выполнение логических операций И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ, ИНВЕРСИЯ с введенным кодом. Сдвиги – тоже логические операции. Реализуйте «бегущую единицу» и «бегущий ноль» на светодиодах порта 2.

Реализуйте обмен местами тетрад аккумулятора.

2.5. Операции с битами

Выполните битовые операции с введенными кодами. Пример: установка бита 2 во введенном коде.

BEGIN:

 

P1 EQU 90H

; определение порта Р1

P2 EQU 0A0H

; определение порта Р2

MOV A,P1

; MOVE FROM P1 INTO A

SETB 0E2H

; SET B 2

MOV P2, A

; MOVE FROM A INTO P2

JMP BEGIN

; LOOP

END

 

 

19

Реализуйте такую программу, проанализируйте результаты и представьте преподавателю.

Почему всегда горит светодиод D5 (рис. 2.2)?

Рис. 2.2. Иллюстрация к программе установки бита

2.6. Реализация временной задержки программно

Процедура реализуется методом программных циклов. В некоторый регистр загружается число, и оно циклически уменьшается на единицу (инкрементируется). При достижении нуля организуется выход из цикла. Задержка определяется величиной этого числа с учетом времени выполнения команд. Необходимо знать время выполнения команд в машинных циклах – эта информация есть в таблице системы команд. Например, рассмотрим подпрограмму WAIT:

WAIT:

MOV R6,#Х

W1:

DJNZ R6,W1

 

RET

В регистр 6 загружается число Х, затем командой DJNZ R6,W1 организуется цикл – декремент с проверкой нулевого содержимого регистра.

20

Соседние файлы в папке книги