реклама на сайте
подробности

 
 
> Передача данных через 8251
na1s
сообщение Jun 3 2008, 15:09
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 87
Регистрация: 30-07-07
Из: Челябинск
Пользователь №: 29 459



Есть программа передачи массива с одного компа на другой через 8251 в синхронном режиме, препод говорит, что есть две возможности синхронизировать два компа. 1 ждать DSR, вторую я не знаю. А вот моя реализация:
Но он говорит здесь есть ошибка связанная с ложной записью, кто-нибудь может подсказать в чем проблема? Пожалуйста помогите, а то достало уже. Нет ни книг описывающий как писать программы для 8251, ни препод не написал хотя бы методичку как писать.

Передатчик
Код
mvi a, 82h    ; INIT ВВ55
out 83h
mvi a, 36h    ; INIT ВИ53
out 87h         ; CT0, режим 3, 2 байта
mvi a, 0a7h     ; мл. байт коэф. пересчета
out 84h
mvi a, 00h    ; ст. байт  
out 84h
lxi d, 3377h    ; синхросимволы
xra a         ; INIT ВВ51  
out 89h         ; поиск CI
out 89h
out 89h
mvi a, 40h    ; сброс
out 89h
mvi a, 08h    ; синхр.режим, 7 бит, 2 синхр.си
out 89h         ; внутр. синхр., нет контроля
mov a, d     ; первый синхр. символ
out 89h
mov a, e     ; второй синхр. символ
out 89h
in 88h         ; ложное чтение
mvi a, 31h     ; TxEN ER RTS
out 89h
out 88h         ; ложная запись
lxi b, 100h     ; коэф. задержки
w1: in 89h     ; ждем TxRDY (CTS)
ani 01h
jz w1
w2: dcr c     ; задержка
jnz w2
dcr b
jnz w2
w3: in 89h     ; ждем TxRDY
ani 01h
jz w3
mvi a,55h                     ; Тупо выводим 55h
out 88h         ; выводим
dcr b
jnz w3         ; цикл
rst7


Приемник

mvi a, 76h ; INIT ВИ53
out 87h     ; CT1, режим 3, 2 байта
mvi a, 0a7h; мл. байт коэф. пересчета  
out 85h
mvi a, 00h ; ст. байт  
out 85h
lxi d, 3377h ; синхросимволы  
xra a     ; INIT ВВ51  
out 89h     ; поиск CI
out 89h
out 89h
mvi a, 40h ; сброс
out 89h
mvi a, 08h; синхр. режим, 7 бит, 2 синхр.симв.
out 89h     ; внутр. синхр., нет контроля
mov a, d ; первый синхр. символ
out 89h
mov a, e ; второй синхр. символ
out 89h
in 88h     ; ложное чтение
mvi a, 94h; EN ER RxEN
out 89h
lxi h, 0899h ; пишем в память с 0900h
mvi b, 00h ; прием 256 символов
w1: in 89h ; ждем DSR
ani 80h
jz w1
mvi a, 06h ; RxEN DTR
out 89h
w2: in 89h; ждем RxRDY
ani 02h
jz w2
in 88h     ; читаем
cmp d     ; сравниваем с 1-м синхр.симв.
jz w2
cmp e     ; сравниваем со 2-м синхр.симв.
jz w2
inx h                ; HL++
mov m, a ; пишем в память
dcr b     ; B--
jnz w2     ; цикл
rst7
[/code]
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 08:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01597 секунд с 7
ELECTRONIX ©2004-2016