Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

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

Вт фев 07, 2017 22:55:17

Голимый писал(а):.. никаких дешифраторов, буду использовать готовый китайский модуль* ... SPI .. разобраться с регистрами MAX-a ..

.. благодарность** ..
*_"Не пришивают заплаты новые к старой ветхой одежде, ибо .."

**_Рад, если пригодится.

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

Ср фев 08, 2017 00:02:37

BOB51 писал(а):Это воть тут було:

Благодарю!
petrenko писал(а):*_"Не пришивают заплаты новые к старой ветхой одежде, ибо .."

Так этож круто. Всеми забытая м/с оказывается тоже МОЖЕТ. Почти ардуина!

Кстати, такой вопрос. На третьей странице ПЗУ вообще может быть размещен выполняемый код? Или там только таблицы, читаемые специальной инструкцией MOVP3.
И еще как-то совсем не ясно. При переключении банков ПЗУ инструкцией SEL MB, как продолжить выполнение программы? ведь все метки, все абсолютные адреса станут неверны. По сути - другую ПЗУ подсунули.

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

Ср фев 08, 2017 02:27:45

Голимый писал(а): .. Так этож круто. Всеми забытая м/с оказывается тоже МОЖЕТ ! .. *

.. На третьей странице ПЗУ вообще может быть размещен выполняемый код? Или там только таблицы, читаемые специальной инструкцией MOVP3** .

И еще как-то совсем не ясно. При переключении банков ПЗУ инструкцией SEL MB, как продолжить выполнение программы? ведь все метки, все абсолютные адреса станут неверны*** . По сути - другую ПЗУ подсунули.
*_Ежели изходить из этого, то можно даже на 1820ве1 сделать что-нибудь.
И ведь будет работать ! ( даже и в миллиарде километров от места изготовления - ежели батарейного питания хватит )

**_Да, в пзу программ можно размещать и программы и неизменяемые данные, в т.ч. таблицы

***_Вот это Вы верно подметили ( - что, свидетельствует, кстати, о Вашем планомерном подходе к изучению вопроса - ) действительно это сущесвенный недостаток архитектуры семейства MCS-48 .
Для преодоления данного безобразия применяются различнейшие "костыли" и "подпорки" . Самое неприятное кроется в том, что нет прямого способа программно определить какой именно банк выбран в текущий период выполнения. ( в отличие от выбора банка регистров , который понятен по биту BS слова состояния , бит DBF никак узнать не получится ).
Можно поступить разными способами - в т.ч. во-первых можно никогда не делать одиночную команду SEL MBx ,а только с предварительной установкой флажка ,а во-вторых (в случае только внешней пзу в системе) поставить аппаратную "примочку" - триггер, срабатывающий по лог.схеме ,детектирующей команды с кодами 0E5h и 0F5h . Ну или ещё как-нибудь.. В общем действительно ужас для программиста .. :o :facepalm:

И - да, поелику у Вас м.к. с внешним пзу , то полезно детектировать конкретно 3-ю страницу ( старшие биты адреса пзу бит8==0 бит9==0 битA==1 битB==1 -они все появляются на линиях P2.0 P2.1 P2.2 P2.3 соответственно ) и выбирать отдельную пзу ,тогда таблицы можно будет относительно легко заменять, задавая биты адреса имс пзу старше 8-го например перемычками ( ну или ещё как по-другому .. )

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

Ср фев 08, 2017 09:12:45

petrenko писал(а): можно даже на 1820ве1 сделать что-нибудь

Отечественный клон COP400. Совсем скучная микросхема, со очень скудным набором инструкций. Неясности с подключением памяти программ. Имеется даташит на серию COP400, и несколко примеров программ, но изучать ее нет желания.

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

Ср фев 08, 2017 09:29:00

Голимый писал(а):
BOB51 писал(а):Это воть тут було:

Благодарю!...

Кстати, такой вопрос. На третьей странице ПЗУ вообще может быть размещен выполняемый код? Или там только таблицы, читаемые специальной инструкцией MOVP3.
И еще как-то совсем не ясно. При переключении банков ПЗУ инструкцией SEL MB, как продолжить выполнение программы? ведь все метки, все абсолютные адреса станут неверны. По сути - другую ПЗУ подсунули.


Для того либо относительная адресация либо распределение подпрограмм в пределах одного банка применяется.
Правда когда теми 48-ми занимался программу писал на графленых бумажных листиках - сразу видно было ГДЕ и ЧЕГО находится (трансляцию в коды также делал карандашиком вручную - благо "кодирующие таблички" действенны для I8080/8085, Z80, mcs48, mcs51).
8)

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

Ср фев 08, 2017 10:53:35

Ну уж нет, вручную транслировать не собираюсь! :shock:
(хотя наверное не так уж и сложно, заучить опкоды, и формат инструкций)

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

Ср фев 08, 2017 11:20:40

Учить ничего не надо - всего-то нарисовать правильно табличку из 256 квадратиков с мнемониками команд внутри и двоичными символами тетрад по краям листа.
Единственно для Z80 и 51-й дополнительный листочек с заготовками для рассчета значения под относительные короткие переходы:
Rel_map.pdf
(376.28 KiB) Скачиваний: 322

8)

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

Вт фев 14, 2017 01:00:26

А что - никто и не заметил ошибок , неправильностей и чего не хватает в подпрограмме ?
petrenko писал(а):...
;
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<script id="gpt-impl-0.3238907486665994" src="https://securepubads.g.doubleclick.net/gpt/pubads_impl_108.js"></script> ;
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 ;

..



Надо поправить :

DIS I ; чтоб внеш. INT не попортил ничего
MOV A<-T ;
ANL A,00011111b ; нужны только 5 бит для 32 столбцов
RL A ; RL A ; RL A ; но подвинутые в старшую сторону
MOV R2<-A ; в битах 5 , 4 , 3 номер столбца символа, а в битах 7 и 6 номер символа
JTF S1 ; чтоб не слишком быстро "бежала" строка, инкремент пореже, только по TF
JNZ S2 ; когда нет , то обходим S1
S1: INC R3 ; смещение столбцов
S2: ADD R3 ; добавляется, чтобы строка стала "бегущей"
ORL A,00000111b ; чтоб мл. 3 бита P2 можно было для ввода
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
EN I ;
RETR ;

..

Да и вообще это не самый лучший вариант - например откуда взять 2кГц для подачи на T1 ?
И ещё куча вопросов.
В общем всего один таймер это тоже существенная ограниченность данного м.к.
Если вдруг ещё какая мысль на тему этой рухляди промелькнёт - поделюсь - изложу здесь. :write:

м.к. 1816ве39/49 с расширителем портов 580вр43. Обсуждение.

Вт мар 21, 2017 17:54:14

На досуге "накидал" знакогенератор всего на 32 символа - для часов ,однако, вполне хватит :

download/file.php?mode=view&id=280574

( font8x16_32_time.jpg загружаете себе в отдельный каталог, переименовываете в font8x16_32_time.bin и далее открываете и редактируете вот в этой программе :
http://86rk.august4u.net/zeditor/ )

{ 0 1 2 3 4 5 6 7 8 9 а β γ(г) Δ ε ζ(z) и ю й κ λ μ н π ρ ς(с) τ Υ φ б ц я }

Этих символов хватит для отображения :

| янβ | φεβ | μаρ | аπρ | μай | июн | июλ | аβг | ςεн | ноя | Δεκ |

| πн | βτ | ςρ | чτ | πτ | ςб | βς |

( И в hex тоже можно будет вводить напрямую в м.к. :wink: )
Вложения
font8x16_32_time.jpg
(2 KiB) Скачиваний: 958

1816ВЕ39 с расширителем портов 580вр43. Применение.

Вт мар 28, 2017 01:30:29

Только сейчас сопоставил ..
Ведь TS хочет изпользовать и.м.с. часов, очень похожую на 512ви1 ..
Так вот от её выхода IRQ или SQW и можно взять енти самые 2кГц ,но ( ! ) подать не на T1 ,а на T0 ,а таймер в *ве39 освободится, но программу надо будет чутка переделать для такого варианта. 8)

Кстати, если делать не" бегущую" строку, а просто цифры, то можно к выходам *вр43 подключить 155/133ид1 и к ним газоразрядные индикаторы - но это уже отдельная тема получится.
Последний раз редактировалось petrenko Вт мар 28, 2017 20:41:51, всего редактировалось 1 раз.

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

Вт мар 28, 2017 09:24:32

А у меня и для 512ви1 описание ёсть....
Практически дотошнейшее и на русскомм...
:roll:
:hunger:
Правда скан... самопальный и великоват - аж почти 3 мегабайта...
:(

Re: 1816ВЕ39 с расширителем портов 580вр43. Применение.

Пн апр 17, 2017 12:50:42

petrenko писал(а):Только сейчас сопоставил ..
Ведь TS хочет изпользовать и.м.с. часов, очень похожую на 512ви1 ..
Так вот от её выхода IRQ или SQW и можно взять енти самые 2кГц ,но ( ! ) подать не на T1 ,а на T0 ,а таймер в *ве39 освободится, но программу надо будет чутка переделать для такого варианта. 8)

Кстати, если делать не" бегущую" строку, а просто цифры, то можно к выходам *вр43 подключить 155/133ид1 и к ним газоразрядные индикаторы - но это уже отдельная тема получится.


С подобными приложениями я воевал еще в далеком 1999-м, сделал часики с календариком и внешним управлением по RS-3232, они отпахали свои 15 лет и сдохли (плата заводского изготовления прогнила), после этого не стал их оживлять по новой. В составе этих часиков были К580ВР43, К580ВВ51, К580ВИ53, К537РУ10 плюс логика с прочими регистрами для обвязки и прога управления спокойно укладывалась в 2КБ. Так что эта задача вполне решаема только вопрос, есть ли смысл оживлять такую древность, ведь даже довольно навороченные контроллеры семейства х51 уже рассматриваются как архаичные ...

Re: 1816ВЕ39 с расширителем портов 580вр43. Применение.

Пн апр 17, 2017 15:20:22

ST_A писал(а):.. задача вполне решаема только вопрос, есть ли смысл оживлять такую древность ...
Смыслы есть : и обучательный и досуговый и исторически-эстетический.
( Как там было в песне .. ".. всё это следует шить .."(с) :solder: )

Кстати, а насколько обоснованно было применять вв51 ? :roll:
Разве не умещалось программно принимать/передавать последовательные данные ?

Re: 1816ВЕ39 с расширителем портов 580вр43. Применение.

Вт апр 18, 2017 07:32:56

ST_A писал(а):...
Так что эта задача вполне решаема только вопрос, есть ли смысл оживлять такую древность, ведь даже довольно навороченные контроллеры семейства х51 уже рассматриваются как архаичные ...

Любые варианты СБИС - расширителей (или как сейчас их частенько называют
"микросхемы сопровождения") вполне приемлемы в применении.
На сегодня часть из старых комплектов с производства снята по причинам интеграции части узлов в состав самих МК и возможности самостоятельно создавать мелкосерийку на основе других МК в общем проекте.
Насчет архаичности mcs51....
Ее все производят, но не все из современного до лап доходит.
Взять те же STC...
Заказ пробных "подопытных" пока еще "не доехал"...
:(
Для гурманов силабсы из общеизвестных...
Полный перечень в составе http://www.raisonance.com/8051-ride7.html обычно дается...
:roll:

1816ВЕ39 с расширителем портов 580вр43. Обсуждение.

Вт апр 18, 2017 23:12:04

Переписал для освобождения таймера T
( подразумевается, что теперь 2кГц подаётся на INT ,а для подсчёта изпользуется не таймер T ,а регистр R4 )
...
ORG 03h
DIS I
; чтоб внеш. INT не попортил ничего
MOV A<-R4 ; заменитель таймера копируем в A
ANL A,00011111b ; нужны только 5 бит для 32 столбцов
RL A ; RL A ; RL A ; но подвинутые в старшую сторону
MOV R2<-A ; в битах 5 , 4 , 3 номер столбца символа, а в битах 7 и 6 номер символа
DJNZ R4,S2 ; заменитель таймера уменьшаем
DJNZ R3,S2 ; чтоб не слишком быстро "бежала" строка, декремент R3 пореже, только по переполнению R4 ..
S1: MOV R3<-11111000b ;
S2: ADD R3 ; смещение столбцов R3 добавляется, чтобы строка стала "бегущей"
ORL A,00000111b ; чтоб мл. 3 бита P2 можно было для ввода
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
EN I ;
RETR ;

..

Поелику с 512ви1 на INT может приходить и 1Гц ( и это надо для часов - каждую секунду считывать значения регистров 512ви1 ) и сигналы будильника , то надо будет потом дописать в подпрограмму обработку и этого тоже.

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

Ср апр 19, 2017 06:01:09

Версия ардуиноподобия " с претензиями" на атмелевской AT89S5x/AT89C5x и 64к ВПД/ВПП
начало тут:
viewtopic.php?p=3021614#p3021614
далее "по мере наличия вдохновения и настроения" (но все же продвигается).
:sleep:

1816ВЕ39 с расширителем=580вр43 и R.T.C.=512ви1 Обсуждение.

Пн авг 28, 2017 20:26:11

... Поелику с 512ви1 на INT может приходить и 1Гц ( и это надо для часов - каждую секунду считывать значения регистров 512ви1 ) и сигналы будильника , то надо будет потом дописать в подпрограмму обработку и этого тоже.
Собственно изходя из того, как устроены многие похожие и.м.с. R.T.C. ,следует примерный алгоритм.
Спойлер
Александр_Майоров_&_Дмитрий_Ломов_на_сайте_zxpress.ru писал(а):
zxpress.ru/article.php?id=18079

... Микросхема .. 512ВИ1, её фирменный прототип МС146818
, часто применяется разновидность DALLAS 1287, имеющая внутренний кварц и батарейку.
..
Назначение выводов:

01 NC не используется
02 OSC1 вход генератора
03 OSC2 выход генератора
04 AD0
05 AD1
06 AD2
07 AD3 мультиплексная шина
08 AD4 адреса/данных
09 AD5 /
10 AD6 /
11 AD7 /
12 GND земля
13 /CE выбор кристалла
14 AS адресный строб
15 R/W чтение/запись
16 NC не используется
17 /DS строб данных
18 /RES вход сброса
19 /IRQ выход запроса на прерывание
20 SED управление частотой CKOUT
21 CKOUT выход сигналов тактовой частоты
22 PS контроль сбоя напряжения питания
23 SQW выход программно-управляемого делителя частоты
24 +Ucc +3...+5 вольт

...

На вывод 02 (OSC1) необходимо подать частоту от внешнего генератора, или подключить к выводам 02/03 (OSC1/OSC2) кварцевый резонатор.

Выводы 4...11 (AD0...AD7) - шина адрес/данные, подключаются на шину данных процессора.

Вывод 13 (/CE) - выбор кристала. При наличии лог. "1" на данном входе микросхема блокируется.
Имеется одна особенность: на данном входе должно быть состояние лог."0" в течение всего цикла обращения к микросхеме.
Т.е. одновременно с (или до) выбором адреса регистра на входе /CE должна установиться лог."0", и его состояние не должно меняться в течение всего цикла обращения к выбранному регистру !
Hаиболее удобно и просто устанавливать на этом входе состояние лог."0" в течение всего времени работы устройстваа.

Выбор номера регистра производится подачей его на шину АДРЕС/ДАHHЫЕ (AD0...AD7) и подачей лог."1" на вход 14 (AS)

Для чтения/записи данных в/из регистр(а) используются выводы 15 (R/W) - выбор режима чтение/запись (соответственно лог."1" и "0") и 17 (DS) - стробирование данных.

При подаче лог."0" на вывод R/W производится запись данных в ранее выбранный регистр, а при подаче лог."0" на вывод DS - считывание данных из регистра.

Появляние лог."0" на выводе 19 (/IRQ) сообщает о процессе системного прерывания БИС.
Во всех остальных случаях данных выход находится в третьем логическом состоянии (высокоимпедансном).

Подача лог."0" на 22-й вывод (/PS) информирует БИС о том, что произошёл сбой напряжения питания, и содержимое регистров недостоверно. Если же имеется резервный источник питания, то на этот вход подать лог. "1".

Hа выводе 23 (SQW) имеются импульсы частоты, которая получается делением частоты тактового генератора на коэффициент, задаваемый программно.

Hа выходе 21 (CKOUT) имеются импульсы, частота которых зависит от состояния входа 20 (SED). При наличии там лог."1" частота на выходе SQW совпадает с частотой генератора (OSC1-OSC2). При наличии лог."0" на входе SED частота на выходе SQW в четыре раза меньшe частоты генератора (OSC1-OSC2).

В микросхеме имеются 64 восьмиразрядных регистра.
При работе с ними нужно сначала указать, с каким регистром работать (записать его номер в адресный регистр), а затем производить запись/чтение.

Hомера регистров

#00 СЕКУHДЫ
#01 СЕКУHДЫ (БУДИЛЬHИК)
#02 МИHУТЫ
#03 МИHУТЫ (БУДИЛЬHИК)
#04 ЧАСЫ
#05 ЧАСЫ (БУДИЛЬHИК)
#06 ДЕHЬ HЕДЕЛИ
#07 ДЕHЬ МЕСЯЦА
#08 МЕСЯЦ
#09 ГОД
#0A РЕГИСТР A
#0B РЕГИСТР B
#0C РЕГИСТР C
#0D РЕГИСТР D

#0E ОЗУ общего назначения
... ОЗУ общего назначения
#3F ОЗУ общего назначения


#0C,#0D - только чтение
#00,#0A - старшие разряды только чтение


ОПИСАHИЕ РЕГИСТРОВ A...D
─════════════════════════─


РЕГИСТР А (отдельные биты)
────────────────────────────

7 UIP "1" в этом разряде означает, что
идет обновление информации и с часа-
ми работать нельзя, нужно подождать
некоторое время. Длительность циклов
обновления в зависимости от частоты
тактовых импульсов:
Код:

    ┌─────────┬──────────────────────┐
    │частота  │     длительность     │
    │  МГц    │  цикла обновления, мс│
    ├─────────┼──────────────────────┤
    │4.194304 │       248            │
    │1.048576 │       248            │
    │0.032768 │      1984            │
    └─────────┴──────────────────────┘


              32768 1048576 4194304  СБРОС
6 DV2  частота  0      0       0       1
5 DV1  кварца   1      0       0       1
4 DV0           0      1       0       x

3 RS3  | Установка частоты на выводе
2 RS2  | SQW (23)  и периода прерываний
1 RS1  | IRQ (19)
0 RS0  |

IRQ - сигнал выдачи прерывания либо по пост. частоте, либо по окончанию цикла обновления, либо от будильника.
IRQ = 1000 / SQW

SQW используется для подачи сигнала от будильника
Hапример: если частота SQW = 256 Гц ,то период равен 1000/256 = 3.9ms

Код:
  D3 D2 D1 D0     ЧАСТОТА,ГЦ   ПЕРИОД,ms

  0  0   1  1        8192      0.122
  0  1   0  0        4096      0.244
  0  1   0  1        2048      0.488

  ....................................

  1  1   1  0         4         250
  1  1   1  1         2         500


РЕГИСТР B (отдельные биты)
───────────────────────────

7 SET "1"-запрет обновления
(для установки времени).

6 PIE разрешение прерывания с периодом,
заданным в RS-битах регистра A.
Сбрасывается по Reset'у.

5 AIE разрешение прерывания от будильни-
ка. Сбрасывается по Reset'у.

4 UIE разрешение прерывания по окончанию
цикла обновления. Сбрасывается
по Reset'у.

3 SQWE разрешение выдачи информаци на вы-
ход SQW. Сбрасывается по Reset'у.

2 DM вид данных: 0 - двоично-десятичный
1 - двоичный

1 24/12 счет: 0 - по 12 часов
1 - по 24 часа

0 DSE "1" разрешает автоматический пере-
ход с летнего на зимнее время и
обратно.
Переход на летнее время осуществляется в 3ч ночи в последнее воскесенье апреля, а на зимнее в 1ч ночи в последнее воскресенье октября.


РЕГИСТР C (отдельные биты)
────────────────────────────

Все биты сбрасываются по Reset'у или при чтении регистра C.

7 IRQF флаг запроса прерывания. Устанав-
ливается в "1" при условии :
(PF and PIE) or (AF and AIE) or
(UF and UIE).
Если IRQF="1", то на выводе IRQ
(19) устанавливается "0".

6 PF устанавлвается в 1 фронтом сигнала
на выходе внутреннего делителя
частоты, выбранного в соответствии
с RS-разрядами.

5 AF устанавливается в 1 при совпадении
текущего времени и времени будиль-
ника.

4 UF устанавливается в 1 после окончания
цикла обновления.

3 =0
...
0 =0


РЕГИСТР D (отдельные биты)
────────────────────────────

7 устанавливается в лог. "0", если
питание пропадало и информация
недостоверна.
Устанавливается в "1" по Reset'у
или при чтении регистра D.

6 =0
...
0 =0


ФОРМАТ ДАHHЫХ
───────────────

Воскресенье = 1, Понед. = 2 и т.д.

Январь = 1, Февраль = 2 и т.д.

1997 = 97, 1998 = 98 и т.д.

Учитывается число дней в месяце и учитываются високосные года. Если в регистры
#00...#09 записать число в интервале
#C0...#FF - это безразличное состояние.
Т.е. если часы будильника = #FF, то он будет срабатывать каждый час.
Сначала "на всякий противопожарный" читаем бит UIP регистра A и
,если "0" ,то можем читать другие регистры.
Далее считываем регистр C и по его битам PF AF UF определяем, что именно вызвало прерывание - заданная нами ранее частота сканирования "дисплейчика" ~2кГц или частота 1Гц или совпадение будильника.

Если прерывание вызвало обновление( =1Гц ) ,то -> читаем регистры №№ 00h , 02h , 04h , 06h , 07h , 08h , 09h в память м.к. и переводим числа в нужный формат и помещаем в "дисплейную область" о.з.у. для дальнейшего отображения.

Иначе, если прерывание вызвала заданная нами частота сканирования "дисплейчика" ( ~2кГц ) ,то -> выполняем( написанную выше) подпрограмму отображения..

:write:



Кстати, а T.S. что-нибудь уже пытался сделать ?
Ответить