На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (3) 1 [2] 3  все  ( Перейти к последнему сообщению )  
    > Вывод на ЖКИ на базе HD44780 , Можеть кто делал? Расскажите, плз,...
      Цитата medved_68 @
      Цитата Крон @
      А на русском языке ена бывает?

      Да.

      Ссылки нет случайно :rolleyes: ?
        А адрес начала ДДРАМ обеих строк какой?
          Цитата Крон @
          Ссылки нет случайно ?

          Есть даташит на аналог. :) Посмотри во всяком случае я им пользуюсь эпизодически - проблем не было.
          Цитата Крон @
          А адрес начала ДДРАМ обеих строк какой?

          00-0F - Первая строка.
          40-4F - Вторая строка.
            Цитата medved_68 @
            00-0F - Первая строка.
            40-4F - Вторая строка.

            А есть ли какой-нибудь указатель дисплея?
            Т. е. что бы начать выводить на дисплей с пророизвольной ячейки? Или надо последовательно сдвигать экран?
            Сообщение отредактировано: Крон -
              Цитата Крон @
              А есть ли какой-нибудь указатель дисплея?
              Конечно. Есть команда выбора области для записи данных (DDRAM или CGRAM).
              Цитата Крон @
              Т. е. что бы начать выводить на дисплей с пророизвольной ячейки? Или надо последовательно сдвигать экран?

              Сначала необходимо выбрать (установить) активную ячейку и только потом выводить данные. Ну а далее - хочешь сдвигай экран, хочешь по новой определяй следующую ячейку для вывода.
                medved_68
                А какая команда для установки активной ячейки? Что то не нахожу.
                Сообщение отредактировано: Крон -
                  Цитата Крон @
                  А какая команда? Что то не нахожу.

                  А ты какой даташит смотришь???
                    Ну то что Вы дали и методичку еще одну по HD44780.
                    Установка адреса для послед. операции и выбор области DDRAM это не то случаем? =)
                    Сообщение отредактировано: Крон -
                      Цитата Крон @
                      Ну то что Вы дали и методичку еще одну по HD44780

                      Тогда вот это:
                      Цитата
                      Set
                      DDRAM
                      Address
                      0 0 1 ADD
                      Установка адреса для
                      последующих операций и выбор
                      области DDRAM
                      40 мкс
                        Адреса устанавливаются синхроно для обоих строк ?
                        По дефалту на нуле установлен?
                        Сообщение отредактировано: Крон -
                          Цитата Крон @
                          Адреса устанавливаются синхроно для обоих строк ?

                          Нет. Ты устанавливаешь активной ячейку с определенном адресом. А будет она в первой или во второй строке - зависит от адреса, который передашь этой команде. ;)
                          Цитата Крон @
                          По дефалту на нуле установлен?
                          Нет. зависит от того как провел инициализацию. Если выполнил как предписывает даташит - то активная ячейка в правом углу во второй строке. ;)
                            medved_68
                            Спасибо. И последняя просьба.
                            У меня такая задача "Вывести в верхнюю строку '_РАСХОД_'
                            А в нижнюю '___xx___', где xx 2 ASCI кода из РПД. Всего их там 10. То есть получается 5 2-х значных чисел.
                            Если не трудно посмотрите мой код.
                            А то вохможности проверки нет.Заранее спасибо
                            ExpandedWrap disabled
                              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

                            Есть не много не нужных вещей но вы них внимания не обращаите.
                              Цитата Крон @
                              А то вохможности проверки нет.Заранее спасибо

                              Схемку по которой работаешь (пишешь сию программу (подключение индикатора к контроллеру)) приложи. А то въезжать куда какой сигнал идет - долго. ;)

                              Добавлено
                              Кстати а строб данных где???? Так называемая линия Е????
                                Вот не большой фаил. Там в принципе все есть =)наверное=)

                                -Added
                                Цитата medved_68 @
                                Кстати а строб данных где???? Так называемая линия Е????

                                Она как бы автоматически формируется.
                                Я подключаю кстати к ОЦМ31. Может это имеет значение =)
                                Прикреплённый файлПрикреплённый файлЖКИ.rar (52.18 Кбайт, скачиваний: 560)
                                  Цитата Крон @
                                  Вот не большой фаил.

                                  Попробуй не РАР а ЗИП архив, а то что то только ссылка скачивается, а не сам файл
                                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                  0 пользователей:
                                  Страницы: (3) 1 [2] 3  все


                                  Рейтинг@Mail.ru
                                  [ Script execution time: 0,0393 ]   [ 16 queries used ]   [ Generated: 18.04.24, 22:50 GMT ]