Professional Documents
Culture Documents
Екатеринбург 2023
Цель работы
1. Изучить технологию программирования периферийных устройств
стенда SDK1.1, доступных через регистры ПлИС.
Задание 1
Задание 2
1. org 02000h
2. dpp data 84h
3. ena xdata 04h
4. buz bit acc.2
5. mov r0, #ena
6. mov a,#20h
7. loop: setb buz
a. call putbyte
b. call delay
c. clr buz
d. call putbyte
e. call delay
f. sjmp loop
g. delay: mov r1, #0E6h
h. djnz r1, $
i. ret
8. putbyte: push dpp
9. mov dpp, #08d
10.movx @r0, A
11.pop dpp
12.ret
13.end
Задание 3
1. org 2000h
2. dpp data 84h
3. sv xdata 07h
4. mov r0, #sv
5. call uart_ini
6. loop: jnb scon.0, $
a. mov a, sbuf
b. clr scon.0
c. call svdisp
d. mov sbuf, a
e. jnb scon.1, $
7. clr scon.1
a. sjmp loop
8. s9600 equ 0fdh
9. uart_ini: mov th1, #s9600
i. orl tmod, #20h
ii. anl pcon, #not(80h)
iii. orl tcon, #40h
iv. mov scon, #50h
v. clr ie.4
vi. ret
10.svdisp: push dpp
a. mov dpp, #08d
11.movx @r0, A
i. pop dpp
ii. ret
12.end
Этот код на языке ассемблера предназначен для программирования УАПП
(универсальный асинхронный приемопередатчик) для связи между
устройствами. Он настроен на скорость передачи 9600 бод.
Функция uart_ini настраивает UART, устанавливая скорость передачи, режим
таймера, режим передачи данных, разрешение прерываний и прочие
настройки.
В основном цикле программы loop происходит прием данных из входного
буфера UART (sbuf) и вывод их на экран при помощи вызова функции svdisp.
Для передачи данных на другое устройство, данные записываются в буфер
sbuf.
Функция svdisp предназначена для вывода символа на экран. В данном
случае, символ выводится на экран через порт sv.
Вывод
все три кода используют регистры ПЛИС для управления периферийными
устройствами на SDK1.1. Код 1 считывает данные с клавиатуры и выводит их
на светодиоды, код 2 управляет зуммером и выводом данных, а код 3
устанавливает параметры связи UART для обмена данными с другими
устройствами. Каждый код используется в разных целях, но все они
демонстрируют, как использовать регистры ПЛИС для управления
периферийными устройствами на SDK1.1.