Федеральное государственное автономное образовательное учреждение высшего профессионального образования
Уральский федеральный университет
им. Первого президента России Б.Н. Ельцина
Кафедра физических методов и приборов контроля качества
Отчет по лабораторной работе №2
Компьютерные технологии в приборостроении
Программирование периферийных устройств, доступных через регистры ПЛИС.
Преподаватель Е.В. Моисейкин
Студентка
группы Фт-47061 Е.В. Смолина
Екатеринбург, 2010
Цели работы:
Изучить технологию программирования периферийных устройствстенда SDK1.1, доступных через регистры ПЛИС.
Ход работы
1Часть 1
Задание 1.
Программа для вывода информации на линейку светодиодных индикаторов. Используя монитор Т2 загрузить программу в лабораторный стенд SDK1.1 и получить правильный результат выполнения программы. Исходном тексте изменить содержимое выводимого байта данных в соответствии с табл.1 и пронаблюдать результаты на лабораторном стенде.
Таблица 1. Вариант 10.
-
Номер варианта
Светящиеся диоды
10
6,5,2
Выполнение задания:
org 02000h ; начало SRAM ВВП
dpp data 84h ; адрес регистра dpp
mybyte equ 01100100b ; байт данных для вывода
sv xdata 07h ; адрес регистра светодиодов
mov r0,#sv ; адрес регистра светодиодов
mov a,#mybyte
call putbyte ; инициализация putbyte
sjmp $
putbyte:push dpp ; сохр. номер текущей страницы
mov dpp,#08d ; переход на 8-ю страницу
movx @r0,A ; запись в регистр ПЛИС
pop dpp ; восст. номера страницы
ret
end
Вывод: была написана программа для вывода информации на линейку светодиодных индикаторов под номерами 6,5,2. Используя монитор Т2 загрузили программу в лабораторный стенд SDK1.1 и получили правильный результат выполнения программы: горящие диоды 2,5,6.
Задание 2.
Программа для вывода информации на жидкокристаллический дисплей. Составить и набрать головную программу для вывода своего имени или фамилии на ЖКИ с использованием подпрограммы PUTCHAR.
Выполнение задания.
org 02000h ; начало SRAM ВВП
dpp data 84h ; адрес регистра dpp
DATA_IND xdata 01h ; регистр данных ЖКИ
C_IND xdata 06h ; регистр управ. ЖКИ
; образцы битовых полей регистра C_IND
E BIT acc.0
RW BIT acc.1
RS BIT F0
; сохранение используемых регистров в стеке
clr RS ; очищение регистра RS
mov a,#10000110b ; пересылка в аккумулятор начального значения
call putchar ; инициализация putchar
setb RS ; установка
mov a,#0A3h ; загрузка в аккумулятор буквы Ж
call putchar ; инициализация putchar
mov a,#45h ; загрузка в аккумулятор буквы Е
call putchar ; инициализация putchar
mov a,#48h ; загрузка в аккумулятор буквы Н
call putchar ; инициализация putchar
mov a,#0B1h ; загрузка в аккумулятор буквы Я
call putchar ; инициализация putchar
clr RS ; очистка регистра RS
mov a,#11000100b ; загрузка в аккумулятор нач.знач.
call putchar ; инициализация putchar
setb RS ; установка
mov a,#43h ; загрузка в аккумулятор буквы С
call putchar ; инициализация putchar
mov a,#0BCh ; загрузка в аккумулятор буквы М
call putchar ; инициализация putchar
mov a,#4Fh ; загрузка в аккумулятор буквы О
call putchar ; инициализация putchar
mov a,#0BBh ; загрузка в аккумулятор буквы Л
call putchar ; инициализация putchar
mov a,#0B8h ; загрузка в аккумулятор буквы И
call putchar ; инициализация putchar
mov a,#48h ; загрузка в аккумулятор буквы Н
call putchar ; инициализация putchar
mov a,#41h ; загрузка в аккумулятор буквы А
call putchar ; инициализация putchar
sjmp $
putchar: push psw ; загрузка psw в стек
anl psw,#11100111b ; выбрали банк 0
push 0h ; сохранение r0
push dpp ; загрузка dpp в стек
; переключение на 8-ю страницу внешней памяти данных
mov dpp,#08d ; выбор 8-ой страницы
; вывод данных в регист данных ЖКИ
mov r0,#DATA_IND ; адрес регистра данных
movx @r0,A ; вывод данных
; запись кодовых полей в регистр управления ЖКИ
clr RW ; RW=0
mov c,RS ; чтение RS
mov acc.2,c ; RS=1 или 0
; формирование строба 0-1-0 на входе «Е» ЖКИ
mov r0,#C_IND ; адрес регистра команд
clr E ; Е=0
movx @r0,A ; запись в C_IND
setb E ; Е=1
movx @r0,A ; запись в C_IND
clr E ; Е=0
movx @r0,A ; запись в C_IND
; восстановление использованных регистров
pop dpp ; извлечение dpp из стека
pop 0h ; r0 (0-банк)
pop psw ; извлечени psw из стека
ret
end
Вывод: была составлена программа для вывода информации на жидкокристаллический дисплей. С использованием подпрограммы PUTCHAR была составила программа для вывода на экран имени и фамилии. В результате на экран стенда выводилось в две строчки «Смолина Женя».