Объявление

Свернуть
Пока нет объявлений.

Иcпользование ЖКИ индикаторов на базе контроллера HD44780 и его аналогов совместно с PIC-микроконтроллерами

Свернуть
X
Свернуть

  • Иcпользование ЖКИ индикаторов на базе контроллера HD44780 и его аналогов совместно с PIC-микроконтроллерами

    Нажмите на изображение для увеличения. 

Название:	dv.jpg 
Просмотров:	1 
Размер:	90.1 Кб 
ID:	2209 />
    ЖКИ на базе контроллеров HD44780 являются эффективным средством отображения различной информации и могут с успехом применяться даже в любительских разработках. Наличие многих режимов вывода (скроллирование, курсоры, определяемые пользователем символы) позволяет разрабатывать удобные интерфейсы управления и устройства индикации.
    Наличие 4-х битного режима вывода даёт возможность задействовать минимум портов микроконтроллера.
    Довольно много информации по этим индикаторам можно найти в интернете, поэтому приведу пример ассемблерных процедур, вставленных в код на С, для 4-х битного режима, как представляющий наибольший интерес для разработчиков.

    Схема включения:
    PIC RB2 - LCD RS
    PIC RB3 - LCD E
    PIC RB4 - LCD B4
    PIC RB5 - LCD B5
    PIC RB6 - LCD B6
    PIC RB7 - LCD B7
    Помимо этого: LCD R/W - заземлить, LCD B0...LCD B3 - подключить к плюсу питания через резисторы.

    /*-------------начало примера-------------*/
    .
    .
    .
    char lcd_data;
    /* вывод старшей тетрады байта данных */

    void out_nibble() {
    asm {
    movwf _lcd_data ; байт данных должен быть в W
    bcf PORTB, 4
    btfsc _lcd_data, 4
    bsf PORTB, 4
    bcf PORTB, 5
    btfsc _lcd_data, 5
    bsf PORTB, 5
    bcf PORTB, 6
    btfsc _lcd_data, 6
    bsf PORTB, 6
    bcf PORTB, 7
    btfsc _lcd_data, 7
    bsf PORTB, 7
    }
    }

    /* вывод байта в 8-ми битном режиме (требуется
    только для инициализации ЖКИ) */
    void wr_cmd(char cmd) {
    asm {
    bcf PORTB, 2 ; RS - down, пишем в IR
    movfw param00_wr_cmd
    call _out_nibble
    bsf PORTB, 3 ; E - up
    bcf PORTB, 3 ; E - down
    call _delay
    }
    }

    /* вывод байта команды на ЖКИ */
    void wr_cmd4(char cmd) {
    asm {
    bcf PORTB, 2 ; RS - down, пишем в IR
    movfw param00_wr_cmd4
    call _out_nibble
    bsf PORTB, 3 ; E - up
    bcf PORTB, 3 ; E - down
    call _delay
    swapf param00_wr_cmd4, W ; меняем тетрады байта
    call _out_nibble
    bsf PORTB, 3 ; E - up
    bcf PORTB, 3 ; E - down
    call _delay
    }
    }

    /* вывод байта данных на ЖКИ */
    void wr_data4(char data) {
    asm {
    bsf PORTB, 2 ; RS - up, пишем в DR
    movfw param00_wr_data4
    call _out_nibble
    bsf PORTB, 3 ; E - up
    bcf PORTB, 3 ; E - down
    call _delay
    swapf param00_wr_data4, W ; меняем тетрады байта
    call _out_nibble
    bsf PORTB, 3 ; E - up
    bcf PORTB, 3 ; E - down
    call _delay
    }
    }

    /* задержка */
    void delay() {
    delay_ms(1);
    }
    .
    .
    .
    /*-------------окончание примера-------------*/ В приведенных примерах не отслеживается флаг занятости (busy flag) контроллера HD44780, взамен этого процедуры вывода на ЖКИ имеют задержки; на это следует обратить внимание. Ниже приводится фрагмент программы на С, выводящую фрагмент знакогенератора на экран ЖКИ формата 2 строки по 16 символов.

    /*-------------начало примера-------------*/
    .
    .
    .
    char i, ch;

    /* инициализация ЖКИ в 8-ми битном режиме
    (рекомендуется производителем) */
    wr_cmd(0x28);
    delay_ms(5);
    wr_cmd(0x28);
    delay();
    wr_cmd(0x28);
    delay();

    /* инициализация ЖКИ в 4-х битном режиме */
    wr_cmd4(0x28);
    wr_cmd4(0x0c);
    wr_cmd4(0x06);

    ch = 0x20;

    wr_cmd4(0x80); /* переход на первую строку экрана */
    for (i=0; i<16; i++) {
    wr_data4(ch); /* выводим символы */

    ch++;
    }
    wr_cmd4(0xc0); /* переход на вторую строку экрана */
    for (i=0; i<16; i++) {
    wr_data4(ch); /* выводим символы */
    ch++;
    }
    .
    .
    .
    /*-------------окончание примера-------------*/
      Возможность размещать комментарии к сообщениям отключена.

    Метки статей

    Свернуть

    Меток пока нет.

    Новые статьи

    Свернуть

    • Электронно-управляемое двойное лучепреломление ECB (VAN)
      admin
      ...
      16.02.2017, 21:14
    • Эксплуатационные особенности галогенных ламп накаливания
      admin
      ...
      16.02.2017, 21:14
    • Экспериментальное управление драйверами LED дисплеев MAX6952 и MAX6953
      admin
      ИС MAX6952 и MAX6953 являются драйверами 4-х разрядных 5х7 матричных LED дисплеев, управляемых посредством высокоскоростного SPI (MAX6952) или I2C (MAX6953) последовательных интерфейсов. Данный документ описывает прикладную программу, которая позволяет управлять драйверами MAX6952 и MAX6953 с персонального компьютера. Программа может быть использована и непосредственно, для ознакомления разработчика с регистрами и функциями драйверов. Программа также может быть использована для испытания прототипа информационного табло посредством прямого управления регистрами MAX6952 и MAX6953, еще до завершения разработки программного обеспечения пользователя. ...
      16.02.2017, 21:14
    • Экономичный преобразователь кода для семисегментного индикатора
      admin
      Одна из важных задач, стоящих сегодня перед разработчиками электронной аппаратуры, как профессионалами, так и радиолюбителями, — всемерное снижение ее токопотребления. Решать эту задачу можно по-разному: и применением экономичных микросхем, и созданием новых схемных решений, требующих меньшего их числа. Автор публикуемой...
      16.02.2017, 21:14
    • Что такое
      admin
      Современные информационные табло изготавливаются с применением светодиодов, светодиодных матриц, жидкокристаллических индикаторов, плазменных панелей.
      Предлагаем уважаемым разработчикам и всем заинтересованным лицам вспомнить о еще одном, слегка забытом, способе отображения информации. Этот способ основан на электромагнитных элементах с вращающейся шторкой, одна сторона которой покрыта световозвращающим составом. Единого названия этих элементов среди зарубежных производителей не существует. В России в 90-е годы подобные элементы, и готовые табло на них, выпускал воронежский завод «ЭТАЛОН». Тогда эти элементы назывались блинкер (англ....
      16.02.2017, 21:14
    • Типовая схема подключения LCD-модуля по 4-х проводному интерфейсу к микроконтрол
      admin
      Ниже приведены исходные тексты подпрограммы на языке ассемблера ASM51, позволяющие записывать данные, инструкции в контроллер, считывать данные. Приведен так же примерный текст подпрограммы инициализации контроллера в режим восьми битного интерфейса, при работе с двумя строками. Отображение курсора и мигание отключено. Курсор установлен в начало первой (верхней) строки.
      Использовать минимальное количество линий подключения контроллера ЖКИ к микро-ЭВМ позволяет соединение по схеме приведенной на рисунке
      >
      Далее приведены исходные тексты...
      16.02.2017, 21:14
    Обработка...
    X