Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
САПР_ЗВ(лек7-RS232).doc
Скачиваний:
3
Добавлен:
30.08.2019
Размер:
815.1 Кб
Скачать

Приклад програми спряження послідовним інтерфейсом

$mod51

;Програма відображає прийняті байти на статичному індикаторі

;та передає у відповідь байти збільшені на 1

mov SCON, #01010010b ;Ініціалізація послідовного інтерфейсу

mov TMOD, #00100000b ;Налаштування таймера 1

mov TH1, #254 ;Частота передачі 9600

setb TR1 ;Запуск таймера

MLoop:

jnb RI, MLoop_NotRI ;Отримано байт?

clr RI ;Очистка ознаки прийому

mov a, SBUF ;Читання прийнятого байта

mov DPTR, #0B000h ;Відображення на статичному індикаторі

movx @DPTR, a

inc a ;Інкримент байта і передача

jnb TI, $ ;Очікування закінчення передачі

clr TI ;Очистка ознаки закінчення передачі

mov SBUF, a ;Передача байта

MLoop_NotRI:

jmp MLoop

END

Наступний фрагмент демонструє приклад реалізації функцій налаштування послідовного інтерфейсу, прийому та передачі байта.

uart_init:

;Ініціалізація УАПП на швидкість 9600

mov SCON, #01010010b ;Ініціалізація послідовного інтерфейсу

mov TMOD, #00100000b ;Налаштування таймера 1

mov TH1, #254 ;Частота передачі 9600

setb TR1 ;Запуск таймера

ret

uart_rx:

;Очікує прийому байта. Прийнятий байт кладе в R7

jnb RI, $ ;Очікування закінчення прийому

clr RI ;Очистка ознаки закінчення прийом

mov R7, SBUF ;Читання прийнятого байта

ret

uart_tx:

;Очікує звільнення передавача після чого передає байт R7

jnb TI, $ ;Очікування закінчення передачі

clr TI ;Очистка ознаки закінчення передачі

mov SBUF, R7 ;Передача байта

ret

Варіанти індивідуальних завдань

  1. Передавати коди натиснутих клавіш послідовним інтерфейсом.

  2. На вхід УАПП поступають символи '0'..'9'. Відображати останні 4 цифри на статичному індикаторі.

  3. Відображати суму всіх отриманих байт.

  4. По запиту '?' відповідати прізвищем студента. Рядок відповіді закінчувати символом CR (#0Dh).

  5. На кожний символ '0'..'9' відповісти назвою цифри "zero".."nine", для всіх інших символів відповідати "unknown". Рядок відповіді закінчувати символом CR (#0Dh).

Завдання вибирають із таблиці 15 згідно варіанту

Таблиця 13. Завдання для лабораторної роботи №7

Швидкість

600

1200

2400

4800

9600

19200

38400

Завдання 1

15

20

25

30

0

5

10

Завдання 2

16

21

26

31

1

6

11

Завдання 3

17

22

27

32

2

7

12

Завдання 4

18

23

28

33

3

8

13

Завдання 5

19

24

29

34

4

9

14