Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Технологии программирования > Железо. Написание драйверов
Перезагрузить страницу ЖКИ и его программирование
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Buggy Buggy вне форума
Новичок
 
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 29.04.2004
По умолчанию ЖКИ и его программирование - 14.05.2004, 20:09

Делаю программу для вывода текстовой информации на ЖКИ MT16S2H (контроллер аналогичен HD44780) через микроконтроллер ADuC812 в 4 битном режиме. Инициализацию делаю согласно рекомендациям на этот ЖКИ. Вывожу латинский алфавит по 16 символов в строке. Проблема самая обычная, что хотя все сделано по инструкции , но ничего не выводится, хотя программа без ошибок.
В пп выдержки времени я сделал их 2 delay1 на 106мс, delay на 25 мс.
Программа то простейшая может как говорится я не вижу леса за деревьями? Что-то упустил , не учел? Подскажите кто может Ваши мнения и советы будут очень кстати.


Операция записи для 4 разрядной шины
1. Уст значение линии RS (0-передаются команды, 1 - данные)
2. Вывести ст. тетраду
3. уст Е вы 1
4. уст Е в 0
5. Вывести мл. тетраду
6. уст Е в 1
7. уст Е в 0
8. уст шину ЖКИ в HI
Р2 - это порт у ADuC812 через который я вывожу данные на ЖКИ
Код:
$mod812
E    EQU 0A1H    
RS    EQU 0A2H    
RW    EQU 0A0H
    ORG 0000H    
        MOV SP,#20H ;уст. вершину стека
    LCALL INIT    
    LCALL OUT
TABL:   DB 41H, 42H, 43H, 44H, 45H, 46H, 47H, 48H, 49H, 4AH, 4BH, 4CH, 4DH, 4EH, 4FH 
        DB 50H, 51H, 52H, 53H, 54H, 55H, 56H, 57H, 58H, 59H, 5AH, 5BH, 5CH, 5DH, 5EH, 5FH, 0EDH;КОДЫ ВЫВОДИМЫХ СИМВОЛОВ 
    LJMP KONEC
OUT:    PUSH ACC
    PUSH 06H;рег. R6 и R7 0 банка в стек
    PUSH 07H;
    MOV R7,#20H;всего сиволов 32 т.к. 16*2 дисплей
    MOV R6,#00H;порядковый номер вывод. символа в таблице
    MOV DPTR, #TABL;адрес таблицы с кодами символов    
M1:    MOV A,R6    
    MOVC A, @A+DPTR 
    ANL A,#0F0H;выделяем старшую тетраду
    SETB ACC.2;устанавливаем RS в 1
    MOV P2,A    
    ;SETB RS  
    LCALL DELAY;вызов пп выдержки времени
    SETB E    ;уст. Е в 1
    LCALL DELAY    
    CLR E    ;уст. Е в 0
    LCALL DELAY    
    MOV A,R6    
    MOVC A, @A+DPTR  
    ANL A,#0FH;выделяем младшую тераду
    RL A  
    RL A  
    RL A    ;сдвиг влево для получ. ст. тетрады
    RL A  
    SETB ACC.2    
    MOV P2,A    
    ;SETB RS    
    LCALL DELAY    
    SETB E  
    LCALL DELAY    
    CLR E  
    LCALL DELAY
    MOV P2, #00H;уст. ЖКИ в выс.импенданс. сост. для этого Е в 0
    INC R6    ;увелич порядков. ном. вывод. символа
    DJNZ R7, M1; все символы выведены? если нет то М1
    POP 07H
    POP 06H
    POP ACC
    RET  
DELAY:PUSH ACC
    PUSH 04H
    PUSH 03H
    PUSH 02H
    MOV R4,#01H    
MM3:    MOV R3,#0FFH 
MM2:    MOV R2,#0FFH    
MM1:    DJNZ R2, MM1    
    DJNZ R3, MM2    
    DJNZ R4, MM3    
    POP 02H
    POP 03H
    POP 04H
    POP ACC  
    RET    
DELAY1: PUSH ACC
    PUSH 04H
    PUSH 03H
    PUSH 02H
    MOV R4,#09H    
MN3:    MOV R3,#0FFH 
MN2:    MOV R2,#0FFH    
MN1:    DJNZ R2, MN1    
    DJNZ R3, MN2    
    DJNZ R4, MN3    
    POP 02H
    POP 03H
    POP 04H
    POP ACC  
    RET    
INIT:PUSH ACC
    LCALL DELAY1  
  
    MOV A, #00110000B ;8 бит шина
    MOV P2, A
    LCALL DELAY
    SETB E    
    LCALL DELAY    
    CLR E    
    LCALL DELAY    
  
    MOV A, #00110000B ;8 бит шина
    MOV P2, A
    LCALL DELAY
    SETB E    
    LCALL DELAY    
    CLR E    
    LCALL DELAY    
    
    MOV A, #00100000B ;
    MOV P2, A    
    LCALL DELAY1
    SETB E
    LCALL DELAY1    
    CLR E    
    LCALL DELAY1    
    
    MOV A, #00100000B  
    MOV P2, A
    LCALL DELAY1
    SETB E    
    LCALL DELAY1
    CLR E    
    LCALL DELAY1    
    
    MOV A, #10000000B  
    MOV P2, A
    LCALL DELAY1
    SETB E    
    LCALL DELAY1    
    CLR E    
    LCALL DELAY1    
    
    MOV A, #00000000B;уст. разрядности
    MOV P2, A
    LCALL DELAY1
    SETB E    
    LCALL DELAY1    
    CLR E    
    LCALL DELAY1    
    
    MOV A, #10000000B;уст. разрядности  
    MOV P2, A    
    LCALL DELAY1    
    SETB E
    LCALL DELAY1
    CLR E    
    LCALL DELAY1    
    
    MOV A, #00000000B ;очистка дисплея  
    MOV P2, A    
    LCALL DELAY
    SETB E
    LCALL DELAY    
    CLR E    
    LCALL DELAY    
    
    MOV A, #00010000B   
    MOV P2, A    
    LCALL DELAY
    SETB E
    LCALL DELAY  
    CLR E    
    LCALL DELAY    
    
    MOV A, #00000000B  
    MOV P2, A    
    LCALL DELAY1
    SETB E
    LCALL DELAY1    
    CLR E    
    LCALL DELAY1    
    
    MOV A, #01100000B  
    MOV P2, A    
    LCALL DELAY1
    SETB E
    LCALL DELAY1    
    CLR E    
    LCALL DELAY1  
    POP ACC
    RET    
KONEC:  NOP
        END
Ответить с цитированием
  (#2 (permalink)) Старый
Buggy Buggy вне форума
Новичок
 
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 29.04.2004
По умолчанию ЖКИ и его программирование - 17.05.2004, 17:59

Это все конечно хорошо
Это все у меня есть только мне бы хотелось взглянуть на саму программу потомучто дело не в теории дело в том что надо ставить выдержки времени, а куда их правильнее воткнуть, а куда не стоило бы....
Ответить с цитированием
  (#3 (permalink)) Старый
KostyaK KostyaK вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.08.2005
По умолчанию 02.08.2005, 18:53

Столкнулся с абсолютно такой же проблемой - вроде всё сделал по реокмендациям производителя HD44780, и задержки воткнул немыслимые куда только можно, а всё-равно не робит (даже не инициализирует экран).
Писал для LCD Octagon Systems 4*20 символов (8 бит данных) на базе HD44780. В качестве ПК использовался IBM-PC совместимый (процессор совместим с I86) контроллер CPU188-5 Fastwel.

Просьба - если есть какие-нить процедуры, проимеры программ или (самый смак) исходники драйверов для работы с LCD дисплеями на базе HD44780, буду очень благодарен, если пришлёте или ссылку дадите.
(Только для процессоров Intel, а не для PIC, AVR, 8051 - таких прог у самого много).
Особенно, просьба откликнуться, кто работал (писал проги) для HD44780+ПК.
Ответить с цитированием
  (#4 (permalink)) Старый
prottoss prottoss вне форума
Member
 
Сообщений: 21
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 20.02.2005
По умолчанию AVR + grapfic LCD 122x32 - 12.08.2005, 21:36

На сайте pinokio3000.narod.ru есть схема подключения графического ЖКИ 122 на 32 точки, и выложены исходники(драйвер) на IAR C, и Image Craft C.
Драйвер могет следующее:

1. Начальная инициализация дисплея;
2. Очистка произвольной области экрана;
3. Закраска произвольной области экрана;
4. Инвертирование произвольной области экрана;
5. Скроллинг произвольной области экрана (вверх, вниз, влево, вправо) с очисткой(закраской) освобождающейся области;
6. Скроллинг произвольной области экрана (вверх, вниз, влево, вправо) с заполнением рисунком освобождающейся области;
7. Циклический скроллинг произвольной области экрана (вверх, вниз, влево, вправо);
8. Вывод текста в произвольную область экрана;
9. Эффект бегущей строки в произвольной области экрана;
10. Рисование линий по алгоритму Брезенхема;
11. Закраска(очистка) пикселя в произвольном месте экрана.

Для обоих компиляторов есть варианты хранения констант (знакогенераторов, рисунков и т.п. в памяти программ AVR и во внешнем SPI EEPROM 25xxx, подключенным через интерфейс SPI AVR)

Драйвер платный.
Ответить с цитированием
  (#5 (permalink)) Старый
prottoss prottoss вне форума
Member
 
Сообщений: 21
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 20.02.2005
По умолчанию 13.09.2005, 13:41

Архив с драйвером запаролен. Архив выложен только для того, что бы Вы могли убедиться что скачиваете не кота в мешке. Для получения пароля пишите на мыло. Пароль стоит 500WMR или 20 WMZ в валюте Web Money.
Ответить с цитированием
Ads.
Ads
Ответ

Опции темы
Опции просмотра

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование на СИ Irina1 Любые вопросы от новичков 0 28.11.2011 00:13
Программирование PIC на С++ DurovAV Микроконтроллеры 1 28.12.2010 21:39
Программирование в Win XP под DOS Iptash Вопросы начинающих программистов 2 12.02.2009 23:45
Программирование для COM Ardling Железо. Написание драйверов 1 20.03.2008 12:10
Программирование в MFC VС6.0 amdg Вопросы начинающих программистов 0 13.09.2006 15:51
= Программирование игр для PDA nappel Visual Basic 1 16.06.2006 18:22
Программирование для DOC Pakhom Железо. Написание драйверов 3 30.07.2005 03:45
ЖКИ и его программирование Buggy Assembler 2 17.05.2004 13:24
Программирование игр на С ZonD С/С++ 2 02.05.2004 22:30
Программирование под USB на Assambler Anonymous Assembler 4 26.12.2003 15:33



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов