Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 24.10.2010, 19:02   #91
950km
Прописка
 
Регистрация: 09.11.2006
Сообщений: 127
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
950km на пути к лучшему
По умолчанию Re: WH1602 и Tiny2313

Сообщение от Dorgx7 Посмотреть сообщение
Вроде как тестовая строка
Дай сюда, я проверю.
Реклама:
__________________
http://samopal.su
950km вне форума  
Непрочитано 24.10.2010, 19:19   #92
Dorgx7
Частый гость
 
Регистрация: 04.02.2007
Сообщений: 43
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Dorgx7 на пути к лучшему
По умолчанию Re: WH1602 и Tiny2313

Сообщение от 950km Посмотреть сообщение
Дай сюда, я проверю.
В каком смысле ?
что именно дать ?
Dorgx7 вне форума  
Непрочитано 07.11.2010, 17:41   #93
Dorgx7
Частый гость
 
Регистрация: 04.02.2007
Сообщений: 43
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Dorgx7 на пути к лучшему
По умолчанию Re: WH1602 и Tiny2313

Получилось запустить дисплей от LPT и программой LCDSmartie проблемма была в сопротивлении на подсветке в определенном положении инициализация почему то не проходила (так и не понел почему ) Нажмите на изображение для увеличения
Название: 0001.jpg
Просмотров: 256
Размер:	76.4 Кб
ID:	14431

буду пробовать запускать от ATmega16
Dorgx7 вне форума  
Непрочитано 16.11.2010, 09:57   #94
Dorgx7
Частый гость
 
Регистрация: 04.02.2007
Сообщений: 43
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Dorgx7 на пути к лучшему
По умолчанию Re: WH1602 и Tiny2313

Запустил от ATmega16 стандартным кодом CVavr по 4х битной схеме с задержкой в 1 секунду перед инициализацией.

Всем огромное спасибо.
Dorgx7 вне форума  
Непрочитано 28.04.2013, 14:45   #95
evgeniykhl
Прохожий
 
Регистрация: 02.10.2011
Сообщений: 9
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
evgeniykhl на пути к лучшему
По умолчанию Re: WH1602 и Tiny2313

Сообщение от Dorgx7 Посмотреть сообщение
Получилось запустить дисплей от LPT и программой LCDSmartie проблемма была в сопротивлении на подсветке в определенном положении инициализация почему то не проходила (так и не понел почему ) Вложение 14431

буду пробовать запускать от ATmega16
Ссылочку на LCDSmartie pls.

Хочу попробовать и я проверить свои LCD запустить от LPT.

Вот уже второй день пытаюсь "оживить" свой WH1602A от ATmega16 ничего не получается, где-то "собака зарыта", а где найти не могу.
Думал уже что-то с LCD, купил аналог китайский TM162A но и он не хочет запускаться. На обоих дисплеях высвечивается один ряд блоков (на одном почему-то верхний ряд на WH1602 а на втором нижний).

В Proteus e написанный мной (на ассемблере) код работает, в реале не хочет.
Аппаратно всё проверил перепроверил, шина данных в порядке сигналы управления ОК. С задержками как только не извращался, увеличивал до неприличия ничего не помогает. Контрастность выбрал делителем (R1-1k, на корпус, R2-10k на Vdd +5V) Подсветки на обоих экземплярах нет.
Если пытаешься контролировать флаг BF от дисплея, то в Proteus e это не работает, хотя в реале пробовал и это, всё равно неудачно.

Вот и хочу от LPT еще попробовать


Вот код на асме, может кто ткнет пальцем чего тут не так?


* Created: 27.04.2013 14:44:11
* Author: Administrator
*/

;=========== LCD Define ================================================== ================
.equ DATA_PORT = PORTA ; LCD Data Port Все ноги данных подключены к порту "А"
.equ DATA_PIN = PINA
.equ DATA_DDR = DDRA

.equ CMD_PORT = PORTC ; LCD Control Port Управление на порту "С" линии 0,1,2 см ниже
.equ CMD_PIN = PINC
.equ CMD_DDR = DDRC

.equ E = 0
.equ RW = 1
.equ RS = 2


;================================================= ========================================
.cseg
.org 0

;Настройка стека
InitStack: ldi R16, Low (RAMEND) ;для дальнейшей загрузки в младший регистр Стека
ldi R17, high (RAMEND);для дальнейшей загрузки в старший регистр Стека
out spl, R16
out sph, R17
ldi R16, 1‹‹ACD ;готовим выключение аналогового компаратора
out ACSR, R16 ; выключаем аналоговый компаратор
;+++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++
; Т Е Л О П Р О Г Р А М М Ы
;+++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++
CLI ; На всякий случай заблокируем все прервыания
; Ждать реакции дисплея не будем из-за усложнения программы. Будем просто выдавать данные и команды, обеспечивая
; заведомо большую задержку. Поэтому оба порта "А" и "С" все ноги настроем на "ВЫВОД". И установим на них нули.
; Как известно, для выбора направления данных через порт используются регистры DDR если в регистре 1, то порт на ВЫВОД
start: ldi R16, 0xff
out DDRA, R16
out DDRC, R16 ; Оба порта "А" и "С" на ВЫВОД, теперь запишем в них нули
out DDRB, R16 ; Порт "В" вспомогательный , на него навешан светодиод для "моргания" и тем самым, контроля за работой МК
ldi R16, 0x00
out PORTA, R16
out PORTC, R16
out PORTB, R16
; В результате этой процедуры на ноге RW управляющего порта 0, поскольку будем только "отправлять" данные к дисплею
; а "считывать" не будем этот потенциал можно и не менять.
;--------------ИНИЦИАЛИЗАЦИЯ--------дисплея-----------------------------------------------------------------------------------
; По даташиту, после включения питания надо ждать не менее 20 ти миллисекунд, для входа устройства в нормальный режим.
; Даём такую задержку (8 тактов за одну микросекунду, значит нам надо 8000 х 20 = 160 000 тактов).
ldi R16, 10
M2: rcall M2mls
dec R16
BRNE M2
ldi R16, 10
M3: rcall M2mls
dec R16
BRNE M3
ldi R16, 10
M4: rcall M2mls
dec R16
BRNE M4
; выждали 60 миллисекунд (даже более), теперь можно инициализировать дисплей

SYKL: SBI CMD_DDR,RS
SBI CMD_DDR,E ; Дёргаем линии для проверки просто
; R17 служит регистром данных или команды при записи в дисплей
ldi R17, 0b00111100
rcall CMD_WR


ldi R17, 0b00111100
rcall CMD_WR


ldi R17, 0b00111100
rcall CMD_WR


ldi R17, 0b00001100 ; Включаем дисплей
rcall CMD_WR


ldi R17, 0b00000001 ; Очистка дисплея
rcall CMD_WR

rcall M2mls

ldi R17, 0b00000110 ; Курсор двигаем вправо
rcall CMD_WR


ldi R16, 0xFF ; Пауза 256 миллисекунд
M7: rcall M1mls
dec R16
BRNE M7

ldi R17, 'O'
rcall DATA_WR


ldi R17, 'K'
rcall DATA_WR

ldi R17, 0b11000000 ;Курсор на вторую строку 1я позиция
rcall CMD_WR

ldi R17, 'O'
rcall DATA_WR

ldi R17, 'K'
rcall DATA_WR

ldi R16,0xFF
out PORTB, R16 ; Включаем контрольный светодиод



ldi R16, 0xFF ; Пауза 256 миллисекунд
M5: rcall M1mls
dec R16
BRNE M5

ldi R16,0
out PORTB, R16 ; Выключаем контрольный светодиод

ldi R16, 0xFF ; Пауза 256 миллисекунд
M6: rcall M1mls
dec R16
BRNE M6

rjmp SYKL

;-----ПОДПРОГРАММЫ--------------

delay1us:
; задержка повышенной точности в 1 микросекунду c учетом длительности RCALL и RET
; rcall (им вызываем эту задержку) дает 3 + 1 nop + 4 ret = 8 - 1 микросекунда при 8МГц
; не использует никаких регистров
; для низкой тактовой частоты, возможно, придется заменить на несколько NOP-ов
nop
ret

delay10us:
; задержка повышенной точности в 10 микросекунд, основана на delay1us
; rcall (им вызываем эту задержку) дает 3 + 12 команды вне цикла +
; (5*(8+1+2)+8+1+1)=55 дает сам цикл = 80 тактов = 10 микросекунд
push R16
ldi R16, 6
delay10us_loop:
rcall delay1us
dec R16
brne delay10us_loop
pop R16
nop
nop
nop
ret

M2mls: push R16
ldi R16, 200
M1: rcall delay10us
dec R16
BRNE M1
pop R16
ret

M1mls: push R16
ldi R16, 100
M10: rcall delay10us
dec R16
BRNE M10
pop R16
ret

;================================================= ========================================
; Запись команды в дисплей. Код команды в R17
CMD_WR: CBI CMD_PORT,RS
RJMP WR_END

;-----------------------------------------------------------------------------------------
; Запись данных в дисплей. Код данных в R17
DATA_WR:
SBI CMD_PORT,RS
WR_END: CBI CMD_PORT,RW
ldi R16, 0xFF
out DDRA, R16 ; Порт данных на ВЫВОД
rcall delay10us
SBI CMD_PORT,E
rcall delay10us
OUT DATA_PORT,R17
RCALL delay10us
CBI CMD_PORT,E
rcall M2mls
ldi R16,0x00
out DDRA, R16 ; Порт данных на ВВОД (на всякий случай).
LDI R16,0xFF ; Установить подтяжку
OUT DATA_PORT,R16
RET
evgeniykhl вне форума  
Непрочитано 28.04.2013, 15:10   #96
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: WH1602 и Tiny2313

При записи команд и данных между отдельными циклами записи нужно выдерживать паузу не менее 50 мкс

Тут http://nixto.eu5.org/images/1602_test.rar тестовые прошивки с исходниками на асме для мега8 и 48
niXto вне форума  
Непрочитано 28.04.2013, 15:32   #97
Vov123
Вид на жительство
 
Регистрация: 03.06.2007
Сообщений: 368
Сказал спасибо: 3
Сказали Спасибо 59 раз(а) в 52 сообщении(ях)
Vov123 на пути к лучшему
По умолчанию Re: WH1602 и Tiny2313

Мне когда-то помогло подобное на вот это.
Vov123 вне форума  
Непрочитано 28.04.2013, 22:10   #98
evgeniykhl
Прохожий
 
Регистрация: 02.10.2011
Сообщений: 9
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
evgeniykhl на пути к лучшему
По умолчанию Re: WH1602 и Tiny2313

[QUOTE=niXto;621691]При записи команд и данных между отдельными циклами записи нужно выдерживать паузу не менее 50 мкс

Паузы выдерживать надо это верно. У меня это заложено в самих командах записи. После спада сигнала на ноге Е из 1 в 0 я даю аж 2 миллисекунды паузы что согласитесь более чем 50 мкс.

Где "собака зарыта" нашел вооружившись осциллографом.
Он показал, что на ноге порта подключенной к RS нет импульсов, а только логическая 1, хотя импульсы должны быть т.к. в цикле программы чередовались запись команд RS=0 и данных RS=1.
Проверил физику, коротышей ни с чем не обнаружил. Заменил ногу порта на соседнюю внеся соответствующую корректировку в прогу и всё заработало.
Правда, что случилось с ногой порта еще предстоит выяснять.
evgeniykhl вне форума  
Непрочитано 29.04.2013, 20:00   #99
dr.doc
Частый гость
 
Регистрация: 24.07.2010
Сообщений: 27
Сказал спасибо: 6
Сказали Спасибо 14 раз(а) в 7 сообщении(ях)
dr.doc на пути к лучшему
По умолчанию Re: WH1602 и Tiny2313

Я писал, писал... В общем мучил долго и по разным даташитам. В итоге получилась прога, испытанная мной на LM16152 (оригинальный японец, 16*1) и SC1602. Порядок инициализации вкратце:
1. Пауза ›30 мС
2. RS - 0
3. Младшую тетраду числа 0x03 (0011) в индикатор
4. Запись (подпрограмма)
5. Запись
6. Запись
7. Младшую тетраду числа 0x02 (0011) в индикатор
8. Запись
9. Число 0x28 потетрадно, начиная со старшей в порт с последующей записью
10. Число 0x0C потетрадно, начиная со старшей в порт с последующей записью
11. Число 0x01 потетрадно, начиная со старшей в порт с последующей записью (очистка дисплея)
12. Пауза более 3 мС
13. Число 0x06 потетрадно, начиная со старшей в порт с последующей записью
Дисплей инициализирован. Далее выставляем адрес индициемого знакоместа и вперед
Адрес: RS - 0, старший бит передаваемого числа - 1, далее адрес (1-я строка с 0, вторая - с 0x40).
ПП Запись: Е - 1, пауза 1мкС, Е - 0, пауза более 160 мкС, выход.

Во вложении рабочая прошивка с исходниками. Генератор кварц 12 МГц.
Вложения:
Тип файла: rar HD44780 Read.rar (43.3 Кб, 68 просмотров)
Тип файла: txt HD44780.txt (11.8 Кб, 79 просмотров)
dr.doc вне форума  
Непрочитано 30.04.2013, 10:50   #100
KVV09
Прохожий
 
Регистрация: 03.11.2009
Сообщений: 9
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
KVV09 на пути к лучшему
Радость Re: WH1602 и Tiny2313

[QUOTE=evgeniykhl;621781]
Сообщение от niXto Посмотреть сообщение
....Правда, что случилось с ногой порта еще предстоит выяснять.
У тебя твой управляющий сигнал как раз на месте JTAG... Во фьюзах отключи JTAGEN и должно заработать
KVV09 вне форума  
Сказали "Спасибо" KVV09
evgeniykhl (01.05.2013)
Закрытая тема

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часы дла ВАЗ классики на tiny2313 VladimirMal Микроконтроллеры, АЦП, память и т.д 8 17.10.2011 14:31


Часовой пояс GMT +4, время: 22:24.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot