Лабораторная работа № 1.
Цель работы – освоение современного микропроцессора серии MCS-51,
приобретение навыков программирования, работа с портами ввода-вывода.
-
Общие сведения.
Микропроцессор DS89C420 Dallas Semiconductor является представителем серии восьмиразрядных однокристальных микропроцессоров, предназначенных для построения вычислительных и управляющих устройств. В отличие от родоначальника 51 серии Intel 8051, у процессора DS89C420 существует ряд существенных преимуществ:
- выполнение команды до 12 раз быстрее (выполнение машинного цикла за 1 такт работы процессора)
- работа на тактовой частоте до 33 МГц
- наличие внутренней Flash-памяти до 64 кб., и возможность внутрисхемного программирования
Схема расположения выводов показана на рисунке:
Рисунок 1
Здесь порт Р0 – двунаправленный порт ввода вывода и мультиплексированная шина адрес/данные (AD0 – AD7) для доступа к внешней памяти. Порт Р2, так же двунаправленный порт ввода – вывода, и старшие 8 разрядов шины адреса (A8 – A15). EA – разрешает выбор внешней или внутренней памяти программ. ALE – разрешение фиксации адреса(PROG – используется для реализации режима параллельного программирования). PSEN – память программ доступна. Порт Р3 и Р1 – двунаправленные порты ввода-вывода. WR- управление записью, RD - управление чтением. Т2 – внешний вход/выход для таймера/счетчика2, RXD1 – прием данных по последовательному порту2, TXD1 – передача данных по последовательному порту2, INT2, INT3, INT4, INT5 – внешние прерывания. RST – внешний сброс, RXD0 – прием данных по последовательному порту0, TXD0 – передача данных по последовательному порту0, INT0 и INT1 – входы внешних прерываний, T0 – внешний вход таймера0, T1 – внешний вход таймера1. WR – стробирующий импульс записи во внешнюю память, RD – стробирующий импульс чтения из внешней памяти.
-
Описание лабораторного стенда
Схема платы представлена на рисунке 2
Микропроцессорный стенд включает в себя БИС процессора типа DS89C420(DD3), 10-ти разрядный быстродействующий АЦП AD7813, сопрягаемый с МП по шине D0…D7 Интерфейс RS232 и RS485 выполнены на микросхемах SP202EEP и SP485CX(DD1 и DD4). Переключение процессора в режим программирования и обратно осуществляется через COM-порт и 3-х стабильный буфер DD2.
Схема стенда приведена на рисунке:
Рисунок 3
Для программирования процессора через COM-порт компьютера используется программа Loader 420,окно работы с которой представлено на рисунке 4.
Рисунок 4
Программа находится на компьютере по следующему адресу: D:\TMP\LOADER\Loader420.exe. С помощью команд Load, Verify, Erase можно соответственно записывать, проверять и стирать программу из Flash памяти микропроцессора. В пункте меню Ports можно выбирать порт и скорость обмена между микропроцессором и ЭВМ. Для начала работы нажать OPEN, затем Loader . Программатор работает с программами в виде стандартных HEX-файлов, которые можно подготовить с помощью любой системы ассемблер для процессоров MSC-51.
Для создания hex-файла необходимо сделать следующие действия:
1. Написать программу в блокноте, пользуясь списком команд, и сохранить ее с расширением *.asm.
-
После подготовки программы на ассемблере *.asm ее нужно пропустить через программу rem-filtr.exe, который находится в папке D:\Lab. Для этого нужно ввести в командную строку следующую запись: [rem-filtr.exe name.asm].
-
После этого запустить созданный ею файл asm.bat в результате создается объектный файл с расширением obj. Запускается программа rl51.exe с объектным файлом в качестве параметра (через командную строку). Создается окончательный объектный файл без расширения.
-
Для преобразования его в hex формат запускается программа objhex.com с последним созданным файлом (через командную строку).
После в программе Loader стирается старая программа из памяти микропроцессора и записывается новая.
Пример программы иллюстрирующий сложение двух цифр и отображение суммы на светодиодах:
mov P1, #07h % сохраняет и выводит на светодиоды число 7 в двоичной системе, т. е. 11100000, 1-значит лампочка не горит;
mov A, #12 % сохраняет число 12 в аккумуляторе;
Add A, P2 % складывает 2 числа и сохраняет сумму в аккумуляторе;
n: % метка
mov P1, A % помещает значение из аккумулятора на светодиоды, т. е. 11001000;
sjmp n % прыгает на метку;
end
При непосредственном выведении числа на светодиоды необходимо знать некоторые особенности:
-
Числа выводятся в виде двух цифр в шестнадцатеричной системе, соответствующие двум полубайтам. Например, горит первая лампочка при mov P1, #01h, горит 01110101 при mov P1, #57h.
-
Перед гласными должен стоять 0. Например, горят все лампочки - mov P1, #0ffh.