Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.226.187.199] |
|
Страницы: (3) 1 [2] 3 все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
Сообщ.
#17
,
|
|
|
А адрес начала ДДРАМ обеих строк какой?
|
Сообщ.
#18
,
|
|
|
Цитата Крон @ Ссылки нет случайно ? Есть даташит на аналог. Посмотри во всяком случае я им пользуюсь эпизодически - проблем не было. Цитата Крон @ А адрес начала ДДРАМ обеих строк какой? 00-0F - Первая строка. 40-4F - Вторая строка. |
Сообщ.
#19
,
|
|
|
Цитата medved_68 @ 00-0F - Первая строка. 40-4F - Вторая строка. А есть ли какой-нибудь указатель дисплея? Т. е. что бы начать выводить на дисплей с пророизвольной ячейки? Или надо последовательно сдвигать экран? |
Сообщ.
#20
,
|
|
|
Цитата Крон @ Конечно. Есть команда выбора области для записи данных (DDRAM или CGRAM).А есть ли какой-нибудь указатель дисплея? Цитата Крон @ Т. е. что бы начать выводить на дисплей с пророизвольной ячейки? Или надо последовательно сдвигать экран? Сначала необходимо выбрать (установить) активную ячейку и только потом выводить данные. Ну а далее - хочешь сдвигай экран, хочешь по новой определяй следующую ячейку для вывода. |
Сообщ.
#21
,
|
|
|
medved_68
А какая команда для установки активной ячейки? Что то не нахожу. |
Сообщ.
#22
,
|
|
|
Цитата Крон @ А какая команда? Что то не нахожу. А ты какой даташит смотришь??? |
Сообщ.
#23
,
|
|
|
Ну то что Вы дали и методичку еще одну по HD44780.
Установка адреса для послед. операции и выбор области DDRAM это не то случаем? =) |
Сообщ.
#24
,
|
|
|
Цитата Крон @ Ну то что Вы дали и методичку еще одну по HD44780 Тогда вот это: Цитата Set DDRAM Address 0 0 1 ADD Установка адреса для последующих операций и выбор области DDRAM 40 мкс |
Сообщ.
#25
,
|
|
|
Адреса устанавливаются синхроно для обоих строк ?
По дефалту на нуле установлен? |
Сообщ.
#26
,
|
|
|
Цитата Крон @ Адреса устанавливаются синхроно для обоих строк ? Нет. Ты устанавливаешь активной ячейку с определенном адресом. А будет она в первой или во второй строке - зависит от адреса, который передашь этой команде. Цитата Крон @ Нет. зависит от того как провел инициализацию. Если выполнил как предписывает даташит - то активная ячейка в правом углу во второй строке. По дефалту на нуле установлен? |
Сообщ.
#27
,
|
|
|
medved_68
Спасибо. И последняя просьба. У меня такая задача "Вывести в верхнюю строку '_РАСХОД_' А в нижнюю '___xx___', где xx 2 ASCI кода из РПД. Всего их там 10. То есть получается 5 2-х значных чисел. Если не трудно посмотрите мой код. А то вохможности проверки нет.Заранее спасибо ADR equ 0E000h ;адрес ЖКИ в адресном простр-ве ВПД Adr_Count equ 30h ; адрес чисел в РПД Count equ 05h ; кол-во чисел R_W equ P1.7 ;линия R/W RS equ P1.5 ;линия RS - 0 - команды; 1 - данные org 2000h Message: db 20h, 50h, 41h, 43h, 58h, 4Fh, 0E0h, 20h ; ' РАСХОД ' Text: db 20h, 20h, 20h ; ' ' ;****************************************************** OUT: ;подпрограмма вывода на ЖКИ команды/данных из A ;Вход : A - команда/данные ;C - выбор команды(0) или данных(1) MOV RS,C ;C=0 - команда С=1 - данные MOVX @DPTR,A ;отправить команду/данные RET ;****************************************************** IN: ;подпрограмма чтения статуса/данных ЖКИ в A ;Вход : C - выбор статуса(0) или данных(1) ;Выход: A - статус/данные MOV RS,C ;C=0 - статус; С=1 - данные SETB R_W ;установить линию R/W = 1 MOVX A,@DPTR ;получить статус/данные CLR R_W ;установить линию R/W = 0 RET ;****************************************************** MACRO @_DELL ;задержка (max 131588 мкс при dd1 = dd2 = 0) MOV R4,#|1 MOV R5,#|2 DJNZ R5,$ DJNZ R4,$-2 ENDMAC ;задержка = 6 + 2*dd2 + 514*(dd1-1) mks ;****************************************************** MACRO @_WAIT_BISY ;ожидание готовности ЖКИ (BF=1) CALL IN JB ACC.7,$-2 ENDMAC ;****************************************************** MACRO @_OUTCOM ;посылка команды с ожиданием готовности ЖКИ @_WAIT_BISY MOV A,#|1 CALL OUT ENDMAC ;****************************************************** MACRO @_OUTDAN ;посылка данных с ожиданием готовности @_WAIT_BISY MOV A,#|1 SETB C CALL OUT CLR C ENDMAC ;****************************************************** SYM_WR: ;подпрограмма записи символа в память ЖКИ ;Вход : R2 - символ ;R0 - адрес DDRAM/CGRAM @_OUTCOM 00h ;установка адреса DDRAM/CGRAM @_OUTDAN 02h ;запись символа RET MACRO @_SYM_WR MOV R0,#|1 MOV R2,#|2 CALL SYM_WR ENDMAC ;****************************************************** SYM_RD: ;подпрограмма чтения символа из памяти ;DDRAM/CGRAM ЖКИ ;Вход : R0 - адрес DDRAM/CGRAM ;Выход: A - код символа @_OUTCOM 00h ;установка адреса DDRAM/CGRAM SETB C CALL IN ;чтение символа из DDRAM/CGRAM CLR C RET ;****************************************************** STR_WR_RPP: ;подпрограмма записи строки символов в память ;DDRAM/CGRAM ЖКИ ;строка символов находится в РПП ;Вход : DPTR - адрес таблицы символов ;R0 - адрес DDRAM/CGRAM ;R2 - кол-во записыв. символов ;Используются : R3,R4,R5. MOV R4,DPL ;сохренение регистра DPTR MOV R5,DPH MOV DPTR,#ADR ;запись в DPTR адреса ЖКИ @_OUTCOM 00h ;установка адреса DDRAM/CGRAM ANL A,#0 L_STR_RPP: MOV DPL,R4 ;восстановление рег-ра DPTR MOV DPH,R5 MOV R3,A ;сохранение A @_WAIT_BISY ;ожидание готовности ЖКИ MOV A,R3 ;восстановление А MOVC A,@A+DPTR ;получить символ из таблицы MOV DPTR,#ADR ;запись в DPTR адреса ЖКИ SETB C CALL OUT ;вывод данных CLR C MOV A,R3 ;восстановление A INC A ;следующий символ из таблицы DJNZ R2,L_STR_RPP RET MACRO @_STR_WR_RPP MOV R0,#|1 MOV R2,#|3 MOV DPTR,#|2 CALL STR_WR_RPP ENDMAC ;****************************************************** STR_WR_RPD: ;подпрограмма записи строки символов в память ;DDRAM/CGRAM ЖКИ ;строка символов находится в РПД ;Вход : R1 - адрес таблицы символов ;R0 - адрес DDRAM/CGRAM ;R2 - кол-во записыв. символов ;Используется A @_OUTCOM 00h ;установка адреса DDRAM/CGRAM L_STR_RPD: @_OUTDAN 01h ;вывод данных INC R1 ;следующий символ из таблицы DJNZ R2,L_STR_RPD RET MACRO @_STR_WR_RPD MOV R0,#|1 MOV R2,#|3 MOV R1,|2 MOV A, @R1 MOV R1, A CALL STR_WR_RPD ENDMAC ;****************************************************** INIT: ;инициализация ЖКИ MOV DPTR,#ADR ;здесь указать адрес ЖКИ в адресном простр-ве CLR R_W ;линия R_W нулевой уровень CLR C ;посылаем команды ;сброс ЖКИ MOV A,#38h ;необходимо для сброса ЖКИ CALL OUT @_DELL #8,#248 ;задержка не менее 4.1 мс CALL OUT @_DEL #01,#49 ;задержка не менее 100мкс CALL OUT ;стандартные установки ... @_OUTCOM #03h ;очистка экрана, AC = 0, AC -> DDRAM , начало строки адресуется ;в начале DDRAM @_OUTCOM #38h ;ширина данных - 8, две строки, матрица 5х8 точек @_OUTCOM #0Ch ;включить изображение, отключить курсор @_OUTCOM #06h ;режим автоматического сдвига курсора @_STR_WR_RPP #00h,#Message, #08h ; #80h RET ;****************************************************** ; 2 строка #40h BEGIN: Call INIT mov R4, #Count for: @_STR_WR_RPP #40h, #Text, #03h @_STR_WR_RPD #43h, 03h, #02h @_STR_WR_RPP #45h, #Text, #03h @_DELL #00h, #00h inc R3 inc R3 DJNZ R4, for END Есть не много не нужных вещей но вы них внимания не обращаите. |
Сообщ.
#28
,
|
|
|
Цитата Крон @ А то вохможности проверки нет.Заранее спасибо Схемку по которой работаешь (пишешь сию программу (подключение индикатора к контроллеру)) приложи. А то въезжать куда какой сигнал идет - долго. Добавлено Кстати а строб данных где???? Так называемая линия Е???? |
Сообщ.
#29
,
|
|
|
Вот не большой фаил. Там в принципе все есть =)наверное=)
-Added Цитата medved_68 @ Кстати а строб данных где???? Так называемая линия Е???? Она как бы автоматически формируется. Я подключаю кстати к ОЦМ31. Может это имеет значение =) Прикреплённый файлЖКИ.rar (52.18 Кбайт, скачиваний: 560) |
Сообщ.
#30
,
|
|
|
Цитата Крон @ Вот не большой фаил. Попробуй не РАР а ЗИП архив, а то что то только ссылка скачивается, а не сам файл |