Добавьте пожалуйста в статью hex фаль,плиз
Объяснение в любви. Подключаем LCD к микроконтроллеру по 4-х
- Sailanser
- Друг Кота
- Сообщения: 3121
- Зарегистрирован: Ср фев 01, 2006 22:29:02
- Откуда: г.Ростов-на-Дону
Давай адрес эл.почты скину а то тут что-то нельзя файлы с этим расширением прикреплять.
Либо копируй отсюда таким образом создаешь файл с расширением hex и вставляешь в него это
Потом сохраняешь и шьешь.
Либо копируй отсюда таким образом создаешь файл с расширением hex и вставляешь в него это
Код: Выделить всё
:020000020000FC
:100000000BC009C008C007C029C005C004C003C098
:1000100002C001C000C018950FEF07BB01BB00E094
:1000200002BB0FED0DBF24D034D0B5D000E851D0C5
:10003000E8E7F1E075D001EC4CD0E6E8F1E070D0F3
:1000400000E409BF03E00EBD0CE40BBD0BE40ABDE8
:1000500011E000E00DBD0CBD7894FFCF00E00DBDB8
:100060000CBD103811F0110F01C011E018BB18952C
:100070000F9300E00A95F1F70F9108950F931F93E6
:1000800000E014E10A95F1F71A95E1F71F910F913D
:10009000089500E002BBECDF10E1E2ECF0E0C8956F
:1000A00002BA319600000000949A0000000000009F
:1000B0000000000000009498DBDF1A9581F7DEDF76
:1000C000089503030302020800080006000F080059
:1000D00000010F9306950695069506950F7002BBD5
:1000E00000000000949A00000000000000000000E2
:1000F00000009498000000000000000000000000D4
:1001000000000F910F7002BB00000000949A0000E5
:10011000000000000000000000009498A9DF08958E
:10012000C895002D043239F131960F9302950F7066
:10013000006402BB00000000949A00000000000070
:100140000000000000009498000000000000000083
:100150000000000000000F910F70006402BB00005F
:100160000000949A00000000000000000000000061
:1001700094987EDFD5CF089549004B50A54354B0E5
:10018000AC4120262400726164696F6B6F742E721B
:1001900075203A29240000E49CDFE2EAF1E0C0DFA8
:0C01A000089500000A1F0E040000240057
:00000001FFПотом сохраняешь и шьешь.
Прочитал эту статью попробовал подключить индикатор к микрокотроллеру правда подключал немного другим образом в статье он подключен так
A0,R/W,E,DB7,DB6,DB5,DB4
a0 (4) (11) pd6
r/w (5) (9) pd5
e (6) (8) pd4
db4 (11) (2) pd0
db5 (12) (3) pd1
db6 (13) (6) pd2
db7 (14) (7) pd3
файл - 1.txt
при таком подключении все работает на ура никаких как говориться проблем нет но после того как немного меняю расположение сигналов для того что бы удобно было панельку ставить на такое
R/W,DB5,DB7,DB6,DB4,E,A0
a0 (4) (2) pd0
r/w (5) (11) pd6
e (6) (3) pd1
db4 (11) (6) pd2
db5 (12) (9) pd5
db6 (13) (7) pd3
db7 (14) (8) pd4
как в статье написано немного изменяю процесс инициализации самого дисплея по принципу Формат посылки: 0b00000000=0bx,A0(RS),R/W,E,DB7,DB6,DB5,DB4
на такой - 2.txt
то на индикаторе только видно первую строчку еле еле и видно что она вся из квадратиков. Что я мог прописать не так проверил уже несколько раз дожно быть так:(( но вот что то видно не учел т.к с микроконтроллерами и индикатором только начинаю работать.
Всем заранее спасибо за подсказку.
A0,R/W,E,DB7,DB6,DB5,DB4
a0 (4) (11) pd6
r/w (5) (9) pd5
e (6) (8) pd4
db4 (11) (2) pd0
db5 (12) (3) pd1
db6 (13) (6) pd2
db7 (14) (7) pd3
файл - 1.txt
при таком подключении все работает на ура никаких как говориться проблем нет но после того как немного меняю расположение сигналов для того что бы удобно было панельку ставить на такое
R/W,DB5,DB7,DB6,DB4,E,A0
a0 (4) (2) pd0
r/w (5) (11) pd6
e (6) (3) pd1
db4 (11) (6) pd2
db5 (12) (9) pd5
db6 (13) (7) pd3
db7 (14) (8) pd4
как в статье написано немного изменяю процесс инициализации самого дисплея по принципу Формат посылки: 0b00000000=0bx,A0(RS),R/W,E,DB7,DB6,DB5,DB4
на такой - 2.txt
то на индикаторе только видно первую строчку еле еле и видно что она вся из квадратиков. Что я мог прописать не так проверил уже несколько раз дожно быть так:(( но вот что то видно не учел т.к с микроконтроллерами и индикатором только начинаю работать.
Всем заранее спасибо за подсказку.
- Старый ржавый электронщик
- Говорящий с текстолитом
- Сообщения: 1507
- Зарегистрирован: Чт дек 15, 2005 17:34:48
- Откуда: Петрозаводск
- Контактная информация:
- moLCHec
- Мявтор!
- Сообщения: 825
- Зарегистрирован: Вс дек 18, 2005 20:04:42
- Откуда: Свердловская обл.
- Контактная информация:
Записи символов и выборе области даннных мы переставляем тетрады регистра swap-помоему короче на BD4-BD7 индикатора должны приходить Px0-Px3 ноги порта соответсвенно иначе тебе нада сдвигать перед выводом в порт полубайт. В твоёт случае влево на 2 разряда т.е. умножить на 4. Въедь просто в работу индикатора и программы по лучше и ты поймёшь в чём ошибка сам.
Настоящий кот всегда либо голоден,
либо невыспался ...
либо невыспался ...
- moLCHec
- Мявтор!
- Сообщения: 825
- Зарегистрирован: Вс дек 18, 2005 20:04:42
- Откуда: Свердловская обл.
- Контактная информация:
Инициализация заключается в последовательности определённых байтов для того что бы контролллер индикатора принял байт нужен строб.-сигнал на выводе Е. 1 delay 0. Так вот представь теперь что байт это 8-мь разрядов а у тебя подключение по 4-х битной шине. При коды инициализации расчитаны так что значащами являются тока младший полубайт. Т.е. при инициализации тебе надо вывести определённый полубайт на на копыта которые подключены к BD4-BD0 индикатора. И дать строб выводом который питает "Е". При Выборе области WriteDDR ак у меня наз-ся . Ситуация уже несколько другая здесь мы уже перевели окончательно в 4-х битный режим и формат посыла такой: A0-"1"-Старший полубайт A0-0- A0-1-строб - младший полубайт A0-0.При записи символа при записи символа всё также только А0 не изменяется в WH индикаторах он кстати RS наз-ся. Ну теперь главное как это всё у тебя програмно организуется . При инициализации просто записывам в PORTx байт причем младший полубайт оказавается на DB4-DB7 при первом тобой указанном подключении ну и стробируем. тепереча представь если ты просто поменял копыта. У тебя байт выводится в DB4 DB5 Е А0. При выборе памяти и выводе символа мы переставляем тетрады swap окрляем старший посылаем. Затем этотже байт не "пререворачиаем" а просто округляем "верхушку" и посылаем. Ну ты понял что получается при твоём втором подрлючении просто не туды выводится инфа.
Настоящий кот всегда либо голоден,
либо невыспался ...
либо невыспался ...
Ага вот теперь понятно, только скажи вот что какой командой переставляются тетрады swap в обучалке на сэтом сайте что то не видел упоминания такого.
Я так понимаю что необходимо использовать команду логический сдвиг влево как ты говорил немного выше и втыкать ее в подпрограммы INIT_LCD16S2D: Init_next0: ?
Я так понимаю что необходимо использовать команду логический сдвиг влево как ты говорил немного выше и втыкать ее в подпрограммы INIT_LCD16S2D: Init_next0: ?
- moLCHec
- Мявтор!
- Сообщения: 825
- Зарегистрирован: Вс дек 18, 2005 20:04:42
- Откуда: Свердловская обл.
- Контактная информация:
Ага совершенно верно для перестановки тетрад используется команда
SWAP аргумент РОН сам понимаешь. Можно просто разделить число на 16 или сдвинуть на 4 разряда вправо тогда не нада округлять старший полубайт. Сдвигать тебе придётся не тока в инициализации . Также в функции выбора адреса и непосредственно вывода символа.
А вообче проще печатку переделать наверно чем так извращаться тем более в асме. На крайняк проводками перемычки кинуть.
SWAP аргумент РОН сам понимаешь. Можно просто разделить число на 16 или сдвинуть на 4 разряда вправо тогда не нада округлять старший полубайт. Сдвигать тебе придётся не тока в инициализации . Также в функции выбора адреса и непосредственно вывода символа.
А вообче проще печатку переделать наверно чем так извращаться тем более в асме. На крайняк проводками перемычки кинуть.
Настоящий кот всегда либо голоден,
либо невыспался ...
либо невыспался ...
-
SD
Код: Выделить всё
...
out PortD,Temp
nop ;Не менее 40нс
nop
...
Почему используется 2а nop'а? ведь при f=10MHz T=1/f=10^-7s=100ns
Ведь 100ns>40ns, получается можно исключить эти 2а nop'а?
Но почему-то если так считать, то не прокатывает общение с LCD
- Артур
- Нашел транзистор. Понюхал.
- Сообщения: 157
- Зарегистрирован: Пн дек 04, 2006 09:50:08
- Откуда: Vladivostok
Всем привет!
Извините за вторжение но не хотелось засорять форум создавая похожую тему! Пользуясь случаем задаю свой вопрос:
Скажите пожалуйста стробирующий сигнал должен быть постоянным или прерываться? и если он должен прерываться, то в какое время и для чего?
И Еще не могли бы Вы рассказать мне весь процесс (на какие выводы, в какой момент времени надо подавать какие уровни) чтобы вывести символ например "А"
Читал даташит на дисплей, но смотрю в книгу вижу фигу
я с этим впервые сталкиваюсь , боюсь сам не разберусь!
Спасибо! Очень надеюсь на вашу помощь!
Извините за вторжение но не хотелось засорять форум создавая похожую тему! Пользуясь случаем задаю свой вопрос:
Скажите пожалуйста стробирующий сигнал должен быть постоянным или прерываться? и если он должен прерываться, то в какое время и для чего?
И Еще не могли бы Вы рассказать мне весь процесс (на какие выводы, в какой момент времени надо подавать какие уровни) чтобы вывести символ например "А"
Читал даташит на дисплей, но смотрю в книгу вижу фигу
Спасибо! Очень надеюсь на вашу помощь!
Век живи! - Век учись!
ICQ-15B87330h
ICQ-15B87330h
Артур писал(а):...не могли бы Вы рассказать мне весь процесс...
Обсуждалось на http://www.radio.ru/ubb/Forum5/HTML/002946.html
Там же есть ссылки на статьи на Русском...