Неспешно изучаю МК КР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 пересылает младшую тетраду, и при этом забивает нулями старшую? Или я не прав, и не то написал?
MOVD A,<источник> - считать порт микросхемы расширителя портов.
Описание: содержимое порта расширителя портов копируется в младшую тетраду аккумулятора. Старшая тетрада обнуляется. Команда не воздействует на флаги.
Так что это ни разу не "проблема" . Да и вообще какой смысл отдельную тему делать, когда правильнее было бы в "мелкие вопросы по .. " написать..
_________________ < виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
В смысле "простым" ? А собственно чем Вам не нравится добавление команды XCHD A,@Ri ? Насколько сильно это "усложнит" ? Или есть какие то ограничения на длину кода и/или время выполнения ? Или все регистры позяняты "под завязку" ?
_________________ < виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
У этого МК мало памяти, вернее мало может адресовать внешней памяти. Прогграммный счетчик всего 12 бит, из которых автоинкрементируются только 11. Дальше - пока мне неведомое мне колдунство с переключением банков. Считаю что доступно только 2048 байт памяти программ.
petrenko писал(а):
А собственно чем Вам не нравится добавление команды XCHD A,@Ri
Ничего против не имею, просто пришлось делать не так как хотел изначально.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Мндя... mcs48... антиквариат... и весьма жесток к программисту... Да и компиляторы на ассемблер добыть тяжко... Лучше бы уж mcs51...
Лежат две микросхемы ВЕ39 с 90-х годов. В свое время дал себе слово разобраться с ними когда нибудь С транслятором никаких проблем, нашел подходящий ассемблер аж 2013 года выпуска. С книжками по ним все плохо.
Досадка в том, что данное семейство не имело продолжения (в отличии от mcs51, pic и avr). По сегментации ПЗУ весьма специфично по требованиям к области применения команд и их размещению (относительно двухбайтовых). Посему... "проходили, но "отложено музейным экспонатом""... Гдей-то здесь (на КОТе) за них отдельна ветка была, там и прожки компиляторов и симулятор-отладчики были... Преимущество применения связки mcs48+8243 в том, что часть команд аппаратно отрабатывается за счет того расширителя. ...ностальжи...
Преимущество применения связки mcs48+8243 в том, что часть команд аппаратно отрабатывается за счет того расширителя.
Да это не преимущество, это суровая необходимость. Половина ног МК занята шинами блока внешней памяти программ, к ним ничего не подключишь. Без расширителя - никуда. Щас наиграюсь - и брошу наверное. Чувствую, я на нем не развернусь. Лучше уж правда, MCS-51, с его плоской 64К адресацией.
; убираем очистку 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 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
( (IMHO)в книге авторства Зеленко Геннадия Вадимовича, Панова Виктора Васильевича и Попова Сергея Николаевича очень ясно написано в т.ч и о вв55 )
_________________ < виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Решил я на своей ВЕ39 сделать часы. Чтоб не париться с программным счетом времени, решил поставить RTC, а конкретно DS12887+. Это блок-сборка содержащая микросхему часов, кварц, и аккумулятор, и что особенно радует - имеет шинный интерфейс, что позволяет подключить ее к шине блока внешней памяти программ, и не занимать полезные выводы МК. Счетные регистры "далласа" в этом случае являются адресами памяти, и доступны через MOVX A, @Ri. Но возникла одна непонятка. "Даллас" имеет собственную защелку адреса, и требует разветвления сигнала #ALE, и мне кажется это приведет к проблеме - непонятно куда обращается МК - к ПЗУ, или к "Далласу". Хотя кроме шины он использует сигналы RD/WR от МК, но опасаюсь, не возникнет ли конфликта на шине?
Архитектура данных м.к. - с раздельной адресацией озу данных и пзу программ - ну неужели так лениво прочитать об этом ? Заодно изучите временные диаграммы сигналов, чтоб развеять Ваши опасения.
Кстати, удобно разместить "знакогенератор" в 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 точек .
Мож кому пригодится, авось спасибо скажут ..
_________________ < виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Для работы с ВПП и ВПД помимо ale используются разные стробы чтения. Технически только проблема с выходными сигналами защелки младшего байта адреса - но оная вроде только к ПЗУ подведена.
Для работы с ВПП и ВПД помимо ale используются разные стробы чтения.
То есть, МК не перепутает, какую микросхему читать? Это хорошо, спасибо.
petrenko писал(а):
и можно даже "бегущую строку" организовать из светодиодных матриц 8*8
Такая идея тоже. Только никаких дешифраторов, буду использовать готовый китайский модуль со светодиодной сборкой, на микросхеме MAX7219. Не позднее чем позавчера написал и обкатал (на 8051) подпрограмму работы SPI без битовых операций, читал и писал EEPROM 25AA020. Осталось только переписать подпрограмму под ВЕ39, и разобраться с регистрами MAX-a. За программу бегущей строки - специальная благодарность, сам бы думал над ней долго.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения