КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Голимый
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн дек 08, 2014 19:45:24
Откуда: Воронеж

КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Сообщение Голимый »

Неспешно изучаю МК КР1816ВЕ39, и решил попробовать внешнее прерывание. К МК подключен расширитель I/O D8243 (КР580ВР43), к портам P6, P7 которого подключен ардуина, которая выдает 8-битную циклическую поледовательность кодов, и после каждого выданного байта, генерирует короткий импульс вызывающий прерывание МК - #INT. Задача такая: по внешнему прерыванию прочесть состояние 4-битных портов P6 и P7 расширителя, собрать цельный байт из двух тетрад, инвертировать его, и вывести на светодиоды, подключенные к порту P1 МК.

За вывод отвечает такой обработчик прерывания:

Код: Выделить всё

clr A
movd A, P6 ;P6 копирую в младшую тетраду аккумулятора
swap A ;меняю местами тетрады аккумулятора
movd A, P7 ;P7 в младшую тетраду А
cpl A ; инвертирую полученный байт
outl P1, A ; вывожу байт в порт P1
retr  ;выход из обработчика
И возникла проблема: выводится только старшая тетрада (порт P7 расширителя), младшая (порт P6) теряется, и не отображается. Проверил по отдельности порты P6,7 - они рабочие.
Написал более сложный обработчик с пересылками через оперативную память инструкцией XCHD, это решило проблему, но почему не работает более простой код. Есть подозрение, которое пока сложно проверить - инструкция MOVD пересылает младшую тетраду, и при этом забивает нулями старшую? Или я не прав, и не то написал?
Трудное детство, стальные игрушки.
Реклама
petrenko
Друг Кота
Сообщения: 5326
Зарегистрирован: Вт фев 21, 2012 13:51:55
Откуда: Начинающий
Контактная информация:

Re: КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Сообщение petrenko »

Справочник писал(а):MOVD A,<источник> - считать порт микросхемы расширителя портов.

Описание: содержимое порта расширителя портов копируется в младшую тетраду аккумулятора. Старшая тетрада обнуляется. Команда не воздействует на флаги.
Так что это ни разу не "проблема" .
Да и вообще какой смысл отдельную тему делать, когда правильнее было бы в "мелкие вопросы по .. " написать..
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Реклама
Голимый
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн дек 08, 2014 19:45:24
Откуда: Воронеж

Re: КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Сообщение Голимый »

Спасибо, я был невнимателен.
Значит, простым способом считывать оба порта нельзя.
Трудное детство, стальные игрушки.
petrenko
Друг Кота
Сообщения: 5326
Зарегистрирован: Вт фев 21, 2012 13:51:55
Откуда: Начинающий
Контактная информация:

Re: КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Сообщение petrenko »

В смысле "простым" ?
А собственно чем Вам не нравится добавление команды XCHD A,@Ri ?
Насколько сильно это "усложнит" ?
Или есть какие то ограничения на длину кода и/или время выполнения ?
Или все регистры позяняты "под завязку" ?
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Реклама
Эиком - электронные компоненты и радиодетали
Голимый
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн дек 08, 2014 19:45:24
Откуда: Воронеж

Re: КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Сообщение Голимый »

petrenko писал(а):В смысле "простым" ?
У этого МК мало памяти, вернее мало может адресовать внешней памяти. Прогграммный счетчик всего 12 бит, из которых автоинкрементируются только 11. Дальше - пока мне неведомое мне колдунство с переключением банков. Считаю что доступно только 2048 байт памяти программ.
petrenko писал(а):А собственно чем Вам не нравится добавление команды XCHD A,@Ri
Ничего против не имею, просто пришлось делать не так как хотел изначально.
Трудное детство, стальные игрушки.
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Сообщение BOB51 »

Мндя... mcs48... антиквариат... и весьма жесток к программисту...
Да и компиляторы на ассемблер добыть тяжко...
Лучше бы уж mcs51...
:roll:
Реклама
Голимый
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн дек 08, 2014 19:45:24
Откуда: Воронеж

Re: КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Сообщение Голимый »

BOB51 писал(а):Мндя... mcs48... антиквариат... и весьма жесток к программисту...
Да и компиляторы на ассемблер добыть тяжко...
Лучше бы уж mcs51...
:roll:
Лежат две микросхемы ВЕ39 с 90-х годов. В свое время дал себе слово разобраться с ними когда нибудь :)
С транслятором никаких проблем, нашел подходящий ассемблер аж 2013 года выпуска.
С книжками по ним все плохо.
Трудное детство, стальные игрушки.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Сообщение BOB51 »

Досадка в том, что данное семейство не имело продолжения (в отличии от mcs51, pic и avr).
По сегментации ПЗУ весьма специфично по требованиям к области применения команд и их размещению (относительно двухбайтовых). Посему... "проходили, но "отложено музейным экспонатом""...
Гдей-то здесь (на КОТе) за них отдельна ветка была, там и прожки компиляторов и симулятор-отладчики были...
Преимущество применения связки mcs48+8243 в том, что часть команд аппаратно отрабатывается за счет того расширителя.
...ностальжи...
8)
Голимый
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн дек 08, 2014 19:45:24
Откуда: Воронеж

Re: КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Сообщение Голимый »

BOB51 писал(а):Преимущество применения связки mcs48+8243 в том, что часть команд аппаратно отрабатывается за счет того расширителя.
Да это не преимущество, это суровая необходимость. Половина ног МК занята шинами блока внешней памяти программ, к ним ничего не подключишь. Без расширителя - никуда.
Щас наиграюсь - и брошу наверное. Чувствую, я на нем не развернусь. Лучше уж правда, MCS-51, с его плоской 64К адресацией.
Трудное детство, стальные игрушки.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Сообщение BOB51 »

Не надь "бочка гнать" на МК - каждый из "доступных" хорош по-своему.
Абы только продолжал выпускаться хош кем-нибудь и был подешевше.
:hunger:
Воть тута про оные в виде общего знакомствия:
http://radiokot.ru/forum/viewtopic.php?f=62&t=94201
:beer:
Голимый
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн дек 08, 2014 19:45:24
Откуда: Воронеж

Re: КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Сообщение Голимый »

BOB51 писал(а):Воть тута про оные в виде общего знакомствия:
http://radiokot.ru/forum/viewtopic.php?f=62&t=94201
:beer:
Честно говоря, не понял. 51-е - программирую, PIC, STM - безынтересны.
Трудное детство, стальные игрушки.
petrenko
Друг Кота
Сообщения: 5326
Зарегистрирован: Вт фев 21, 2012 13:51:55
Откуда: Начинающий
Контактная информация:

Re: КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Сообщение petrenko »

Голимый писал(а):Ничего против не имею ..
Ну тогда собственно вот так :

Код: Выделить всё

; убираем очистку clr A - это излишне
movd A, P6 ;порт P6 копируем в младший ниббл аккумулятора A - как и было
xchd A,@Ri ;но ( ! ) сохраняем в мл. ниббле регистра
movd A, P7 ;P7 в младший ниббл А
swap A ;вот только теперь меняем местами нибблы аккумулятора, так, чтоб значение P7 оказалось в старшем ниббле A
xchd A,@Ri ;а теперь сохранённое в регистре значение P6 - в младший ниббл A
;Ну дальше всё, как и было ...
cpl A ; 
outl P1, A ; 
retr  ;
Не сильно длиннее и задействует дополнительно ещё 1 регистр.
это суровая необходимость
Ну так, кроме разширителя портов вр43 ,никто ж не запрещает в адресное пространство внешней памяти данных поместить хоть 64 порта типа 580вв55 :)))

ps Кстати, где и почём покупали вр43 ?
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Голимый
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн дек 08, 2014 19:45:24
Откуда: Воронеж

Re: КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Сообщение Голимый »

petrenko писал(а):Ну тогда собственно вот так
Сделал так-же!. Только все-таки решил выводить через порты 4,5 расширителя.
petrenko писал(а):поместить хоть 64 порта типа 580вв55
Думал, но пока еще не понял, как управлять ВВ55. Пока в голове не складывается кода.
petrenko писал(а):ps Кстати, где и почём покупали вр43 ?
ВР43 не покупал. Купил 5 штук на алиэкспрессе, NEC D8243HC
Покупал, когда еще доллар ~32Р стоил. Проект с оживлением ВЕ39 у меня долгострой.
Трудное детство, стальные игрушки.
petrenko
Друг Кота
Сообщения: 5326
Зарегистрирован: Вт фев 21, 2012 13:51:55
Откуда: Начинающий
Контактная информация:

Re: КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Сообщение petrenko »

Голимый писал(а):.. как управлять ВВ55 ..
Справочники ! Паки и паки справочники . :wink:

( (IMHO) в книге авторства Зеленко Геннадия Вадимовича, Панова Виктора Васильевича и Попова Сергея Николаевича очень ясно написано в т.ч и о вв55 :write: )
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Голимый
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн дек 08, 2014 19:45:24
Откуда: Воронеж

Re: КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Сообщение Голимый »

Решил я на своей ВЕ39 сделать часы. Чтоб не париться с программным счетом времени, решил поставить RTC, а конкретно DS12887+. Это блок-сборка содержащая микросхему часов, кварц, и аккумулятор, и что особенно радует - имеет шинный интерфейс, что позволяет подключить ее к шине блока внешней памяти программ, и не занимать полезные выводы МК. Счетные регистры "далласа" в этом случае являются адресами памяти, и доступны через MOVX A, @Ri. Но возникла одна непонятка. "Даллас" имеет собственную защелку адреса, и требует разветвления сигнала #ALE, и мне кажется это приведет к проблеме - непонятно куда обращается МК - к ПЗУ, или к "Далласу". Хотя кроме шины он использует сигналы RD/WR от МК, но опасаюсь, не возникнет ли конфликта на шине?
Трудное детство, стальные игрушки.
petrenko
Друг Кота
Сообщения: 5326
Зарегистрирован: Вт фев 21, 2012 13:51:55
Откуда: Начинающий
Контактная информация:

Re: КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Сообщение petrenko »

Уже сказал же :
petrenko писал(а):.. Справочники ! Паки и паки справочники ..
Архитектура данных м.к. - с раздельной адресацией озу данных и пзу программ - ну неужели так лениво прочитать об этом ?
Заодно изучите временные диаграммы сигналов, чтоб развеять Ваши опасения.

Кстати, удобно разместить "знакогенератор" в 3-ей (из возможных 16) странице пзу
,и можно даже "бегущую строку" организовать из светодиодных матриц 8*8 - например длиной в 32 столбца (, а доступные нынче 1533ид3 занимают меньше места, чем 155ид3 - их понадобится 2шт. для этого )
.. Жаль вот невозможно в данном м.к. непосредственно порт инкрементировать .. Но если Вам не понадобится таймер для каких-нибудь других целей, то можно сделать : MOV A<-0FFh ; MOV T<-A ; STRT CNT ; подать на T1 частоту сканирования столбцов , а по вектору прерывания 007h сделать примерно следуещее :

Код: Выделить всё

 MOV A<-T ; 
 ANL A,00011111b ; нужны только 5 бит для 32 столбцов
 RL A ; RL A ; RL A ; но подвинутые в старшую сторону
 MOV R2<-A ; в битах 5 , 4 , 3 номер столбца символа, а в битах 7 и 6 номер символа
 INC R3 ; смещение столбцов
 ADD R3 ; добавляется, чтобы строка стала "бегущей"
 OUTL P2<-A ; в 5 старших битах P2 номер столбца "дисплея" ( мл. 3 бита игнорируем )
 ANL A,11000000b ; теперь нужны вообще только 2 бита
 RL A ; RL A ; но подвинутые в младшую сторону 
 ADD A,32d ; 
 MOV R1<-A ; указатель на "экранную область" внутр.п.д.
 MOV A<-R2 ;
 RL A ; RL A ; 
 ANL A,11100000b ; в трёх старших битах номер столбца символа 
 ADD A,@R1 ; взяли из внутр.п.д. символ который отобразим
 MOVP3 A<-@A ; взяли из 3ей.стр.пзу столбец символа
 MOVD P7<-A ; SWAP A ; MOVD P6<-A ; вывели столбец в P7 и P6 *вр43
 RETR ;
^_Ну вот, почти готовая подпрограмма отображения "бегущей" строки ..
( для наглядности заменены некоторые запятые на "как_бы_стрелочку" <- )
Четыре символа "бегают" , для отображения их надо положить по адресам 32d 33d 34d 35d внутр.п.д
В "знакогенераторе" умещаются до 32 символов с "форматом знакоместа" 8*8 точек .

Мож кому пригодится, авось спасибо скажут .. :dont_know:
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Сообщение BOB51 »

Для работы с ВПП и ВПД помимо ale используются разные стробы чтения.
Технически только проблема с выходными сигналами защелки младшего байта адреса - но оная вроде только к ПЗУ подведена.
:roll:
Голимый
Встал на лапы
Сообщения: 117
Зарегистрирован: Пн дек 08, 2014 19:45:24
Откуда: Воронеж

Re: КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Сообщение Голимый »

BOB51 писал(а):Для работы с ВПП и ВПД помимо ale используются разные стробы чтения.
То есть, МК не перепутает, какую микросхему читать? Это хорошо, спасибо.
petrenko писал(а):и можно даже "бегущую строку" организовать из светодиодных матриц 8*8
Такая идея тоже. Только никаких дешифраторов, буду использовать готовый китайский модуль со светодиодной сборкой, на микросхеме MAX7219. Не позднее чем позавчера написал и обкатал (на 8051) подпрограмму работы SPI без битовых операций, читал и писал EEPROM 25AA020. Осталось только переписать подпрограмму под ВЕ39, и разобраться с регистрами MAX-a.
За программу бегущей строки - специальная благодарность, сам бы думал над ней долго.
Трудное детство, стальные игрушки.
Igor3
Потрогал лапой паяльник
Сообщения: 353
Зарегистрирован: Чт июл 24, 2014 00:25:25

Re: КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Сообщение Igor3 »

Голимый писал(а):С транслятором никаких проблем, нашел подходящий ассемблер аж 2013 года выпуска.
С книжками по ним все плохо.
Хм...А как же хит 90-х “Однокристальные микроэвм семейство МК48,МК51 том.1 Липовецкий Г.П. с соавторами” ?
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: КР1816ВЕ39 с расширителем портов NEC D8243. Проблема.

Сообщение BOB51 »

Ответить

Вернуться в «Разные вопросы по МК»