Магазин  LCD-Сайт  О проекте

  • ЖК-модули
  • Контроллеры
  • ИС поддержки
  • Применения
  • Технологии

    Ссылки
  • Поставщики
  • Производители

  • Купи CD-ROM



    Имя
    E-mail

    Поставщики электронных компонентов

  • Главная страница > ЖКИ > Прменения



    Подключение графического модуля Hantronix 320x240 к 8-разрядному микроконтроллеру семейства MCS-51.

    Введение:

    Так как модули графических жидкокристаллических дисплеев (ЖКД) имеют тонкий профиль, лёгкий вес, низкое потребление мощности и лёгкое управление, они получили широкое применение в различных приложениях. ЖКД 320x240 (1/4 VGA) очень популярны в различных вычислительных системах. По этой причине контроллер не включается в состав модуля.

    Неплохим выбором контроллера, с встроенным 8-разрядным микроконтроллером и контроллером ЖКД, может стать Epson/S-MOS SED1335 или OKI MSM6255/6355. Некоторые встроенные микроконтроллеры, такие как National NS486SXF, имеют ЖКД контроллеры и прямой доступ к дисплею.

    Пример приведённый здесь основан на микроконтроллере Phillips 87C751, управляющим контроллером Epson/S-MOS SED1335.

    Функциональное описание:

    Серия дисплеев Hantronix 320x240 имеет стандартный промышленный 4-разрядный интерфейс. Этому интерфейсу необходим контроллер для непрерывного обновления изображения и для поддержания RAM видео дисплея.

    Перед тем как микроконтроллер сможет использовать дисплей, требуется послать серию инициализирующих байтов в котроллер ЖКД, для установки рабочих параметров и описания изображения в контроллере.

    После инициализации приложения микроконтроллер может отправить текстовые или графические данные в контроллер ЖКД, где они будут отформатированы и сохранены в RAM дисплея. Одновременно с обновлениями RAM, контроллер ЖКД непрерывно читает данные из RAM дисплея, упорядочая их и посылая дисплею. Применяемый микроконтроллер не имеет прямого доступа к RAM дисплея и должен посылать все данные и команды в контроллер ЖКД.

    Схемотехническое описание:

    В этом примере микропроцессор 87C751 присоединяется к контроллеру ЖКД через параллельные порты I/O. Он может также быть подключён к шине данных процессора и отображаться в область памяти данных процессора. См. рисунок 1.

    Рисунок 1.

    Программное обеспечение:

    Приведённый ниже пример программы, написан на ассемблерном коде 8051 и разработан для работы с устройством изображённом на рисунке 1. Программа вначале посылает серию командных байтов, следующих за соответствующими параметрами в контроллер ЖКД для его инициализации. Контроллер инициализируется одной текстовой страницей расположенной в памяти 0000h-04AFh и одной графической страницей 4B0h-2A2h. Это подразумевает 1200 текстовых символов расположенных как 30 строк по 40 символов каждая. Размер графической страницы 9600 байт содержащие данные всего экрана. Режим отображения устанавливается с обоими экранами и текстовым наложением на графику по схеме ИСКЛЮЧАЮЩЕЕ ИЛИ.

    Текстовая область памяти затем очищается сохранением 20h, символ пробела, во всех 1200 положениях. Графическая страница затем заполняется образом дерева бонсай. Затем отображаются 4 строки текста.

    Пример программы написан не эффективно, зато как можно проще.

    Программная блок-схема:

    Инициализация:

    Перед тем как принять или отобразить данные или текст ЖКД контроллер должен быть проинициализирован. Обычно это делается непосредственно после включения системы. Следующая схема показывает команды инициализации и параметры, которые сопровождаются кратким описанием каждой функции.

    Байты инициализации:

    Команда	Код	Параметр	Функция
    SYSTEM  SET	40h	30h	Аппаратная установка ЖКД панели
    		87h	Ширина символа [7] в пикселах
    		07h	Высота символа [7] в пикселах
    		27h	Адресный диапазон дял 1 текстовой строки
    		39h	Длина строки в символах [40-1=39]
    		EFh	Количество строк на кадр [240]
    		28h	Горизонтальный адресный диапазон (текстовый) [40]
    		0	
    SCROLL	44h	0	Устанавливает начальный адрес прокрутки 
    		0	и количество строк на прокручиваемый блок
    		EFh	
    		B0h	
    		04h	
    		EFh	
    		0	
    		0	
    		0	
    		0	
    CURSOR FORM	5Dh	04h	Форма и размер курсора 
    				[блок, ширина 4 пиксела, высота 6 пикселов]
    		86h	
    CURSOR DIRECTION	4Ch	Направление курсора в режиме автоматической записи
    HORIZONTAL SCROLL RATE	5Ah	00h	Скорость горизонтальной прокрутки, 
    					[1] пиксел за один раз
    OVERLAY	5Bh	01h	Режим наложения текст/графика (ИСКЛЮЧАЮЩЕЕ  ИЛИ)
    DISPLAY ON/OFF	59h	16h	Включение.выключение дисплея [Включено]
    

    Отображаемый образ:

    Программа:

    $MOD751
    
    ;**************************************************
    ;*						             *
    ;*		HDM3224   Приложение  V1.0 	             *
    ;*						             *
    ;**************************************************
    
    ; Частота тактовых импульсов процессора 16 МГц.
    ; Время цикла .750 мс.
    ; Демонстрационная программа изображения дерева бонсай
    ; битовая карта изображения дерева и 4 линии 
    ; текста на ЖКД 320 ґ 240.
    	
    org	00h
    ljmp	start	; начало программы
    
    org	100h
    
    ; Инициализация 32241
    ; Текстовая страница 0000h 04Afh
    ; Графическая страница 04B0h 2A2Fh
    
    start:
    mov	r1,#40h		; установка системы
    lcall 	comm32
    mov	dptr,#msg1	; параметр установки системы 
    lcall 	data32
    mov	r1,#44h		; прокрутка
    lcall 	comm32
    mov	dptr,#msg2	; параметр прокрутки
    lcall 	data32
    mov	r1,#5Dh		; форма курсора
    lcall 	comm32
    mov	dptr,#msg3	; параметр курсора
    lcall 	data32
    mov	r1,#4Ch		; направление курсора
    lcall 	comm32
    mov	dptr,#5Ah	; прокрутка по точкам
    lcall 	comm32
    mov	r1,#msg18	; параметр прокрутки по точкам
    lcall 	data32
    mov	dptr,#5Bh	; наложение
    lcall 	comm32
    mov	dptr,#msg4	; параметр наложения
    lcall 	data32
    mov	r1,#59h		; включение/выключение дисплея
    lcall 	comm32
    mov	dptr,#msg5	; параметр дисплея
    lcall	data32
    
    ; очистка текстовой страницы
    lcall	clrtext
    
    ; битовая карта изображения
    mov	r1,#46h		; установка курсора
    lcall 	comm32
    mov	dptr,#msg6	
    lcall	data32
    mov	r1,#42h		; запись в память
    lcall 	comm32
    mov	dptr,#msg12	
    lcall	data32
    
    ; отображение текста
    mov	r1,#46h		; установка курсора
    lcall 	comm32
    mov	dptr,#msg7	
    lcall	data32
    mov	r1,#42h		; запись в память
    lcall 	comm32
    mov	dptr,#msg14
    lcall	data32
    mov	r1,#46h		; установка курсора
    lcall 	comm32
    mov	dptr,#msg8	
    lcall	data32
    mov	r1,#42h		; запись в память
    lcall 	comm32
    mov	dptr,#msg15
    lcall	data32
    mov	r1,#46h		; установка курсора
    lcall 	comm32
    mov	dptr,#msg9	
    lcall	data32
    mov	r1,#42h		; запись в память
    lcall 	comm32
    mov	dptr,#msg16
    lcall	data32
    mov	r1,#46h		; установка курсора
    lcall 	comm32
    mov	dptr,#msg10	
    lcall	data32
    mov	r1,#46h		; запись в память
    lcall 	comm32
    mov	dptr,#msg17
    lcall	data32
    sjmp	$		; стоп
    
    ;*************************************************
    ; Подпрограммы
    
    ; comm32 посылает байт в R1 в
    ; 32241 как команда
    
    comm32: 
    	setb	p3.2		; a0=1=команда
    comm321:			
    mov	a, r1		; послать байт данных
    mov	p1, a
    clr	p3.0		; CS - строб
    clr	p3.1		; дисплея
    setb	p3.1
    setb	p3.0
    ret
    
    write32:
    clr	p3.2		;a0=0=данные
    sjmp	comm321
    
    ; data32 посылает сообщение указанное в
    ; DPTR в 32241.
    
    data32:
    clr	a		; отправить байт
    movc 	a, @a+dptr
    cjne	a, #0a1h, data321	; сделано?
    ret
    
    data321:
    mov	r1, a
    lcall	write32		; отправить
    inc	dptr
    sjmp	data32		; следующий байт
    
    ; Очистить текстовую RAM на 3224
    clrtext:
    mov	r1, #46h		; установить курсор
    lcall	comm32
    mov	dptr, #msg13	; параметр курсора
    lcall	data32
    mov	r1, #42h		; запись в память
    lcall	comm32
    mov	dptr, #msg11	; все пробелы
    lcall	data32
    mov	r1, #46h		; установить курсор
    lcall	comm32
    mov	dptr, #msg6	
    lcall	data32
    ret
    
    ;************************************************
    ; Таблицы и данные
    
    ; Инициализация параметров для 3224.
    
    msg1:
    db	30h, 87h, 07h, 27h	;установка системы
    db	39h, 0EFh, 28h, 0h, 0A1h
    
    msg2:
    db	0, 0, 0EFh, 0B0h		;прокрутка
    db	04h, 0EFh, 0, 0
    db	0, 0, 0A1h
    
    msg3:
    db	04h, 86h, 0A1h		; форма курсора
    
    msg4:
    db	01h, 0A1h		; параметр наложения
    
    msg5:
    db	16h, 0A1h		; включение/выключение дисплея
    
    msg6:
    db	0B0h, 04h, 0A1h		; установка курсора на
    				; графическую страницу
    msg7:
    db	31h, 2h, 0A1h		; установка курсора на 
    ; текстовую страницу
    ; первая строка
    
    msg8:
    db	59h, 2, 0A1h		; вторая строка
    
    msg9:
    db	81h, 2, 0A1h		; третья строка
    
    msg10:
    db	0A9h, 2, 0A1h		; четвёртая строка
    
    ; 1200 пробелов для очистки текстовой страницы
    ;  Следующая таблица не приведена
    ; здесь, исключая первые 8 байт,
    ; она состоит из 1200 байтов
    ; каждый из которых 20h
    
    msg11:
    db	'		 '
    db	01Ah
    
    ; Графика 320x240 дерево бонсай
    ; Следующая таблица не приведена
    ; здесь. Она состоит из 9600 байтов
    ; которые охватывают весь экран
    ; битовой картой изображения дерева бонсай.
    ; Вы можете добавить несколько байтов перед
    ; 01Ah конечным байтом с целью тестирования
    ; или включения полного битового образа
    
    msg12:
    db	01Ah
    
    msg13:
    db	0, 0, 01Ah		; установка курсора
    ;на текстовую страницу
    
    msg14:
    db	'HANTRONIX'
    db	0A1h
    
    msg15:
    db	'Crystal Clearand'
    db	0A1h
    
    msg16:
    db	'Visibly Superior'
    db	0A1h
    
    msg17:
    db	'LCD Modules'
    db	0A1h
    
    msg18:
    db	0, 01Ah			; параметр прокрутки по горизонтали
    
    end
    

    Исходный файл:

      48 Kb Engl 3224app.pdf

    Документация:

      Rus Описание микросхемы SED1335






    Тел.: (495) 514 4110
    Факс: (495) 326 8618

    © 2001 GAW.RU
    Разработка сайта: GAW.RU
    return_links(); ?>