Ошибка базы данных WordPress: [Table './meandr_base/anzpz_usermeta' is marked as crashed and last (automatic?) repair failed]
SELECT user_id, meta_key, meta_value FROM anzpz_usermeta WHERE user_id IN (1) ORDER BY umeta_id ASC

Подключение графического модуля Hantronix 320×240 к 8-разрядному микроконтроллер — Меандр — занимательная электроника
Site icon Меандр — занимательная электроника

Подключение графического модуля Hantronix 320×240 к 8-разрядному микроконтроллер

Введение:

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

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

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

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

Серия дисплеев Hantronix 320×240 имеет стандартный промышленный 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

Источник: gaw.ru

Exit mobile version