Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Пт май 21, 2010 11:27:24

советом тоже дело если скину кусок кода с коментами ? пойдет ?
тело программы и работа с пзу не принципиально это наброски мне важна сама работа и алгоритм общения с лцд программа не идет далее опроса флага резета

.include "C:\VMLAB\include\m16def.inc"
; *********************************************************
.def temp =r16 ;DO-PB0
.def Simwol =r17 ;D7-PB7
.def Komand =r18 ;E-PD0
.def ConstFF =r19 ;R/W -PD1
.def Const00 =r20 ;R/S -PD2
.def Schet =r21 ;CE1 -PD3
.def Adres =r22 ;CE2 -PD4
.def Const01 =r23 ;RES -PD6
.CSEG
.org 0
reset: rjmp start
reti ; Addr $01 Вектора прерываний
reti ; Addr $02
reti ; Addr $03
reti ; Addr $04
reti ; Addr $05
reti ; Addr $06
reti ; Addr $07
reti ; Addr $08
reti ; Addr $09
reti ; Addr $0A
reti ; Addr $01 Вектора прерываний
reti ; Addr $02
reti ; Addr $03
reti ; Addr $04
reti ; Addr $05
reti ; Addr $06
reti ; Addr $07
reti ; Addr $08
reti ; Addr $09
reti ; Addr $0A

start: ldi temp,low(RAMEND) ; инициализация стека
out SPL,temp
ldi temp,high(RAMEND) ; инициализация стека
out SPH,temp
ldi Const00,$00 ; определение константы "0"
ldi ConstFF,$FF ; определение константы "FF"
ldi Const01,$01 ; определение константы "1"
ldi temp,0b11111111
out DDRD,temp ; Настройка порта D
ldi temp,0b00000000
out PORTD,temp ; вывод в порт D
ldi temp,0b00000000
out DDRb,temp ; Настройка порта в
ldi temp,0b11111111
out PORTb,temp ; вывод в порт в
ldi temp,0b11110000
out DDRC,temp ; Настройка порта c
ldi temp,0b11111111
out PORTC,temp ; вывод в порт c
ldi temp,0b00000000
out DDRA,temp ; Настройка порта а
ldi temp,0b11111111
out PORTA,temp ; вывод в порт а
ldi temp , 0b00000000
out GICR , temp
ldi temp, 0x80 ; отключчение компаратора
out ACSR , temp ;
ldi temp ,0b01100000; включение ацп лево ориент. вход А0
out ADMUX , temp ;
ldi temp , 0b11100101 ; образцовое напряжение питания
out ADCSR , temp ;
ldi temp , 0b00000000; коэфициент деления 32
out SFIOR ,temp;


; **************** Инициализация LCD ****************
inic: cbi PORTD,PD6 ;reset
nop
nop
nop
sbi PORTD, PD6 ;reset
nop
nop
nop
nop
nop
cbi portc ,7 ; выход на порт для контроля выполнения программы
rcall GOTOV1;flag reset
cbi portc , 6 ; выход на порт для контроля выполнения программы
rcall GOTOV ;flag busy
cbi portc , 5 ; выход на порт для контроля выполнения программы
cbi PORTD,PD3;выбор чип 1
cbi PORTD,PD4;выбор чип 2
nop
nop
nop
nop
nop
nop
ldi Komand,0b00111111
rcall GOTOV
rcall ZAPCOMAND
cbi portc , 4
ldi Komand,$0C
rcall GOTOV
rcall ZAPCOMAND
ldi adres,$20


; ****************** Тело программы ******************
main: sbis PINC,0
rjmp kn1
sbis PINC,1
rjmp kn2
sbis PINC,2
rjmp kn3
rjmp main
kn1: ldi adres,$00
ldi Komand, 0b10111000; 0 страница озу
rjmp wwod
kn2: ldi adres,$00
ldi Komand, 0b10111001; 1 страница озу
rjmp wwod
kn3: ldi adres,$00
ldi Komand, 0b10111010; 2 страница озу
rjmp wwod
wwod: ldi Schet, $40;
rcall GOTOV
rcall ZAPCOMAND
ldi komand , 0b01000000;0 адрес столбца
nov1: rcall EEPROM
rcall GOTOV
rcall ZAPDATA
inc Adres
dec Schet
brne nov1
rjmp main
; ************ Подпрограмма определения готовности ЖКИ :флаг занятости
GOTOV: cbi PORTD,PD2 ;r\s
nop
nop
povtor: sbi PORTD,PD1 ;p\w
out DDRB,Const00
out PORTB,ConstFF
nop
nop
nop
nop

sbi PORTD,PD0 ;E
nop
nop
nop
nop
nop

nop
nop
in temp,PINB
nop
cbi PORTD,PD0 ;E
nop
nop
nop
cbi PORTD,PD1 ; R|W
sbrc temp,7
ret
rjmp povtor
; ************ Подпрограмма определения готовности ЖКИ :флаг резет
GOTOV1: cbi PORTD,PD2 ;r\s
nop
nop
nop

povtor1: sbi PORTD,PD1 ;p\w
out DDRB,Const00
out PORTB,ConstFF
nop
sbi PORTD,PD0 ;E
nop
nop
nop
nop
nop
nop
nop
in temp,PINB
nop
cbi PORTD,PD0 ;E
nop
nop
nop
nop
cbi PORTD,PD1 ; R|W
sbrs temp,4
ret
rjmp povtor1
; ********* Подпрограмма записи в регистр команды ЖКИ
ZAPCOMAND: cbi PORTD,PD2 ;R|S
cbi PORTD,PD1 ;R|W
out DDRB,ConstFF
nop
nop
nop
nop
nop

out PORTB,Komand
sbi PORTD,PD0 ;E
nop
nop
nop

nop
nop
nop
nop
cbi PORTD,PD0 ;E
nop
ret
; ************** Подпрограмма записи в регистр данных ЖКИ цп1
ZAPDATA: sbi PORTD,PD2 ; Вывод R|S
cbi PORTD,PD1 ;R|W
out DDRB,ConstFF
nop
nop
sbi PORTD,PD3; чип 1
out PORTB,Simwol
sbi PORTD,PD0 ;E
nop
nop
nop
nop
nop
cbi PORTD,PD0 ;E
nop
cbi PORTD,PD3;чип 1
ret
; ************** Подпрограмма записи в регистр данных ЖКИ цп2
ZAPDATA1:sbi PORTD,PD2 ; Вывод R|S
cbi PORTD,PD1 ;R|W
out DDRB,ConstFF
nop
nop
sbi PORTD,PD4; чип 2
out PORTB,Simwol
sbi PORTD,PD0 ;E
nop
nop
nop
nop
nop
cbi PORTD,PD0 ;E
nop
sbi PORTD,PD4; чип 2
ret
; ************** Подпрограмма чтения ПЗУ *********
EEPROM: out EEARH,Const00
out EEARL,Adres
out EECR,Const01
in Simwol,EEDR
ret
.ESEG
.ORG 0
.DB $20, $31, $2E, $20, $A5, $B3, $61, $BD, $6F, $B3, $20, $20, $20, $20, $20, $20, $FF, $FF
.DB $20, $32, $2E, $20, $A8, $65, $BF, $70, $6F, $B3, $20, $20, $20, $20, $20, $20 ,$FF, $FF
.DB $ff ,$ff, $ff, $FF, $FF, $FF ,$ff ,$ff, $ff, $FF, $FF, $FF $ff ,$ff, $ff, $FF, $FF, $FF
.DB $ff ,$ff, $ff, $FF, $FF, $FF ,$ff ,$ff, $ff, $FF, $FF, $FF $ff ,$ff, $ff, $FF, $FF, $FF
.DB $ff ,$ff, $ff, $FF, $FF, $FF ,$ff ,$ff, $ff, $FF, $FF, $FF $ff ,$ff, $ff, $FF, $FF, $FF
.DB $ff ,$ff, $ff, $FF, $FF, $FF ,$ff ,$ff, $ff, $FF, $FF, $FF $ff ,$ff, $fD, $FD, $FD, $FE
.EXIT

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Вс май 23, 2010 11:12:36

люди неужели никто не знает уважаемый батарейкус отзовитесь

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Вс май 23, 2010 23:02:42

а нафика те флаг опрашивать хай так работает ( по выдержке времени ).
главное выдержать максимальное время, оно указано в Д.Ш.
попробую обьеснить на пальцах.

для включения дисплея соответственно подать питание и соединить выход драйвера через резистор со входом питания жк модуля тоесть соединить через резистор 3 и 18 выводы.

далее я делал так, хотя видал ктото делал подругому вывод RESET всегда на земле но у меня он подключён квыводу мк.

подал <1> на RESET
14мкс (микросекунд) задержки // по д.ш. 10 мкс
подал на <1> на Е1 и Е2 // на выводы выбора кристала
14мкс (микросекунд) задержки
подал <0> на RESET
14мкс (микросекунд) задержки
подал <1> на RESET
14мкс (микросекунд) задержки
подал <B'00111111'> на шину данных // та самая команда ON
14мкс (микросекунд) задержки
подад <1> на Е // строб разрешение чтения / записи
50мкс задержки // после этого дисплей чернеет и готоа к принятию всевозможных команд

яб мог чёнть попутёвий накалякать но увы с AVR неработаю. мож попробовать на си както программы составить мож скампилируются как надо

а насчёт чтения из дисплея могу сказать что программа составленная мной прекрасно читала из дисплея в PIC в PROTEUSе но в железе эттого непроисходило поэтому я в дальнейшем нерасматривал чтения с дисплея.
Вложения
както так .txt
(2.51 KiB) Скачиваний: 517

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Пн май 24, 2010 23:33:29

да кстате а что вам ненравится в схеме из этого сайта http://radiokot.ru/lab/controller/15/ там вроде всё хорошо и на AVR :?

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Вт май 25, 2010 10:55:49

так то оно так но там все на си и протос а я с ним не дружу у меня вм лаб программу я запустил все флаги работают инициализация проходит теперь чето глючит мк при загрузке команды но будем искать сегодня продолжу . батарейкус а можно мыло ? по форуму долго ответ выходит

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Вт май 25, 2010 16:57:44

можно и мыло oktogen-voljskiy@mail.ru мыльтесь наздоровье :lol:

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Пн май 31, 2010 10:24:04

БАТАРЕЙКУС писал(а):а нафика те флаг опрашивать хай так работает ( по выдержке времени ).
главное выдержать максимальное время, оно указано в Д.Ш.
попробую обьеснить на пальцах.

для включения дисплея соответственно подать питание и соединить выход драйвера через резистор со входом питания жк модуля тоесть соединить через резистор 3 и 18 выводы.

далее я делал так, хотя видал ктото делал подругому вывод RESET всегда на земле но у меня он подключён квыводу мк.

подал <1> на RESET
14мкс (микросекунд) задержки // по д.ш. 10 мкс
подал на <1> на Е1 и Е2 // на выводы выбора кристала
14мкс (микросекунд) задержки
подал <0> на RESET
14мкс (микросекунд) задержки
подал <1> на RESET
14мкс (микросекунд) задержки
подал <B'00111111'> на шину данных // та самая команда ON
14мкс (микросекунд) задержки
подад <1> на Е // строб разрешение чтения / записи
50мкс задержки // после этого дисплей чернеет и готоа к принятию всевозможных команд

яб мог чёнть попутёвий накалякать но увы с AVR неработаю. мож попробовать на си както программы составить мож скампилируются как надо

а насчёт чтения из дисплея могу сказать что программа составленная мной прекрасно читала из дисплея в PIC в PROTEUSе но в железе эттого непроисходило поэтому я в дальнейшем нерасматривал чтения с дисплея.


Сделал то что вы написали

void main()
{
DDRC=0xFF;
DDRA=0xFF;

delay_ms(100);
delay_us_new(10);

SetBit(LCD_COM,LCD_RST);
delay_us_new(14);

SetBit(LCD_COM,LCD_CS1+LCD_CS2);
delay_us_new(14);

ClrBit(LCD_COM,LCD_RST);
delay_us_new(14);

SetBit(LCD_COM,LCD_RST) ;
delay_us_new(14);

SetBit(LCD_DB,0b00111111);
delay_us_new(14);

SetBit(LCD_COM,LCD_E);
delay_us_new(50);

while(1)
{

}
}
Ни в протеусе ни в реале экран не чернеет.... а вообще есть какие нибудь способы определить рабочий ли экран или нет? у меня он только посдветкой моргает, но ниразу ни один пиксель не включился...

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Пт июн 04, 2010 18:17:53

ну в протеусе он чернеет сразуже как включиш протеус на симуляцию и определить включился он или нет неполучится,
а вот насчёт железа надо ещё
SetBit(LCD_COM,LCD_E);
delay_us_new(50);
ClrBit(LCD_COM,LCD_E); // надо добавить эту строчку чтоб снять сигнал со строба

:dont_know: должно работать

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Вт июн 08, 2010 16:23:54

блин, всеравно дисплей не подает признаков жизни :cry: :cry:
есть ли какие либо методы определения мертвости дисплея? еще раз напишу за все время ниразу не одного пикселя я на нем не увидел.... :oops:

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Вт июн 08, 2010 19:22:17

у меня дисплей ответил флагами на инициализацию но экран у него остался светлым а почернеть я так думаю он должен будет когда в него записать чего нибудь но с записью пока не занимался, ход выполнения программы я наблюдал по маякам (включение светодиодов навешенных на любой порт ) при выполнении проги последовательно загораются диоды или тухнут кому как нравится

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Ср июн 09, 2010 08:46:44

culibin 100 писал(а):у меня дисплей ответил флагами на инициализацию но экран у него остался светлым а почернеть я так думаю он должен будет когда в него записать чего нибудь но с записью пока не занимался, ход выполнения программы я наблюдал по маякам (включение светодиодов навешенных на любой порт ) при выполнении проги последовательно загораются диоды или тухнут кому как нравится

я тоже поставил параллельно светодиоды, делал задержки большие чтобы видно было что светодиоды в нужной последовательности загорались, а экран всеравно не отвечает...
может попробовать почитать данные из него, и через USART посмотреть что вывелось....

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Ср июн 09, 2010 11:53:56

не знаю как через юсарт но у меня все работает попробуй опросить хотябы один флаг после снятия сигнала резета дисплей выводит сброс флага резет дата4 шины данных а потом выставляет флаг готовности дата7 опроси хоть один из флагов у меня лцд (мт124-64)мелт задержка у меня операция вычитания единицы из двух регистров в которые было записано $FF в каждый.

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Ср июн 09, 2010 23:21:21

culibin 100 писал(а):не знаю как через юсарт но у меня все работает попробуй опросить хотябы один флаг после снятия сигнала резета дисплей выводит сброс флага резет дата4 шины данных а потом выставляет флаг готовности дата7 опроси хоть один из флагов у меня лцд (мт124-64)мелт задержка у меня операция вычитания единицы из двух регистров в которые было записано $FF в каждый.

Ок попробую

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Вт июн 15, 2010 11:10:57

Помогите пожалуйста разобраться новичку, уже 3 недели морочусь с графическим LCD.
Основу взял из страницы
viewtopic.php?f=20&t=5199&start=40
проект LCD графич MT12864 CVAVR PROTEUS.rar (спасибо автору).
Такой вариант работает:
LCD_PUTSF(56,28,"radiokot");
Но мне нужно отправлять на LCD переменную.
Не буду изображать что я делал не основное, но основное здесь:

unsigned char buf[33];
unsigned m;
m=1234; // Моя цель чтобы LCD показало – 1234.
sprintf (&buf[0], "%d", m);
LCD_CLS();
LCD_PUTSF(56,28,&buf[0]); // компилятор выдает ошибку в этой строке
Выдает что не соответствие формату требуемому для LCD
При замене последней строки на такой вариант
LCD_PUTSF(56,28,buf[0]); // удален &
тоже выдает ошибку.
Здесь применил стандартные функции, почему не идет не пойму.
Еще последнюю строку пробовал в таком варианте
WriteData(buf[0]);
Ошибок не выдает, но LCD показывает только двоеточие на середине нижней строки.

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Чт июл 15, 2010 15:12:03

to lirik. Дисплей запустили?

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Пн авг 16, 2010 21:28:10

БАТАРЕЙКУС писал(а):
помоч могу только на PIC


Мне требуется помощь.
Пытаю WG12864B.На PIC18F252.
Выполнил ваши рекомендации по иницилизации.
Вроде ничего не меняется.Вытаскиваю проц из панельки-все тоже.
Нет ли у вас полного ассемблерного файла с хорошими комментариями,как образец?
Пусть выводит что угодно.Я потом изменю.
Индикатор исправен-проверял на другом устройстве.Процессор тоже проверен.
Не знаю в чем дело.
Можно на @. pctele@gorod55.ru

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Ср авг 18, 2010 16:24:05

Pictele, опишите подробнее какой WG (все символы).

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Ср авг 18, 2010 21:56:17

Jursat писал(а):Pictele, опишите подробнее какой WG (все символы).

WINSTAR WG12864B-TML-TN

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Чт авг 19, 2010 09:23:45

На скорую руку нашел http://www.radioscanner.ru/forum/topic40984.html.
Там есть и схема подключения и исходник. Не вникал в суть и не проверял.
Если не заработает будем разбираться. Можно по мылу.
У меня успешно работает wg12864b-ygh-n#n.

Re: Работа с графическими ЖКИ на контроллере KS0108 и аналог

Чт авг 19, 2010 10:32:13

Jursat писал(а):На скорую руку нашел http://www.radioscanner.ru/forum/topic40984.html.
Там есть и схема подключения и исходник. Не вникал в суть и не проверял.
Если не заработает будем разбираться. Можно по мылу.
У меня успешно работает wg12864b-ygh-n#n.

Спасибо.Бум пытаться вникать.
Ответить