Источники питания сетевого напряжения на DIN-рейке MEAN WELL

Передача данных через 8251

Новичок
 
Регистрация: 31.05.2008
Сообщений: 3
Репутация: 10
 
03.06.2008 19:10 #1
Есть программа передачи массива с одного компа на другой через 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]
Оценка
Новичок
 
Регистрация: 13.02.2008
Адрес: Ставрополь
Сообщений: 493
Репутация: 39
30 30
0 0
 
14.07.2008 08:18 #2
Просто интересно почему преподают старье? (Самому смешно -ответ то известный ) Ведь чтобы проверить надо собрать целую микро ЭВМ 80-х годов.
Проще взял PIC - написал прогу . нужен простой программатор и макетка.
А дальше экспериментируй......
И в конфе многие посоветуют
Оценка
Гуру
 
Регистрация: 13.05.2006
Сообщений: 3,908
Репутация: 1247
1,234 65
61 33
 
17.07.2008 18:48 #3
Цитата:
Есть программа передачи массива с одного компа на другой
Если мы имеем дело с "компами", то для них обычно пишут на ЯВУ(СИ, Паскаль/Дельфи и пр.). К тому же по набору(55-й порт, 53-й таймер)микросхем это динозавр, а не компьютер. Напечатай своему преподавателю скриншот с нашими комментариями. Может он к прогрессу захочет приобщиться. DSR обычно сообщает передающей стороне, что приемник готов/не готов принимать данные. Могу выложить программу с исходником на дельфи для СОМ порта для форточек дяди билла. Но похоже здесь патология и рецидив. Интересно, а преподдаватель в курсе хотябы семейства х86 ? Сейчас модно два камня в одном флаконе и т.д.(корел, но не дроу, а дуэ). А он не в курсе, что соединив два 8086 можно это дуэ тоже получить даже на этих старых процах? Может ему самому поучиться, а не других учить(всяким отходам)? Понятно, что флуда здесь больше, чем по делу ответа. А PIC контроллеры были первыми RISC конструкциями, первый вариант всегда убогий и требует модернизации. Архитектура основана на регистре-аккумуляторе, 4 такта резонатора на машинный цикл, банкирование памяти. Например у AVR контроллеров любой регистр является аккумулятором(меньше пересылок-короче код программы), нет банкирования памяти(не нужно переключать страницы) и команда выполняется за 1 такт(переход за 2). По этому я бы советовал, если есть желание изучать AVR микроконтроллеры. Не в обиду smart_pic, конечно. Но я изложил факты и они не в пользу PICов. Сам правда больше 51х серией балуюсь. По привычке старой. Им и до PIC и до AVR как до луны. Но привычка...
Оценка
Новичок
 
Регистрация: 13.02.2008
Адрес: Ставрополь
Сообщений: 493
Репутация: 39
30 30
0 0
 
14.10.2008 20:36 #4
Я сам был задействован в процесе обучения в одном из ВУЗов. Так система образования такая консервативная и очень медлительная на новые технические решения, потому что сначала нужно самому изучить , затем написать учебник, его должны утвердить, а затем внести его в программу и только потом учить студентов.
если что упустил пусть меня поправят.
Плюс редко кто хорошо владеет теорией и практикой одновременно , что бы написать толково - вот и пользуются старьем.
Но это уже совсем не техническая тема .......
Не в обиду LEAS работаю на них потому , что знаю их лучше всего. А стартовал я с комплекта 580 , а также других процев. А сейчас работаю на PIC.
Оценка
Гуру
 
Регистрация: 13.05.2006
Сообщений: 3,908
Репутация: 1247
1,234 65
61 33
 
15.10.2008 20:37 #5
Я тоже так стартовал. Потом 8086,Z80,8031,AVR и так далее. KEIL,AVRStudio, сейчас PCAD,ORCAD ,PROTEUS,MULTISIM....Из последнего-CROSSWORKS.
Оценка
Ответ
Метки
8251
Похожие темы
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход
Электронные компоненты. Скидки 15%, кэшбэк 15% и бесплатная доставка от ТМ Электроникс
Часовой пояс GMT +3, время: 03:08.
Обратная связь РадиоЛоцман Вверх