Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемка с LSD Winstar WH1602
Форум разработчиков электроники ELECTRONIX.ru > Поставщики компонентов для электроники > Компоненты > Средства индикации
_Vadim_
Добрый день!
Прошу помощи решения проблемки!
Проблемка с LSD Winstar WH1602-YYK-CTK-русифицированный, контроллер HD44780, использую PIC16F84A для вывода на дисплай тестовой инфы, проблем заключается в том, что LSD отображает правильно только цифры и некоторые знаки, например провожу инициализацию LSD, далее пытаюсь вывести по очереди например A,B,C,D......O, а ЛСД-ка выдыет вертикальные черточки, изображения прикладываю. Может я чот не правильно делаю с инициализацией, хотя с цифрами все хорошо, вообщем жду вашего совета, человек я в этом деле новый как что сильно не пинайте!
Еще для пущей понятности кусок програмки в ассемблере для оного пика:

;R/W - постоянно схемно соединен с "-"
LsdVideoON: CALL TIMER5 ;Ожидаем 15мс пока установится питание LSD
bcf PORTA,1 ;установка RS = 0
CALL TIMER5 ;Еще ждемс
movlw 0x0D ;запись 0000 1101 в порт В(DB0-DB7)
movwf PORTB ;D=1-вкл.изображение,B=1-мерцаюший курсор вкл.
CALL TIMER5 ;
bsf PORTA,3 ;установливаем Е=1
CALL TIMER5 ;
bcf PORTA,3 ;установливаем Е=0
CALL TIMER5 ;
movlw 0xFF ; установливаем DB0-DB7 высокий лог-кий
movwf PORTB ; уровень (Hi)
CALL TIMER5 ;

LsdVideoConf:
bcf PORTA,1 ;тоже самое только
CALL TIMER5 ;
movlw 0x3F ;запись 0011 1111 в порт В(DB0-DB7)
movwf PORTB ;DL=1-вкл.8-ми разрядная шина данных,N=1-вкл.две строки,
CALL TIMER5 ;F=1 - матрица 5*10 точек
bsf PORTA,3 ;
CALL TIMER5 ;
bcf PORTA,3 ;
CALL TIMER5 ;
movlw 0xFF ;
movwf PORTB ;
CALL TIMER5 ;

LsdVideoData:
bsf PORTA,1 ;запись в память данных
CALL TIMER5 ;RS=1
movlw 0x41 ;запись буковки А в порт В(DB0-DB7)
movwf PORTB ;
CALL TIMER5 ;
bsf PORTA,3 ;Е=1
CALL TIMER5 ;
bcf PORTA,3 ;Е=0
CALL TIMER5 ;
movlw 0xFF ;DB0-DB7 = Hi
movwf PORTB ;
CALL PAUSE ;
LsdVideoData1:
bsf PORTA,1
CALL TIMER5
movlw 0x42 ; "B"
movwf PORTB
CALL TIMER5
bsf PORTA,3
CALL TIMER5
bcf PORTA,3
CALL TIMER5
movlw 0xFF
movwf PORTB
CALL PAUSE
LsdVideoData2:
bsf PORTA,1
CALL TIMER5
movlw 0x43 ; "C"
movwf PORTB
CALL TIMER5
bsf PORTA,3
CALL TIMER5
bcf PORTA,3
CALL TIMER5
movlw 0xFF
movwf PORTB
CALL PAUSE
LsdVideoData3:
bsf PORTA,1
CALL TIMER5
movlw 0x44 ; "D"
movwf PORTB
CALL TIMER5
bsf PORTA,3
CALL TIMER5
bcf PORTA,3
CALL TIMER5
movlw 0xFF
movwf PORTB
CALL TIMER5
CALL PAUSE

и так до "О"
rezident
Раз вы человек новый, то следует для начала прочитать Правила форума. После этого воспользоваться поиском по форуму. И только, если не найдете ответа (хотя сложно не найти, 2-х строчные LCD обсуждаются примерно раз в неделю) на свой вопрос разместить свое сообщение в соответствующем разделе форума (AVR видимо?).
По сути проблемы. С кодом я вашим не разбирался, но судя по всему, вы пытаетесь писать в область CGRAM, а не DDRAM.
rloc
Цитата(_Vadim_ @ Dec 6 2007, 11:17) *
Проблемка с LSD Winstar WH1602-YYK-CTK-русифицированный, контроллер HD44780, ...

Контроллер у них не совсем HD44780, а совместимый с оным, собственной разработки и очень часто с огромным количеством ошибок. Лет 5 назад "парился" c WH1602D-PML-CP, таких мучений никому больше не пожелаю, жутко глюкавый, совместим с HD44780 процентов на 80%. Если найду, выложу исходники написанные на С под MCS51.
LSD - "правильно" Вы его назвали beer.gif
_Vadim_
Цитата(rezident @ Dec 6 2007, 13:13) *
Раз вы человек новый, то следует для начала прочитать Правила форума. После этого воспользоваться поиском по форуму. И только, если не найдете ответа (хотя сложно не найти, 2-х строчные LCD обсуждаются примерно раз в неделю) на свой вопрос разместить свое сообщение в соответствующем разделе форума (AVR видимо?).
По сути проблемы. С кодом я вашим не разбирался, но судя по всему, вы пытаетесь писать в область CGRAM, а не DDRAM.

Уважаемый rezident, я правила прочитал и давайте сами не будем разводить ФЛУД и высказываться будем по существу!


Цитата(rloc @ Dec 6 2007, 14:33) *
Контроллер у них не совсем HD44780, а совместимый с оным, собственной разработки и очень часто с огромным количеством ошибок. Лет 5 назад "парился" c WH1602D-PML-CP, таких мучений никому больше не пожелаю, жутко глюкавый, совместим с HD44780 процентов на 80%. Если найду, выложу исходники написанные на С под MCS51.
LSD - "правильно" Вы его назвали beer.gif

ДА уж с "LSD" я загнул, хотя LCD его пока трудно назвать! Буду пробовать перебирать всю таблицу символов crying.gif . По результатам отпишусь beer.gif .
_Vadim_
И так что мне удалось узнать, прошерстил я всю таблицу символов, попробовал другой такой же LCD, результат одинаковый, pdf-чик с таблицой из даташита прилагаю, а вот что отображает дисплей:
адреса:
- с 00 до 0D отображаются ввиде вертикальных черточек (по две или три (реже) штуки в ячейке);
- с 0Е до 0F - пустые;
- с 10 до 1F - пустые;
- 20 - пустая;
- 21 - 2F - как положено;
- 30 - 3F - как положено;
- 40 - 4F - ввиде вертикальных черточек;
- 50 - 5F - ввиде вертикальных черточек;
- 61 - 6F = 21 - 2F;
- 70 - пустая;
- 71 - 7F = 21 - 2F;
- 80 - пустая;
- 81 - 90 - ввиде вертикальных черточек;
- 91 - A0 - пустые;
- A0 - AF - ввиде вертикальных черточек;
- B1 - BF = 21 - 2F;
- C0 - CF - как положено;
- D0 - DF - как положено;
- E0 - EF - как положено;
- F0 - FF - как положено.
Вывод у меня напрашивается один - брак производителя, криво прошита память; что скажите народ?
Сергей Борщ
Цитата(_Vadim_ @ Dec 7 2007, 09:57) *
попробовал другой такой же LCD....
что скажите народ?
Что с кривыми индикаторами сталкиваться не приходилось (а тем более с двумя!), а вот с кривыми программами - сколько угодно. rezident совершенно правильно вам заметил, что инициализация обсасывалась на этом форуме очень много раз. Вы можете до потери сознания обвинять собеседников во флуде, но он вам сделал два совершенно правильных замечания - 1) читать ваш код очень трудно - вы не потрудились его обрамить тегами code
2) ваша инициализация никуда не годится - ищите на форуме.
Не годится по следующим причинам:
1) надо указывать одну строку а не две - примите это как аксиому
2) вы не даете команду установки адреса DDRAM.
3) вы не даете еще несколько необходимых команд
Можете кивать на производителя сколько угодно, но пока не сделаете правильную инициализацию работать не будет. Примеров море что в гугле что на форуме. Творить еще одну копию нет никакого желания.
_Vadim_
Цитата(Сергей Борщ @ Dec 7 2007, 13:20) *
Что с кривыми индикаторами сталкиваться не приходилось (а тем более с двумя!), а вот с кривыми программами - сколько угодно. rezident совершенно правильно вам заметил, что инициализация обсасывалась на этом форуме очень много раз. Вы можете до потери сознания обвинять собеседников во флуде, но он вам сделал два совершенно правильных замечания - 1) читать ваш код очень трудно - вы не потрудились его обрамить тегами code
2) ваша инициализация никуда не годится - ищите на форуме.
Не годится по следующим причинам:
1) надо указывать одну строку а не две - примите это как аксиому
2) вы не даете команду установки адреса DDRAM.
3) вы не даете еще несколько необходимых команд
Можете кивать на производителя сколько угодно, но пока не сделаете правильную инициализацию работать не будет. Примеров море что в гугле что на форуме. Творить еще одну копию нет никакого желания.

Спасибо за помошь, буду разбираться дальше.
_Vadim_
Цитата(Сергей Борщ @ Dec 7 2007, 13:20) *
Что с кривыми индикаторами сталкиваться не приходилось (а тем более с двумя!), а вот с кривыми программами - сколько угодно. rezident совершенно правильно вам заметил, что инициализация обсасывалась на этом форуме очень много раз. Вы можете до потери сознания обвинять собеседников во флуде, но он вам сделал два совершенно правильных замечания - 1) читать ваш код очень трудно - вы не потрудились его обрамить тегами code
2) ваша инициализация никуда не годится - ищите на форуме.
Не годится по следующим причинам:
1) надо указывать одну строку а не две - примите это как аксиому
2) вы не даете команду установки адреса DDRAM.
3) вы не даете еще несколько необходимых команд
Можете кивать на производителя сколько угодно, но пока не сделаете правильную инициализацию работать не будет. Примеров море что в гугле что на форуме. Творить еще одну копию нет никакого желания.

Сергей, собственно от перечтения даташитов, док и разных примеров, нечего существенно нового не узнал по инициализации, текст программы (кривой - правильно подмечено) поправил, но проблема остается таже, может поможете еще разок?
кратко попробую описать инициализацию дисплея:
1. Установить RS, E, R/W - в Down (0) (R/W-сидит на нуле);
2. Выждать паузу не менее 15 мс;
3. Установить RS в Down (на всякий случай);
4. Вывести на шину данных 0х30= 00110000 (инициализация в 8-ми битном режиме);
5. Установить Е в UP(1);
6. Установить Е в Down (0);
7. Установить шину данных в уровень высокого импеданса 1;
8. выждать паузу не менее 5 мс;
9. повторить пункты 3-7;
10. пауза не менее 100мкс (у меня 1мс);
11. повторить пункты 3-7;

12. Установить RS в Down;
13. Вывести на шину данных 0x3C= 8 бит, 2 строки, матрица 5х10
14. повторить пункты 5-7;

15. Установить RS в Down;
16. Вывести на шину данных 0x06=курсор авомат-ки перемещ. слева-направо;
17. повторить пункты 5-7;

18. Установить RS в Down;
19. Вывести на шину данных 0x01=отчиска экрана;
20. повторить пункты 5-7;

21. Установить RS в Down;
22. Вывести на шину данных 0x80=установка адресса ДДРАМ;
23. повторить пункты 5-7;

Файлик в асме прилагаю коментарии в нем имеются.
_Vadim_
Файлик почемуто не добавляется, тогда вот текст.

;**************************************************************************
; Используется микроконтроллер PIC16F84A. Частота кварца 4000кГц.
;*******************************************************************************
*********
LIST p=16F84a ; Используется PIC16F84A.
__CONFIG 03FF9H ; PWR вкл, WDT выключен, бит защиты не установлен.
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+ программа вывода информации на LCD +
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


STATUS EQU 0x03
PORTA EQU 0x05
PORTB EQU 0x06
TRISA EQU 0x05
TRISB EQU 0x06
INTCON EQU 0x0B
SecH equ 0x0C
SecL equ 0x0D
SecM equ 0x0E
TimerL equ 0x0F
TimerH equ 0x10
F EQU 1
RP0 EQU 5
RS EQU 1
E EQU 3


ORG 0
GOTO START
ORG 0x04
GOTO PAUSE
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+ Подпрограмма задержки ~ 1 секунда +
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

PAUSE:
movlw 0xFF
movwf SecL
movwf SecM
movlw 0x05
movwf SecH
PAUSE_1:
decfsz SecL,F
goto PAUSE_1

PAUSE_2:
nop
nop
decfsz SecM,F
goto PAUSE_1

PAUSE_3:
decfsz SecH,F
goto PAUSE_1

goto END_PAUSE

END_PAUSE: retfie

;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+ Подпрограммы задержки 1мс, 5мс, 20 мс +
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

pause1ms:
movlw 0x49
movwf TimerL
movlw 0x02
movwf TimerH
goto TIMER1
pause5ms:
movlw 0x7B
movwf TimerL
movlw 0x07
movwf TimerH
goto TIMER1

pause20ms:
movlw 0xF7
movwf TimerL
movlw 0x1A
movwf TimerH
TIMER1:
decfsz TimerL,F
goto TIMER1
TIMER2:
decfsz TimerH,F
goto TIMER1
goto END_PAUSE

;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+ Вывод данных на LCD +
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


LCD_DATA_OUTPUT:
movwf PORTB ;запись информации в порт
;CALL pause1ms ; Опционально
bsf PORTA,E ;Е=1=Up
;CALL pause1ms ; Опционально
bcf PORTA,E ;Е=1=Down
CALL pause1ms ;пауза 1 мс
movlw 0xFF ;записать в аккамулятор 1111 1111
movwf PORTB ;установить D0-D7 в Up
CALL pause1ms ;пауза 1 мс


retfie ;возврат по стеку
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+ Начало программы +
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

START: clrf INTCON
BSF STATUS,RP0
clrw
movwf TRISA
movwf TRISB
BCF STATUS,RP0
clrw
movwf PORTA
movwf PORTB

;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+ Выполняется инициализация LCD +
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Lsd_INIT:
CALL pause20ms ;ждем 20 мс
bcf PORTA,RS ; RS-Down
CALL pause1ms ; инициализация 00110000
movlw 0x30 ;Dl=1-8-битная шина данных
CALL LCD_DATA_OUTPUT ; вызов подпрограммы вывода
CALL pause5ms ; инф-ции в порт данных
CALL LCD_DATA_OUTPUT ; и так три раза, как в даташите
CALL pause1ms ;
CALL LCD_DATA_OUTPUT ;


;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+ Выполняется установка режима работы LCD +
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


LsdVideoConf1:
bcf PORTA,RS
movlw 0x3C ; 8 бит, 2 строки, матрица 5х10
CALL LCD_DATA_OUTPUT

LsdVideoConf2:
bcf PORTA,RS
movlw 0x0E ;изображение вкл., курсор в виде подчерка вкл.
CALL LCD_DATA_OUTPUT

LsdVideoConf3:
bcf PORTA,RS
movlw 0x06 ; курсор авомат-ки перемещ. слева-направо
CALL LCD_DATA_OUTPUT

LsdVideoConf4:
bcf PORTA,RS
movlw 0x01 ; отчиска экрана
CALL LCD_DATA_OUTPUT

LsdVideoConf5:
bcf PORTA,RS
movlw 0x80 ; установка адресса ДДРАМ
CALL LCD_DATA_OUTPUT ; (нулевой адресс)

;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+ Выполняется вывод данных на LCD +
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

LsdVideoData:
bsf PORTA,RS
movlw 0x41 ; simbol "А"
CALL LCD_DATA_OUTPUT
CALL PAUSE
LsdVideoData1:
bsf PORTA,RS
movlw 0x42 ; simbol "B"
CALL LCD_DATA_OUTPUT
CALL PAUSE
LsdVideoData2:
bsf PORTA,RS
movlw 0x43 ; simbol "C"
CALL LCD_DATA_OUTPUT
CALL PAUSE
LsdVideoData3:
bsf PORTA,RS
movlw 0x41 ; simbol "D"
CALL LCD_DATA_OUTPUT
CALL PAUSE


goto LsdVideoData ; гоняем буквы по кругу



END
rezident
Цитата(_Vadim_ @ Dec 12 2007, 17:00) *
Сергей, собственно от перечтения даташитов, док и разных примеров, нечего существенно нового не узнал по инициализации, текст программы (кривой - правильно подмечено) поправил, но проблема остается таже, может поможете еще разок?
кратко попробую описать инициализацию дисплея:

В вашем алгоритме не учитывается конечное (и немалое) время выполнения LCD каждой команды записи. Поскольку у вас сигнал R/W не используется (подключен к GND) и вы не можете проверить готовность LCD опросом (чтением) флага BF, то после каждой записи вы обязаны выдерживать паузу, оговоренную даташитом. Пауза нужна чтобы контроллер LCD заведомо успевал обрабатывать команды. В описанном вами алгоритме паузы только на этапе инициализации имеются.
_Vadim_
Цитата(rezident @ Dec 12 2007, 18:58) *
В вашем алгоритме не учитывается конечное (и немалое) время выполнения LCD каждой команды записи. Поскольку у вас сигнал R/W не используется (подключен к GND) и вы не можете проверить готовность LCD опросом (чтением) флага BF, то после каждой записи вы обязаны выдерживать паузу, оговоренную даташитом. Пауза нужна чтобы контроллер LCD заведомо успевал обрабатывать команды. В описанном вами алгоритме паузы только на этапе инициализации имеются.

Это я понимаю и в тексте программы это учтено, но изменений работы от ввода в текст программы пауз, не происходит. sad.gif
Сергей Борщ
Цитата(_Vadim_ @ Dec 12 2007, 16:15) *
Файлик почемуто не добавляется, тогда вот текст.
Потому что его надо запаковать, хотя бы в .zip Ну а если выкладываете текст в сообщение, хотя бы обрамляйте его в теги [ code ] и [ /code ] ( кнопочка с символом # над формой ввода сообщения). По программе: Вы пробовали ее гонять в симуляторе? Я сразу увидел, что в фрагменте
Код
Lsd_INIT:  
            CALL       pause20ms                           [color=#3333FF];ждем 20 мс [/color]
            bcf        PORTA,RS                               [color=#3333FF]; RS-Down[/color]
            CALL       pause1ms                             [color=#3333FF]; инициализация 00110000 [/color]
            movlw      0x30                                   [color=#3333FF];Dl=1-8-битная шина данных[/color]
            CALL       LCD_DATA_OUTPUT              [color=#3333FF]; вызов подпрограммы вывода[/color]
            CALL       pause5ms                            [color=#3333FF]; инф-ции в порт данных[/color]
            CALL       LCD_DATA_OUTPUT              [color=#3333FF]; и так три раза, как в даташите[/color]
            CALL       pause1ms          ;
            CALL       LCD_DATA_OUTPUT              [color=#3333FF];[/color]
у вас внутри LCD_DATA_OUTPUT портится содержимое W и второй и третий вызов делают совсем не то, что вы хотите. Поэтому сначала добейтесь, чтобы программа делала все, как задумано. Рядом висит еще одна тема, там тоже обсуждается дисплей и его инициализация, правда на С - почитайте, может найдете что-то полезное.
xemul
Цитата(_Vadim_ @ Dec 12 2007, 17:15) *
Файлик почемуто не добавляется, тогда вот текст.
Код
            ...
            END

По сути уважаемые уже все сказали.
Небольшие дополнения, не относящееся к теме:
1) разница между return и retfie в PIC'ах, конечно, не слишком великая, но таки есть.
2) имхо, крайне негуманно по отношению к контроллеру организовать п/п обработки прерывания как задержку на 1 секунду.
_Vadim_
Спасибо всем!
Действительно не продумал с W, это от неопытности, извените, поправлю и сообщю о результатах.
_Vadim_
Цитата(_Vadim_ @ Dec 13 2007, 11:09) *
Спасибо всем!
Действительно не продумал с W, это от неопытности, извените, поправлю и сообщю о результатах.

Поправил свою ошибку в секции вывода данных на LCD и дальше по тексту программы подобавлял после записи в W, копирование W в CopyW где нужно.
Код
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+                   Вывод данных на LCD                                   +
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

LCD_DATA_OUTPUT:
            CALL       pause1ms
            movf       CopyW,W  ;скопировать содержимое CopyW в W  
            movwf      PORTB    ;запись информации в порт
                                ;CALL       pause1ms            
            bsf        PORTA,E  ;Е=1=Up
                                ;CALL       pause1ms
            bcf        PORTA,E  ;Е=1=Down
            CALL       pause1ms ;пауза 1 мс
            movlw      0xFF     ;записать в 0аккамулятор 1111 1111          
            movwf      PORTB    ;установить D0-D7 в Up
            CALL       pause1ms ;пауза 1 мс
            

            retfie              ;возврат по стеку

результат тот же, что скажите вроде основные ляпы убрал, инициализация вроде идет как надо, теперь то по идее должно работать, но не работает, что делать?

вот результаты вывода 2-го и 3-го столбцов таблицы символов:Нажмите для просмотра прикрепленного файла

и результаты вывода 4-го и 5-го столбцов таблицы символов:Нажмите для просмотра прикрепленного файла

да вот еще файлик в асме:Нажмите для просмотра прикрепленного файла
Сергей Борщ
Цитата(_Vadim_ @ Dec 13 2007, 11:47) *
результат тот же, что скажите вроде основные ляпы убрал, инициализация вроде идет как надо, теперь то по идее должно работать, но не работает, что делать?
Уберите запись 0xFF в порт после вывода данных - оно не мешает, но лишнее. Вместо retfie используйте команду ret - retfie используется для возврата из прерывания. Проверьте, что у вас до индикатора доходят сигналы по старшим линиям шины данных - возможно они попутаны или просто не доходят и поэтому выводятся не те символы.
_Vadim_
Цитата(Сергей Борщ @ Dec 13 2007, 17:05) *
Уберите запись 0xFF в порт после вывода данных - оно не мешает, но лишнее. Вместо retfie используйте команду ret - retfie используется для возврата из прерывания. Проверьте, что у вас до индикатора доходят сигналы по старшим линиям шины данных - возможно они попутаны или просто не доходят и поэтому выводятся не те символы.

Возможно вы имели ввиду RETURN вместо ret - retfie, в моем букваре ее нет и макроассемблер MPLAB ее не знает. Насчет проверки это идея хорошая, буду проверять. Спасибо!
_Vadim_
Проверил.
В соединениях проблем нет, при записи в порт 0хF0 = 1111 0000, меряю напряжение на соответствующих выводах все в порядке; при записи в порт 0х0F = 0000 1111, меряю напряжение на соответствующих выводах все в порядке; при записи в порт 0хАА = 1010 1010, меряю напряжение на соответствующих выводах D7=0.72В(должно 5В), D6=0.72В(должно 0В), а остальные в норме и отображает "*"; при записи в порт 0х5А = 0101 0101, меряю напряжение на соответствующих выводах D7=0.72В(должно 0В), D6=0.72В(должно 5В), а остальные в норме.
Может кто подскажет в чем может быть причина такого поведения ПИКа (PIC16F84A), как такое может быть или это уже не сюда ?
Сергей Борщ
Цитата(_Vadim_ @ Dec 13 2007, 17:03) *
Может кто подскажет в чем может быть причина такого поведения ПИКа (PIC16F84A), как такое может быть или это уже не сюда ?
Ничего более умного чем "между ними замыкание" в голову не приходит.
P.S. да, про ret я ошибся - несколько лет на асме для пиков не писал. Конечно же return.
_Vadim_
Цитата(Сергей Борщ @ Dec 13 2007, 19:25) *
Ничего более умного чем "между ними замыкание" в голову не приходит.
P.S. да, про ret я ошибся - несколько лет на асме для пиков не писал. Конечно же return.

Сергей Вы опять правы, действительно замыкание было между 12(DB6) и 13(DB7) выводами на плате, не вооруженным глазом не было видно, такая простая проблемка , а я полез в дебьри, и безосновано оговорил производителя, да и на форуме тоже, за что и каюсь!
Всем большое спасибо и a14.gif, теперь все работает как надо 08.gif !
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.