Уже сказал же :
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 точек .
Мож кому пригодится, авось спасибо скажут ..
