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

        Есть на Bolimin SC1602ESLB на Пик 18F452 (и даже рабочая) :D Процессор ЖКИ - Hitachi KS066 (стандарт), если не путаю. Посмотри подойдет стандарт к твоему ЖКИ??? Или ссылку на даташит дай.

        Добавлено
        Цитата COOLibin @
        А то моя не пашет

        Кинь на мыло если не трудно. :)
          Взял отсюда: Сопряжение AVR-микроконтроллеров и ЖКИ и немного переделал
            Посмотрел...ну очень похоже.
            Цитата COOLibin @
            А то моя не пашет

            Показывай инициализацию контроллера ЖКИ (как у тебя в программе идет) + схему включения.Чудес обычно не бывает. :D И опиши что именно не работает??? Вообще ничего не выводится или как??? Дисплей вкл. курсор есть???
              Хм...ну что я могу сказать:
              ExpandedWrap disabled
                icom_2313:
                        swap r25                ;подготовить старшую тетраду для передачи
                        mov r26,r25
                        andi r26,$ef            ;очистка бита 4 порта D (сигнал RS=0)
                        ori  r26,$e0            ;установка бита 5 порта D ( сигнал E=1)
                        out portd,r26
                        nop
                        nop
                        nop
                        nop
                        cbi portd, 5            ;стробирующий сброс бита 5 порта D ( сигнал E=0).
              Начнем с того, что данные должны висеть на порту Д до подачи импульса стробирования Е
              ExpandedWrap disabled
                         out portd,r26        
                         ori  r26,$e0            ;установка бита 5 порта D ( сигнал E=1)
                        nop
                        nop
                        nop
              Далее я отправил тебе даташит на контроллер обрати внимание на НАЧАЛЬНУЮ УСТАНОВКУ и перечень команд отмеченных знаком *. СколЬко работал с подобными ЖКИ - все они требуют соблюдения этого при инициализации. У тебя это условие не выполнено. Начни с этого и добейся просто очиски дисплея и появления курсора на том месте которое ты выбрал!!! :)
              Сообщение отредактировано: medved_68 -
                Цитата
                Начнем с того, что данные должны висеть на порту Д до подачи импульса стробирования Е

                Чего не скажешь по временным диаграммам :)
                  Цитата COOLibin @
                  Чего не скажешь по временным диаграммам

                  Согласен, но сам на это налетал, поэтому зачем грабли создавать???? Даташит смотрел??? :)
                    А можно RS выставить одновременно с данными?
                      Всё равно не пашет:)
                      Вот основные функции:
                      ExpandedWrap disabled
                        INITLCD:
                                ldi r25,    0x20  
                                rcall   ICOM_2313  
                                rcall   DELAY_50_MKS
                                ldi r25,    0x0F  
                                rcall   ICOM_2313  
                                rcall   DELAY_50_MKS
                                ldi r25,    0x20  
                                rcall   ICOM_2313  
                                rcall   DELAY_50_MKS
                                ldi     r25,    0x01  
                                rcall   ICOM_2313      
                                rcall   DELAY_50_MKS
                                ret
                         
                        icom_2313:
                                swap    r25            
                                mov       r26,  r25
                                andi    r26,    0x0F    
                                out PORTD,  r26
                                cbi PORTD,  4
                                nop
                                sbi PORTD,  5
                                nop
                                nop
                                nop
                                nop
                                nop
                                cbi PORTD,  5
                         
                                swap    r25
                                mov r26,    r25
                                andi    r26,    0x0F
                                out PORTD,  r26
                                cbi PORTD,  4
                                nop
                                sbi PORTD,  5
                                nop
                                nop
                                nop
                                nop
                                nop
                                cbi PORTD,  5
                                ret
                         
                        DELAY_50_MKS:
                            ldi r16, 200
                        DEL_50_MKS:
                            dec r16
                            brne DEL_50_MKS
                            ret
                         
                        DELAY_ON_START:
                            ldi r16, 0
                            ldi r17, 0
                            ldi r18, 3
                        DEL_ON_START:
                            dec r16
                            brne DEL_ON_START
                            dec r17
                            brne DEL_ON_START
                            dec r18
                            brne DEL_ON_START
                            ret
                        Всё круто, всё работает. Просто ЖКИ по умолчанию работает в 8ми битном режиме, поэтому первую команду надо отсылать только по высшей тетраде :)
                          Цитата COOLibin @
                          Всё круто, всё работает. Просто ЖКИ по умолчанию работает в 8ми битном режиме, поэтому первую команду надо отсылать только по высшей тетраде :)

                          и даже не одну !
                          рекомендую глянуть аппноты на данную тематику. Есть "магическая" последовательность команд при инициализации девайса на 4 или 8 пинов данных. как правило запуск происходит в несколько этапов...
                          1) проверка подключения - схемотехника...
                          2) выведение яркости (чтоб засветка была на половину рядов)...
                          3) инициализация - сброс засветки (изменение интенсивности)...
                          4) элементарные команды типа позиционирование курсора, стерание с экрана, мигание курсора...
                          5) запуск полного вывода на экран (строк, данных)...


                          с уважением
                          (круглый)
                          ЗЫ
                          Очень актуальны временные задержки при инициализации девайса. При переходе с одного мк на другой - именно они отсасывают основное время у проверенных алгоритмов.
                            А может кто-нибудь дать толковую по его мнению документацию по сопряжению того же ЖКИ, только 8031\51?
                              Цитата Крон @
                              А может кто-нибудь дать толковую по его мнению документацию по сопряжению того же ЖКИ, только 8031\51?

                              Даташита на индикатор вполне достаточно для сопряжения с любым контроллером.
                                А на русском языке ена бывает?
                                  Цитата Крон @
                                  А на русском языке ена бывает?

                                  Да.
                                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                  0 пользователей:
                                  Страницы: (3) [1] 2 3  все


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